aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornickreid <nickreid@google.com>2024-04-23 07:51:09 -0700
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>2024-04-23 07:51:09 -0700
commit4211ac2928ce036639649a5154bb218bd93497e6 (patch)
treeacb2e98efe15d4949fc8f3ebd9fc9e5eb4772570
parent76487c00f466797c84c49cc36d88eb95ffa37705 (diff)
downloadktfmt-4211ac2928ce036639649a5154bb218bd93497e6.tar.gz
Stop emitting multiple trailing commas in enum entry lists with multiline items (#458)
Summary: Pull Request resolved: https://github.com/facebook/ktfmt/pull/458 Reviewed By: cortinico Differential Revision: D56467830 Pulled By: hick209 fbshipit-source-id: 0d97ccb01cfa8436443db27ec244a2759a57251d
-rw-r--r--core/src/main/java/com/facebook/ktfmt/format/TrailingCommas.kt1
-rw-r--r--core/src/test/java/com/facebook/ktfmt/format/GoogleStyleFormatterKtTest.kt19
2 files changed, 20 insertions, 0 deletions
diff --git a/core/src/main/java/com/facebook/ktfmt/format/TrailingCommas.kt b/core/src/main/java/com/facebook/ktfmt/format/TrailingCommas.kt
index 4ee6375..e19337c 100644
--- a/core/src/main/java/com/facebook/ktfmt/format/TrailingCommas.kt
+++ b/core/src/main/java/com/facebook/ktfmt/format/TrailingCommas.kt
@@ -82,6 +82,7 @@ object TrailingCommas {
}
when (element) {
+ is KtEnumEntry, // Only suggest on the KtClassBody container
is KtWhenEntry -> return
is KtParameterList -> {
if (element.parent is KtFunctionLiteral && element.parent.parent is KtLambdaExpression) {
diff --git a/core/src/test/java/com/facebook/ktfmt/format/GoogleStyleFormatterKtTest.kt b/core/src/test/java/com/facebook/ktfmt/format/GoogleStyleFormatterKtTest.kt
index 48ca5d1..f5440bd 100644
--- a/core/src/test/java/com/facebook/ktfmt/format/GoogleStyleFormatterKtTest.kt
+++ b/core/src/test/java/com/facebook/ktfmt/format/GoogleStyleFormatterKtTest.kt
@@ -1715,6 +1715,25 @@ class GoogleStyleFormatterKtTest {
deduceMaxWidth = true)
@Test
+ fun `trailing commas on multline enum entries`() =
+ assertFormatted(
+ """
+ |enum class MultilineEntries {
+ | A(
+ | arg = 0, //
+ | arg = 0,
+ | ),
+ | /* Comment */
+ | B,
+ | C {
+ | fun foo() {}
+ | },
+ |}
+ |"""
+ .trimMargin(),
+ formattingOptions = Formatter.GOOGLE_FORMAT)
+
+ @Test
fun `trailing commas in enums`() {
val code =
"""