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.GlobalSearchScope
|
||||||
import com.intellij.psi.search.NonClasspathDirectoriesScope
|
import com.intellij.psi.search.NonClasspathDirectoriesScope
|
||||||
import com.intellij.util.containers.SLRUCache
|
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.ScriptDependenciesManager
|
||||||
import org.jetbrains.kotlin.idea.core.script.dependencies.ScriptRelatedModulesProvider
|
import org.jetbrains.kotlin.idea.core.script.dependencies.ScriptRelatedModulesProvider
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
|
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
|
||||||
@@ -137,7 +138,7 @@ sealed class ScriptDependenciesSourceInfo(val project: Project) : IdeaModuleInfo
|
|||||||
class ForProject(project: Project) : ScriptDependenciesSourceInfo(project)
|
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 {
|
override fun createValue(key: ScriptDependencies?): GlobalSearchScope {
|
||||||
val roots = key?.classpath ?: emptyList()
|
val roots = key?.classpath ?: emptyList()
|
||||||
val classpath = ScriptDependenciesManager.toVfsRoots(roots)
|
val classpath = ScriptDependenciesManager.toVfsRoots(roots)
|
||||||
|
|||||||
@@ -38,9 +38,12 @@ import kotlin.reflect.KProperty0
|
|||||||
import kotlin.reflect.jvm.isAccessible
|
import kotlin.reflect.jvm.isAccessible
|
||||||
import kotlin.script.experimental.dependencies.ScriptDependencies
|
import kotlin.script.experimental.dependencies.ScriptDependencies
|
||||||
|
|
||||||
private const val MAX_SCRIPTS_CACHED = 10
|
|
||||||
|
|
||||||
class ScriptDependenciesCache(private val project: Project) {
|
class ScriptDependenciesCache(private val project: Project) {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val MAX_SCRIPTS_CACHED = 50
|
||||||
|
}
|
||||||
|
|
||||||
private val cacheLock = ReentrantReadWriteLock()
|
private val cacheLock = ReentrantReadWriteLock()
|
||||||
private val cache = SLRUMap<VirtualFile, ScriptDependencies>(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED)
|
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.openapi.vfs.VirtualFile
|
||||||
import com.intellij.util.containers.SLRUMap
|
import com.intellij.util.containers.SLRUMap
|
||||||
import org.jetbrains.kotlin.idea.core.script.*
|
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.idea.util.application.runWriteAction
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.script.ScriptContentLoader
|
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 loadDependencies(file: VirtualFile, scriptDef: KotlinScriptDefinition)
|
||||||
protected abstract fun shouldShowNotification(): Boolean
|
protected abstract fun shouldShowNotification(): Boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user