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) {
private val backgroundExecutor = BackgroundExecutor(project, rootsIndexer)
private val fileAttributeCache = ScriptConfigurationFileAttributeCache(project)
private val loaders: List<ScriptConfigurationLoader> = 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.
@@ -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 {