Convert to release coroutines (kotlinx-coroutines.1.0.1)
This commit is contained in:
+2
-2
@@ -144,8 +144,8 @@ extra["versions.junit"] = "4.12"
|
|||||||
extra["versions.javaslang"] = "2.0.6"
|
extra["versions.javaslang"] = "2.0.6"
|
||||||
extra["versions.ant"] = "1.8.2"
|
extra["versions.ant"] = "1.8.2"
|
||||||
extra["versions.android"] = "2.3.1"
|
extra["versions.android"] = "2.3.1"
|
||||||
extra["versions.kotlinx-coroutines-core"] = "0.26.1-eap13"
|
extra["versions.kotlinx-coroutines-core"] = "1.0.1"
|
||||||
extra["versions.kotlinx-coroutines-jdk8"] = "0.26.1-eap13"
|
extra["versions.kotlinx-coroutines-jdk8"] = "1.0.1"
|
||||||
extra["versions.json"] = "20160807"
|
extra["versions.json"] = "20160807"
|
||||||
extra["versions.native-platform"] = "0.14"
|
extra["versions.native-platform"] = "0.14"
|
||||||
extra["versions.ant-launcher"] = "1.8.0"
|
extra["versions.ant-launcher"] = "1.8.0"
|
||||||
|
|||||||
+3
-2
@@ -16,7 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.completion
|
package org.jetbrains.kotlin.idea.completion
|
||||||
|
|
||||||
import kotlinx.coroutines.channels.ConflatedChannel
|
import kotlinx.coroutines.channels.Channel
|
||||||
|
import kotlinx.coroutines.channels.Channel.Factory.CONFLATED
|
||||||
import java.lang.System.currentTimeMillis
|
import java.lang.System.currentTimeMillis
|
||||||
|
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ interface CompletionBenchmarkSink {
|
|||||||
|
|
||||||
class Impl : CompletionBenchmarkSink {
|
class Impl : CompletionBenchmarkSink {
|
||||||
private val pendingSessions = mutableListOf<CompletionSession>()
|
private val pendingSessions = mutableListOf<CompletionSession>()
|
||||||
val channel = ConflatedChannel<CompletionBenchmarkResults>()
|
val channel = Channel<CompletionBenchmarkResults>(capacity = CONFLATED)
|
||||||
|
|
||||||
private val perSessionResults = LinkedHashMap<CompletionSession, PerSessionResults>()
|
private val perSessionResults = LinkedHashMap<CompletionSession, PerSessionResults>()
|
||||||
private var start: Long = 0
|
private var start: Long = 0
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiElementFinder
|
|||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.search.NonClasspathDirectoriesScope
|
import com.intellij.psi.search.NonClasspathDirectoriesScope
|
||||||
import com.intellij.util.containers.SLRUMap
|
import com.intellij.util.containers.SLRUMap
|
||||||
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.jetbrains.kotlin.idea.core.util.EDT
|
import org.jetbrains.kotlin.idea.core.util.EDT
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
@@ -80,7 +81,7 @@ class ScriptDependenciesCache(private val project: Project) {
|
|||||||
private fun updateHighlighting(files: List<VirtualFile>) {
|
private fun updateHighlighting(files: List<VirtualFile>) {
|
||||||
ScriptDependenciesModificationTracker.getInstance(project).incModificationCount()
|
ScriptDependenciesModificationTracker.getInstance(project).incModificationCount()
|
||||||
|
|
||||||
launch(EDT(project)) {
|
GlobalScope.launch(EDT(project)) {
|
||||||
files.filter { it.isValid }.forEach {
|
files.filter { it.isValid }.forEach {
|
||||||
PsiManager.getInstance(project).findFile(it)?.let { psiFile ->
|
PsiManager.getInstance(project).findFile(it)?.let { psiFile ->
|
||||||
DaemonCodeAnalyzer.getInstance(project).restart(psiFile)
|
DaemonCodeAnalyzer.getInstance(project).restart(psiFile)
|
||||||
|
|||||||
+1
-1
@@ -79,7 +79,7 @@ class AsyncScriptDependenciesLoader(
|
|||||||
dispatcher: CoroutineDispatcher,
|
dispatcher: CoroutineDispatcher,
|
||||||
currentTimeStamp: TimeStamp,
|
currentTimeStamp: TimeStamp,
|
||||||
doResolve: suspend () -> DependenciesResolver.ResolveResult
|
doResolve: suspend () -> DependenciesResolver.ResolveResult
|
||||||
): Job = launch(dispatcher + project.cancelOnDisposal) {
|
): Job = GlobalScope.launch(dispatcher + project.cancelOnDisposal) {
|
||||||
val result = try {
|
val result = try {
|
||||||
doResolve()
|
doResolve()
|
||||||
} catch (t: Throwable) {
|
} catch (t: Throwable) {
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
|
import kotlinx.coroutines.Runnable
|
||||||
import kotlin.coroutines.AbstractCoroutineContextElement
|
import kotlin.coroutines.AbstractCoroutineContextElement
|
||||||
import kotlin.coroutines.CoroutineContext
|
import kotlin.coroutines.CoroutineContext
|
||||||
|
|
||||||
|
|||||||
+2
-5
@@ -36,10 +36,7 @@ import com.intellij.psi.search.GlobalSearchScope
|
|||||||
import com.intellij.ui.components.JBLabel
|
import com.intellij.ui.components.JBLabel
|
||||||
import com.intellij.ui.components.JBTextField
|
import com.intellij.ui.components.JBTextField
|
||||||
import com.intellij.uiDesigner.core.GridConstraints
|
import com.intellij.uiDesigner.core.GridConstraints
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import kotlinx.coroutines.withTimeout
|
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.idea.caches.project.ModuleOrigin
|
import org.jetbrains.kotlin.idea.caches.project.ModuleOrigin
|
||||||
import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo
|
||||||
@@ -61,7 +58,7 @@ abstract class AbstractCompletionBenchmarkAction : AnAction() {
|
|||||||
val benchmarkSink = CompletionBenchmarkSink.enableAndGet()
|
val benchmarkSink = CompletionBenchmarkSink.enableAndGet()
|
||||||
val scenario = createBenchmarkScenario(project, benchmarkSink) ?: return
|
val scenario = createBenchmarkScenario(project, benchmarkSink) ?: return
|
||||||
|
|
||||||
launch(EDT) {
|
GlobalScope.launch(EDT) {
|
||||||
scenario.doBenchmark()
|
scenario.doBenchmark()
|
||||||
CompletionBenchmarkSink.disable()
|
CompletionBenchmarkSink.disable()
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -32,7 +32,8 @@ import com.intellij.psi.PsiDocumentManager
|
|||||||
import com.intellij.ui.components.JBPanel
|
import com.intellij.ui.components.JBPanel
|
||||||
import com.intellij.ui.components.JBTextField
|
import com.intellij.ui.components.JBTextField
|
||||||
import com.intellij.uiDesigner.core.GridLayoutManager
|
import com.intellij.uiDesigner.core.GridLayoutManager
|
||||||
import kotlinx.coroutines.channels.ConflatedChannel
|
import kotlinx.coroutines.GlobalScope
|
||||||
|
import kotlinx.coroutines.channels.Channel
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.jetbrains.kotlin.idea.actions.internal.benchmark.AbstractCompletionBenchmarkAction.Companion.addBoxWithLabel
|
import org.jetbrains.kotlin.idea.actions.internal.benchmark.AbstractCompletionBenchmarkAction.Companion.addBoxWithLabel
|
||||||
@@ -76,7 +77,7 @@ class HighlightingBenchmarkAction : AnAction() {
|
|||||||
|
|
||||||
val finishListener = DaemonFinishListener()
|
val finishListener = DaemonFinishListener()
|
||||||
connection.subscribe(DaemonCodeAnalyzer.DAEMON_EVENT_TOPIC, finishListener)
|
connection.subscribe(DaemonCodeAnalyzer.DAEMON_EVENT_TOPIC, finishListener)
|
||||||
launch(EDT) {
|
GlobalScope.launch(EDT) {
|
||||||
try {
|
try {
|
||||||
delay(100)
|
delay(100)
|
||||||
ktFiles
|
ktFiles
|
||||||
@@ -98,7 +99,7 @@ class HighlightingBenchmarkAction : AnAction() {
|
|||||||
private data class Settings(val seed: Long, val files: Int, val lines: Int)
|
private data class Settings(val seed: Long, val files: Int, val lines: Int)
|
||||||
|
|
||||||
private inner class DaemonFinishListener : DaemonCodeAnalyzer.DaemonListener {
|
private inner class DaemonFinishListener : DaemonCodeAnalyzer.DaemonListener {
|
||||||
val channel = ConflatedChannel<String>()
|
val channel = Channel<String>(capacity = Channel.CONFLATED)
|
||||||
|
|
||||||
override fun daemonFinished() {
|
override fun daemonFinished() {
|
||||||
channel.offer(SUCCESS)
|
channel.offer(SUCCESS)
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ import com.intellij.openapi.util.TextRange
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiRecursiveElementVisitor
|
import com.intellij.psi.PsiRecursiveElementVisitor
|
||||||
import com.intellij.psi.codeStyle.CodeStyleManager
|
import com.intellij.psi.codeStyle.CodeStyleManager
|
||||||
import kotlinx.coroutines.run
|
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
||||||
import org.jetbrains.kotlin.idea.conversion.copy.range
|
import org.jetbrains.kotlin.idea.conversion.copy.range
|
||||||
@@ -64,7 +64,7 @@ class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
|
|||||||
collectAvailableActions(file, rangeMarker)
|
collectAvailableActions(file, rangeMarker)
|
||||||
}
|
}
|
||||||
|
|
||||||
run(EDT) {
|
withContext(EDT) {
|
||||||
for ((element, action, _, writeActionNeeded) in elementToActions) {
|
for ((element, action, _, writeActionNeeded) in elementToActions) {
|
||||||
if (element.isValid) {
|
if (element.isValid) {
|
||||||
if (writeActionNeeded) {
|
if (writeActionNeeded) {
|
||||||
@@ -88,7 +88,7 @@ class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
|
|||||||
|
|
||||||
|
|
||||||
if (formatCode) {
|
if (formatCode) {
|
||||||
run(EDT) {
|
withContext(EDT) {
|
||||||
runWriteAction {
|
runWriteAction {
|
||||||
val codeStyleManager = CodeStyleManager.getInstance(file.project)
|
val codeStyleManager = CodeStyleManager.getInstance(file.project)
|
||||||
if (rangeMarker != null) {
|
if (rangeMarker != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user