mirror of
https://github.com/chylex/IntelliJ-Rainbow-Brackets.git
synced 2025-05-09 15:34:05 +02:00
Refactoring & Remove unused code
This commit is contained in:
parent
e493868d10
commit
75e0cb6d26
build.gradle
src/main
@ -35,13 +35,6 @@ allprojects {
|
||||
|
||||
jar.archiveName = "intellij-rainbow-brackets.jar"
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
events "passed", "skipped", "failed"
|
||||
exceptionFormat = "full"
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
package com.github.izhangzhihao.rainbow.brackets
|
||||
|
||||
import com.github.izhangzhihao.rainbow.brackets.RainbowColors.roundBracketsColor
|
||||
import com.github.izhangzhihao.rainbow.brackets.RainbowColors.squareBracketsColor
|
||||
import com.github.izhangzhihao.rainbow.brackets.RainbowColors.squigglyBracketsColor
|
||||
import com.intellij.lang.annotation.AnnotationHolder
|
||||
import com.intellij.lang.annotation.Annotator
|
||||
import com.intellij.openapi.editor.markup.TextAttributes
|
||||
@ -10,28 +13,28 @@ import java.awt.Font
|
||||
import java.util.regex.Pattern
|
||||
|
||||
|
||||
class RainbowHighliter : Annotator {
|
||||
class RainbowBrackets : Annotator {
|
||||
private val bracketsList = arrayOf("(", ")", "{", "}", "[", "]")
|
||||
|
||||
private val haskellMultilineCommentPattern = Pattern.compile(
|
||||
private val haskellMultiLineCommentPattern = Pattern.compile(
|
||||
"\\{-.*?-\\}"
|
||||
)
|
||||
private val normalMultilineCommentPattern = Pattern.compile(
|
||||
private val normalMultiLineCommentPattern = Pattern.compile(
|
||||
"/\\*.*?\\*/"
|
||||
)
|
||||
|
||||
private fun getAttributesColor(selector: Int, bracket: String): Color {
|
||||
val roundBracketsColor = RainbowColors.roundBracketsColor[selector % RainbowColors.roundBracketsColor.size]
|
||||
private fun getAttributesColor(level: Int, bracket: String): Color {
|
||||
return when (bracket) {
|
||||
"(", ")" -> roundBracketsColor
|
||||
"{", "}" -> RainbowColors.squigglyBracketsColor[selector % RainbowColors.squigglyBracketsColor.size]
|
||||
"[", "]" -> RainbowColors.squareBracketsColor[selector % RainbowColors.squareBracketsColor.size]
|
||||
else -> {
|
||||
roundBracketsColor
|
||||
}
|
||||
"(", ")" -> dynamicallySelectColor(level, roundBracketsColor)
|
||||
"{", "}" -> dynamicallySelectColor(level, squigglyBracketsColor)
|
||||
"[", "]" -> dynamicallySelectColor(level, squareBracketsColor)
|
||||
else -> dynamicallySelectColor(level, roundBracketsColor)
|
||||
}
|
||||
}
|
||||
|
||||
private fun dynamicallySelectColor(level: Int, colors: Array<Color>) =
|
||||
colors[level % colors.size]
|
||||
|
||||
private fun getBracketAttributes(level: Int, bracket: String): TextAttributes {
|
||||
val rainbowColor = getAttributesColor(level, bracket)
|
||||
return TextAttributes(rainbowColor, null, null, null, Font.PLAIN)
|
||||
@ -76,7 +79,7 @@ class RainbowHighliter : Annotator {
|
||||
|
||||
private val isString = { element: PsiElement -> visitParent(element, { e -> isString(e.text) }) }
|
||||
|
||||
private val isMultilineComment = { element: PsiElement, pattern: Pattern ->
|
||||
private val isMultiLineComment = { element: PsiElement, pattern: Pattern ->
|
||||
val matcher = pattern.matcher(element.containingFile.text.replace("\n", " "))
|
||||
var isInMultiLineComment = false
|
||||
while (matcher.find()) {
|
||||
@ -86,9 +89,9 @@ class RainbowHighliter : Annotator {
|
||||
isInMultiLineComment
|
||||
}
|
||||
|
||||
private val isHaskellMultilineComment = { element: PsiElement -> isMultilineComment(element, haskellMultilineCommentPattern) }
|
||||
private val isHaskellMultiLineComment = { element: PsiElement -> isMultiLineComment(element, haskellMultiLineCommentPattern) }
|
||||
|
||||
private val isNormalMultilineComment = { element: PsiElement -> isMultilineComment(element, normalMultilineCommentPattern) }
|
||||
private val isNormalMultiLineComment = { element: PsiElement -> isMultiLineComment(element, normalMultiLineCommentPattern) }
|
||||
|
||||
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
|
||||
val languageID = element.language.id
|
||||
@ -96,8 +99,8 @@ class RainbowHighliter : Annotator {
|
||||
&& bracketsList.contains(element.text)
|
||||
&& languageID != "Clojure"
|
||||
&& !isString(element)
|
||||
&& !isHaskellMultilineComment(element)
|
||||
&& !isNormalMultilineComment(element)) {
|
||||
&& !isHaskellMultiLineComment(element)
|
||||
&& !isNormalMultiLineComment(element)) {
|
||||
val level = getBracketLevel(element)
|
||||
val attrs = getBracketAttributes(level, element.text)
|
||||
holder.createInfoAnnotation(element as PsiElement, null).enforcedTextAttributes = attrs
|
@ -28,24 +28,24 @@
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<!-- Add your extensions here -->
|
||||
<annotator language="Clojure" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="JAVA" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="kotlin" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Python" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Haskell" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Agda" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="RUST" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Clojure" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="JAVA" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="kotlin" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="Python" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="Haskell" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="Agda" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="RUST" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="JavaScript"
|
||||
implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Erlang" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Scala" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="go" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Groovy" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="ruby" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="Elixir" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="Erlang" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="Scala" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="go" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="Groovy" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="ruby" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="Elixir" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="ObjectiveC"
|
||||
implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
<annotator language="PHP" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowHighliter"/>
|
||||
implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
<annotator language="PHP" implementationClass="com.github.izhangzhihao.rainbow.brackets.RainbowBrackets"/>
|
||||
</extensions>
|
||||
|
||||
<application-components>
|
||||
|
Loading…
Reference in New Issue
Block a user