mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
preserve comments: split declarations
This commit is contained in:
+4
-2
@@ -27,6 +27,7 @@ import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
@@ -147,11 +148,12 @@ public class SplitDeclarationAction extends PsiElementBaseIntentionAction {
|
||||
.createStatementFromText(var.getName() + "=xxx;", null);
|
||||
statement = (PsiExpressionStatement)CodeStyleManager.getInstance(project).reformat(statement);
|
||||
PsiAssignmentExpression assignment = (PsiAssignmentExpression)statement.getExpression();
|
||||
CommentTracker commentTracker = new CommentTracker();
|
||||
PsiExpression initializer = var.getInitializer();
|
||||
PsiExpression rExpression = RefactoringUtil.convertInitializerToNormalExpression(initializer, var.getType());
|
||||
|
||||
assignment.getRExpression().replace(rExpression);
|
||||
initializer.delete();
|
||||
commentTracker.replace(assignment.getRExpression(), rExpression);
|
||||
commentTracker.deleteAndRestoreComments(initializer);
|
||||
|
||||
PsiElement block = decl.getParent();
|
||||
if (block instanceof PsiForStatement) {
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Split into declaration and assignment" "true"
|
||||
import java.util.*;
|
||||
class Test {
|
||||
{
|
||||
List<String> l //end line comment
|
||||
;
|
||||
l = new ArrayList<>();
|
||||
}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Split into declaration and assignment" "true"
|
||||
import java.util.*;
|
||||
class Test {
|
||||
{
|
||||
List<String> l <caret>= new ArrayList//end line comment
|
||||
<>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user