From 0ff95ee5168fd7ecf3124e2b64f9b3b83790e8e8 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Fri, 1 May 2020 16:04:05 +0300 Subject: [PATCH] ScriptConfigurationManager, outsider files: search in roots cache too --- .../script/configuration/DefaultScriptingSupport.kt | 10 +++++++++- .../configuration/cache/ScriptConfigurationCache.kt | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt index 8a9e4cd1e39..f25119d516a 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt @@ -179,8 +179,16 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De } private val loadingContext = object : ScriptConfigurationLoadingContext { + /** + * Used from [ScriptOutsiderFileConfigurationLoader] only. + */ override fun getCachedConfiguration(file: VirtualFile): ScriptConfigurationSnapshot? = - getAppliedConfiguration(file) + getAppliedConfiguration(file) ?: getFromGlobalCache(file) + + private fun getFromGlobalCache(file: VirtualFile): ScriptConfigurationSnapshot? { + val info = manager.getLightScriptInfo(file.path) ?: return null + return ScriptConfigurationSnapshot(CachedConfigurationInputs.UpToDate, listOf(), info.buildConfiguration()) + } override fun suggestNewConfiguration(file: VirtualFile, newResult: ScriptConfigurationSnapshot) { suggestOrSaveConfiguration(file, newResult, false) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationCache.kt index 14eabb2b5e9..21497661754 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationCache.kt @@ -63,6 +63,10 @@ interface CachedConfigurationInputs: Serializable { override fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile?): Boolean = false } + object UpToDate: CachedConfigurationInputs { + override fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile?): Boolean = true + } + data class PsiModificationStamp( val fileModificationStamp: Long, val psiModificationStamp: Long