From 92bfc8a733a4c78ea6e592a2a9839eb04e9fd089 Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Thu, 9 Oct 2014 19:50:32 +0400 Subject: [PATCH] Keep line break after end of line comment in modifier list (IDEA-129964) --- .../java/JavaSpacePropertyProcessor.java | 7 ++++++- .../formatter/java/JavaFormatterSpaceTest.java | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java index d26bc49c10a0..84c15d5db1a9 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java @@ -1129,7 +1129,12 @@ public class JavaSpacePropertyProcessor extends JavaElementVisitor { @Override public void visitModifierList(PsiModifierList list) { - myResult = Spacing.createSpacing(1, 1, 0, mySettings.KEEP_LINE_BREAKS, mySettings.KEEP_BLANK_LINES_IN_CODE); + if (myType1 == JavaTokenType.END_OF_LINE_COMMENT) { + myResult = Spacing.createSpacing(0, Integer.MAX_VALUE, 1, mySettings.KEEP_LINE_BREAKS, mySettings.KEEP_BLANK_LINES_IN_CODE); + } + else { + myResult = Spacing.createSpacing(1, 1, 0, mySettings.KEEP_LINE_BREAKS, mySettings.KEEP_BLANK_LINES_IN_CODE); + } } @Override diff --git a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java index 0debdda7b434..5350bcfc2310 100644 --- a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java @@ -589,4 +589,20 @@ public class JavaFormatterSpaceTest extends AbstractJavaFormatterTest { "};" ); } + + public void testCommentBetweenAnnotationAndModifierList() { + getSettings().KEEP_LINE_BREAKS = false; + getSettings().KEEP_FIRST_COLUMN_COMMENT = false; + doClassTest("@Override\n" + + "//FIX me this stupid stuff\n" + + "public void run() {\n" + + " int a = 2;\n" + + "}", + + "@Override\n" + + "//FIX me this stupid stuff\n" + + "public void run() {\n" + + " int a = 2;\n" + + "}"); + } }