mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
field can be local: preserve javadoc if any (IDEA-72663 )
This commit is contained in:
+17
@@ -25,6 +25,7 @@ import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.codeInspection.ProblemsHolder;
|
||||
import com.intellij.codeInspection.ex.BaseLocalInspectionTool;
|
||||
import com.intellij.codeInspection.util.SpecialAnnotationsUtil;
|
||||
import com.intellij.lang.java.JavaCommenter;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.ScrollType;
|
||||
@@ -39,6 +40,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -262,6 +264,7 @@ public class FieldCanBeLocalInspection extends BaseLocalInspectionTool {
|
||||
PsiField myField = PsiTreeUtil.getParentOfType(element, PsiField.class);
|
||||
if (myField == null || !myField.isValid()) return; //weird. should not get here when field becomes invalid
|
||||
|
||||
final PsiDocComment docComment = myField.getDocComment();
|
||||
final Collection<PsiReference> refs = ReferencesSearch.search(myField).findAll();
|
||||
if (refs.isEmpty()) return;
|
||||
Set<PsiReference> refsSet = new HashSet<PsiReference>(refs);
|
||||
@@ -308,6 +311,20 @@ public class FieldCanBeLocalInspection extends BaseLocalInspectionTool {
|
||||
}
|
||||
|
||||
if (newDeclaration != null) {
|
||||
if (docComment != null) {
|
||||
final StringBuilder buf = new StringBuilder();
|
||||
for (PsiElement psiElement : docComment.getDescriptionElements()) {
|
||||
buf.append(psiElement.getText());
|
||||
}
|
||||
if (buf.length() > 0) {
|
||||
final JavaCommenter commenter = new JavaCommenter();
|
||||
final PsiComment comment = JavaPsiFacade.getElementFactory(project)
|
||||
.createCommentFromText(commenter.getBlockCommentPrefix() +
|
||||
buf.toString() +
|
||||
commenter.getBlockCommentSuffix(), newDeclaration);
|
||||
newDeclaration.getParent().addBefore(comment, newDeclaration);
|
||||
}
|
||||
}
|
||||
final PsiFile psiFile = myField.getContainingFile();
|
||||
final Editor editor = FileEditorManager.getInstance(project).getSelectedTextEditor();
|
||||
if (editor != null && IJSwingUtilities.hasFocus(editor.getComponent())) {
|
||||
|
||||
Reference in New Issue
Block a user