IDEA-97826 Java arrangement: Don't insert unnecessary line feeds for anonymous classes

This commit is contained in:
Denis.Zhdanov
2012-12-19 16:50:46 +04:00
parent 0f5072ee16
commit 57eef859be
4 changed files with 18 additions and 4 deletions
@@ -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);
}
@@ -317,8 +317,8 @@ public class JavaRearranger implements Rearranger<JavaElementArrangementEntry>,
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;
}
}
@@ -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)] )
}
}
@@ -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
}