Do not start script dependencies update if dependencies are already cached

This commit is contained in:
Natalia Selezneva
2019-05-07 11:39:01 +03:00
parent 516fccbe7b
commit e990c61b55
@@ -76,19 +76,22 @@ class ScriptDependenciesUpdater(
}
fun updateDependenciesIfNeeded(files: List<VirtualFile>): Boolean {
val definitionsManager = ScriptDefinitionsManager.getInstance(project)
if (definitionsManager.isReady() && areDependenciesCached(files)) {
return false
}
if (!ScriptDefinitionsManager.getInstance(project).isReady()) return false
var wasDependenciesUpdateStarted = false
for (file in files) {
val scriptDef = file.findScriptDefinition(project) ?: continue
updateDependencies(file, scriptDef)
if (!areDependenciesCached(file)) {
wasDependenciesUpdateStarted = true
val scriptDef = file.findScriptDefinition(project) ?: continue
updateDependencies(file, scriptDef)
}
}
makeRootsChangeIfNeeded()
if (wasDependenciesUpdateStarted) {
makeRootsChangeIfNeeded()
}
return true
return wasDependenciesUpdateStarted
}
private fun updateDependencies(file: VirtualFile, scriptDef: KotlinScriptDefinition) {
@@ -170,10 +173,6 @@ class ScriptDependenciesUpdater(
return cache[file] != null || file.scriptDependencies != null
}
private fun areDependenciesCached(files: List<VirtualFile>): Boolean {
return files.all { areDependenciesCached(it) }
}
private fun isAsyncDependencyResolver(scriptDef: KotlinScriptDefinition): Boolean {
val dependencyResolver = scriptDef.dependencyResolver
return dependencyResolver is AsyncDependenciesResolver || dependencyResolver is LegacyResolverWrapper