feat(JavaLangDoc): 2.29 show java field value | 显示 Java 字段值
This commit is contained in:
@@ -4,7 +4,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group 'io.github.linwancen'
|
group 'io.github.linwancen'
|
||||||
version '2.28.0.' + (new Date().format('yyyy.MM.dd_HH.mm'))
|
version '2.29.0.' + (new Date().format('yyyy.MM.dd_HH.mm'))
|
||||||
|
|
||||||
patchPluginXml {
|
patchPluginXml {
|
||||||
// The performance of 2019.3 has been greatly improved.
|
// The performance of 2019.3 has been greatly improved.
|
||||||
@@ -15,6 +15,7 @@ patchPluginXml {
|
|||||||
changeNotes = """
|
changeNotes = """
|
||||||
<h2>English Change Notes:</h2>
|
<h2>English Change Notes:</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>2.29 Add line-end-comment java field value
|
||||||
<li>2.28 Add app-setting Alt X switch line end comment
|
<li>2.28 Add app-setting Alt X switch line end comment
|
||||||
<li>2.27 Add project-view-tree use 1st or 2nd line to file comment
|
<li>2.27 Add project-view-tree use 1st or 2nd line to file comment
|
||||||
<li>2.26 Add External Comment load *.sql ddl comment
|
<li>2.26 Add External Comment load *.sql ddl comment
|
||||||
@@ -72,6 +73,7 @@ patchPluginXml {
|
|||||||
|
|
||||||
<h2>中文更新说明:</h2>
|
<h2>中文更新说明:</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>2.29 增加 行末注释 Java 字段值
|
||||||
<li>2.28 增加 全局设置 Alt + X 行末注释开关
|
<li>2.28 增加 全局设置 Alt + X 行末注释开关
|
||||||
<li>2.27 增加 文件树注释 用第 1 或第 2 行注释当文件注释
|
<li>2.27 增加 文件树注释 用第 1 或第 2 行注释当文件注释
|
||||||
<li>2.26 增加 外部注释 读取 *.sql ddl 注释
|
<li>2.26 增加 外部注释 读取 *.sql ddl 注释
|
||||||
|
|||||||
@@ -6,11 +6,14 @@ import com.intellij.openapi.project.Project;
|
|||||||
import com.intellij.psi.PsiDocCommentOwner;
|
import com.intellij.psi.PsiDocCommentOwner;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.psi.PsiEnumConstant;
|
import com.intellij.psi.PsiEnumConstant;
|
||||||
|
import com.intellij.psi.PsiExpression;
|
||||||
import com.intellij.psi.PsiField;
|
import com.intellij.psi.PsiField;
|
||||||
import com.intellij.psi.PsiJavaCodeReferenceElement;
|
import com.intellij.psi.PsiJavaCodeReferenceElement;
|
||||||
import com.intellij.psi.PsiJvmModifiersOwner;
|
import com.intellij.psi.PsiJvmModifiersOwner;
|
||||||
|
import com.intellij.psi.PsiLiteralExpression;
|
||||||
import com.intellij.psi.PsiMethod;
|
import com.intellij.psi.PsiMethod;
|
||||||
import com.intellij.psi.PsiParameter;
|
import com.intellij.psi.PsiParameter;
|
||||||
|
import com.intellij.psi.PsiReferenceExpression;
|
||||||
import com.intellij.psi.PsiWhiteSpace;
|
import com.intellij.psi.PsiWhiteSpace;
|
||||||
import com.intellij.psi.javadoc.PsiDocComment;
|
import com.intellij.psi.javadoc.PsiDocComment;
|
||||||
import com.intellij.psi.javadoc.PsiDocTag;
|
import com.intellij.psi.javadoc.PsiDocTag;
|
||||||
@@ -18,20 +21,22 @@ import com.intellij.psi.javadoc.PsiDocTagValue;
|
|||||||
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;
|
||||||
import io.github.linwancen.plugin.show.java.doc.AnnoDocJava;
|
|
||||||
import io.github.linwancen.plugin.show.java.doc.EnumDoc;
|
|
||||||
import io.github.linwancen.plugin.show.java.doc.NewDoc;
|
import io.github.linwancen.plugin.show.java.doc.NewDoc;
|
||||||
import io.github.linwancen.plugin.show.java.doc.ParamDoc;
|
|
||||||
import io.github.linwancen.plugin.show.java.doc.PsiMethodToPsiDoc;
|
import io.github.linwancen.plugin.show.java.doc.PsiMethodToPsiDoc;
|
||||||
import io.github.linwancen.plugin.show.java.line.OwnerToPsiDocSkip;
|
import io.github.linwancen.plugin.show.java.line.OwnerToPsiDocSkip;
|
||||||
import io.github.linwancen.plugin.show.java.line.SkipUtils;
|
import io.github.linwancen.plugin.show.java.line.SkipUtils;
|
||||||
|
import io.github.linwancen.plugin.show.java.resolve.AnnoDocJava;
|
||||||
|
import io.github.linwancen.plugin.show.java.resolve.EnumDoc;
|
||||||
|
import io.github.linwancen.plugin.show.java.resolve.ParamDoc;
|
||||||
import io.github.linwancen.plugin.show.lang.base.BaseTagLangDoc;
|
import io.github.linwancen.plugin.show.lang.base.BaseTagLangDoc;
|
||||||
import io.github.linwancen.plugin.show.lang.base.DocFilter;
|
import io.github.linwancen.plugin.show.lang.base.DocFilter;
|
||||||
import io.github.linwancen.plugin.show.lang.base.PsiUnSaveUtils;
|
import io.github.linwancen.plugin.show.lang.base.PsiUnSaveUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class JavaLangDoc extends BaseTagLangDoc<PsiDocComment> {
|
public class JavaLangDoc extends BaseTagLangDoc<PsiDocComment> {
|
||||||
|
|
||||||
@@ -82,6 +87,55 @@ public class JavaLangDoc extends BaseTagLangDoc<PsiDocComment> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable <T extends SettingsInfo> String resolveDocPrint(@NotNull T info, @NotNull PsiElement resolve) {
|
public @Nullable <T extends SettingsInfo> String resolveDocPrint(@NotNull T info, @NotNull PsiElement resolve) {
|
||||||
|
@Nullable String doc = resolveDocPrintSrc(info, resolve);
|
||||||
|
if (!(resolve instanceof PsiField)) {
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
@NotNull PsiField psiField = (PsiField) resolve;
|
||||||
|
@Nullable PsiExpression initializer = psiField.getInitializer();
|
||||||
|
if (initializer == null) {
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
// field init reference
|
||||||
|
@NotNull Set<PsiElement> loopCheck = new HashSet<>();
|
||||||
|
loopCheck.add(resolve);
|
||||||
|
while (initializer instanceof PsiReferenceExpression) {
|
||||||
|
try {
|
||||||
|
@Nullable PsiElement r = ((PsiReferenceExpression) initializer).resolve();
|
||||||
|
if (r == null || !loopCheck.add(r)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (r instanceof PsiField) {
|
||||||
|
initializer = ((PsiField) r).getInitializer();
|
||||||
|
}
|
||||||
|
if (doc == null) {
|
||||||
|
doc = resolveDocPrintSrc(info, r);
|
||||||
|
}
|
||||||
|
} catch (Throwable ignore) {}
|
||||||
|
}
|
||||||
|
if (!info.appSettings.fieldValue) {
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
if (!(initializer instanceof PsiLiteralExpression)) {
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
@Nullable Object value = ((PsiLiteralExpression) initializer).getValue();
|
||||||
|
if (value == null) {
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
String init = value.toString();
|
||||||
|
// use not ASCII space not skip
|
||||||
|
if (doc == null) {
|
||||||
|
return " = " + init;
|
||||||
|
}
|
||||||
|
// skip like 1-YES
|
||||||
|
if (doc.contains(init) || psiField.getName().contains(init)) {
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
return doc + " = " + init;
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T extends SettingsInfo> @Nullable String resolveDocPrintSrc(@NotNull T info, @NotNull PsiElement resolve) {
|
||||||
if (SkipUtils.skipSign(info, resolve)) {
|
if (SkipUtils.skipSign(info, resolve)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.intellij.psi.impl.file.PsiPackageBase;
|
|||||||
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;
|
||||||
import io.github.linwancen.plugin.show.java.kt.AnnoDocKt;
|
import io.github.linwancen.plugin.show.java.resolve.AnnoDocKt;
|
||||||
import io.github.linwancen.plugin.show.lang.base.BaseTagLangDoc;
|
import io.github.linwancen.plugin.show.lang.base.BaseTagLangDoc;
|
||||||
import io.github.linwancen.plugin.show.lang.base.DocFilter;
|
import io.github.linwancen.plugin.show.lang.base.DocFilter;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.linwancen.plugin.show.java.doc;
|
package io.github.linwancen.plugin.show.java.resolve;
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.psi.JavaPsiFacade;
|
import com.intellij.psi.JavaPsiFacade;
|
||||||
@@ -11,6 +11,7 @@ import com.intellij.psi.PsiDocCommentOwner;
|
|||||||
import com.intellij.psi.PsiField;
|
import com.intellij.psi.PsiField;
|
||||||
import com.intellij.psi.PsiJvmModifiersOwner;
|
import com.intellij.psi.PsiJvmModifiersOwner;
|
||||||
import com.intellij.psi.PsiMethod;
|
import com.intellij.psi.PsiMethod;
|
||||||
|
import io.github.linwancen.plugin.show.java.doc.PsiMethodToPsiDoc;
|
||||||
import io.github.linwancen.plugin.show.lang.base.BaseAnnoDoc;
|
import io.github.linwancen.plugin.show.lang.base.BaseAnnoDoc;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.linwancen.plugin.show.java.kt;
|
package io.github.linwancen.plugin.show.java.resolve;
|
||||||
|
|
||||||
import io.github.linwancen.plugin.show.lang.base.BaseAnnoDoc;
|
import io.github.linwancen.plugin.show.lang.base.BaseAnnoDoc;
|
||||||
import io.github.linwancen.plugin.show.lang.base.PsiUnSaveUtils;
|
import io.github.linwancen.plugin.show.lang.base.PsiUnSaveUtils;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.linwancen.plugin.show.java.doc;
|
package io.github.linwancen.plugin.show.java.resolve;
|
||||||
|
|
||||||
import com.intellij.psi.PsiEnumConstant;
|
import com.intellij.psi.PsiEnumConstant;
|
||||||
import com.intellij.psi.PsiExpression;
|
import com.intellij.psi.PsiExpression;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.linwancen.plugin.show.java.doc;
|
package io.github.linwancen.plugin.show.java.resolve;
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.psi.PsiMethod;
|
import com.intellij.psi.PsiMethod;
|
||||||
@@ -7,6 +7,7 @@ import com.intellij.psi.javadoc.PsiDocComment;
|
|||||||
import com.intellij.psi.javadoc.PsiDocTag;
|
import com.intellij.psi.javadoc.PsiDocTag;
|
||||||
import com.intellij.psi.javadoc.PsiDocTagValue;
|
import com.intellij.psi.javadoc.PsiDocTagValue;
|
||||||
import com.intellij.psi.util.PsiTreeUtil;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
|
import io.github.linwancen.plugin.show.java.doc.PsiMethodToPsiDoc;
|
||||||
import io.github.linwancen.plugin.show.lang.base.PsiUnSaveUtils;
|
import io.github.linwancen.plugin.show.lang.base.PsiUnSaveUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
/**
|
||||||
|
* special resolve element to doc.
|
||||||
|
* <br>Call by {@link io.github.linwancen.plugin.show.java.JavaLangDoc#resolveDocPrint}
|
||||||
|
*/
|
||||||
|
package io.github.linwancen.plugin.show.java.resolve;
|
||||||
@@ -51,6 +51,7 @@ public class AppSettingsComponent {
|
|||||||
private final JBCheckBox skipBlank = new JBCheckBox(ShowBundle.message("skip.blank"));
|
private final JBCheckBox skipBlank = new JBCheckBox(ShowBundle.message("skip.blank"));
|
||||||
private final JBCheckBox skipAnnotation = new JBCheckBox(ShowBundle.message("skip.anno"));
|
private final JBCheckBox skipAnnotation = new JBCheckBox(ShowBundle.message("skip.anno"));
|
||||||
private final JBCheckBox getToSet = new JBCheckBox("get --> set ");
|
private final JBCheckBox getToSet = new JBCheckBox("get --> set ");
|
||||||
|
private final JBCheckBox fieldValue = new JBCheckBox("field value");
|
||||||
private final JBCheckBox fromNew = new JBCheckBox("java new ");
|
private final JBCheckBox fromNew = new JBCheckBox("java new ");
|
||||||
private final JBCheckBox fromParam = new JBCheckBox("java @param ");
|
private final JBCheckBox fromParam = new JBCheckBox("java @param ");
|
||||||
private final JBCheckBox enumDoc = new JBCheckBox("java enum ");
|
private final JBCheckBox enumDoc = new JBCheckBox("java enum ");
|
||||||
@@ -353,6 +354,14 @@ public class AppSettingsComponent {
|
|||||||
getToSet.setSelected(newStatus);
|
getToSet.setSelected(newStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getFieldValue() {
|
||||||
|
return fieldValue.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(boolean newStatus) {
|
||||||
|
fieldValue.setSelected(newStatus);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getFromNew() {
|
public boolean getFromNew() {
|
||||||
return fromNew.isSelected();
|
return fromNew.isSelected();
|
||||||
}
|
}
|
||||||
@@ -468,7 +477,7 @@ public class AppSettingsComponent {
|
|||||||
new JBLabel(ShowBundle.message("prefix")), lineEndPrefix);
|
new JBLabel(ShowBundle.message("prefix")), lineEndPrefix);
|
||||||
FormBuilder formBuilder = FormBuilder.createFormBuilder()
|
FormBuilder formBuilder = FormBuilder.createFormBuilder()
|
||||||
.addSeparator()
|
.addSeparator()
|
||||||
.addComponent(JPanelFactory.of(skipAscii, skipBlank, skipAnnotation, getToSet), 1)
|
.addComponent(JPanelFactory.of(skipAscii, skipBlank, skipAnnotation, getToSet, fieldValue), 1)
|
||||||
.addComponent(JPanelFactory.of(fromNew, fromParam, enumDoc), 1)
|
.addComponent(JPanelFactory.of(fromNew, fromParam, enumDoc), 1)
|
||||||
.addSeparator()
|
.addSeparator()
|
||||||
.addComponent(text)
|
.addComponent(text)
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ public class AppSettingsConfigurable implements Configurable {
|
|||||||
modified |= mySettingsComponent.getSkipBlank() != settings.skipBlank;
|
modified |= mySettingsComponent.getSkipBlank() != settings.skipBlank;
|
||||||
modified |= mySettingsComponent.getSkipAnnotation() != settings.skipAnnotation;
|
modified |= mySettingsComponent.getSkipAnnotation() != settings.skipAnnotation;
|
||||||
modified |= mySettingsComponent.getGetToSet() != settings.getToSet;
|
modified |= mySettingsComponent.getGetToSet() != settings.getToSet;
|
||||||
|
modified |= mySettingsComponent.getFieldValue() != settings.fieldValue;
|
||||||
|
|
||||||
modified |= mySettingsComponent.getFromNew() != settings.fromNew;
|
modified |= mySettingsComponent.getFromNew() != settings.fromNew;
|
||||||
modified |= mySettingsComponent.getFromParam() != settings.fromParam;
|
modified |= mySettingsComponent.getFromParam() != settings.fromParam;
|
||||||
@@ -131,6 +132,7 @@ public class AppSettingsConfigurable implements Configurable {
|
|||||||
settings.skipBlank = mySettingsComponent.getSkipBlank();
|
settings.skipBlank = mySettingsComponent.getSkipBlank();
|
||||||
settings.skipAnnotation = mySettingsComponent.getSkipAnnotation();
|
settings.skipAnnotation = mySettingsComponent.getSkipAnnotation();
|
||||||
settings.getToSet = mySettingsComponent.getGetToSet();
|
settings.getToSet = mySettingsComponent.getGetToSet();
|
||||||
|
settings.fieldValue = mySettingsComponent.getFieldValue();
|
||||||
|
|
||||||
settings.fromNew = mySettingsComponent.getFromNew();
|
settings.fromNew = mySettingsComponent.getFromNew();
|
||||||
settings.fromParam = mySettingsComponent.getFromParam();
|
settings.fromParam = mySettingsComponent.getFromParam();
|
||||||
@@ -187,6 +189,7 @@ public class AppSettingsConfigurable implements Configurable {
|
|||||||
mySettingsComponent.setSkipBlank(settings.skipBlank);
|
mySettingsComponent.setSkipBlank(settings.skipBlank);
|
||||||
mySettingsComponent.setSkipAnnotation(settings.skipAnnotation);
|
mySettingsComponent.setSkipAnnotation(settings.skipAnnotation);
|
||||||
mySettingsComponent.setGetToSet(settings.getToSet);
|
mySettingsComponent.setGetToSet(settings.getToSet);
|
||||||
|
mySettingsComponent.setFieldValue(settings.fieldValue);
|
||||||
|
|
||||||
mySettingsComponent.setFromNew(settings.fromNew);
|
mySettingsComponent.setFromNew(settings.fromNew);
|
||||||
mySettingsComponent.setFromParam(settings.fromParam);
|
mySettingsComponent.setFromParam(settings.fromParam);
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ public class AppSettingsState implements PersistentStateComponent<AppSettingsSta
|
|||||||
public boolean skipBlank = true;
|
public boolean skipBlank = true;
|
||||||
public boolean skipAnnotation = true;
|
public boolean skipAnnotation = true;
|
||||||
public boolean getToSet = true;
|
public boolean getToSet = true;
|
||||||
|
public boolean fieldValue = true;
|
||||||
public boolean fromNew = true;
|
public boolean fromNew = true;
|
||||||
public boolean fromParam = false;
|
public boolean fromParam = false;
|
||||||
public boolean enumDoc = true;
|
public boolean enumDoc = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user