mirror of
https://github.com/chylex/IntelliJ-Rainbow-Brackets.git
synced 2025-05-10 00:34:04 +02:00
* Add language exclusions to settings (closes #1046) * Fix save setting & load setting & prefer `languageBlacklist` for compatibility * Update README.md Co-authored-by: 张志豪 <izhangzhihao@hotmail.com> Co-authored-by: 张志豪 <12044174+izhangzhihao@users.noreply.github.com>
This commit is contained in:
parent
f227fd8b2f
commit
bd3902d207
README.md
src
main/kotlin/com/github/izhangzhihao/rainbow/brackets
settings
visitor
test/kotlin/com/github/izhangzhihao/rainbow/brackets
15
README.md
15
README.md
@ -226,20 +226,7 @@ You still could set `<option name="rainbowifyKotlinFunctionLiteralBracesAndArrow
|
||||
|
||||
## Disable rainbow brackets for specific languages
|
||||
|
||||
If you want to disable rainbow brackets for javascript languages and java languages, you could set `languageBlacklist` property in config file just like:
|
||||
|
||||
```xml
|
||||
<application>
|
||||
<component name="RainbowSettings">
|
||||
<option name="languageBlacklist">
|
||||
<array>
|
||||
<option value="java" />
|
||||
<option value="javascript" />
|
||||
</array>
|
||||
</option>
|
||||
</component>
|
||||
</application>
|
||||
```
|
||||
<kbd>Settings/Preferences</kbd> > <kbd>Other Settings</kbd> > <kbd>Rainbow Brackets</kbd> > `Do NOT rainbowify these languages (name or extension, comma separated)`:
|
||||
|
||||
NOTE: You can use **name** of language or **extension** of file name(The names should be **lowercase**).
|
||||
|
||||
|
@ -37,6 +37,7 @@ class RainbowConfigurable : Configurable {
|
||||
settings.cycleCountOnAllBrackets = settingsForm?.cycleCountOnAllBrackets()
|
||||
?: false
|
||||
settings.numberOfColors = settingsForm?.numberOfColors() ?: 5
|
||||
settings.languageBlacklist = settingsForm?.languageBlacklist() ?: emptySet()
|
||||
settings.disableRainbowIndentsInZenMode = settingsForm?.disableRainbowIndentsInZenMode() ?: true
|
||||
settings.useColorGenerator = settingsForm?.useColorGenerator() ?: false
|
||||
settings.rainbowifyTagNameInXML = settingsForm?.rainbowifyTagNameInXML() ?: false
|
||||
|
@ -32,6 +32,7 @@ class RainbowSettings : PersistentStateComponent<RainbowSettings> {
|
||||
//https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/391
|
||||
var cycleCountOnAllBrackets = false
|
||||
var numberOfColors = 5
|
||||
|
||||
var disableRainbowIndentsInZenMode = true
|
||||
var useColorGenerator = false
|
||||
var customColorGeneratorOption: String? = null
|
||||
@ -40,11 +41,7 @@ class RainbowSettings : PersistentStateComponent<RainbowSettings> {
|
||||
var doNOTRainbowifyTemplateString = false
|
||||
var doNOTRainbowifyBigFiles = true
|
||||
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
var languageBlacklist: Array<String> = arrayOf()
|
||||
|
||||
@Transient
|
||||
var getLanguageBlacklist: Set<String> = languageBlacklist.toSet().plus(arrayOf("hocon", "mxml"))
|
||||
var languageBlacklist: Set<String> = setOf("hocon", "mxml")
|
||||
|
||||
@Nullable
|
||||
override fun getState() = this
|
||||
|
@ -3,12 +3,12 @@
|
||||
<grid id="27dc6" binding="panel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<xy x="20" y="20" width="763" height="513"/>
|
||||
<xy x="20" y="20" width="763" height="533"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="fd26e" binding="appearancePanel" layout-manager="GridLayoutManager" row-count="17" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<grid id="fd26e" binding="appearancePanel" layout-manager="GridLayoutManager" row-count="18" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
@ -99,7 +99,9 @@
|
||||
</component>
|
||||
<component id="9d54" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="16" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<grid row="16" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="96" height="14"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Number of colors "/>
|
||||
@ -164,6 +166,26 @@
|
||||
<text value="Do NOT rainbowify big files"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="6e2da" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="17" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="115" height="26"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Do NOT rainbowify these languages (name or extension, comma separated)"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="d47de" class="javax.swing.JTextField" binding="languageBlacklist">
|
||||
<constraints>
|
||||
<grid row="17" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="150" height="-1"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="hocon, mxml"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<vspacer id="9e387">
|
||||
|
@ -23,6 +23,8 @@ class RainbowSettingsForm {
|
||||
|
||||
private var numberOfColors: JTextField? = null
|
||||
|
||||
private var languageBlacklist: JTextField? = null
|
||||
|
||||
private var disableRainbowIndentsInZenMode: JCheckBox? = null
|
||||
|
||||
private var useColorGenerator: JCheckBox? = null
|
||||
@ -61,6 +63,8 @@ class RainbowSettingsForm {
|
||||
|
||||
fun numberOfColors() = numberOfColors?.text?.toIntOrNull()
|
||||
|
||||
fun languageBlacklist() = languageBlacklist?.text?.split(",")?.map { it.trim() }?.filterNot { it.isEmpty() }?.toSet()
|
||||
|
||||
fun disableRainbowIndentsInZenMode() = disableRainbowIndentsInZenMode?.isSelected
|
||||
|
||||
fun useColorGenerator() = useColorGenerator?.isSelected
|
||||
@ -89,6 +93,7 @@ class RainbowSettingsForm {
|
||||
|| rainbowifyTagNameInXML() != settings.rainbowifyTagNameInXML
|
||||
|| doNOTRainbowifyTemplateString() != settings.doNOTRainbowifyTemplateString
|
||||
|| doNOTRainbowifyBigFiles() != settings.doNOTRainbowifyBigFiles
|
||||
|| languageBlacklist() != settings.languageBlacklist
|
||||
)
|
||||
|
||||
init {
|
||||
@ -113,5 +118,6 @@ class RainbowSettingsForm {
|
||||
rainbowifyTagNameInXML?.isSelected = settings.rainbowifyTagNameInXML
|
||||
doNOTRainbowifyTemplateString?.isSelected = settings.doNOTRainbowifyTemplateString
|
||||
doNOTRainbowifyBigFiles?.isSelected = settings.doNOTRainbowifyBigFiles
|
||||
languageBlacklist?.text = settings.languageBlacklist.joinToString(",")
|
||||
}
|
||||
}
|
||||
|
@ -28,8 +28,8 @@ abstract class RainbowHighlightVisitor : HighlightVisitor {
|
||||
override fun suitableForFile(file: PsiFile): Boolean {
|
||||
return RainbowSettings.instance.isRainbowEnabled &&
|
||||
checkForBigFile(file) &&
|
||||
!RainbowSettings.instance.getLanguageBlacklist.contains(file.fileType.name) &&
|
||||
!RainbowSettings.instance.getLanguageBlacklist.contains(memoizedFileExtension(file.name)) &&
|
||||
!RainbowSettings.instance.languageBlacklist.contains(file.fileType.name) &&
|
||||
!RainbowSettings.instance.languageBlacklist.contains(memoizedFileExtension(file.name)) &&
|
||||
fileIsNotHaskellOrIntelliJHaskellPluginNotEnabled(file.fileType.name)
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ class RainbowJavaTest : LightJavaCodeInsightFixtureTestCase() {
|
||||
rainbowSettings.isDoNOTRainbowifyBracketsWithoutContent = false
|
||||
rainbowSettings.cycleCountOnAllBrackets = false
|
||||
rainbowSettings.applyColorsOfRoundForAllBrackets = false
|
||||
rainbowSettings.getLanguageBlacklist = setOf()
|
||||
rainbowSettings.languageBlacklist = setOf()
|
||||
}
|
||||
|
||||
fun testRainbowForJava() {
|
||||
@ -226,7 +226,7 @@ public class Test<T> {
|
||||
fun testDoNOTRainbowifyBracketsWhenJavaInBlacklist() {
|
||||
val rainbowSettings = RainbowSettings.instance
|
||||
rainbowSettings.isDoNOTRainbowifyBracketsWithoutContent = true
|
||||
rainbowSettings.getLanguageBlacklist = setOf("java")
|
||||
rainbowSettings.languageBlacklist = setOf("java")
|
||||
@Language("Java") val code =
|
||||
"""
|
||||
public class Test<T> {
|
||||
|
Loading…
Reference in New Issue
Block a user