From ec14fdd94f4638e7ea51db6befa7074ca05cb077 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Mon, 15 Oct 2018 12:44:37 +0300 Subject: [PATCH] Do not attach script reports if 'reload dependencies' isn't pressed (KT-24706) ^KT-24706 Fixed --- .../script/dependencies/ScriptDependenciesLoader.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 8bb92e501b7..c2e5f65afca 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 @@ -22,6 +22,7 @@ import java.util.concurrent.ConcurrentHashMap import kotlin.script.experimental.dependencies.AsyncDependenciesResolver import kotlin.script.experimental.dependencies.DependenciesResolver import kotlin.script.experimental.dependencies.ScriptDependencies +import kotlin.script.experimental.dependencies.ScriptReport abstract class ScriptDependenciesLoader( protected val file: VirtualFile, @@ -71,24 +72,30 @@ abstract class ScriptDependenciesLoader( protected fun processResult(result: DependenciesResolver.ResolveResult) { loaders.remove(file) - ServiceManager.getService(project, ScriptReportSink::class.java)?.attachReports(file, result.reports) - val newDependencies = result.dependencies?.adjustByDefinition(scriptDef) ?: return if (cache[file] != newDependencies) { if (shouldShowNotification() && cache[file] != null && !ApplicationManager.getApplication().isUnitTestMode) { file.addScriptDependenciesNotificationPanel(newDependencies, project) { saveDependencies(newDependencies) + attachReports(result.reports) } } else { saveDependencies(newDependencies) + attachReports(result.reports) } } else { + attachReports(result.reports) + if (shouldShowNotification()) { file.removeScriptDependenciesNotificationPanel(project) } } } + private fun attachReports(reports: List) { + ServiceManager.getService(project, ScriptReportSink::class.java)?.attachReports(file, reports) + } + private fun saveDependencies(dependencies: ScriptDependencies) { if (shouldShowNotification()) { file.removeScriptDependenciesNotificationPanel(project)