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(COMMA, SEMICOLON).lineBreakInCodeIf(kotlinCustomSettings.ALLOW_TRAILING_COMMA)
|
||||
|
||||
beforeInside(FUN, TokenSet.create(BODY, CLASS_BODY)).lineBreakInCode()
|
||||
beforeInside(SECONDARY_CONSTRUCTOR, 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")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@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")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
Reference in New Issue
Block a user