From 57eef859be9e40099895a4ed6e91d6c15fe1908b Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Wed, 19 Dec 2012 16:50:27 +0400 Subject: [PATCH] IDEA-97826 Java arrangement: Don't insert unnecessary line feeds for anonymous classes --- .../arrangement/JavaArrangementVisitor.java | 4 +++- .../psi/codeStyle/arrangement/JavaRearranger.java | 4 ++-- .../arrangement/JavaRearrangerBlankLinesTest.groovy | 12 ++++++++++++ .../arrangement/match/ArrangementEntryType.java | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaArrangementVisitor.java b/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaArrangementVisitor.java index 6800b666f00a..456d49988305 100644 --- a/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaArrangementVisitor.java +++ b/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaArrangementVisitor.java @@ -87,7 +87,9 @@ public class JavaArrangementVisitor extends JavaElementVisitor { @Override public void visitAnonymousClass(PsiAnonymousClass aClass) { - JavaElementArrangementEntry entry = createNewEntry(aClass, aClass.getTextRange(), ArrangementEntryType.CLASS, aClass.getName(), false); + JavaElementArrangementEntry entry = createNewEntry( + aClass, aClass.getTextRange(), ArrangementEntryType.ANONYMOUS_CLASS, aClass.getName(), false + ); processEntry(entry, null, aClass); } diff --git a/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java b/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java index 0bd885d59434..fd928aaf5547 100644 --- a/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java +++ b/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java @@ -317,8 +317,8 @@ public class JavaRearranger implements Rearranger, else { return commonSettings.BLANK_LINES_AROUND_METHOD; } - default: - return commonSettings.BLANK_LINES_AROUND_CLASS; + case CLASS: return commonSettings.BLANK_LINES_AROUND_CLASS; + default: return -1; } } diff --git a/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerBlankLinesTest.groovy b/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerBlankLinesTest.groovy index 4aadd25ea75c..fcc27b98d017 100644 --- a/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerBlankLinesTest.groovy +++ b/java/java-tests/testSrc/com/intellij/psi/codeStyle/arrangement/JavaRearrangerBlankLinesTest.groovy @@ -118,4 +118,16 @@ class Test { rules: [rule(FIELD, PACKAGE_PRIVATE), rule(METHOD)] ) } + + void "test blank lines settings are not applied to anonymous classes"() { + commonSettings.BLANK_LINES_AROUND_CLASS = 1 + def text = '''\ +class Test { + void test() { + a(new Intf() {}); + a(new Intf() {}); + } +}''' + doTest(initial: text, expected: text, rules: [rule(CLASS)] ) + } } diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java index e4f64df63be1..4e334494e10d 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java @@ -27,7 +27,7 @@ import com.intellij.psi.codeStyle.arrangement.ArrangementEntry; */ public enum ArrangementEntryType { - CLASS, FIELD, CONSTRUCTOR, METHOD, ENUM, INTERFACE, + CLASS, ANONYMOUS_CLASS, FIELD, CONSTRUCTOR, METHOD, ENUM, INTERFACE, CONST, VAR, PROPERTY, EVENT_HANDLER, STATIC_INIT }