Show notification that gradle project is needed to be imported to get code insight for kotlin scripts

This commit is contained in:
Natalia Selezneva
2020-04-22 16:27:07 +03:00
parent 69d86a2972
commit 85141b753b
11 changed files with 62 additions and 19 deletions
@@ -92,6 +92,11 @@ interface ScriptConfigurationManager {
*/
fun hasConfiguration(file: KtFile): Boolean
/**
* returns true when there is no configuration and highlighting should be suspended
*/
fun isConfigurationLoadingInProgress(file: KtFile): Boolean
/**
* See [ScriptConfigurationUpdater].
*/
@@ -30,10 +30,7 @@ class ScriptTrafficLightRendererContributor : TrafficLightRendererContributor {
if (!ScriptDefinitionsManager.getInstance(file.project).isReady()) {
status.reasonWhySuspended = KotlinIdeaCoreBundle.message("text.loading.kotlin.script.definitions")
status.errorAnalyzingFinished = false
} else if (
!ScriptConfigurationManager.getInstance(project).hasConfiguration(file)
&& !ScriptConfigurationManager.isManualConfigurationLoading(file.originalFile.virtualFile)
) {
} else if (ScriptConfigurationManager.getInstance(project).isConfigurationLoadingInProgress(file)) {
status.reasonWhySuspended = KotlinIdeaCoreBundle.message("text.loading.kotlin.script.configuration")
status.errorAnalyzingFinished = false
}
@@ -55,6 +55,9 @@ class CompositeScriptConfigurationManager(val project: Project) : ScriptConfigur
override fun hasConfiguration(file: KtFile): Boolean =
getRelatedManager(file).hasCachedConfiguration(file)
override fun isConfigurationLoadingInProgress(file: KtFile): Boolean =
getRelatedManager(file).isConfigurationLoadingInProgress(file)
override val updater: ScriptConfigurationUpdater
get() = object : ScriptConfigurationUpdater {
override fun ensureUpToDatedConfigurationSuggested(file: KtFile) =
@@ -314,6 +314,10 @@ abstract class DefaultScriptingSupportBase(val project: Project) : ScriptingSupp
override fun hasCachedConfiguration(file: KtFile): Boolean =
getAppliedConfiguration(file.originalFile.virtualFile) != null
override fun isConfigurationLoadingInProgress(file: KtFile): Boolean {
return !hasCachedConfiguration(file) && !ScriptConfigurationManager.isManualConfigurationLoading(file.originalFile.virtualFile)
}
override fun getOrLoadConfiguration(
virtualFile: VirtualFile,
preloadedKtFile: KtFile?
@@ -34,6 +34,7 @@ abstract class ScriptingSupport {
abstract fun clearCaches()
abstract fun hasCachedConfiguration(file: KtFile): Boolean
abstract fun isConfigurationLoadingInProgress(file: KtFile): Boolean
abstract fun getOrLoadConfiguration(virtualFile: VirtualFile, preloadedKtFile: KtFile? = null): ScriptCompilationConfigurationWrapper?
abstract val updater: ScriptConfigurationUpdater