mirror of
https://github.com/chylex/IntelliJ-Inspection-Lens.git
synced 2025-04-27 06:15:46 +02:00
Strip uppercase tags from the beginning of inspection description
Meant for Kotlin compiler inspections, but could potentially affect others.
This commit is contained in:
parent
4899498522
commit
816440a150
@ -18,6 +18,7 @@ import java.awt.Graphics2D
|
|||||||
import java.awt.Point
|
import java.awt.Point
|
||||||
import java.awt.Rectangle
|
import java.awt.Rectangle
|
||||||
import java.awt.event.MouseEvent
|
import java.awt.event.MouseEvent
|
||||||
|
import java.util.regex.Pattern
|
||||||
import javax.swing.SwingUtilities
|
import javax.swing.SwingUtilities
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -133,22 +134,34 @@ class LensRenderer(private var info: HighlightInfo, settings: LensSettingsState)
|
|||||||
private const val HOVER_PADDING_LEFT = TEXT_HORIZONTAL_PADDING - 2
|
private const val HOVER_PADDING_LEFT = TEXT_HORIZONTAL_PADDING - 2
|
||||||
private const val HOVER_PADDING_RIGHT = HOVER_PADDING_LEFT + EXTRA_RIGHT_SIDE_PADDING
|
private const val HOVER_PADDING_RIGHT = HOVER_PADDING_LEFT + EXTRA_RIGHT_SIDE_PADDING
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Kotlin compiler inspections have an `[UPPERCASE_TAG]` at the beginning.
|
||||||
|
*/
|
||||||
|
private val UPPERCASE_TAG_REGEX = Pattern.compile("^\\[[A-Z_]+] ")
|
||||||
|
|
||||||
private fun getValidDescriptionText(text: String?): String {
|
private fun getValidDescriptionText(text: String?): String {
|
||||||
return if (text.isNullOrBlank()) " " else addMissingPeriod(unescapeHtmlEntities(text))
|
return if (text.isNullOrBlank()) " " else addMissingPeriod(unescapeHtmlEntities(stripUppercaseTag(text)))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun unescapeHtmlEntities(potentialHtml: String): String {
|
private fun stripUppercaseTag(text: String): String {
|
||||||
return potentialHtml.ifContains('&', StringUtil::unescapeXmlEntities)
|
if (text.startsWith('[')) {
|
||||||
|
val matcher = UPPERCASE_TAG_REGEX.matcher(text)
|
||||||
|
if (matcher.find()) {
|
||||||
|
return text.substring(matcher.end())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return text
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun unescapeHtmlEntities(text: String): String {
|
||||||
|
return if (text.contains('&')) StringUtil.unescapeXmlEntities(text) else text
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addMissingPeriod(text: String): String {
|
private fun addMissingPeriod(text: String): String {
|
||||||
return if (text.endsWith('.')) text else "$text."
|
return if (text.endsWith('.')) text else "$text."
|
||||||
}
|
}
|
||||||
|
|
||||||
private inline fun String.ifContains(charToTest: Char, action: (String) -> String): String {
|
|
||||||
return if (this.contains(charToTest)) action(this) else this
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun fixBaselineForTextRendering(rect: Rectangle) {
|
private fun fixBaselineForTextRendering(rect: Rectangle) {
|
||||||
rect.y += 1
|
rect.y += 1
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user