From 698d675efe53b3c196ee362cbf9b6608da01b0b4 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Thu, 7 Nov 2019 10:17:37 +0300 Subject: [PATCH] Scripting: fix saving to file attributes --- .../DefaultScriptConfigurationManager.kt | 11 +++++++++-- .../cache/ScriptConfigurationMemoryCache.kt | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt index 1b6b56f9645..9e87a45af42 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt @@ -98,9 +98,11 @@ internal class DefaultScriptConfigurationManager(project: Project) : AbstractScriptConfigurationManager(project) { private val backgroundExecutor = BackgroundExecutor(project, rootsIndexer) + private val fileAttributeCache = ScriptConfigurationFileAttributeCache(project) + private val loaders: List = listOf( ScriptOutsiderFileConfigurationLoader(project), - ScriptConfigurationFileAttributeCache(project), + fileAttributeCache, GradleScriptConfigurationLoader(project), DefaultScriptConfigurationLoader(project) ) @@ -114,7 +116,12 @@ internal class DefaultScriptConfigurationManager(project: Project) : private val saveLock = ReentrantLock() - override fun createCache() = ScriptConfigurationMemoryCache(project) + override fun createCache() = object : ScriptConfigurationMemoryCache(project) { + override fun setLoaded(file: VirtualFile, configurationSnapshot: ScriptConfigurationSnapshot) { + super.setLoaded(file, configurationSnapshot) + fileAttributeCache.save(file, configurationSnapshot.configuration) + } + } /** * Will be called on [cache] miss to initiate loading of [file]'s script configuration. diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationMemoryCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationMemoryCache.kt index 1f2fd78f919..3fe45ce1ffb 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationMemoryCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationMemoryCache.kt @@ -10,7 +10,7 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.util.containers.SLRUMap import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper -class ScriptConfigurationMemoryCache( +open class ScriptConfigurationMemoryCache( val project: Project ) : ScriptConfigurationCache { companion object {