From 2aea631c1b4e440719b38aae877e6d2ba974f1af Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 16 Jan 2014 19:14:56 +0400 Subject: [PATCH] Formatter: left brace formatting for "do while" --- .../plugin/formatter/KotlinSpacingBuilder.kt | 4 ++- .../formatter/DoWhileLineBreak.after.inv.kt | 25 ++++++++++++++++ .../formatter/DoWhileLineBreak.after.kt | 28 ++++++++++++++++++ idea/testData/formatter/DoWhileLineBreak.kt | 29 +++++++++++++++++++ .../formatter/DoWhileSpacing.after.kt | 6 ++-- .../formatter/JetFormatterTestGenerated.java | 10 +++++++ j2k/tests/testData/ast/issues/kt-824.ide.kt | 3 +- j2k/tests/testData/ast/issues/kt-824.kt | 3 +- 8 files changed, 99 insertions(+), 9 deletions(-) create mode 100644 idea/testData/formatter/DoWhileLineBreak.after.inv.kt create mode 100644 idea/testData/formatter/DoWhileLineBreak.after.kt create mode 100644 idea/testData/formatter/DoWhileLineBreak.kt 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!!)