2.10 not doc comment | 非文档注释
This commit is contained in:
@@ -37,7 +37,7 @@ public class JsLangDoc extends BaseLangDoc {
|
||||
if (text != null) {
|
||||
return text;
|
||||
}
|
||||
if (!lineInfo.appSettings.jsDoc) {
|
||||
if (lineInfo.appSettings.showLineEndCommentJsBase) {
|
||||
return super.resolveDocRaw(lineInfo, resolve);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -31,6 +31,11 @@ public class PythonLangDoc extends BaseTagLangDoc<StructuredDocString> {
|
||||
return lineInfo.appSettings.showLineEndCommentPy;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T extends SettingsInfo> boolean parseBaseComment(@NotNull T settingsInfo) {
|
||||
return settingsInfo.appSettings.showLineEndCommentPyBase;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
protected <T extends SettingsInfo> StructuredDocString toDocElement(@NotNull T settingsInfo,
|
||||
|
||||
@@ -69,12 +69,14 @@ public abstract class BaseLangDoc extends EditorLinePainter {
|
||||
return null;
|
||||
}
|
||||
@Nullable String doc = null;
|
||||
@Nullable String text = null;
|
||||
@Nullable PsiElement refElement = element;
|
||||
while ((refElement = Prev.prevRefChild(lineInfo, refElement, refClass)) != null) {
|
||||
PsiElement parent = refElement.getParent();
|
||||
@Nullable String filterDoc = refElementDoc(lineInfo, parent);
|
||||
if (filterDoc != null) {
|
||||
doc = filterDoc;
|
||||
text = refElement.getText();
|
||||
refElement = parent;
|
||||
break;
|
||||
}
|
||||
@@ -87,24 +89,29 @@ public abstract class BaseLangDoc extends EditorLinePainter {
|
||||
if (refElement == null) {
|
||||
return doc;
|
||||
}
|
||||
String text = refElement.getText();
|
||||
boolean set = text.startsWith("set");
|
||||
PsiElement parent = refElement.getParent();
|
||||
@Nullable String before = refElementDoc(lineInfo, parent);
|
||||
if (before != null) {
|
||||
doc = mergeDoc(set, lineInfo.appSettings.getToSet, before, doc);
|
||||
doc = mergeDoc(refElement.getText(), text, lineInfo.appSettings.getToSet, before, doc);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private String mergeDoc(boolean set, boolean getToSet, String before, String doc) {
|
||||
if (set) {
|
||||
private String mergeDoc(@NotNull String beforeText, @NotNull String text, boolean getToSet, String before, String doc) {
|
||||
if (beforeText.startsWith("set")) {
|
||||
beforeText = beforeText.substring(3);
|
||||
if (text.startsWith("get")) {
|
||||
text = text.substring(3);
|
||||
} else if (text.startsWith("is")) {
|
||||
text = text.substring(2);
|
||||
}
|
||||
boolean same = beforeText.equals(text);
|
||||
if (getToSet) {
|
||||
// because lambda is -> or =>
|
||||
doc = doc + " --> " + before;
|
||||
doc = doc + (same ? " ==> " : " --> ") + before;
|
||||
} else {
|
||||
doc = before + " = " + doc;
|
||||
doc = before + (same ? " <== " : " <-- ") + doc;
|
||||
}
|
||||
} else {
|
||||
doc = before + " | " + doc;
|
||||
|
||||
@@ -11,8 +11,8 @@ public abstract class BaseTagLangDoc<DocElement> extends BaseLangDoc {
|
||||
public @Nullable <T extends SettingsInfo> String resolveDocPrint(@NotNull T settingsInfo,
|
||||
@NotNull PsiElement resolve) {
|
||||
@Nullable DocElement docElement = toDocElement(settingsInfo, resolve);
|
||||
if (docElement == null) {
|
||||
return null;
|
||||
if (docElement == null && parseBaseComment(settingsInfo)) {
|
||||
return super.resolveDocPrint(settingsInfo, resolve);
|
||||
}
|
||||
return docElementToStr(settingsInfo, docElement);
|
||||
}
|
||||
@@ -44,6 +44,8 @@ public abstract class BaseTagLangDoc<DocElement> extends BaseLangDoc {
|
||||
return text;
|
||||
}
|
||||
|
||||
protected abstract <T extends SettingsInfo> boolean parseBaseComment(T settingsInfo);
|
||||
|
||||
@Nullable
|
||||
protected abstract <T extends SettingsInfo> DocElement toDocElement(@NotNull T settingsInfo,
|
||||
@NotNull PsiElement resolve);
|
||||
|
||||
@@ -18,7 +18,7 @@ public class Prev {
|
||||
@Nullable
|
||||
public static PsiElement prevRefChild(@NotNull LineInfo lineInfo, @NotNull PsiElement element,
|
||||
@NotNull Class<? extends PsiElement> refClass) {
|
||||
PsiElement prevParent = element.getParent();
|
||||
PsiElement prevParent = refClassParent(element, refClass);
|
||||
while ((element = PsiTreeUtil.prevVisibleLeaf(element)) != null) {
|
||||
if (element.getTextRange().getEndOffset() < lineInfo.startOffset) {
|
||||
return null;
|
||||
@@ -26,7 +26,8 @@ public class Prev {
|
||||
@Nullable PsiElement parent = refClassParent(element, refClass);
|
||||
if (parent != null) {
|
||||
// skip b in a.b.c
|
||||
if (prevParent.getTextRange().getEndOffset() < lineInfo.endOffset
|
||||
if (prevParent != null
|
||||
&& prevParent.getTextRange().getEndOffset() < lineInfo.endOffset
|
||||
&& PsiTreeUtil.findChildOfType(prevParent, refClass) == parent) {
|
||||
prevParent = parent;
|
||||
} else {
|
||||
|
||||
@@ -58,7 +58,10 @@ public class ResolveDoc {
|
||||
if (document == null) {
|
||||
return null;
|
||||
}
|
||||
@Nullable PsiElement psiElement = Prev.prevCompactElement(lineInfo, resolve, document);
|
||||
@Nullable PsiElement psiElement = PsiTreeUtil.getChildOfType(resolve, PsiComment.class);
|
||||
if (psiElement == null) {
|
||||
psiElement = Prev.prevCompactElement(lineInfo, resolve, document);
|
||||
}
|
||||
if (!keywords.isEmpty()) {
|
||||
while (psiElement != null) {
|
||||
String text = psiElement.getText();
|
||||
|
||||
Reference in New Issue
Block a user