json doc color setting | json 注释颜色设置

This commit is contained in:
林万程
2022-03-09 23:57:04 +08:00
parent c86878eb24
commit ada9d9c25e
5 changed files with 24 additions and 1 deletions

View File

@@ -1,6 +1,8 @@
# Show Comment Plugin
IDEA 智能注释插件
https://plugins.jetbrains.com/plugin/18553-show-comment
English Notes:
<ul>
<li>Show javadoc comments at the Project view Tree structure.

View File

@@ -1,8 +1,10 @@
package io.github.linwancen.plugin.show;
import com.intellij.json.JsonFileType;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.EditorLinePainter;
import com.intellij.openapi.editor.LineExtensionInfo;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
@@ -37,7 +39,10 @@ public class LineEnd extends EditorLinePainter {
if (comment == null) {
return null;
}
LineExtensionInfo info = new LineExtensionInfo(settings.lineEndPrefix + comment, settings.lineEndTextAttr);
TextAttributes textAttr = file.getFileType().equals(JsonFileType.INSTANCE)
? settings.lineEndJsonTextAttr
: settings.lineEndTextAttr;
LineExtensionInfo info = new LineExtensionInfo(settings.lineEndPrefix + comment, textAttr);
return Collections.singletonList(info);
}

View File

@@ -21,6 +21,7 @@ public class AppSettingsComponent extends AbstractSettingsComponent {
private final JBCheckBox fromRef = new JBCheckBox("ref ");
private final JBCheckBox inJson = new JBCheckBox("in json ");
private final ColorPanel lineEndColor = new ColorPanel();
private final ColorPanel lineEndJsonColor = new ColorPanel();
private final JBCheckBox findElementRightToLeft = new JBCheckBox("Find element right to left");
protected final JBTextField lineEndPrefix = new JBTextField();
protected final JBTextField lineEndCount = new JBTextField();
@@ -48,6 +49,7 @@ public class AppSettingsComponent extends AbstractSettingsComponent {
JPanel text = JPanelFactory.of(
new JBLabel("object count: "), lineEndCount,
new JBLabel("text color: "), lineEndColor,
new JBLabel("json text color: "), lineEndJsonColor,
new JBLabel("prefix: "), lineEndPrefix);
FormBuilder formBuilder = FormBuilder.createFormBuilder()
.addComponent(JPanelFactory.of(findElementRightToLeft))
@@ -124,6 +126,14 @@ public class AppSettingsComponent extends AbstractSettingsComponent {
lineEndColor.setSelectedColor(color);
}
public Color getLineEndJsonColor() {
return lineEndJsonColor.getSelectedColor();
}
public void setLineEndJsonColor(Color color) {
lineEndJsonColor.setSelectedColor(color);
}
public boolean getFindElementRightToLeft() {
return findElementRightToLeft.isSelected();
}

View File

@@ -44,6 +44,7 @@ public class AppSettingsConfigurable implements Configurable {
} else {
modified |= !mySettingsComponent.getLineEndColor().equals(settings.lineEndColorBright);
}
modified |= !mySettingsComponent.getLineEndJsonColor().equals(settings.lineEndJsonTextAttr.getForegroundColor());
modified |= mySettingsComponent.getFindElementRightToLeft() != settings.findElementRightToLeft;
modified |= !mySettingsComponent.getLineEndInclude().equals(settings.lineEndInclude);
modified |= !mySettingsComponent.getLineEndExclude().equals(settings.lineEndExclude);
@@ -68,6 +69,7 @@ public class AppSettingsConfigurable implements Configurable {
}
JBColor jbColor = new JBColor(settings.lineEndColorBright, settings.lineEndColorDark);
settings.lineEndTextAttr.setForegroundColor(jbColor);
settings.lineEndJsonTextAttr.setForegroundColor(mySettingsComponent.getLineEndJsonColor());
settings.findElementRightToLeft = mySettingsComponent.getFindElementRightToLeft();
settings.lineEndInclude = mySettingsComponent.getLineEndInclude();
settings.lineEndExclude = mySettingsComponent.getLineEndExclude();
@@ -95,6 +97,7 @@ public class AppSettingsConfigurable implements Configurable {
} else {
mySettingsComponent.setLineEndColor(settings.lineEndColorBright);
}
mySettingsComponent.setLineEndJsonColor(settings.lineEndJsonTextAttr.getForegroundColor());
mySettingsComponent.setFindElementRightToLeft(settings.findElementRightToLeft);
mySettingsComponent.setLineEndInclude(settings.lineEndInclude);
mySettingsComponent.setLineEndExclude(settings.lineEndExclude);

View File

@@ -5,6 +5,7 @@ import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.ui.Gray;
import com.intellij.ui.JBColor;
import com.intellij.util.xmlb.XmlSerializerUtil;
import org.jetbrains.annotations.NotNull;
@@ -27,6 +28,8 @@ public class AppSettingsState implements PersistentStateComponent<AppSettingsSta
public Color lineEndColorDark = new Color(98, 151, 85);
public final TextAttributes lineEndTextAttr = new TextAttributes(new JBColor(lineEndColorBright, lineEndColorDark),
null, null, null, Font.ITALIC);
public final TextAttributes lineEndJsonTextAttr = new TextAttributes(new JBColor(Gray._140, Gray._140),
null, null, null, Font.ITALIC);
public boolean findElementRightToLeft = true;
public String lineEndPrefix = " //";