From 59a1e0c715663a7e328fc3166e07a1d2b9b217fe Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Thu, 2 Jul 2015 12:44:23 +0300 Subject: [PATCH] Use reformat with context on postprocess reformat --- .../psi/impl/source/PsiTypeElementImpl.java | 34 ------------------- .../source/tree/java/PsiIdentifierImpl.java | 21 ------------ .../tree/java/PsiReferenceExpressionImpl.java | 19 ----------- .../source/PostprocessReformattingAspect.java | 1 + 4 files changed, 1 insertion(+), 74 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java index 58ff1af8d4ad..1786bd719755 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java @@ -249,40 +249,6 @@ public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeEl PsiImplUtil.markTypeAnnotations(this); PsiElement result = super.replace(newElement); PsiImplUtil.deleteTypeAnnotations((PsiTypeElement)result); - - // We want to reformat method call arguments on method return type change because there is a possible situation that they are aligned - // and the change breaks the alignment. - // Example: - // Object test(1, - // 2) {} - // Suppose we're changing return type to 'MyCustomClass'. We get the following if parameter list is not reformatted: - // MyCustomClass test(1, - // 2) {} - PsiElement parent = result.getParent(); - if (parent instanceof PsiMethod) { - PsiMethod method = (PsiMethod)parent; - CodeEditUtil.markToReformat(method.getParameterList().getNode(), true); - } - - // We cover situation like below here: - // int test(int i, int j) {} - // ... - // int i = test(1, - // 2); - // I.e. the point is to avoid code like below during changing 'test()' return type from 'int' to 'long': - // long i = test(1, - // 2); - else if (parent instanceof PsiVariable) { - PsiVariable variable = (PsiVariable)parent; - if (variable.hasInitializer()) { - PsiExpression methodCallCandidate = variable.getInitializer(); - if (methodCallCandidate instanceof PsiMethodCallExpression) { - PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)methodCallCandidate; - CodeEditUtil.markToReformat(methodCallExpression.getArgumentList().getNode(), true); - } - } - } - return result; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java index 4627c70ef330..cf287d677d7b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java @@ -43,27 +43,6 @@ public class PsiIdentifierImpl extends LeafPsiElement implements PsiIdentifier, } } - @Override - public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { - PsiElement result = super.replace(newElement); - - // We want to reformat method parameters on method name change as well because there is a possible situation that they are aligned - // and method name change breaks the alignment. - // Example: - // public void test(int i, - // int j) {} - // Suppose we're renaming the method to test123. We get the following if parameter list is not reformatted: - // public void test123(int i, - // int j) {} - PsiElement methodCandidate = result.getParent(); - if (methodCandidate instanceof PsiMethod) { - PsiMethod method = (PsiMethod)methodCandidate; - CodeEditUtil.markToReformat(method.getParameterList().getNode(), true); - } - - return result; - } - public String toString(){ return "PsiIdentifier:" + getText(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java index b5977596424b..adb12f072107 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java @@ -717,25 +717,6 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple return getChildRole(getFirstChildNode()) == ChildRole.QUALIFIER; } - @Override - public void subtreeChanged() { - super.subtreeChanged(); - - // We want to reformat method call arguments on method name change because there is a possible situation that they are aligned - // and method change breaks the alignment. - // Example: - // test(1, - // 2); - // Suppose we're renaming the method to test123. We get the following if parameter list is not reformatted: - // test123(1, - // 2); - PsiElement methodCallCandidate = getParent(); - if (methodCallCandidate instanceof PsiMethodCallExpression) { - PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)methodCallCandidate; - CodeEditUtil.markToReformat(methodCallExpression.getArgumentList().getNode(), true); - } - } - private String getCachedNormalizedText() { String whiteSpaceAndComments = myCachedNormalizedText; if (whiteSpaceAndComments == null) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java b/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java index be24ae59316c..8b5ea26a96fa 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java @@ -745,6 +745,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { @Override public void execute(@NotNull FileViewProvider viewProvider) { final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider); + codeFormatter.setReformatContext(true); codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false); }