From d1daca25602d9b7d4a774351f3a5268a2670704f Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 8 Dec 2017 14:51:07 +0100 Subject: [PATCH] No line break before = in property initializer and function expr body --- .../jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt | 5 +++++ .../formatter/PropertyInitializerLineBreak.after.kt | 6 ++++++ idea/testData/formatter/PropertyInitializerLineBreak.kt | 8 ++++++++ .../kotlin/formatter/FormatterTestGenerated.java | 6 ++++++ 4 files changed, 25 insertions(+) create mode 100644 idea/testData/formatter/PropertyInitializerLineBreak.after.kt create mode 100644 idea/testData/formatter/PropertyInitializerLineBreak.kt diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt index 4585528addd..047f1eb53e2 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt @@ -197,6 +197,11 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing before(COMMA).spaceIf(kotlinCommonSettings.SPACE_BEFORE_COMMA) after(COMMA).spaceIf(kotlinCommonSettings.SPACE_AFTER_COMMA) + + val spacesAroundAssignment = if (kotlinCommonSettings.SPACE_AROUND_ASSIGNMENT_OPERATORS) 1 else 0 + beforeInside(EQ, PROPERTY).spacing(spacesAroundAssignment, spacesAroundAssignment, 0, false, 0) + beforeInside(EQ, FUN).spacing(spacesAroundAssignment, spacesAroundAssignment, 0, false, 0) + around(TokenSet.create(EQ, MULTEQ, DIVEQ, PLUSEQ, MINUSEQ, PERCEQ)).spaceIf(kotlinCommonSettings.SPACE_AROUND_ASSIGNMENT_OPERATORS) around(TokenSet.create(ANDAND, OROR)).spaceIf(kotlinCommonSettings.SPACE_AROUND_LOGICAL_OPERATORS) around(TokenSet.create(EQEQ, EXCLEQ, EQEQEQ, EXCLEQEQEQ)).spaceIf(kotlinCommonSettings.SPACE_AROUND_EQUALITY_OPERATORS) diff --git a/idea/testData/formatter/PropertyInitializerLineBreak.after.kt b/idea/testData/formatter/PropertyInitializerLineBreak.after.kt new file mode 100644 index 00000000000..f5b73e7faec --- /dev/null +++ b/idea/testData/formatter/PropertyInitializerLineBreak.after.kt @@ -0,0 +1,6 @@ +val x: Int = 1 + +fun foo() = 1 + +fun bar() = + 1 diff --git a/idea/testData/formatter/PropertyInitializerLineBreak.kt b/idea/testData/formatter/PropertyInitializerLineBreak.kt new file mode 100644 index 00000000000..c2f3752f400 --- /dev/null +++ b/idea/testData/formatter/PropertyInitializerLineBreak.kt @@ -0,0 +1,8 @@ +val x: Int + = 1 + +fun foo() + = 1 + +fun bar() = + 1 diff --git a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java index 997df135094..e577473e310 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java @@ -662,6 +662,12 @@ public class FormatterTestGenerated extends AbstractFormatterTest { doTest(fileName); } + @TestMetadata("PropertyInitializerLineBreak.after.kt") + public void testPropertyInitializerLineBreak() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/PropertyInitializerLineBreak.after.kt"); + doTest(fileName); + } + @TestMetadata("PropertyTypeParameterList.after.kt") public void testPropertyTypeParameterList() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/PropertyTypeParameterList.after.kt");