IDE: IndexNotReadyException while creating new Kotlin file in Dumb mode
^KT-42518
This commit is contained in:
+14
-3
@@ -10,6 +10,7 @@ import com.intellij.openapi.command.WriteCommandAction
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.DumbService
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.projectRoots.JavaSdkVersion
|
||||
import com.intellij.openapi.roots.DependencyScope
|
||||
@@ -27,6 +28,7 @@ import org.jetbrains.annotations.CalledInBackground
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.KotlinJvmBundle
|
||||
import org.jetbrains.kotlin.idea.actions.internal.refactoringTesting.readAction
|
||||
import org.jetbrains.kotlin.idea.core.util.getKotlinJvmRuntimeMarkerClass
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryKind
|
||||
import org.jetbrains.kotlin.idea.framework.effectiveKind
|
||||
@@ -162,10 +164,19 @@ fun getConfigurableModulesWithKotlinFiles(project: Project): List<ModuleSourceRo
|
||||
}
|
||||
|
||||
fun showConfigureKotlinNotificationIfNeeded(module: Module) {
|
||||
val moduleGroup = module.toModuleGroup()
|
||||
if (!isNotConfiguredNotificationRequired(moduleGroup)) return
|
||||
val action: () -> Unit = {
|
||||
val moduleGroup = module.toModuleGroup()
|
||||
if (isNotConfiguredNotificationRequired(moduleGroup)) {
|
||||
ConfigureKotlinNotificationManager.notify(module.project)
|
||||
}
|
||||
}
|
||||
|
||||
ConfigureKotlinNotificationManager.notify(module.project)
|
||||
val dumbService = DumbService.getInstance(module.project)
|
||||
if (dumbService.isDumb) {
|
||||
dumbService.smartInvokeLater { action() }
|
||||
} else {
|
||||
action()
|
||||
}
|
||||
}
|
||||
|
||||
fun isNotConfiguredNotificationRequired(moduleGroup: ModuleSourceRootGroup): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user