diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java b/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java index 31591519897..e2f19e414d8 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java +++ b/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java @@ -290,6 +290,11 @@ public class JetBlock extends AbstractBlock { .in(DOC_COMMENT) .forType(KDocTokens.LEADING_ASTERISK, KDocTokens.END) .set(Indent.getSpaceIndent(KDOC_COMMENT_INDENT)), + + ASTIndentStrategy.forNode("Block in when entry") + .in(WHEN_ENTRY) + .notForType(BLOCK, WHEN_CONDITION_EXPRESSION, WHEN_CONDITION_IN_RANGE, WHEN_CONDITION_IS_PATTERN, ELSE_KEYWORD, ARROW) + .set(Indent.getNormalIndent()), }; @Nullable @@ -305,14 +310,6 @@ public class JetBlock extends AbstractBlock { } // TODO: Try to rewrite other rules to declarative style - - if (childParent != null && childParent.getElementType() == WHEN_ENTRY) { - ASTNode prev = getPrevWithoutWhitespace(child); - if (prev != null && prev.getText().equals("->")) { - return indentIfNotBrace(child); - } - } - if (childParent != null && childParent.getElementType() == DOT_QUALIFIED_EXPRESSION) { if (childParent.getFirstChildNode() != child && childParent.getLastChildNode() != child) { return Indent.getContinuationWithoutFirstIndent(false); diff --git a/idea/testData/formatter/WhenEntryExpr.after.kt b/idea/testData/formatter/WhenEntryExpr.after.kt index fddcf339a5b..3985aebde7f 100644 --- a/idea/testData/formatter/WhenEntryExpr.after.kt +++ b/idea/testData/formatter/WhenEntryExpr.after.kt @@ -2,8 +2,67 @@ fun some(x: Any) { when (x) { is Int -> 0 + 3 -> + 2 + in 0..3 -> + 2 + else -> + 1 + } + when (x) { + is Int -> { + 0 + } + 3 -> { + 2 + } + in 0..3 -> { + 2 + } else -> { 1 } } + when (x) { + is Int -> + { + 0 + } + 3 -> + { + 2 + } + in 0..3 -> + { + 2 + } + else -> + { + 1 + } + } + when (x) { + is + Int + -> + { + 0 + } + 3 + -> + { + 2 + } + in + 0..3 + -> + { + 2 + } + else + -> + { + 1 + } + } } \ No newline at end of file diff --git a/idea/testData/formatter/WhenEntryExpr.kt b/idea/testData/formatter/WhenEntryExpr.kt index 4906ca14471..75958910934 100644 --- a/idea/testData/formatter/WhenEntryExpr.kt +++ b/idea/testData/formatter/WhenEntryExpr.kt @@ -2,8 +2,67 @@ fun some(x : Any) { when (x) { is Int -> 0 +3 -> +2 +in 0..3 -> +2 +else -> +1 +} +when (x) { +is Int -> { +0 +} +3 -> { +2 +} +in 0..3 -> { +2 +} else -> { 1 } } +when (x) { +is Int -> +{ +0 +} +3 -> +{ +2 +} +in 0..3 -> +{ +2 +} +else -> +{ +1 +} +} +when (x) { +is +Int +-> +{ +0 +} +3 +-> +{ +2 +} +in +0..3 +-> +{ +2 +} +else +-> +{ +1 +} +} } \ No newline at end of file