Scripting: fix lost caches clearing call

This commit is contained in:
Sergey Rostov
2019-11-13 17:35:56 +03:00
parent 542f21b701
commit df0c250fd8
3 changed files with 10 additions and 3 deletions
@@ -214,7 +214,8 @@ internal abstract class AbstractScriptConfigurationManager(
override fun clearConfigurationCachesAndRehighlight() {
ScriptDependenciesModificationTracker.getInstance(project).incModificationCount()
// todo: invalidate caches?
cache.clear()
clearClassRootsCaches()
if (project.isOpen) {
val openedScripts = FileEditorManager.getInstance(project).openFiles.filterNot { it.isNonScript() }
@@ -261,7 +262,7 @@ internal abstract class AbstractScriptConfigurationManager(
}
private fun newClassRootsCache() = object : ScriptClassRootsCache(project) {
override val all get() = cache.allApplied()
override val all = cache.allApplied()
override fun getConfiguration(file: VirtualFile) =
this@AbstractScriptConfigurationManager.getConfiguration(file)
}
@@ -285,7 +286,7 @@ internal abstract class AbstractScriptConfigurationManager(
override fun getScriptSdk(file: VirtualFile): Sdk? = classpathRoots.getScriptSdk(file)
override fun getFirstScriptsSdk(): Sdk? = classpathRoots.getFirstScriptsSdk()
override fun getFirstScriptsSdk(): Sdk? = classpathRoots.firstScriptSdk
override fun getScriptDependenciesClassFilesScope(file: VirtualFile): GlobalSearchScope =
classpathRoots.getScriptDependenciesClassFilesScope(file)
@@ -32,6 +32,7 @@ interface ScriptConfigurationCache {
fun markOutOfDate(file: VirtualFile)
fun allApplied(): Collection<Pair<VirtualFile, ScriptCompilationConfigurationWrapper>>
fun clear()
}
data class ScriptConfigurationState(
@@ -54,4 +54,9 @@ open class ScriptConfigurationMemoryCache(
if (it.value.applied?.configuration == null) null
else it.key to it.value.applied?.configuration
} as Collection<Pair<VirtualFile, ScriptCompilationConfigurationWrapper>>
@Synchronized
override fun clear() {
memoryCache.clear()
}
}