diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensRenderer.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensRenderer.kt index 2e1fa1a..2ae39a0 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensRenderer.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensRenderer.kt @@ -6,7 +6,6 @@ import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Inlay import com.intellij.openapi.editor.markup.TextAttributes import com.intellij.openapi.util.text.StringUtil -import java.awt.Font import java.awt.Graphics import java.awt.Rectangle @@ -31,7 +30,7 @@ class LensRenderer(info: HighlightInfo) : HintRenderer(null) { } override fun getTextAttributes(editor: Editor): TextAttributes { - return ATTRIBUTES_SINGLETON.also { it.foregroundColor = severity.color } + return severity.colorAttributes } override fun useEditorFont(): Boolean { @@ -39,8 +38,6 @@ class LensRenderer(info: HighlightInfo) : HintRenderer(null) { } private companion object { - private val ATTRIBUTES_SINGLETON = TextAttributes(null, null, null, null, Font.ITALIC) - private fun getValidDescriptionText(text: String?): String { return if (text.isNullOrBlank()) " " else addMissingPeriod(convertHtmlToText(text)) } diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt index 438cf84..c4aaa9e 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt @@ -4,6 +4,7 @@ import com.intellij.lang.annotation.HighlightSeverity import com.intellij.ui.ColorUtil import com.intellij.ui.JBColor import java.awt.Color +import java.awt.Font /** * Determines properties of inspection lenses based on severity. @@ -16,12 +17,14 @@ enum class LensSeverity(baseColor: Color, lightThemeDarkening: Int, darkThemeBri SERVER_PROBLEM (Color(176, 97, 0), lightThemeDarkening = 4, darkThemeBrightening = 2), OTHER (Color(128, 128, 128), lightThemeDarkening = 1, darkThemeBrightening = 2); - val color: JBColor + val colorAttributes: LensSeverityTextAttributes init { val lightThemeColor = ColorUtil.saturate(ColorUtil.darker(baseColor, lightThemeDarkening), 1) val darkThemeColor = ColorUtil.desaturate(ColorUtil.brighter(baseColor, darkThemeBrightening), 2) - color = JBColor(lightThemeColor, darkThemeColor) + + val textColor = JBColor(lightThemeColor, darkThemeColor) + colorAttributes = LensSeverityTextAttributes(foregroundColor = textColor, fontStyle = Font.ITALIC) } companion object { diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityTextAttributes.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityTextAttributes.kt new file mode 100644 index 0000000..c74d984 --- /dev/null +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityTextAttributes.kt @@ -0,0 +1,15 @@ +package com.chylex.intellij.inspectionlens.editor + +import com.intellij.openapi.editor.markup.UnmodifiableTextAttributes +import com.intellij.ui.JBColor +import java.awt.Font + +class LensSeverityTextAttributes(private val foregroundColor: JBColor, private val fontStyle: Int = Font.PLAIN) : UnmodifiableTextAttributes() { + override fun getForegroundColor(): JBColor { + return foregroundColor + } + + override fun getFontType(): Int { + return fontStyle + } +}