feat(ScalaLangDoc): support Scala | 支持 Scala

This commit is contained in:
林万程
2024-02-27 19:24:07 +08:00
parent 11eae9fa4d
commit 7e2b828434
11 changed files with 186 additions and 17 deletions

View File

@@ -13,7 +13,7 @@ Show doc comment in the Project view Tree, line End, json, other
<h2>English Note</h2> <h2>English Note</h2>
<ul> <ul>
<li>support Java Kotlin JS/TS PHP Python Go Rust C SQL <li>support Java Kotlin Scala JS/TS PHP Python Go Rust C SQL
<li>tree doc from lang or README.md pom .gradle etc. by settings <li>tree doc from lang or README.md pom .gradle etc. by settings
<li>input `doc` `docc` -> /** */ <li>input `doc` `docc` -> /** */
<li>json doc from xxx.json.tsv <li>json doc from xxx.json.tsv
@@ -58,7 +58,7 @@ Show doc comment in the Project view Tree, line End, json, other
<ul> <ul>
<li>在结构树显示 文件注释 或 项目说明 (README.md pom.xml 等,可设置) <li>在结构树显示 文件注释 或 项目说明 (README.md pom.xml 等,可设置)
<li>在行末尾显示 引用对象的文档注释,欢迎反馈您想要支持的语言,欢迎 C# 大神研究 CsLineEnd.java <li>在行末尾显示 引用对象的文档注释,欢迎反馈您想要支持的语言,欢迎 C# 大神研究 CsLineEnd.java
<li>目前支持 Java Kotlin JS/TS PHP Python Go Rust C SQL <li>目前支持 Java Kotlin Scala JS/TS PHP Python Go Rust C SQL
<li>输入 doc / docc 等生成 /** */ <li>输入 doc / docc 等生成 /** */
<li>json 字段注释从 xxx.json.tsv 读取 <li>json 字段注释从 xxx.json.tsv 读取
<li>json 字典注释从 键名.tsv 读取 <li>json 字典注释从 键名.tsv 读取
@@ -121,7 +121,7 @@ Show doc comment in the Project view Tree, line End, json, other
<h2>English Change Notes:</h2> <h2>English Change Notes:</h2>
<ul> <ul>
<li>2.16 Add line-end-comment support Rust, PHP, C/C++/Object C <li>2.16 Add line-end-comment support Rust, PHP, C/C++/Object C, Scala
<li>2.15 Add line-end-comment java anno doc <li>2.15 Add line-end-comment java anno doc
<li>2.14 Add line-end-comment java enum doc for Yes(1, "Yes") <li>2.14 Add line-end-comment java enum doc for Yes(1, "Yes")
<li>2.13 ★ Cache for 2023.3 <li>2.13 ★ Cache for 2023.3
@@ -166,7 +166,7 @@ Show doc comment in the Project view Tree, line End, json, other
<h2>中文更新说明:</h2> <h2>中文更新说明:</h2>
<ul> <ul>
<li>2.16 增加 行末注释 支持 Rust, PHP, C/C++/Object C <li>2.16 增加 行末注释 支持 Rust, PHP, C/C++/Object C, Scala
<li>2.15 增加 行末注释 java 注解注释 <li>2.15 增加 行末注释 java 注解注释
<li>2.14 增加 行末注释 java 枚举注释用于 Yes(1, "是") <li>2.14 增加 行末注释 java 枚举注释用于 Yes(1, "是")
<li>2.13 ★ 缓存用于支持 2023.3 <li>2.13 ★ 缓存用于支持 2023.3

View File

@@ -33,6 +33,7 @@ intellij {
'Pythonid:201.6668.121', 'Pythonid:201.6668.121',
'org.rust.lang:0.3.131.3366-201', 'org.rust.lang:0.3.131.3366-201',
'org.toml.lang:0.2.131.3366-201', 'org.toml.lang:0.2.131.3366-201',
'org.intellij.scala:2020.1.43',
] ]
if ('IC' == ideTypeStr || 'IU' == ideTypeStr) { if ('IC' == ideTypeStr || 'IU' == ideTypeStr) {
plugins.add('java') plugins.add('java')
@@ -91,7 +92,7 @@ patchPluginXml {
changeNotes = """ changeNotes = """
<h2>English Change Notes:</h2> <h2>English Change Notes:</h2>
<ul> <ul>
<li>2.16 Add line-end-comment support Rust, PHP, C/C++/Object C <li>2.16 Add line-end-comment support Rust, PHP, C/C++/Object C, Scala
<li>2.15 Add line-end-comment java anno doc <li>2.15 Add line-end-comment java anno doc
<li>2.14 Add line-end-comment java enum doc for Yes(1, "Yes") <li>2.14 Add line-end-comment java enum doc for Yes(1, "Yes")
<li>2.13 ★ Cache for 2023.3 <li>2.13 ★ Cache for 2023.3
@@ -136,7 +137,7 @@ patchPluginXml {
<h2>中文更新说明:</h2> <h2>中文更新说明:</h2>
<ul> <ul>
<li>2.16 增加 行末注释 支持 Rust, PHP, C/C++/Object C <li>2.16 增加 行末注释 支持 Rust, PHP, C/C++/Object C, Scala
<li>2.15 增加 行末注释 java 注解注释 <li>2.15 增加 行末注释 java 注解注释
<li>2.14 增加 行末注释 java 枚举注释用于 Yes(1, "是") <li>2.14 增加 行末注释 java 枚举注释用于 Yes(1, "是")
<li>2.13 ★ 缓存用于支持 2023.3 <li>2.13 ★ 缓存用于支持 2023.3

View File

@@ -3,8 +3,20 @@ package io.github.linwancen.plugin.show.java;
import com.intellij.ide.projectView.ProjectViewNode; import com.intellij.ide.projectView.ProjectViewNode;
import com.intellij.lang.java.JavaLanguage; import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import com.intellij.psi.*; import com.intellij.psi.PsiDocCommentOwner;
import com.intellij.psi.javadoc.*; import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiEnumConstant;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiJavaCodeReferenceElement;
import com.intellij.psi.PsiJvmModifiersOwner;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiParameter;
import com.intellij.psi.PsiWhiteSpace;
import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.psi.javadoc.PsiDocTag;
import com.intellij.psi.javadoc.PsiDocTagValue;
import com.intellij.psi.javadoc.PsiDocToken;
import com.intellij.psi.javadoc.PsiInlineDocTag;
import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiTreeUtil;
import io.github.linwancen.plugin.show.bean.LineInfo; import io.github.linwancen.plugin.show.bean.LineInfo;
import io.github.linwancen.plugin.show.bean.SettingsInfo; import io.github.linwancen.plugin.show.bean.SettingsInfo;
@@ -111,9 +123,14 @@ public class JavaLangDoc extends BaseTagLangDoc<PsiDocComment> {
@NotNull @NotNull
@Override @Override
protected <T extends SettingsInfo> String descDoc(@NotNull T info, @NotNull PsiDocComment psiDocComment) { protected <T extends SettingsInfo> String descDoc(@NotNull T info, @NotNull PsiDocComment psiDocComment) {
@NotNull PsiElement[] elements = psiDocComment.getDescriptionElements();
return elementsDesc(info, elements);
}
@NotNull
protected <T extends SettingsInfo> String elementsDesc(@NotNull T info, @NotNull PsiElement[] elements) {
@NotNull StringBuilder sb = new StringBuilder(); @NotNull StringBuilder sb = new StringBuilder();
int lineCount = 0; int lineCount = 0;
@NotNull PsiElement[] elements = psiDocComment.getDescriptionElements();
for (PsiElement element : elements) { for (PsiElement element : elements) {
if (appendElementText(sb, element)) { if (appendElementText(sb, element)) {
lineCount++; lineCount++;
@@ -126,9 +143,9 @@ public class JavaLangDoc extends BaseTagLangDoc<PsiDocComment> {
} }
/** /**
* @return is new line * @return is a new line
*/ */
private static boolean appendElementText(@NotNull StringBuilder sb, PsiElement element) { protected boolean appendElementText(@NotNull StringBuilder sb, PsiElement element) {
if (element instanceof PsiDocToken) { if (element instanceof PsiDocToken) {
@NotNull PsiDocToken psiDocToken = (PsiDocToken) element; @NotNull PsiDocToken psiDocToken = (PsiDocToken) element;
DocFilter.addHtml(sb, psiDocToken.getText()); DocFilter.addHtml(sb, psiDocToken.getText());
@@ -148,10 +165,14 @@ public class JavaLangDoc extends BaseTagLangDoc<PsiDocComment> {
@NotNull PsiDocComment psiDocComment, @NotNull String name) { @NotNull PsiDocComment psiDocComment, @NotNull String name) {
@NotNull PsiDocTag[] tags = psiDocComment.findTagsByName(name); @NotNull PsiDocTag[] tags = psiDocComment.findTagsByName(name);
for (@NotNull PsiDocTag tag : tags) { for (@NotNull PsiDocTag tag : tags) {
// @see @param should use getDataElements()
@Nullable PsiDocTagValue value = tag.getValueElement(); @Nullable PsiDocTagValue value = tag.getValueElement();
if (value != null) { if (value != null) {
DocFilter.addHtml(tagStrBuilder, value.getText()); DocFilter.addHtml(tagStrBuilder, value.getText());
} else {
PsiElement[] dataElements = tag.getDataElements();
if (dataElements.length > 0) {
DocFilter.addHtml(tagStrBuilder, dataElements[0].getText());
}
} }
} }
} }

View File

@@ -0,0 +1,79 @@
package io.github.linwancen.plugin.show.java;
import com.intellij.psi.PsiDocCommentOwner;
import com.intellij.psi.PsiElement;
import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.psi.javadoc.PsiDocTag;
import io.github.linwancen.plugin.show.bean.LineInfo;
import io.github.linwancen.plugin.show.bean.SettingsInfo;
import io.github.linwancen.plugin.show.java.line.OwnerToPsiDocSkip;
import io.github.linwancen.plugin.show.lang.base.DocFilter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.scala.ScalaLanguage;
import org.jetbrains.plugins.scala.lang.psi.api.expr.ScReferenceExpression;
import org.jetbrains.plugins.scala.lang.scaladoc.psi.api.ScDocResolvableCodeReference;
import org.jetbrains.plugins.scala.lang.scaladoc.psi.api.ScDocTag;
import java.util.List;
public class ScalaLangDoc extends JavaLangDoc {
public static final ScalaLangDoc INSTANCE = new ScalaLangDoc();
static {
LANG_DOC_MAP.put(ScalaLanguage.INSTANCE.getID(), INSTANCE);
}
@Override
public @NotNull List<Class<? extends PsiElement>> getRefClass() {
return List.of(ScReferenceExpression.class, ScDocResolvableCodeReference.class);
}
@Override
public boolean show(@NotNull LineInfo info) {
return info.appSettings.showLineEndCommentScala;
}
@Override
protected <T extends SettingsInfo> boolean parseBaseComment(@NotNull T info) {
return info.appSettings.showLineEndCommentScalaBase;
}
@Nullable
@Override
protected <T extends SettingsInfo> PsiDocComment toDocElement(@NotNull T info,
@NotNull PsiElement resolve) {
if (resolve instanceof PsiDocCommentOwner) {
@NotNull PsiDocCommentOwner psiDocCommentOwner = (PsiDocCommentOwner) resolve;
return OwnerToPsiDocSkip.refDocWithOutSkip(info, psiDocCommentOwner);
}
return null;
}
@NotNull
@Override
protected <T extends SettingsInfo> String descDoc(@NotNull T info, @NotNull PsiDocComment psiDocComment) {
@NotNull PsiElement[] elements = psiDocComment.getChildren();
StringBuilder sb = new StringBuilder();
for (PsiElement element : elements) {
if (!(element instanceof PsiDocTag)) {
sb.append(element.getText());
}
}
return DocFilter.cutDoc(sb.toString(), info, true);
}
@Override
protected <T extends SettingsInfo> void appendTag(@NotNull T info, @NotNull StringBuilder tagStrBuilder,
@NotNull PsiDocComment psiDocComment, @NotNull String name) {
@NotNull PsiDocTag[] tags = psiDocComment.findTagsByName("@" + name);
for (@NotNull PsiDocTag tag : tags) {
if (tag instanceof ScDocTag) {
ScDocTag scDocTag = (ScDocTag) tag;
String doc = scDocTag.getCommentDataText();
DocFilter.addHtml(tagStrBuilder, doc);
}
}
}
}

View File

@@ -18,6 +18,12 @@ public class OwnerToPsiDocSkip {
@Nullable @Nullable
public static <T extends SettingsInfo> PsiDocComment refDoc(@NotNull T info, public static <T extends SettingsInfo> PsiDocComment refDoc(@NotNull T info,
@Nullable PsiDocCommentOwner docOwner) { @Nullable PsiDocCommentOwner docOwner) {
return SkipUtils.skipDoc(info, refDocWithOutSkip(info, docOwner));
}
@Nullable
public static <T extends SettingsInfo> PsiDocComment refDocWithOutSkip(@NotNull T info,
@Nullable PsiDocCommentOwner docOwner) {
if (docOwner == null) { if (docOwner == null) {
return null; return null;
} }
@@ -27,6 +33,6 @@ public class OwnerToPsiDocSkip {
@Nullable PsiDocComment docComment = docOwner instanceof PsiMethod @Nullable PsiDocComment docComment = docOwner instanceof PsiMethod
? PsiMethodToPsiDoc.methodSupperNewPropDoc(((PsiMethod) docOwner)) ? PsiMethodToPsiDoc.methodSupperNewPropDoc(((PsiMethod) docOwner))
: docOwner.getDocComment(); : docOwner.getDocComment();
return SkipUtils.skipDoc(info, docComment); return docComment;
} }
} }

View File

@@ -24,7 +24,9 @@ public class AppSettingsComponent {
private final JBCheckBox showLineEndCommentJava = new JBCheckBox(" Java "); private final JBCheckBox showLineEndCommentJava = new JBCheckBox(" Java ");
private final JBCheckBox showLineEndCommentJavaBase = new JBCheckBox("// Java "); private final JBCheckBox showLineEndCommentJavaBase = new JBCheckBox("// Java ");
private final JBCheckBox showLineEndCommentKotlin = new JBCheckBox(" Kotlin "); private final JBCheckBox showLineEndCommentKotlin = new JBCheckBox(" Kotlin ");
private final JBCheckBox showLineEndCommentScala = new JBCheckBox(" Scala ");
private final JBCheckBox showLineEndCommentKotlinBase = new JBCheckBox("// Kotlin "); private final JBCheckBox showLineEndCommentKotlinBase = new JBCheckBox("// Kotlin ");
private final JBCheckBox showLineEndCommentScalaBase = new JBCheckBox("// Scala ");
private final JBCheckBox showLineEndCommentJs = new JBCheckBox(" js "); private final JBCheckBox showLineEndCommentJs = new JBCheckBox(" js ");
private final JBCheckBox showLineEndCommentJsBase = new JBCheckBox("// js "); private final JBCheckBox showLineEndCommentJsBase = new JBCheckBox("// js ");
private final JBCheckBox showLineEndCommentPhp = new JBCheckBox(" php "); private final JBCheckBox showLineEndCommentPhp = new JBCheckBox(" php ");
@@ -69,19 +71,27 @@ public class AppSettingsComponent {
.addComponent(JPanelFactory.of( .addComponent(JPanelFactory.of(
showLineEndCommentJava, showLineEndCommentJava,
showLineEndCommentKotlin, showLineEndCommentKotlin,
showLineEndCommentScala
), 1)
.addComponent(JPanelFactory.of(
showLineEndCommentJavaBase,
showLineEndCommentKotlinBase,
showLineEndCommentScalaBase
), 1)
.addComponent(JPanelFactory.of(
showLineEndCommentJs, showLineEndCommentJs,
showLineEndCommentPhp, showLineEndCommentPhp,
showLineEndCommentPy, showLineEndCommentPy,
showLineEndCommentGo, showLineEndCommentGo,
showLineEndCommentSql, showLineEndCommentSql,
showLineEndCommentJson showLineEndCommentJson
), 1) ), 1)
.addComponent(JPanelFactory.of( .addComponent(JPanelFactory.of(
showLineEndCommentJavaBase,
showLineEndCommentKotlinBase,
showLineEndCommentJsBase, showLineEndCommentJsBase,
showLineEndCommentPhpBase, showLineEndCommentPhpBase,
showLineEndCommentPyBase, showLineEndCommentPyBase,
showLineEndCommentRustBase, showLineEndCommentRustBase,
showLineEndCommentCBase, showLineEndCommentCBase,
showLineEndCommentSwiftBase showLineEndCommentSwiftBase
@@ -184,6 +194,14 @@ public class AppSettingsComponent {
showLineEndCommentKotlin.setSelected(newStatus); showLineEndCommentKotlin.setSelected(newStatus);
} }
public boolean getShowLineEndCommentScala() {
return showLineEndCommentScala.isSelected();
}
public void setShowLineEndCommentScala(boolean newStatus) {
showLineEndCommentScala.setSelected(newStatus);
}
public boolean getShowLineEndCommentJs() { public boolean getShowLineEndCommentJs() {
return showLineEndCommentJs.isSelected(); return showLineEndCommentJs.isSelected();
} }
@@ -232,6 +250,14 @@ public class AppSettingsComponent {
showLineEndCommentKotlinBase.setSelected(newStatus); showLineEndCommentKotlinBase.setSelected(newStatus);
} }
public boolean getShowLineEndCommentScalaBase() {
return showLineEndCommentScalaBase.isSelected();
}
public void setShowLineEndCommentScalaBase(boolean newStatus) {
showLineEndCommentScalaBase.setSelected(newStatus);
}
public boolean getShowLineEndCommentJsBase() { public boolean getShowLineEndCommentJsBase() {
return showLineEndCommentJsBase.isSelected(); return showLineEndCommentJsBase.isSelected();
} }

View File

@@ -43,12 +43,14 @@ public class AppSettingsConfigurable implements Configurable {
modified |= mySettingsComponent.getLineEndCache() != settings.lineEndCache; modified |= mySettingsComponent.getLineEndCache() != settings.lineEndCache;
modified |= mySettingsComponent.getShowLineEndCommentJava() != settings.showLineEndCommentJava; modified |= mySettingsComponent.getShowLineEndCommentJava() != settings.showLineEndCommentJava;
modified |= mySettingsComponent.getShowLineEndCommentKotlin() != settings.showLineEndCommentKotlin; modified |= mySettingsComponent.getShowLineEndCommentKotlin() != settings.showLineEndCommentKotlin;
modified |= mySettingsComponent.getShowLineEndCommentScala() != settings.showLineEndCommentScala;
modified |= mySettingsComponent.getShowLineEndCommentJs() != settings.showLineEndCommentJs; modified |= mySettingsComponent.getShowLineEndCommentJs() != settings.showLineEndCommentJs;
modified |= mySettingsComponent.getShowLineEndCommentPhp() != settings.showLineEndCommentPhp; modified |= mySettingsComponent.getShowLineEndCommentPhp() != settings.showLineEndCommentPhp;
modified |= mySettingsComponent.getShowLineEndCommentPy() != settings.showLineEndCommentPy; modified |= mySettingsComponent.getShowLineEndCommentPy() != settings.showLineEndCommentPy;
modified |= mySettingsComponent.getShowLineEndCommentGo() != settings.showLineEndCommentGo; modified |= mySettingsComponent.getShowLineEndCommentGo() != settings.showLineEndCommentGo;
modified |= mySettingsComponent.getShowLineEndCommentJavaBase() != settings.showLineEndCommentJavaBase; modified |= mySettingsComponent.getShowLineEndCommentJavaBase() != settings.showLineEndCommentJavaBase;
modified |= mySettingsComponent.getShowLineEndCommentKotlinBase() != settings.showLineEndCommentKotlinBase; modified |= mySettingsComponent.getShowLineEndCommentKotlinBase() != settings.showLineEndCommentKotlinBase;
modified |= mySettingsComponent.getShowLineEndCommentScalaBase() != settings.showLineEndCommentScalaBase;
modified |= mySettingsComponent.getShowLineEndCommentJsBase() != settings.showLineEndCommentJsBase; modified |= mySettingsComponent.getShowLineEndCommentJsBase() != settings.showLineEndCommentJsBase;
modified |= mySettingsComponent.getShowLineEndCommentPhpBase() != settings.showLineEndCommentPhpBase; modified |= mySettingsComponent.getShowLineEndCommentPhpBase() != settings.showLineEndCommentPhpBase;
modified |= mySettingsComponent.getShowLineEndCommentPyBase() != settings.showLineEndCommentPyBase; modified |= mySettingsComponent.getShowLineEndCommentPyBase() != settings.showLineEndCommentPyBase;
@@ -87,12 +89,14 @@ public class AppSettingsConfigurable implements Configurable {
settings.lineEndCache = mySettingsComponent.getLineEndCache(); settings.lineEndCache = mySettingsComponent.getLineEndCache();
settings.showLineEndCommentJava = mySettingsComponent.getShowLineEndCommentJava(); settings.showLineEndCommentJava = mySettingsComponent.getShowLineEndCommentJava();
settings.showLineEndCommentKotlin = mySettingsComponent.getShowLineEndCommentKotlin(); settings.showLineEndCommentKotlin = mySettingsComponent.getShowLineEndCommentKotlin();
settings.showLineEndCommentScala = mySettingsComponent.getShowLineEndCommentScala();
settings.showLineEndCommentJs = mySettingsComponent.getShowLineEndCommentJs(); settings.showLineEndCommentJs = mySettingsComponent.getShowLineEndCommentJs();
settings.showLineEndCommentPhp = mySettingsComponent.getShowLineEndCommentPhp(); settings.showLineEndCommentPhp = mySettingsComponent.getShowLineEndCommentPhp();
settings.showLineEndCommentPy = mySettingsComponent.getShowLineEndCommentPy(); settings.showLineEndCommentPy = mySettingsComponent.getShowLineEndCommentPy();
settings.showLineEndCommentGo = mySettingsComponent.getShowLineEndCommentGo(); settings.showLineEndCommentGo = mySettingsComponent.getShowLineEndCommentGo();
settings.showLineEndCommentJavaBase = mySettingsComponent.getShowLineEndCommentJavaBase(); settings.showLineEndCommentJavaBase = mySettingsComponent.getShowLineEndCommentJavaBase();
settings.showLineEndCommentKotlinBase = mySettingsComponent.getShowLineEndCommentKotlinBase(); settings.showLineEndCommentKotlinBase = mySettingsComponent.getShowLineEndCommentKotlinBase();
settings.showLineEndCommentScalaBase = mySettingsComponent.getShowLineEndCommentScalaBase();
settings.showLineEndCommentJsBase = mySettingsComponent.getShowLineEndCommentJsBase(); settings.showLineEndCommentJsBase = mySettingsComponent.getShowLineEndCommentJsBase();
settings.showLineEndCommentPhpBase = mySettingsComponent.getShowLineEndCommentPhpBase(); settings.showLineEndCommentPhpBase = mySettingsComponent.getShowLineEndCommentPhpBase();
settings.showLineEndCommentPyBase = mySettingsComponent.getShowLineEndCommentPyBase(); settings.showLineEndCommentPyBase = mySettingsComponent.getShowLineEndCommentPyBase();
@@ -134,12 +138,14 @@ public class AppSettingsConfigurable implements Configurable {
mySettingsComponent.setLineEndCache(settings.lineEndCache); mySettingsComponent.setLineEndCache(settings.lineEndCache);
mySettingsComponent.setShowLineEndCommentJava(settings.showLineEndCommentJava); mySettingsComponent.setShowLineEndCommentJava(settings.showLineEndCommentJava);
mySettingsComponent.setShowLineEndCommentKotlin(settings.showLineEndCommentKotlin); mySettingsComponent.setShowLineEndCommentKotlin(settings.showLineEndCommentKotlin);
mySettingsComponent.setShowLineEndCommentScala(settings.showLineEndCommentScala);
mySettingsComponent.setShowLineEndCommentJs(settings.showLineEndCommentJs); mySettingsComponent.setShowLineEndCommentJs(settings.showLineEndCommentJs);
mySettingsComponent.setShowLineEndCommentPhp(settings.showLineEndCommentPhp); mySettingsComponent.setShowLineEndCommentPhp(settings.showLineEndCommentPhp);
mySettingsComponent.setShowLineEndCommentPy(settings.showLineEndCommentPy); mySettingsComponent.setShowLineEndCommentPy(settings.showLineEndCommentPy);
mySettingsComponent.setShowLineEndCommentGo(settings.showLineEndCommentGo); mySettingsComponent.setShowLineEndCommentGo(settings.showLineEndCommentGo);
mySettingsComponent.setShowLineEndCommentJavaBase(settings.showLineEndCommentJavaBase); mySettingsComponent.setShowLineEndCommentJavaBase(settings.showLineEndCommentJavaBase);
mySettingsComponent.setShowLineEndCommentKotlinBase(settings.showLineEndCommentKotlinBase); mySettingsComponent.setShowLineEndCommentKotlinBase(settings.showLineEndCommentKotlinBase);
mySettingsComponent.setShowLineEndCommentScalaBase(settings.showLineEndCommentScalaBase);
mySettingsComponent.setShowLineEndCommentJsBase(settings.showLineEndCommentJsBase); mySettingsComponent.setShowLineEndCommentJsBase(settings.showLineEndCommentJsBase);
mySettingsComponent.setShowLineEndCommentPhpBase(settings.showLineEndCommentPhpBase); mySettingsComponent.setShowLineEndCommentPhpBase(settings.showLineEndCommentPhpBase);
mySettingsComponent.setShowLineEndCommentPyBase(settings.showLineEndCommentPyBase); mySettingsComponent.setShowLineEndCommentPyBase(settings.showLineEndCommentPyBase);

View File

@@ -33,6 +33,8 @@ public class AppSettingsState implements PersistentStateComponent<AppSettingsSta
public boolean showLineEndCommentJavaBase = false; public boolean showLineEndCommentJavaBase = false;
public boolean showLineEndCommentKotlin = true; public boolean showLineEndCommentKotlin = true;
public boolean showLineEndCommentKotlinBase = false; public boolean showLineEndCommentKotlinBase = false;
public boolean showLineEndCommentScala = true;
public boolean showLineEndCommentScalaBase = false;
public boolean showLineEndCommentJs = true; public boolean showLineEndCommentJs = true;
public boolean showLineEndCommentJsBase = false; public boolean showLineEndCommentJsBase = false;
public boolean showLineEndCommentPhp = true; public boolean showLineEndCommentPhp = true;

View File

@@ -11,7 +11,7 @@ Show doc comment in the Project view Tree, line End, json, other
<h2>English Note</h2> <h2>English Note</h2>
<ul> <ul>
<li>support Java Kotlin JS/TS PHP Python Go Rust C SQL <li>support Java Kotlin Scala JS/TS PHP Python Go Rust C SQL
<li>tree doc from lang or README.md pom .gradle etc. by settings <li>tree doc from lang or README.md pom .gradle etc. by settings
<li>input `doc` `docc` -> /** */ <li>input `doc` `docc` -> /** */
<li>json doc from xxx.json.tsv <li>json doc from xxx.json.tsv
@@ -56,7 +56,7 @@ Show doc comment in the Project view Tree, line End, json, other
<ul> <ul>
<li>在结构树显示 文件注释 或 项目说明 (README.md pom.xml 等,可设置) <li>在结构树显示 文件注释 或 项目说明 (README.md pom.xml 等,可设置)
<li>在行末尾显示 引用对象的文档注释,欢迎反馈您想要支持的语言,欢迎 C# 大神研究 CsLineEnd.java <li>在行末尾显示 引用对象的文档注释,欢迎反馈您想要支持的语言,欢迎 C# 大神研究 CsLineEnd.java
<li>目前支持 Java Kotlin JS/TS PHP Python Go Rust C SQL <li>目前支持 Java Kotlin Scala JS/TS PHP Python Go Rust C SQL
<li>输入 doc / docc 等生成 /** */ <li>输入 doc / docc 等生成 /** */
<li>json 字段注释从 xxx.json.tsv 读取 <li>json 字段注释从 xxx.json.tsv 读取
<li>json 字典注释从 键名.tsv 读取 <li>json 字典注释从 键名.tsv 读取
@@ -120,6 +120,8 @@ Show doc comment in the Project view Tree, line End, json, other
<depends>com.intellij.modules.platform</depends> <depends>com.intellij.modules.platform</depends>
<depends optional="true" config-file="java.xml">com.intellij.modules.java</depends> <depends optional="true" config-file="java.xml">com.intellij.modules.java</depends>
<depends optional="true" config-file="kotlin.xml">org.jetbrains.kotlin</depends> <depends optional="true" config-file="kotlin.xml">org.jetbrains.kotlin</depends>
<!--suppress PluginXmlValidity -->
<depends optional="true" config-file="scala.xml">org.intellij.scala</depends>
<depends optional="true" config-file="sql.xml">com.intellij.database</depends> <depends optional="true" config-file="sql.xml">com.intellij.database</depends>
<depends optional="true" config-file="js.xml">JavaScript</depends> <depends optional="true" config-file="js.xml">JavaScript</depends>
<depends optional="true" config-file="php.xml">com.jetbrains.php</depends> <depends optional="true" config-file="php.xml">com.jetbrains.php</depends>

View File

@@ -0,0 +1,5 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.java.ScalaLangDoc"/>
</extensions>
</idea-plugin>

View File

@@ -0,0 +1,21 @@
/**
* Class
* [[ScalaClass#fun2()]]
*/
class ScalaClass {
/**
* fun
* call [[ScalaClass#fun2()]] method
*/
private def fun(): Unit = {
fun2()
}
/**
* fun2
* @author name
*/
def fun2(): Unit = {
}
}