1
0
mirror of https://github.com/chylex/IntelliJ-Inspection-Lens.git synced 2025-04-23 12:15:46 +02:00

Add distinct colors for typos and Grazie inspections

This commit is contained in:
chylex 2023-05-20 13:35:40 +02:00
parent 44f2fa5c16
commit 13f3002366
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548
5 changed files with 44 additions and 6 deletions
build.gradle.kts
src/main
kotlin/com/chylex/intellij/inspectionlens
resources/META-INF

View File

@ -21,6 +21,8 @@ dependencies {
intellij {
version.set("2023.1")
updateSinceUntilBuild.set(false)
plugins.add("tanvd.grazi")
}
tasks.patchPluginXml {

View File

@ -0,0 +1,15 @@
package com.chylex.intellij.inspectionlens.compatibility
import com.chylex.intellij.inspectionlens.editor.LensSeverity
import com.intellij.grazie.ide.TextProblemSeverities
import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.ProjectActivity
class GrazieSupport : ProjectActivity {
override suspend fun execute(project: Project) {
LensSeverity.registerMapping(TextProblemSeverities.GRAMMAR_ERROR, LensSeverity.ERROR)
LensSeverity.registerMapping(TextProblemSeverities.STYLE_ERROR, LensSeverity.GRAZIE)
LensSeverity.registerMapping(TextProblemSeverities.STYLE_WARNING, LensSeverity.GRAZIE)
LensSeverity.registerMapping(TextProblemSeverities.STYLE_SUGGESTION, LensSeverity.GRAZIE)
}
}

View File

@ -1,10 +1,12 @@
package com.chylex.intellij.inspectionlens.editor
import com.intellij.lang.annotation.HighlightSeverity
import com.intellij.spellchecker.SpellCheckerSeveritiesProvider
import com.intellij.ui.ColorUtil
import com.intellij.ui.JBColor
import java.awt.Color
import java.awt.Font
import java.util.Collections
/**
* Determines properties of inspection lenses based on severity.
@ -15,6 +17,8 @@ enum class LensSeverity(baseColor: Color, lightThemeDarkening: Int, darkThemeBri
WARNING (Color(190, 145, 23), lightThemeDarkening = 4, darkThemeBrightening = 1),
WEAK_WARNING (Color(117, 109, 86), lightThemeDarkening = 3, darkThemeBrightening = 3),
SERVER_PROBLEM (Color(176, 97, 0), lightThemeDarkening = 4, darkThemeBrightening = 2),
GRAZIE (Color( 53, 146, 196), lightThemeDarkening = 2, darkThemeBrightening = 1),
TYPO (Color( 73, 156, 84), lightThemeDarkening = 3, darkThemeBrightening = 1),
OTHER (Color(128, 128, 128), lightThemeDarkening = 1, darkThemeBrightening = 2);
val colorAttributes: LensSeverityTextAttributes
@ -28,12 +32,23 @@ enum class LensSeverity(baseColor: Color, lightThemeDarkening: Int, darkThemeBri
}
companion object {
fun from(severity: HighlightSeverity) = when (severity) {
HighlightSeverity.ERROR -> ERROR
HighlightSeverity.WARNING -> WARNING
HighlightSeverity.WEAK_WARNING -> WEAK_WARNING
HighlightSeverity.GENERIC_SERVER_ERROR_OR_WARNING -> SERVER_PROBLEM
else -> OTHER
private val mapping = Collections.synchronizedMap(mapOf(
HighlightSeverity.ERROR to ERROR,
HighlightSeverity.WARNING to WARNING,
HighlightSeverity.WEAK_WARNING to WEAK_WARNING,
HighlightSeverity.GENERIC_SERVER_ERROR_OR_WARNING to SERVER_PROBLEM,
SpellCheckerSeveritiesProvider.TYPO to TYPO,
))
/**
* Registers a mapping from a [HighlightSeverity] to a [LensSeverity]. Does not refresh existing editors.
*/
internal fun registerMapping(severity: HighlightSeverity, lensSeverity: LensSeverity) {
mapping[severity] = lensSeverity
}
fun from(severity: HighlightSeverity): LensSeverity {
return mapping.getOrDefault(severity, OTHER)
}
}
}

View File

@ -0,0 +1,5 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<postStartupActivity implementation="com.chylex.intellij.inspectionlens.compatibility.GrazieSupport" />
</extensions>
</idea-plugin>

View File

@ -39,6 +39,7 @@
]]></change-notes>
<depends>com.intellij.modules.platform</depends>
<depends optional="true" config-file="compatibility/InspectionLens-Grazie.xml">tanvd.grazi</depends>
<extensions defaultExtensionNs="com.intellij">
<applicationService serviceImplementation="com.chylex.intellij.inspectionlens.InspectionLensPluginDisposableService" />