From 7cd7e104f67dc0eb4d2d7cb459e7e63df2f91a72 Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Fri, 28 Aug 2015 08:22:19 +0300 Subject: [PATCH] Return null if alignment condition is not satisfied --- .../java/ArrayInitializerBlocksBuilder.java | 4 ++-- .../formatter/java/ChildrenBlocksBuilder.java | 24 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/ArrayInitializerBlocksBuilder.java b/java/java-impl/src/com/intellij/psi/formatter/java/ArrayInitializerBlocksBuilder.java index 44b605b55600..3a04e012728d 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/ArrayInitializerBlocksBuilder.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/ArrayInitializerBlocksBuilder.java @@ -59,12 +59,12 @@ public class ArrayInitializerBlocksBuilder { .setDefaultAlignment(alignment) .setNoAlignment(JavaTokenType.COMMA) .setNoAlignment(JavaTokenType.LBRACE) - .setAlignmentIf(JavaTokenType.RBRACE, alignment, new Condition() { + .setNoAlignmentIf(JavaTokenType.RBRACE, new Condition() { @Override public boolean value(ASTNode node) { PsiElement prev = PsiTreeUtil.skipSiblingsBackward(node.getPsi(), PsiWhiteSpace.class); if (prev == null) return false; - return prev.getNode().getElementType() == JavaTokenType.COMMA; + return prev.getNode().getElementType() != JavaTokenType.COMMA; } }); diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/ChildrenBlocksBuilder.java b/java/java-impl/src/com/intellij/psi/formatter/java/ChildrenBlocksBuilder.java index 0697a0b8098a..c76cf439dba4 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/ChildrenBlocksBuilder.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/ChildrenBlocksBuilder.java @@ -64,7 +64,7 @@ public class ChildrenBlocksBuilder { private Map myIndents = ContainerUtil.newHashMap(); private Map myWraps = ContainerUtil.newHashMap(); - private Map> myApplyAlignCondition = ContainerUtil.newHashMap(); + private Map> myNoneAlignmentCondition = ContainerUtil.newHashMap(); private Alignment myDefaultAlignment; private Indent myDefaultIndent; @@ -99,9 +99,8 @@ public class ChildrenBlocksBuilder { return this; } - public Config setAlignmentIf(IElementType elementType, Alignment alignment, Condition applyAlignCondition) { - myAlignments.put(elementType, alignment); - myApplyAlignCondition.put(elementType, applyAlignCondition); + public Config setNoAlignmentIf(IElementType elementType, Condition applyAlignCondition) { + myNoneAlignmentCondition.put(elementType, applyAlignCondition); return this; } @@ -117,14 +116,17 @@ public class ChildrenBlocksBuilder { private Alignment getAlignment(ASTNode node) { IElementType elementType = node.getElementType(); - Alignment alignment = myAlignments.get(elementType); - if (alignment != null) { - Condition applyAlignCondition = myApplyAlignCondition.get(elementType); - if (applyAlignCondition == null || applyAlignCondition.value(node)) { - return alignment == NO_ALIGNMENT ? null : alignment; - } + + Condition noneAlignmentCondition = myNoneAlignmentCondition.get(elementType); + if (noneAlignmentCondition != null && noneAlignmentCondition.value(node)) { + return null; } - return myDefaultAlignment; + + Alignment alignment = myAlignments.get(elementType); + if (alignment == null) { + return myDefaultAlignment; + } + return alignment == NO_ALIGNMENT ? null : alignment; } private Wrap getWrap(IElementType elementType) {