Do not attach script reports if 'reload dependencies' isn't pressed (KT-24706)

^KT-24706 Fixed
This commit is contained in:
Natalia Selezneva
2018-10-15 12:44:37 +03:00
parent 6198641cb7
commit ec14fdd94f
@@ -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<ScriptReport>) {
ServiceManager.getService(project, ScriptReportSink::class.java)?.attachReports(file, reports)
}
private fun saveDependencies(dependencies: ScriptDependencies) {
if (shouldShowNotification()) {
file.removeScriptDependenciesNotificationPanel(project)