mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
DeclarationJoinLinesHandler#joinDeclarationAndAssignment
GitOrigin-RevId: 6eee7012c7bdb46c8d5459f07fde28be0e7f4726
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e52c715683
commit
7b5dcb3d80
+26
@@ -27,6 +27,7 @@ import com.intellij.psi.util.PsiPrecedenceUtil;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -165,4 +166,29 @@ public class DeclarationJoinLinesHandler implements JoinLinesHandlerDelegate {
|
||||
}
|
||||
return varCopy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Join declaration and assignment
|
||||
* @param variable variable
|
||||
* @param assignment assignment (assuming its parent is expression statement)
|
||||
* @return new variable
|
||||
*/
|
||||
public static PsiLocalVariable joinDeclarationAndAssignment(@NotNull PsiLocalVariable variable, @NotNull PsiAssignmentExpression assignment) {
|
||||
PsiExpression initializer = getInitializerExpression(variable, assignment);
|
||||
PsiElement elementToReplace = assignment.getParent();
|
||||
if (elementToReplace != null) {
|
||||
PsiLocalVariable varCopy = copyVarWithInitializer(variable, initializer);
|
||||
if (varCopy != null) {
|
||||
String text = varCopy.getText();
|
||||
|
||||
CommentTracker tracker = new CommentTracker();
|
||||
tracker.markUnchanged(initializer);
|
||||
tracker.markUnchanged(variable);
|
||||
tracker.delete(variable);
|
||||
PsiDeclarationStatement decl = (PsiDeclarationStatement)tracker.replaceAndRestoreComments(elementToReplace, text);
|
||||
return ((PsiLocalVariable)decl.getDeclaredElements()[0]);
|
||||
}
|
||||
}
|
||||
return variable;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-19
@@ -11,7 +11,6 @@ import com.intellij.psi.util.PsiExpressionTrimRenderer;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
import com.siyeh.ig.psiutils.SideEffectChecker;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
@@ -226,24 +225,7 @@ public class JoinDeclarationAndAssignmentJavaInspection extends AbstractBaseJava
|
||||
}
|
||||
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(assignmentExpression.getContainingFile())) return;
|
||||
WriteAction.run(() -> applyFixImpl(context));
|
||||
}
|
||||
}
|
||||
|
||||
public void applyFixImpl(@NotNull Context context) {
|
||||
PsiExpression initializer = DeclarationJoinLinesHandler.getInitializerExpression(context.myVariable, context.myAssignment);
|
||||
PsiElement elementToReplace = context.myAssignment.getParent();
|
||||
if (elementToReplace != null) {
|
||||
PsiLocalVariable varCopy = DeclarationJoinLinesHandler.copyVarWithInitializer(context.myVariable, initializer);
|
||||
if (varCopy != null) {
|
||||
String text = varCopy.getText();
|
||||
|
||||
CommentTracker tracker = new CommentTracker();
|
||||
tracker.markUnchanged(initializer);
|
||||
tracker.markUnchanged(context.myVariable);
|
||||
tracker.delete(context.myVariable);
|
||||
tracker.replaceAndRestoreComments(elementToReplace, text);
|
||||
}
|
||||
WriteAction.run(() -> DeclarationJoinLinesHandler.joinDeclarationAndAssignment(context.myVariable, context.myAssignment));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user