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