From fab33e921bb7306ee0afb09104954d760f77442b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com>
Date: Tue, 12 Mar 2024 19:07:04 +0800
Subject: [PATCH] =?UTF-8?q?feat(YamlLangDoc):=20support=20YAML=20|=20?=
=?UTF-8?q?=E6=94=AF=E6=8C=81=20YAML?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 1 +
build.gradle | 1 +
.../plugin/show/lang/YamlLangDoc.java | 35 +++++++++++++++++++
.../show/settings/AppSettingsComponent.java | 24 +++++++++----
.../settings/AppSettingsConfigurable.java | 3 ++
.../show/settings/AppSettingsState.java | 1 +
src/main/resources/META-INF/plugin.xml | 2 ++
src/main/resources/META-INF/yaml.xml | 5 +++
8 files changed, 65 insertions(+), 7 deletions(-)
create mode 100644 src/main/java/io/github/linwancen/plugin/show/lang/YamlLangDoc.java
create mode 100644 src/main/resources/META-INF/yaml.xml
diff --git a/README.md b/README.md
index 2019c60..d820d70 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@ Show doc comment in the Project view Tree, line End, json, other
Java, Kotlin, Groovy, Scala
C/C++/OC, Python, Go, Rust, Ruby
JS/TS, PHP, SQL
+ YAML/yml
English Note
diff --git a/build.gradle b/build.gradle
index ea7c13a..773a155 100644
--- a/build.gradle
+++ b/build.gradle
@@ -30,6 +30,7 @@ intellij {
// see https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#intellij-extension-plugins
plugins = [
'PsiViewer:201.6251.22-EAP-SNAPSHOT.3', // only for runIde when dev
+ 'org.jetbrains.plugins.yaml',
'Pythonid:201.6668.121',
'org.rust.lang:0.3.131.3366-201',
'org.toml.lang:0.2.131.3366-201',
diff --git a/src/main/java/io/github/linwancen/plugin/show/lang/YamlLangDoc.java b/src/main/java/io/github/linwancen/plugin/show/lang/YamlLangDoc.java
new file mode 100644
index 0000000..51c7001
--- /dev/null
+++ b/src/main/java/io/github/linwancen/plugin/show/lang/YamlLangDoc.java
@@ -0,0 +1,35 @@
+package io.github.linwancen.plugin.show.lang;
+
+import com.intellij.psi.PsiElement;
+import io.github.linwancen.plugin.show.bean.LineInfo;
+import io.github.linwancen.plugin.show.bean.SettingsInfo;
+import io.github.linwancen.plugin.show.lang.base.BaseLangDoc;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.yaml.YAMLLanguage;
+import org.jetbrains.yaml.psi.YAMLKeyValue;
+
+import java.util.List;
+
+public class YamlLangDoc extends BaseLangDoc {
+
+ static {
+ LANG_DOC_MAP.put(YAMLLanguage.INSTANCE.getID(), new YamlLangDoc());
+ }
+
+ @Override
+ public @NotNull List> getRefClass() {
+ return List.of(YAMLKeyValue.class);
+ }
+
+ @Override
+ public boolean show(@NotNull LineInfo info) {
+ return info.appSettings.showLineEndCommentYaml;
+ }
+
+ @Nullable
+ @Override
+ protected String resolveDocPrint(@NotNull T info, @NotNull PsiElement resolve) {
+ return null;
+ }
+}
diff --git a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsComponent.java b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsComponent.java
index e43acf5..459fd6b 100644
--- a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsComponent.java
+++ b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsComponent.java
@@ -29,10 +29,10 @@ public class AppSettingsComponent {
private final JBCheckBox showLineEndCommentScalaBase = new JBCheckBox("// Scala ");
private final JBCheckBox showLineEndCommentGroovy = new JBCheckBox(" Groovy ");
private final JBCheckBox showLineEndCommentGroovyBase = new JBCheckBox("// Groovy ");
- private final JBCheckBox showLineEndCommentJs = new JBCheckBox(" js ");
- private final JBCheckBox showLineEndCommentJsBase = new JBCheckBox("// js ");
- private final JBCheckBox showLineEndCommentPhp = new JBCheckBox(" php ");
- private final JBCheckBox showLineEndCommentPhpBase = new JBCheckBox("// php ");
+ private final JBCheckBox showLineEndCommentJs = new JBCheckBox(" JS ");
+ private final JBCheckBox showLineEndCommentJsBase = new JBCheckBox("// JS ");
+ private final JBCheckBox showLineEndCommentPhp = new JBCheckBox(" PHP ");
+ private final JBCheckBox showLineEndCommentPhpBase = new JBCheckBox("// PHP ");
private final JBCheckBox showLineEndCommentPy = new JBCheckBox(" Python ");
private final JBCheckBox showLineEndCommentPyBase = new JBCheckBox("# Python ");
private final JBCheckBox showLineEndCommentGo = new JBCheckBox(" Go ");
@@ -41,8 +41,9 @@ public class AppSettingsComponent {
private final JBCheckBox showLineEndCommentRubyBase = new JBCheckBox("// Ruby ");
private final JBCheckBox showLineEndCommentCBase = new JBCheckBox("// C ");
private final JBCheckBox showLineEndCommentSwiftBase = new JBCheckBox("// Swift ");
- private final JBCheckBox showLineEndCommentSql = new JBCheckBox(" sql ");
- private final JBCheckBox showLineEndCommentJson = new JBCheckBox(" json ");
+ private final JBCheckBox showLineEndCommentSql = new JBCheckBox(" SQL ");
+ private final JBCheckBox showLineEndCommentJson = new JBCheckBox(" JSON ");
+ private final JBCheckBox showLineEndCommentYaml = new JBCheckBox(" YAML ");
private final JBTextField lineTags = new JBTextField();
private final JBCheckBox getToSet = new JBCheckBox("get --> set ");
private final JBCheckBox fromNew = new JBCheckBox("java new ");
@@ -90,7 +91,8 @@ public class AppSettingsComponent {
showLineEndCommentGo,
showLineEndCommentSql,
- showLineEndCommentJson
+ showLineEndCommentJson,
+ showLineEndCommentYaml
), 1)
.addComponent(JPanelFactory.of(
showLineEndCommentJsBase,
@@ -359,6 +361,14 @@ public class AppSettingsComponent {
showLineEndCommentJson.setSelected(newStatus);
}
+ public boolean getShowLineEndCommentYaml() {
+ return showLineEndCommentYaml.isSelected();
+ }
+
+ public void setShowLineEndCommentYaml(boolean newStatus) {
+ showLineEndCommentYaml.setSelected(newStatus);
+ }
+
// endregion line end
@NotNull
diff --git a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java
index ec5f0d6..d1fec35 100644
--- a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java
+++ b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java
@@ -63,6 +63,7 @@ public class AppSettingsConfigurable implements Configurable {
modified |= mySettingsComponent.getShowLineEndCommentSwiftBase() != settings.showLineEndCommentSwiftBase;
modified |= mySettingsComponent.getShowLineEndCommentSql() != settings.showLineEndCommentSql;
modified |= mySettingsComponent.getShowLineEndCommentJson() != settings.showLineEndCommentJson;
+ modified |= mySettingsComponent.getShowLineEndCommentYaml() != settings.showLineEndCommentYaml;
modified |= !mySettingsComponent.getTreeTags().equals(String.join("|", settings.treeTags));
modified |= !mySettingsComponent.getLineTags().equals(String.join("|", settings.lineTags));
@@ -112,6 +113,7 @@ public class AppSettingsConfigurable implements Configurable {
settings.showLineEndCommentSwiftBase = mySettingsComponent.getShowLineEndCommentSwiftBase();
settings.showLineEndCommentSql = mySettingsComponent.getShowLineEndCommentSql();
settings.showLineEndCommentJson = mySettingsComponent.getShowLineEndCommentJson();
+ settings.showLineEndCommentYaml = mySettingsComponent.getShowLineEndCommentYaml();
settings.treeTags = Splitter.on('|').splitToList(mySettingsComponent.getTreeTags()).toArray(new String[0]);
settings.lineTags = Splitter.on('|').splitToList(mySettingsComponent.getLineTags()).toArray(new String[0]);
@@ -164,6 +166,7 @@ public class AppSettingsConfigurable implements Configurable {
mySettingsComponent.setShowLineEndCommentSwiftBase(settings.showLineEndCommentSwiftBase);
mySettingsComponent.setShowLineEndCommentSql(settings.showLineEndCommentSql);
mySettingsComponent.setShowLineEndCommentJson(settings.showLineEndCommentJson);
+ mySettingsComponent.setShowLineEndCommentYaml(settings.showLineEndCommentYaml);
mySettingsComponent.setTreeTags(String.join("|", settings.treeTags));
mySettingsComponent.setLineTags(String.join("|", settings.lineTags));
diff --git a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java
index 11de401..f0b9b06 100644
--- a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java
+++ b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java
@@ -51,6 +51,7 @@ public class AppSettingsState implements PersistentStateComponentJava, Kotlin, Groovy, Scala
C/C++/OC, Python, Go, Rust, Ruby
JS/TS, PHP, SQL
+ YAML/yml
English Note
@@ -136,6 +137,7 @@ Show doc comment in the Project view Tree, line End, json, other
com.intellij.modules.ruby
com.intellij.modules.clion
com.intellij.modules.swift.lang
+ org.jetbrains.plugins.yaml
diff --git a/src/main/resources/META-INF/yaml.xml b/src/main/resources/META-INF/yaml.xml
new file mode 100644
index 0000000..330412e
--- /dev/null
+++ b/src/main/resources/META-INF/yaml.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file