Scripting: fix saving to file attributes
This commit is contained in:
committed by
Natalia Selezneva
parent
05e8acffa7
commit
698d675efe
+9
-2
@@ -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.
|
||||||
|
|||||||
+1
-1
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user