From ccf49f9d1c9e346b24bd1ad46e558f4bd9abc827 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Tue, 16 Oct 2018 09:38:00 +0300 Subject: [PATCH] Update notifications in script file when script reports are attached (KT-24705) ^KT-24705 Fixed --- .../idea/core/script/IdeScriptReportSink.kt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/IdeScriptReportSink.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/IdeScriptReportSink.kt index b0d27a794bd..0d38b38a399 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/IdeScriptReportSink.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/IdeScriptReportSink.kt @@ -16,15 +16,29 @@ package org.jetbrains.kotlin.idea.core.script +import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer +import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key import com.intellij.openapi.vfs.VirtualFile +import com.intellij.psi.PsiManager +import com.intellij.ui.EditorNotifications +import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.script.ScriptReportSink import kotlin.script.experimental.dependencies.ScriptReport -class IdeScriptReportSink : ScriptReportSink { +class IdeScriptReportSink(val project: Project) : ScriptReportSink { override fun attachReports(scriptFile: VirtualFile, reports: List) { // TODO: persist errors between launches? scriptFile.putUserData(Reports, reports) + + runReadAction { + if (scriptFile.isValid) { + PsiManager.getInstance(project).findFile(scriptFile)?.let { psiFile -> + DaemonCodeAnalyzer.getInstance(project).restart(psiFile) + EditorNotifications.getInstance(project).updateNotifications(scriptFile) + } + } + } } object Reports : Key>("KOTLIN_SCRIPT_REPORTS")