Scripting: fix saving to file attributes

This commit is contained in:
Sergey Rostov
2019-11-07 10:17:37 +03:00
committed by Natalia Selezneva
parent 05e8acffa7
commit 698d675efe
2 changed files with 10 additions and 3 deletions
@@ -98,9 +98,11 @@ internal class DefaultScriptConfigurationManager(project: Project) :
AbstractScriptConfigurationManager(project) { AbstractScriptConfigurationManager(project) {
private val backgroundExecutor = BackgroundExecutor(project, rootsIndexer) private val backgroundExecutor = BackgroundExecutor(project, rootsIndexer)
private val fileAttributeCache = ScriptConfigurationFileAttributeCache(project)
private val loaders: List<ScriptConfigurationLoader> = listOf( private val loaders: List<ScriptConfigurationLoader> = listOf(
ScriptOutsiderFileConfigurationLoader(project), ScriptOutsiderFileConfigurationLoader(project),
ScriptConfigurationFileAttributeCache(project), fileAttributeCache,
GradleScriptConfigurationLoader(project), GradleScriptConfigurationLoader(project),
DefaultScriptConfigurationLoader(project) DefaultScriptConfigurationLoader(project)
) )
@@ -114,7 +116,12 @@ internal class DefaultScriptConfigurationManager(project: Project) :
private val saveLock = ReentrantLock() 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. * Will be called on [cache] miss to initiate loading of [file]'s script configuration.
@@ -10,7 +10,7 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.containers.SLRUMap import com.intellij.util.containers.SLRUMap
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
class ScriptConfigurationMemoryCache( open class ScriptConfigurationMemoryCache(
val project: Project val project: Project
) : ScriptConfigurationCache { ) : ScriptConfigurationCache {
companion object { companion object {