From 8eb4c7c1097b830aa56a854e896771d999f1f132 Mon Sep 17 00:00:00 2001 From: "Roman.Ivanov" Date: Mon, 10 Sep 2018 19:03:00 +0700 Subject: [PATCH] SortContentAction: more accurate \n placement in presence of EOL comments: IDEA-198267 --- .../codeInsight/intention/impl/SortContentAction.java | 5 +---- .../quickFix/sortContent/afterEnumComments.java | 1 - .../quickFix/sortContent/afterEnumComments6.java | 11 +++++++++++ .../quickFix/sortContent/beforeEnumComments6.java | 9 +++++++++ 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments6.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeEnumComments6.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 0f226a410505..cc09e701a18d 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 @@ -904,10 +904,7 @@ public class SortContentAction extends PsiElementBaseIntentionAction { } } StringBuilder sb = new StringBuilder(); - sortableList.generate(sb); - SortableEntry lastItem = ContainerUtil.getLastItem(sortableList.myEntries); - assert lastItem != null; - if (!lastItem.myBeforeSeparator.isEmpty()) { + if (sortableList.generate(sb)) { sb.append("\n"); } PsiElement elementToPreserve = lastElement.getNextSibling(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments.java index 4a63a9adf733..1c59c4154b16 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments.java @@ -9,6 +9,5 @@ public enum OSType { WIN //after win // win - ; } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments6.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments6.java new file mode 100644 index 000000000000..662f2e207c74 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments6.java @@ -0,0 +1,11 @@ +// "Sort content" "true" + +enum Attribute { + CenterYWithinMargins, // 20 + LastBaseline, + Width // 7 + ; // 11 + + void foo() { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeEnumComments6.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeEnumComments6.java new file mode 100644 index 000000000000..90270beee12e --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeEnumComments6.java @@ -0,0 +1,9 @@ +// "Sort content" "true" + +enum Attribute { + Width, // 7 + CenterYWithinMargins, // 20 + LastBaseline; // 11 + + void foo() {} +} \ No newline at end of file