AddJavadocIntention: disable at field initializers

Add JavaDoc was available at initializer in some rare cases, e.g. "String foo = b<caret>ar;" (initializer is a simple reference), which was inconsistent and confusing (will the action add JavaDoc to "foo" or to "bar"?
This commit is contained in:
Tagir Valeev
2018-07-06 13:58:47 +07:00
parent ce5858ed26
commit cf64d92692
2 changed files with 11 additions and 0 deletions
@@ -25,6 +25,9 @@ public class AddJavadocIntention extends BaseElementAtCaretIntentionAction imple
element instanceof PsiJavaCodeReferenceElement ||
element instanceof PsiJavaModuleReferenceElement) {
PsiElement targetElement = PsiTreeUtil.skipParentsOfType(element, PsiIdentifier.class, PsiJavaCodeReferenceElement.class, PsiJavaModuleReferenceElement.class);
if (targetElement instanceof PsiVariable && PsiTreeUtil.isAncestor(((PsiVariable)targetElement).getInitializer(), element, false)) {
return false;
}
if (targetElement instanceof PsiJavaDocumentedElement &&
!(targetElement instanceof PsiTypeParameter) &&
!(targetElement instanceof PsiAnonymousClass)) {
@@ -0,0 +1,8 @@
// "Add Javadoc" "false"
class Test {
String foo = "xyz";
String bar = f<caret>oo;
}