From 4211ac2928ce036639649a5154bb218bd93497e6 Mon Sep 17 00:00:00 2001 From: nickreid Date: Tue, 23 Apr 2024 07:51:09 -0700 Subject: [PATCH] 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 --- .../facebook/ktfmt/format/TrailingCommas.kt | 1 + .../format/GoogleStyleFormatterKtTest.kt | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) 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 4ee63750..e19337c2 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 48ca5d1c..f5440bd4 100644 --- a/core/src/test/java/com/facebook/ktfmt/format/GoogleStyleFormatterKtTest.kt +++ b/core/src/test/java/com/facebook/ktfmt/format/GoogleStyleFormatterKtTest.kt @@ -1714,6 +1714,25 @@ class GoogleStyleFormatterKtTest { formattingOptions = Formatter.GOOGLE_FORMAT, 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 =