From 6f4c0d38cf4ba3b665468e92a35bb4c985ff0fbe Mon Sep 17 00:00:00 2001 From: Artemiy Sartakov Date: Tue, 23 Jul 2019 13:51:09 +0700 Subject: [PATCH] SortContentAction: append all children between method expression and expression list for method call (IDEA-218735) GitOrigin-RevId: 0cc643fdbdac51be763d51bf53b28d48f371e460 --- .../intention/impl/SortContentAction.java | 6 +++++- .../sortContent/afterMethodCallCommentAfterName.java | 12 ++++++++++++ .../beforeMethodCallCommentAfterName.java | 12 ++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterMethodCallCommentAfterName.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeMethodCallCommentAfterName.java diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java index a45a5a6ba4e7..19f377f4b7e9 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java @@ -804,7 +804,11 @@ public class SortContentAction extends PsiElementBaseIntentionAction { if (call == null) return; String methodName = call.getMethodExpression().getText(); if (methodName == null) return; - StringBuilder sb = new StringBuilder(methodName); + StringBuilder sb = new StringBuilder(); + for (PsiElement child : call.getChildren()) { + if (child == expressionList) break; + sb.append(child.getText()); + } PsiExpression firstVararg = context.myVarargArguments.get(0); PsiElement child = expressionList.getFirstChild(); while(child != firstVararg) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterMethodCallCommentAfterName.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterMethodCallCommentAfterName.java new file mode 100644 index 000000000000..9952a7c367f4 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterMethodCallCommentAfterName.java @@ -0,0 +1,12 @@ +// "Sort content" "true" + +import java.util.Arrays; +import java.util.List; + +class C { + List foo() { + return Arrays.asList//a + //b + ("ReSharper OSX.xml", "ReSharper.xml", "Xcode.xml"); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeMethodCallCommentAfterName.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeMethodCallCommentAfterName.java new file mode 100644 index 000000000000..001f1cacc916 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeMethodCallCommentAfterName.java @@ -0,0 +1,12 @@ +// "Sort content" "true" + +import java.util.Arrays; +import java.util.List; + +class C { + List foo() { + return Arrays.asList//a + //b + ("Xcode.xml", "ReSharper.xml", "ReSharper OSX.xml"); + } +} \ No newline at end of file