feat(JavaLangDoc): 2.14 java enum doc for Yes(1, "Yes") | java 枚举注释
This commit is contained in:
@@ -8,6 +8,7 @@ import com.intellij.psi.javadoc.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import io.github.linwancen.plugin.show.bean.LineInfo;
|
||||
import io.github.linwancen.plugin.show.bean.SettingsInfo;
|
||||
import io.github.linwancen.plugin.show.java.doc.EnumDoc;
|
||||
import io.github.linwancen.plugin.show.java.doc.OwnerToPsiDocUtils;
|
||||
import io.github.linwancen.plugin.show.java.doc.PsiMethodToPsiDoc;
|
||||
import io.github.linwancen.plugin.show.java.line.OwnerToPsiDocSkip;
|
||||
@@ -84,6 +85,9 @@ public class JavaLangDoc extends BaseTagLangDoc<PsiDocComment> {
|
||||
if (info.appSettings.fromParam && resolve instanceof PsiParameter) {
|
||||
return paramDoc((PsiParameter) resolve);
|
||||
}
|
||||
if (info.appSettings.enumDoc && resolve instanceof PsiEnumConstant) {
|
||||
return EnumDoc.enumDoc((PsiEnumConstant) resolve);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package io.github.linwancen.plugin.show.java.doc;
|
||||
|
||||
import com.intellij.psi.PsiEnumConstant;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
import com.intellij.psi.PsiExpressionList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class EnumDoc {
|
||||
|
||||
/**
|
||||
* Yes(1, "Yes") show 1-Yes
|
||||
*/
|
||||
@Nullable
|
||||
public static String enumDoc(@NotNull PsiEnumConstant psiEnumConstant) {
|
||||
@Nullable PsiExpressionList args = psiEnumConstant.getArgumentList();
|
||||
if (args == null) {
|
||||
return null;
|
||||
}
|
||||
@NotNull PsiExpression[] exps = args.getExpressions();
|
||||
if (exps.length == 0) {
|
||||
return null;
|
||||
}
|
||||
return Arrays.stream(exps)
|
||||
.map(exp -> exp.getText().replace("\"", ""))
|
||||
.collect(Collectors.joining("-"));
|
||||
}
|
||||
}
|
||||
@@ -37,6 +37,7 @@ public class AppSettingsComponent {
|
||||
private final JBCheckBox getToSet = new JBCheckBox("get --> set ");
|
||||
private final JBCheckBox fromNew = new JBCheckBox("java new ");
|
||||
private final JBCheckBox fromParam = new JBCheckBox("java @param ");
|
||||
private final JBCheckBox enumDoc = new JBCheckBox("java enum ");
|
||||
private final JBCheckBox skipAnnotation = new JBCheckBox(ShowBundle.message("skip.anno"));
|
||||
private final JBCheckBox skipAscii = new JBCheckBox(ShowBundle.message("skip.english"));
|
||||
private final JBCheckBox skipBlank = new JBCheckBox(ShowBundle.message("skip.blank"));
|
||||
@@ -90,7 +91,7 @@ public class AppSettingsComponent {
|
||||
new JBLabel(ShowBundle.message("prefix")), lineEndPrefix);
|
||||
FormBuilder formBuilder = FormBuilder.createFormBuilder()
|
||||
.addSeparator()
|
||||
.addComponent(JPanelFactory.of(fromNew, fromParam, getToSet, skipAnnotation, skipAscii, skipBlank), 1)
|
||||
.addComponent(JPanelFactory.of(fromNew, fromParam, enumDoc, getToSet, skipAnnotation, skipAscii, skipBlank), 1)
|
||||
.addSeparator()
|
||||
.addComponent(text)
|
||||
.addSeparator();
|
||||
@@ -288,6 +289,14 @@ public class AppSettingsComponent {
|
||||
fromParam.setSelected(newStatus);
|
||||
}
|
||||
|
||||
public boolean getEnumDoc() {
|
||||
return enumDoc.isSelected();
|
||||
}
|
||||
|
||||
public void setEnumDoc(boolean newStatus) {
|
||||
enumDoc.setSelected(newStatus);
|
||||
}
|
||||
|
||||
public boolean getSkipAnnotation() {
|
||||
return skipAnnotation.isSelected();
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ public class AppSettingsConfigurable implements Configurable {
|
||||
modified |= mySettingsComponent.getGetToSet() != settings.getToSet;
|
||||
modified |= mySettingsComponent.getFromNew() != settings.fromNew;
|
||||
modified |= mySettingsComponent.getFromParam() != settings.fromParam;
|
||||
modified |= mySettingsComponent.getEnumDoc() != settings.enumDoc;
|
||||
modified |= mySettingsComponent.getSkipAnnotation() != settings.skipAnnotation;
|
||||
modified |= mySettingsComponent.getSkipAscii() != settings.skipAscii;
|
||||
modified |= mySettingsComponent.getSkipBlank() != settings.skipBlank;
|
||||
@@ -102,6 +103,7 @@ public class AppSettingsConfigurable implements Configurable {
|
||||
settings.getToSet = mySettingsComponent.getGetToSet();
|
||||
settings.fromNew = mySettingsComponent.getFromNew();
|
||||
settings.fromParam = mySettingsComponent.getFromParam();
|
||||
settings.enumDoc = mySettingsComponent.getEnumDoc();
|
||||
settings.skipAnnotation = mySettingsComponent.getSkipAnnotation();
|
||||
settings.skipAscii = mySettingsComponent.getSkipAscii();
|
||||
settings.skipBlank = mySettingsComponent.getSkipBlank();
|
||||
@@ -143,6 +145,7 @@ public class AppSettingsConfigurable implements Configurable {
|
||||
mySettingsComponent.setGetToSet(settings.getToSet);
|
||||
mySettingsComponent.setFromNew(settings.fromNew);
|
||||
mySettingsComponent.setFromParam(settings.fromParam);
|
||||
mySettingsComponent.setEnumDoc(settings.enumDoc);
|
||||
mySettingsComponent.setSkipAnnotation(settings.skipAnnotation);
|
||||
mySettingsComponent.setSkipAscii(settings.skipAscii);
|
||||
mySettingsComponent.setSkipBlank(settings.skipBlank);
|
||||
|
||||
@@ -58,6 +58,7 @@ public class AppSettingsState implements PersistentStateComponent<AppSettingsSta
|
||||
public boolean getToSet = true;
|
||||
public boolean fromNew = true;
|
||||
public boolean fromParam = false;
|
||||
public boolean enumDoc = true;
|
||||
public boolean skipAnnotation = true;
|
||||
public boolean skipAscii = !"en".equals(Locale.getDefault().getLanguage());
|
||||
public boolean skipBlank = true;
|
||||
|
||||
@@ -4,10 +4,12 @@ import io.github.linwancen.plugin.show.demo.java.obj.Anno;
|
||||
import io.github.linwancen.plugin.show.demo.java.obj.Child;
|
||||
import io.github.linwancen.plugin.show.demo.java.obj.Face;
|
||||
import io.github.linwancen.plugin.show.demo.java.obj.Parent;
|
||||
import io.github.linwancen.plugin.show.demo.java.obj.YesOrNoEnum;
|
||||
|
||||
@Anno
|
||||
public class Ref implements Face {
|
||||
public static void method() {
|
||||
YesOrNoEnum enumDoc = YesOrNoEnum.YES;
|
||||
Parent noneNewMethod = new Call();
|
||||
Face noneNewDoc = new Ref();
|
||||
Child child = new Child(true);
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package io.github.linwancen.plugin.show.demo.java.obj;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
public enum YesOrNoEnum {
|
||||
YES("1", "是"),
|
||||
NO("0", "否"),
|
||||
;
|
||||
|
||||
public final String code;
|
||||
public final String desc;
|
||||
|
||||
YesOrNoEnum(String code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return code + '-' + desc;
|
||||
}
|
||||
|
||||
private static final LinkedHashMap<String, YesOrNoEnum> map;
|
||||
|
||||
static {
|
||||
map = new LinkedHashMap<>();
|
||||
for (YesOrNoEnum value : values()) {
|
||||
map.put(value.code, value);
|
||||
}
|
||||
}
|
||||
|
||||
public static YesOrNoEnum fromCode(String code) {
|
||||
return map.get(code);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user