Scripts: switch ScriptReportSink to new scripting API
Use ScriptDiagnostic instead of ScripReport
This commit is contained in:
@@ -25,14 +25,14 @@ import com.intellij.psi.PsiManager
|
||||
import com.intellij.ui.EditorNotifications
|
||||
import org.jetbrains.kotlin.psi.UserDataProperty
|
||||
import org.jetbrains.kotlin.scripting.resolve.ScriptReportSink
|
||||
import kotlin.script.experimental.dependencies.ScriptReport
|
||||
import kotlin.script.experimental.api.ScriptDiagnostic
|
||||
|
||||
class IdeScriptReportSink(val project: Project) : ScriptReportSink {
|
||||
override fun attachReports(scriptFile: VirtualFile, reports: List<ScriptReport>) {
|
||||
override fun attachReports(scriptFile: VirtualFile, reports: List<ScriptDiagnostic>) {
|
||||
if (getReports(scriptFile) == reports) return
|
||||
|
||||
// TODO: persist errors between launches?
|
||||
scriptFile.scriptReports = reports
|
||||
scriptFile.scriptDiagnostics = reports
|
||||
|
||||
ApplicationManager.getApplication().invokeLater {
|
||||
if (scriptFile.isValid && !project.isDisposed) {
|
||||
@@ -45,10 +45,10 @@ class IdeScriptReportSink(val project: Project) : ScriptReportSink {
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun getReports(file: VirtualFile): List<ScriptReport> {
|
||||
return file.scriptReports ?: emptyList()
|
||||
fun getReports(file: VirtualFile): List<ScriptDiagnostic> {
|
||||
return file.scriptDiagnostics ?: emptyList()
|
||||
}
|
||||
|
||||
private var VirtualFile.scriptReports: List<ScriptReport>? by UserDataProperty(Key.create("KOTLIN_SCRIPT_REPORTS"))
|
||||
private var VirtualFile.scriptDiagnostics: List<ScriptDiagnostic>? by UserDataProperty(Key.create("KOTLIN_SCRIPT_DIAGNOSTICS"))
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrap
|
||||
import org.jetbrains.kotlin.scripting.resolve.ScriptReportSink
|
||||
import kotlin.script.experimental.api.ResultWithDiagnostics
|
||||
import kotlin.script.experimental.api.valueOrNull
|
||||
import kotlin.script.experimental.jvm.compat.mapToLegacyReports
|
||||
|
||||
// TODO: rename and provide alias for compatibility - this is not only about dependencies anymore
|
||||
abstract class ScriptDependenciesLoader(protected val project: Project) {
|
||||
@@ -77,7 +76,7 @@ abstract class ScriptDependenciesLoader(protected val project: Project) {
|
||||
}
|
||||
|
||||
private fun attachReportsIfChanged(result: ResultWithDiagnostics<*>, file: VirtualFile) {
|
||||
reporter.attachReports(file, result.reports.mapToLegacyReports())
|
||||
reporter.attachReports(file, result.reports)
|
||||
}
|
||||
|
||||
private fun save(compilationConfigurationResult: ScriptCompilationConfigurationResult?, file: VirtualFile) {
|
||||
|
||||
Reference in New Issue
Block a user