Be aware of "Keep line breaks" option in class object access expression (part of IDEA-129687)

This commit is contained in:
Yaroslav Lepenkin
2014-09-22 11:25:41 +04:00
parent a5d7e2d505
commit e7705d6159
2 changed files with 30 additions and 0 deletions
@@ -1186,6 +1186,15 @@ public class JavaSpacePropertyProcessor extends JavaElementVisitor {
}
}
@Override
public void visitClassObjectAccessExpression(PsiClassObjectAccessExpression expression) {
if (myRole1 == ChildRole.TYPE && myRole2 == ChildRole.DOT
|| myRole1 == ChildRole.DOT && myRole2 == ChildRole.CLASS_KEYWORD)
{
createSpaceInCode(false);
}
}
@Override
public void visitExpressionList(PsiExpressionList list) {
if (myRole1 == ChildRole.LPARENTH && myRole2 == ChildRole.RPARENTH) {
@@ -558,4 +558,25 @@ public class JavaFormatterSpaceTest extends AbstractJavaFormatterTest {
"}"
);
}
public void testClassObjectAccessExpression_BeforeDot() {
String before = "Test \n .class";
getSettings().KEEP_LINE_BREAKS = true;
doMethodTest(before, "Test\n .class");
getSettings().KEEP_LINE_BREAKS = false;
doMethodTest(before, "Test.class");
}
public void testClassObjectAccessExpression_AfterDot() {
String before = "Test. \n class";
getSettings().KEEP_LINE_BREAKS = true;
doMethodTest(before, "Test.\n class");
getSettings().KEEP_LINE_BREAKS = false;
doMethodTest(before, "Test.class");
}
}