diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/KotlinSpacingBuilder.kt b/idea/src/org/jetbrains/jet/plugin/formatter/KotlinSpacingBuilder.kt index 7baf9df6079..db71119dba1 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/KotlinSpacingBuilder.kt +++ b/idea/src/org/jetbrains/jet/plugin/formatter/KotlinSpacingBuilder.kt @@ -164,7 +164,6 @@ fun createSpacingBuilder(settings: CodeStyleSettings): KotlinSpacingBuilder { betweenInside(WHILE_KEYWORD, LPAR, DO_WHILE).spacing(1, 1, 0, false, 0) aroundInside(WHILE_KEYWORD, DO_WHILE).spaces(1) - afterInside(DO_KEYWORD, DO_WHILE).spaces(1) // TODO: Ask for better API // Type of the declaration colon @@ -225,7 +224,10 @@ fun createSpacingBuilder(settings: CodeStyleSettings): KotlinSpacingBuilder { inPosition(parent = IF, right = THEN).customRule(leftBraceRuleIfBlockIsWrapped) inPosition(parent = IF, right = ELSE).customRule(leftBraceRuleIfBlockIsWrapped) + inPosition(parent = WHILE, right = BODY).customRule(leftBraceRuleIfBlockIsWrapped) + inPosition(parent = DO_WHILE, right = BODY).customRule(leftBraceRuleIfBlockIsWrapped) + inPosition(parent = TRY, right = BLOCK).customRule(leftBraceRule) inPosition(parent = CATCH, right = BLOCK).customRule(leftBraceRule) inPosition(parent = FINALLY, right = BLOCK).customRule(leftBraceRule) diff --git a/idea/testData/formatter/DoWhileLineBreak.after.inv.kt b/idea/testData/formatter/DoWhileLineBreak.after.inv.kt new file mode 100644 index 00000000000..29a2df39dcf --- /dev/null +++ b/idea/testData/formatter/DoWhileLineBreak.after.inv.kt @@ -0,0 +1,25 @@ +fun main() { + do { + + } while (true) + + do { + + } while (true) + + do { + + } while (true) + + do //eol comment + { + + } while (true) + + do //eol comment + { + + } while (true) +} + +// SET_TRUE: LBRACE_ON_NEXT_LINE \ No newline at end of file diff --git a/idea/testData/formatter/DoWhileLineBreak.after.kt b/idea/testData/formatter/DoWhileLineBreak.after.kt new file mode 100644 index 00000000000..faf5a5b7a1f --- /dev/null +++ b/idea/testData/formatter/DoWhileLineBreak.after.kt @@ -0,0 +1,28 @@ +fun main() { + do + { + + } while (true) + + do + { + + } while (true) + + do + { + + } while (true) + + do //eol comment + { + + } while (true) + + do //eol comment + { + + } while (true) +} + +// SET_TRUE: LBRACE_ON_NEXT_LINE \ No newline at end of file diff --git a/idea/testData/formatter/DoWhileLineBreak.kt b/idea/testData/formatter/DoWhileLineBreak.kt new file mode 100644 index 00000000000..3caec7df2bb --- /dev/null +++ b/idea/testData/formatter/DoWhileLineBreak.kt @@ -0,0 +1,29 @@ +fun main() { + do { + + } while (true) + + do + { + + } while (true) + + do + + { + + } while (true) + + do //eol comment + { + + } while (true) + + do //eol comment + + { + + } while (true) +} + +// SET_TRUE: LBRACE_ON_NEXT_LINE \ No newline at end of file diff --git a/idea/testData/formatter/DoWhileSpacing.after.kt b/idea/testData/formatter/DoWhileSpacing.after.kt index ff84a2a3134..bb2d1fd2e26 100644 --- a/idea/testData/formatter/DoWhileSpacing.after.kt +++ b/idea/testData/formatter/DoWhileSpacing.after.kt @@ -5,13 +5,11 @@ fun test() { do { } while (true) - do - { + do { } while (true) - do - { + do { } while (true) diff --git a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java index 61baa6b45e4..8ac1f162b64 100644 --- a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java @@ -59,6 +59,11 @@ public class JetFormatterTestGenerated extends AbstractJetFormatterTest { doTest("idea/testData/formatter/ConsecutiveCalls.after.kt"); } + @TestMetadata("DoWhileLineBreak.after.kt") + public void testDoWhileLineBreak() throws Exception { + doTest("idea/testData/formatter/DoWhileLineBreak.after.kt"); + } + @TestMetadata("DoWhileSpacing.after.kt") public void testDoWhileSpacing() throws Exception { doTest("idea/testData/formatter/DoWhileSpacing.after.kt"); @@ -352,6 +357,11 @@ public class JetFormatterTestGenerated extends AbstractJetFormatterTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/formatter"), Pattern.compile("^([^\\.]+)\\.after.inv.kt$"), true); } + @TestMetadata("DoWhileLineBreak.after.inv.kt") + public void testDoWhileLineBreak() throws Exception { + doTestInverted("idea/testData/formatter/DoWhileLineBreak.after.inv.kt"); + } + @TestMetadata("FunctionalType.after.inv.kt") public void testFunctionalType() throws Exception { doTestInverted("idea/testData/formatter/FunctionalType.after.inv.kt"); diff --git a/j2k/tests/testData/ast/issues/kt-824.ide.kt b/j2k/tests/testData/ast/issues/kt-824.ide.kt index 6c87ff10a6a..470a8a75464 100644 --- a/j2k/tests/testData/ast/issues/kt-824.ide.kt +++ b/j2k/tests/testData/ast/issues/kt-824.ide.kt @@ -23,8 +23,7 @@ class Test() { while (One.myContainer.myBoolean) System.out.println("Ok") - do - { + do { System.out.println("Ok") } while (One.myContainer.myBoolean) diff --git a/j2k/tests/testData/ast/issues/kt-824.kt b/j2k/tests/testData/ast/issues/kt-824.kt index d7d84410f5c..59c87ef49a1 100644 --- a/j2k/tests/testData/ast/issues/kt-824.kt +++ b/j2k/tests/testData/ast/issues/kt-824.kt @@ -23,8 +23,7 @@ open class Test() { while (One.myContainer?.myBoolean!!) System.out?.println("Ok") - do - { + do { System.out?.println("Ok") } while (One.myContainer?.myBoolean!!)