Formatter: add line break between comma and semicolon
#KT-34744
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user