Skip to content

Commit 1c9ad39

Browse files
committed
Add setting to enable/disable color previews in Skin files
1 parent 3fbf17e commit 1c9ad39

File tree

5 files changed

+31
-8
lines changed

5 files changed

+31
-8
lines changed

src/main/kotlin/com/gmail/blueboxware/libgdxplugin/filetypes/skin/annotators/SkinColorAnnotator.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.gmail.blueboxware.libgdxplugin.filetypes.skin.annotators
22

33
import com.gmail.blueboxware.libgdxplugin.filetypes.skin.psi.*
4+
import com.gmail.blueboxware.libgdxplugin.settings.LibGDXPluginSettings
45
import com.gmail.blueboxware.libgdxplugin.utils.GutterColorRenderer
56
import com.intellij.lang.annotation.AnnotationHolder
67
import com.intellij.lang.annotation.Annotator
78
import com.intellij.openapi.actionSystem.AnAction
89
import com.intellij.openapi.actionSystem.AnActionEvent
910
import com.intellij.openapi.application.ApplicationManager
11+
import com.intellij.openapi.components.ServiceManager
1012
import com.intellij.psi.PsiElement
1113
import com.intellij.psi.util.PsiTreeUtil
1214
import com.intellij.psi.util.PsiUtilBase
@@ -32,6 +34,10 @@ class SkinColorAnnotator : Annotator {
3234

3335
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
3436

37+
if (!ServiceManager.getService(element.project, LibGDXPluginSettings::class.java).enableColorAnnotationsInSkin) {
38+
return
39+
}
40+
3541
if (element is SkinObject) {
3642

3743
val force = (PsiTreeUtil.findFirstParent(element) { it is SkinClassSpecification } as? SkinClassSpecification)?.getRealClassNamesAsString()?.contains("com.badlogic.gdx.graphics.Color") == true

src/main/kotlin/com/gmail/blueboxware/libgdxplugin/settings/LibGDXPluginConfigurable.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,12 @@ class LibGDXPluginConfigurable(val project: Project) : Configurable {
6565
@State(name = "LibGDXPluginSettings")
6666
class LibGDXPluginSettings: PersistentStateComponent<LibGDXPluginSettings> {
6767
var enableColorAnnotations: Boolean = true
68+
var enableColorAnnotationsInSkin: Boolean = true
6869
var neverAskAboutSkinFiles: Boolean = false
6970

7071
override fun loadState(state: LibGDXPluginSettings) {
7172
enableColorAnnotations = state.enableColorAnnotations
73+
enableColorAnnotationsInSkin = state.enableColorAnnotationsInSkin
7274
neverAskAboutSkinFiles = state.neverAskAboutSkinFiles
7375
}
7476

src/main/kotlin/com/gmail/blueboxware/libgdxplugin/settings/LibGDXPluginSettingsPane.form

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.gmail.blueboxware.libgdxplugin.settings.LibGDXPluginSettingsPane">
3-
<grid id="27dc6" binding="root" layout-manager="GridLayoutManager" row-count="3" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
3+
<grid id="27dc6" binding="root" layout-manager="GridLayoutManager" row-count="4" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
44
<margin top="0" left="0" bottom="0" right="0"/>
55
<constraints>
66
<xy x="20" y="20" width="610" height="400"/>
@@ -18,17 +18,25 @@
1818
</component>
1919
<vspacer id="511b9">
2020
<constraints>
21-
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
21+
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
2222
</constraints>
2323
</vspacer>
2424
<component id="4307c" class="javax.swing.JCheckBox" binding="neverAskAboutSkinFiles">
2525
<constraints>
26-
<grid row="1" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
26+
<grid row="2" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
2727
</constraints>
2828
<properties>
2929
<text resource-bundle="libgdxplugin" key="settings.never.ask.about.skin.files"/>
3030
</properties>
3131
</component>
32+
<component id="a757" class="javax.swing.JCheckBox" binding="showPreviewsOfColorInSkinCheckBox">
33+
<constraints>
34+
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
35+
</constraints>
36+
<properties>
37+
<text resource-bundle="libgdxplugin" key="settings.enable.color.previews.skin"/>
38+
</properties>
39+
</component>
3240
</children>
3341
</grid>
3442
</form>

src/main/kotlin/com/gmail/blueboxware/libgdxplugin/settings/LibGDXPluginSettingsPane.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class LibGDXPluginSettingsPane {
2828
private JPanel root;
2929
private JCheckBox showPreviewsOfColorCheckBox;
3030
private JCheckBox neverAskAboutSkinFiles;
31+
private JCheckBox showPreviewsOfColorInSkinCheckBox;
3132

3233
private LibGDXPluginSettings settings = new LibGDXPluginSettings();
3334

@@ -38,16 +39,19 @@ JComponent createPanel(@NotNull LibGDXPluginSettings settings) {
3839

3940
void apply() {
4041
settings.setEnableColorAnnotations(showPreviewsOfColorCheckBox.isSelected());
42+
settings.setEnableColorAnnotationsInSkin(showPreviewsOfColorInSkinCheckBox.isSelected());
4143
settings.setNeverAskAboutSkinFiles(neverAskAboutSkinFiles.isSelected());
4244
}
4345

4446
void reset() {
4547
showPreviewsOfColorCheckBox.setSelected(settings.getEnableColorAnnotations());
48+
showPreviewsOfColorInSkinCheckBox.setSelected(settings.getEnableColorAnnotationsInSkin());
4649
neverAskAboutSkinFiles.setSelected(settings.getNeverAskAboutSkinFiles());
4750
}
4851

4952
boolean isModified() {
5053
return showPreviewsOfColorCheckBox.isSelected() != settings.getEnableColorAnnotations()
54+
|| showPreviewsOfColorInSkinCheckBox.isSelected() != settings.getEnableColorAnnotationsInSkin()
5155
|| neverAskAboutSkinFiles.isSelected() != settings.getNeverAskAboutSkinFiles();
5256
}
5357

@@ -67,16 +71,18 @@ boolean isModified() {
6771
*/
6872
private void $$$setupUI$$$() {
6973
root = new JPanel();
70-
root.setLayout(new GridLayoutManager(3, 3, new Insets(0, 0, 0, 0), -1, -1));
74+
root.setLayout(new GridLayoutManager(4, 3, new Insets(0, 0, 0, 0), -1, -1));
7175
showPreviewsOfColorCheckBox = new JCheckBox();
7276
this.$$$loadButtonText$$$(showPreviewsOfColorCheckBox, ResourceBundle.getBundle("libgdxplugin").getString("settings.enable.color.previews"));
7377
root.add(showPreviewsOfColorCheckBox, new GridConstraints(0, 0, 1, 3, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
7478
final Spacer spacer1 = new Spacer();
75-
root.add(spacer1, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
79+
root.add(spacer1, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
7680
neverAskAboutSkinFiles = new JCheckBox();
77-
neverAskAboutSkinFiles.setActionCommand("Never ask about treating Json files which look like Skin files as Skin files");
7881
this.$$$loadButtonText$$$(neverAskAboutSkinFiles, ResourceBundle.getBundle("libgdxplugin").getString("settings.never.ask.about.skin.files"));
79-
root.add(neverAskAboutSkinFiles, new GridConstraints(1, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
82+
root.add(neverAskAboutSkinFiles, new GridConstraints(2, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
83+
showPreviewsOfColorInSkinCheckBox = new JCheckBox();
84+
this.$$$loadButtonText$$$(showPreviewsOfColorInSkinCheckBox, ResourceBundle.getBundle("libgdxplugin").getString("settings.enable.color.previews.skin"));
85+
root.add(showPreviewsOfColorInSkinCheckBox, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
8086
}
8187

8288
/**

src/main/resources/libgdxplugin.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ skin.file.do.not.bother=No and don't ask again
7171
context.menu.mark.as.skin=Mark as LibGDX Skin
7272
context.menu.mark.as.non.skin=Unmark as LibGDX Skin
7373

74-
settings.enable.color.previews=Show previews of Color constants in the gutter in Java and Kotlin code
74+
settings.enable.color.previews=Show previews of Color constants in Java and Kotlin code in the gutter
75+
settings.enable.color.previews.skin=Show previews of Colors in Skin files in the gutter
7576
settings.never.ask.about.skin.files=Never ask about treating JSON files which look like Skin files as Skin files
7677

7778
log.level.inspection=Overly verbose log level

0 commit comments

Comments
 (0)