Unify cache size for script dependencies
This commit is contained in:
+2
-1
@@ -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<ScriptDependencies, GlobalSearchScope>(6, 6) {
|
||||
private class ScriptBinariesScopeCache(private val project: Project) : SLRUCache<ScriptDependencies, GlobalSearchScope>(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED) {
|
||||
override fun createValue(key: ScriptDependencies?): GlobalSearchScope {
|
||||
val roots = key?.classpath ?: emptyList()
|
||||
val classpath = ScriptDependenciesManager.toVfsRoots(roots)
|
||||
|
||||
@@ -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<VirtualFile, ScriptDependencies>(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED)
|
||||
|
||||
|
||||
+2
-1
@@ -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<String, Long> = SLRUMap(10, 10)
|
||||
private val fileModificationStamps: SLRUMap<String, Long> = SLRUMap(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED)
|
||||
|
||||
protected abstract fun loadDependencies(file: VirtualFile, scriptDef: KotlinScriptDefinition)
|
||||
protected abstract fun shouldShowNotification(): Boolean
|
||||
|
||||
Reference in New Issue
Block a user