Preprocess script dependencies before running UnusedSymbolInspection
^KT-29474
This commit is contained in:
@@ -75,6 +75,22 @@ class ScriptDependenciesUpdater(
|
||||
return cache[file] ?: ScriptDependencies.Empty
|
||||
}
|
||||
|
||||
fun updateDependenciesIfNeeded(files: List<VirtualFile>): Boolean {
|
||||
val definitionsManager = ScriptDefinitionsManager.getInstance(project)
|
||||
if (definitionsManager.isReady() && areDependenciesCached(files)) {
|
||||
return false
|
||||
}
|
||||
|
||||
for (file in files) {
|
||||
val scriptDef = file.findScriptDefinition(project) ?: continue
|
||||
updateDependencies(file, scriptDef)
|
||||
}
|
||||
|
||||
makeRootsChangeIfNeeded()
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
private fun updateDependencies(file: VirtualFile, scriptDef: KotlinScriptDefinition) {
|
||||
val loader = when (scriptDef.dependencyResolver) {
|
||||
is AsyncDependenciesResolver, is LegacyResolverWrapper -> asyncLoader
|
||||
@@ -154,6 +170,10 @@ class ScriptDependenciesUpdater(
|
||||
return cache[file] != null
|
||||
}
|
||||
|
||||
private fun areDependenciesCached(files: List<VirtualFile>): Boolean {
|
||||
return files.all { areDependenciesCached(it) }
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun getInstance(project: Project): ScriptDependenciesUpdater =
|
||||
|
||||
Reference in New Issue
Block a user