diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt index 869c37e1ee1..35b23a65ba1 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt @@ -14,6 +14,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.NonClasspathDirectoriesScope import com.intellij.util.containers.SLRUCache +import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesCache.Companion.MAX_SCRIPTS_CACHED import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager import org.jetbrains.kotlin.idea.core.script.dependencies.ScriptRelatedModulesProvider import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope @@ -137,7 +138,7 @@ sealed class ScriptDependenciesSourceInfo(val project: Project) : IdeaModuleInfo class ForProject(project: Project) : ScriptDependenciesSourceInfo(project) } -private class ScriptBinariesScopeCache(private val project: Project) : SLRUCache(6, 6) { +private class ScriptBinariesScopeCache(private val project: Project) : SLRUCache(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED) { override fun createValue(key: ScriptDependencies?): GlobalSearchScope { val roots = key?.classpath ?: emptyList() val classpath = ScriptDependenciesManager.toVfsRoots(roots) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt index 6c2c5a75b08..705d14de896 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt @@ -38,9 +38,12 @@ import kotlin.reflect.KProperty0 import kotlin.reflect.jvm.isAccessible import kotlin.script.experimental.dependencies.ScriptDependencies -private const val MAX_SCRIPTS_CACHED = 10 - class ScriptDependenciesCache(private val project: Project) { + + companion object { + const val MAX_SCRIPTS_CACHED = 50 + } + private val cacheLock = ReentrantReadWriteLock() private val cache = SLRUMap(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptDependenciesLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptDependenciesLoader.kt index 87511086ffb..43ffee8a1c5 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptDependenciesLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptDependenciesLoader.kt @@ -14,6 +14,7 @@ import com.intellij.openapi.util.EmptyRunnable import com.intellij.openapi.vfs.VirtualFile import com.intellij.util.containers.SLRUMap import org.jetbrains.kotlin.idea.core.script.* +import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesCache.Companion.MAX_SCRIPTS_CACHED import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.ScriptContentLoader @@ -31,7 +32,7 @@ abstract class ScriptDependenciesLoader(protected val project: Project) { } } - private val fileModificationStamps: SLRUMap = SLRUMap(10, 10) + private val fileModificationStamps: SLRUMap = SLRUMap(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED) protected abstract fun loadDependencies(file: VirtualFile, scriptDef: KotlinScriptDefinition) protected abstract fun shouldShowNotification(): Boolean