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")