Update notifications in script file when script reports are attached (KT-24705)

^KT-24705 Fixed
This commit is contained in:
Natalia Selezneva
2018-10-16 09:38:00 +03:00
parent ec14fdd94f
commit ccf49f9d1c
@@ -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<ScriptReport>) {
// 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<List<ScriptReport>>("KOTLIN_SCRIPT_REPORTS")