Formatter: add line break between comma and semicolon

#KT-34744
This commit is contained in:
Dmitry Gridin
2020-01-09 19:45:26 +07:00
parent bbd92a11bc
commit 8a45d2eb58
5 changed files with 166 additions and 0 deletions
@@ -262,6 +262,8 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing
between(ENUM_ENTRY, SEMICOLON).spaces(0) between(ENUM_ENTRY, SEMICOLON).spaces(0)
between(COMMA, SEMICOLON).lineBreakInCodeIf(kotlinCustomSettings.ALLOW_TRAILING_COMMA)
beforeInside(FUN, TokenSet.create(BODY, CLASS_BODY)).lineBreakInCode() beforeInside(FUN, TokenSet.create(BODY, CLASS_BODY)).lineBreakInCode()
beforeInside(SECONDARY_CONSTRUCTOR, TokenSet.create(BODY, CLASS_BODY)).lineBreakInCode() beforeInside(SECONDARY_CONSTRUCTOR, TokenSet.create(BODY, CLASS_BODY)).lineBreakInCode()
beforeInside(CLASS, TokenSet.create(BODY, CLASS_BODY)).lineBreakInCode() beforeInside(CLASS, TokenSet.create(BODY, CLASS_BODY)).lineBreakInCode()
@@ -0,0 +1,43 @@
// SET_TRUE: ALLOW_TRAILING_COMMA
enum class Enum1 {
A, B, ;
}
enum class Enum2 {
A, B;
}
enum class Enum3 {
A, B
;
}
enum class Enum4 {
A, B,
}
enum class Enum5 {
A, B,
}
enum class Enum6(val a: Int) {
A(
1
),
B,
}
enum class Enum7(val a: Int) {
A(
1
),
B, ;
}
enum class Enum8(val a: Int) {
A(
1
),
B;
}
@@ -0,0 +1,45 @@
// SET_TRUE: ALLOW_TRAILING_COMMA
enum class Enum1 {
A, B,
;
}
enum class Enum2 {
A, B;
}
enum class Enum3 {
A, B
;
}
enum class Enum4 {
A, B,
}
enum class Enum5 {
A, B,
}
enum class Enum6(val a: Int) {
A(
1,
),
B,
}
enum class Enum7(val a: Int) {
A(
1,
),
B,
;
}
enum class Enum8(val a: Int) {
A(
1,
),
B;
}
+40
View File
@@ -0,0 +1,40 @@
// SET_TRUE: ALLOW_TRAILING_COMMA
enum class Enum1 {
A, B,;
}
enum class Enum2 {
A, B;
}
enum class Enum3 {
A, B
;
}
enum class Enum4 {
A, B,
}
enum class Enum5 {
A, B,
}
enum class Enum6(val a: Int) {
A(
1
), B,
}
enum class Enum7(val a: Int) {
A(
1
), B,;
}
enum class Enum8(val a: Int) {
A(
1
), B;
}
@@ -1205,6 +1205,24 @@ public class FormatterTestGenerated extends AbstractFormatterTest {
} }
} }
@TestMetadata("idea/testData/formatter/trailingComma/enumEntry")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class EnumEntry extends AbstractFormatterTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInEnumEntry() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/formatter/trailingComma/enumEntry"), Pattern.compile("^([^\\.]+)\\.after\\.kt.*$"), null, true);
}
@TestMetadata("Enum.after.kt")
public void testEnum() throws Exception {
runTest("idea/testData/formatter/trailingComma/enumEntry/Enum.after.kt");
}
}
@TestMetadata("idea/testData/formatter/trailingComma/indices") @TestMetadata("idea/testData/formatter/trailingComma/indices")
@TestDataPath("$PROJECT_ROOT") @TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class) @RunWith(JUnit3RunnerWithInners.class)
@@ -1785,6 +1803,24 @@ public class FormatterTestGenerated extends AbstractFormatterTest {
} }
} }
@TestMetadata("idea/testData/formatter/trailingComma/enumEntry")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class EnumEntry extends AbstractFormatterTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTestInverted, this, testDataFilePath);
}
public void testAllFilesPresentInEnumEntry() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/formatter/trailingComma/enumEntry"), Pattern.compile("^([^\\.]+)\\.after\\.inv\\.kt.*$"), null, true);
}
@TestMetadata("Enum.after.inv.kt")
public void testEnum() throws Exception {
runTest("idea/testData/formatter/trailingComma/enumEntry/Enum.after.inv.kt");
}
}
@TestMetadata("idea/testData/formatter/trailingComma/indices") @TestMetadata("idea/testData/formatter/trailingComma/indices")
@TestDataPath("$PROJECT_ROOT") @TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class) @RunWith(JUnit3RunnerWithInners.class)