[kotlin] K2: refactor KotlinDiagnosticHighlightVisitor

^KTIJ-29345

GitOrigin-RevId: 898a4d9e3584740f3cb94be63491b47173b6dfc4
This commit is contained in:
Vlad Koshkin
2024-10-08 13:56:17 +02:00
committed by intellij-monorepo-bot
parent 5a3803408f
commit 07f3709831
3 changed files with 14 additions and 15 deletions

View File

@@ -687,7 +687,6 @@ com.intellij.codeInsight.daemon.impl.HighlightInfoType
- sf:ERROR:com.intellij.codeInsight.daemon.impl.HighlightInfoType
- sf:GENERIC_WARNINGS_OR_ERRORS_FROM_SERVER:com.intellij.codeInsight.daemon.impl.HighlightInfoType
- sf:HIGHLIGHTED_REFERENCE_SEVERITY:com.intellij.lang.annotation.HighlightSeverity
- sf:INCOMPLETE_MODE_ERROR:com.intellij.codeInsight.daemon.impl.HighlightInfoType
- sf:INFO:com.intellij.codeInsight.daemon.impl.HighlightInfoType
- sf:INFORMATION:com.intellij.codeInsight.daemon.impl.HighlightInfoType
- sf:INJECTED_FRAGMENT_SEVERITY:com.intellij.lang.annotation.HighlightSeverity

View File

@@ -43,7 +43,6 @@ public interface HighlightInfoType {
HighlightInfoType TEXT_ATTRIBUTES = new HighlightInfoTypeImpl(HighlightSeverity.TEXT_ATTRIBUTES, CodeInsightColors.CONSIDERATION_ATTRIBUTES);
HighlightInfoType WRONG_REF = new HighlightInfoTypeImpl(HighlightSeverity.ERROR, CodeInsightColors.WRONG_REFERENCES_ATTRIBUTES);
HighlightInfoType INCOMPLETE_MODE_ERROR = new HighlightInfoTypeImpl(HighlightSeverity.INFORMATION, CodeInsightColors.INFORMATION_ATTRIBUTES);
HighlightInfoType GENERIC_WARNINGS_OR_ERRORS_FROM_SERVER = new HighlightInfoTypeImpl(HighlightSeverity.GENERIC_SERVER_ERROR_OR_WARNING, CodeInsightColors.GENERIC_SERVER_ERROR_OR_WARNING);

View File

@@ -3,17 +3,19 @@ package org.jetbrains.kotlin.idea.highlighting
import com.intellij.codeInsight.daemon.impl.HighlightInfo
import com.intellij.codeInsight.daemon.impl.HighlightInfoType
import com.intellij.codeInsight.daemon.impl.HighlightInfoType.INCOMPLETE_MODE_ERROR
import com.intellij.codeInsight.daemon.impl.HighlightInfoType.HighlightInfoTypeImpl
import com.intellij.codeInsight.daemon.impl.HighlightVisitor
import com.intellij.codeInsight.daemon.impl.analysis.HighlightInfoHolder
import com.intellij.codeInsight.daemon.impl.analysis.HighlightingLevelManager
import com.intellij.codeInsight.intention.IntentionAction
import com.intellij.codeInsight.intention.IntentionActionWithOptions
import com.intellij.codeInsight.quickfix.UnresolvedReferenceQuickFixUpdater
import com.intellij.lang.annotation.HighlightSeverity
import com.intellij.lang.injection.InjectedLanguageManager
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.diagnostic.ControlFlowException
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.editor.colors.CodeInsightColors
import com.intellij.openapi.progress.ProcessCanceledException
import com.intellij.openapi.project.IntelliJProjectUtil
import com.intellij.openapi.util.NlsSafe
@@ -184,27 +186,24 @@ class KotlinDiagnosticHighlightVisitor : HighlightVisitor {
diagnostic: KaDiagnosticWithPsi<*>,
range: TextRange
): HighlightInfo.Builder {
if (!ignoreIncompleteModeDiagnostics.contains(diagnostic.diagnosticClass)
return if (diagnostic.diagnosticClass !in ignoreIncompleteModeDiagnostics
&& isIncompleteModel(diagnostic.psi)
&& diagnostic.severity == KaSeverity.ERROR
) {
val message = K2HighlightingBundle.message("text.required.dependency.not.loaded.yet")
val htmlMessage = XmlStringUtil.wrapInHtml(message)
val infoBuilder = HighlightInfo.newHighlightInfo(INCOMPLETE_MODE_ERROR)
HighlightInfo.newHighlightInfo(INCOMPLETE_MODE_ERROR)
.escapedToolTip(htmlMessage)
.description(message)
.range(range)
} else {
val message = diagnostic.getMessageToRender()
val htmlMessage = XmlStringUtil.wrapInHtml(XmlStringUtil.escapeString(message).replace("\n", "<br>"))
HighlightInfo.newHighlightInfo(diagnostic.getHighlightInfoType())
.escapedToolTip(htmlMessage)
.description(message)
.range(range)
return infoBuilder
}
val message = diagnostic.getMessageToRender()
val htmlMessage = XmlStringUtil.wrapInHtml(XmlStringUtil.escapeString(message).replace("\n", "<br>"))
val infoBuilder = HighlightInfo.newHighlightInfo(diagnostic.getHighlightInfoType())
.escapedToolTip(htmlMessage)
.description(message)
.range(range)
return infoBuilder
}
@NlsSafe
@@ -269,3 +268,5 @@ class KotlinDiagnosticHighlightVisitor : HighlightVisitor {
return KotlinDiagnosticHighlightVisitor()
}
}
val INCOMPLETE_MODE_ERROR = HighlightInfoTypeImpl(HighlightSeverity.INFORMATION, CodeInsightColors.INFORMATION_ATTRIBUTES)