Add multiple renderer sources support to new diagnostics infrastructure

This commit is contained in:
Ilya Chernikov
2021-10-05 16:29:51 +02:00
parent 0de6f8b915
commit da2d3f29da
13 changed files with 1572 additions and 1466 deletions
@@ -10,10 +10,10 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.analysis.api.ValidityTokenOwner
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnosticWithPsi
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
import org.jetbrains.kotlin.diagnostics.Severity
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDefaultErrorMessages
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic
import org.jetbrains.kotlin.diagnostics.Severity
import org.jetbrains.kotlin.diagnostics.rendering.RootDiagnosticRendererFactory
internal interface KtAbstractFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI>, ValidityTokenOwner {
val firDiagnostic: KtPsiDiagnostic
@@ -25,7 +25,7 @@ internal interface KtAbstractFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithP
get() = withValidityAssertion {
val diagnostic = firDiagnostic as KtDiagnostic
val firDiagnosticRenderer = FirDefaultErrorMessages.getRendererForDiagnostic(diagnostic)
val firDiagnosticRenderer = RootDiagnosticRendererFactory(diagnostic)
return firDiagnosticRenderer.render(diagnostic)
}