From ab1c3c0f34cd3515cf75c5ea54bf5c4198c024c2 Mon Sep 17 00:00:00 2001 From: Chao Zhang Date: Fri, 18 Nov 2022 15:52:59 -0800 Subject: [PATCH] Update documentation for TrailingComma rules (#5513) * Update default config of TrailingComma to upstream * Update detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnDeclarationSite.kt Co-authored-by: Matthew Haughton <3flex@users.noreply.github.com> * Update detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt Co-authored-by: Matthew Haughton <3flex@users.noreply.github.com> * Update doc to reflect ktlint to be an upstream * Update .gitignore Co-authored-by: Matthew Haughton <3flex@users.noreply.github.com> --- .../wrappers/TrailingCommaOnCallSite.kt | 16 +++++++++++++--- .../wrappers/TrailingCommaOnDeclarationSite.kt | 16 +++++++++++++--- .../src/main/resources/config/config.yml | 4 ++-- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt index 855055f4831..9da9778101e 100644 --- a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt +++ b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt @@ -3,13 +3,20 @@ package io.gitlab.arturbosch.detekt.formatting.wrappers import com.pinterest.ktlint.core.api.UsesEditorConfigProperties import com.pinterest.ktlint.ruleset.standard.TrailingCommaOnCallSiteRule import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.config +import io.gitlab.arturbosch.detekt.api.configWithAndroidVariants import io.gitlab.arturbosch.detekt.api.internal.AutoCorrectable import io.gitlab.arturbosch.detekt.api.internal.Configuration import io.gitlab.arturbosch.detekt.formatting.FormattingRule /** * See [ktlint docs](https://pinterest.github.io/ktlint/rules/standard/) for documentation. + * + * The default config comes from ktlint and follows these conventions: + * - [Kotlin coding convention](https://kotlinlang.org/docs/coding-conventions.html#trailing-commas) recommends + * trailing comma encourage the use of trailing commas at the declaration site and + * leaves it at your discretion for the call site. + * - [Android Kotlin style guide](https://developer.android.com/kotlin/style-guide) does not include + * trailing comma usage yet. */ @AutoCorrectable(since = "1.22.0") class TrailingCommaOnCallSite(config: Config) : FormattingRule(config) { @@ -17,8 +24,11 @@ class TrailingCommaOnCallSite(config: Config) : FormattingRule(config) { override val wrapping = TrailingCommaOnCallSiteRule() override val issue = issueFor("Rule to mandate/forbid trailing commas at call sites") - @Configuration("Defines whether a trailing comma (or no trailing comma) should be enforced at call sites") - private val useTrailingCommaOnCallSite by config(false) + @Configuration("Defines whether trailing commas are required (true) or forbidden (false) at call sites") + private val useTrailingCommaOnCallSite by configWithAndroidVariants( + defaultValue = true, + defaultAndroidValue = false, + ) override fun overrideEditorConfigProperties(): Map, String> = mapOf( diff --git a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnDeclarationSite.kt b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnDeclarationSite.kt index 6c6bdb0c815..8ace3cb4911 100644 --- a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnDeclarationSite.kt +++ b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnDeclarationSite.kt @@ -3,13 +3,20 @@ package io.gitlab.arturbosch.detekt.formatting.wrappers import com.pinterest.ktlint.core.api.UsesEditorConfigProperties import com.pinterest.ktlint.ruleset.standard.TrailingCommaOnDeclarationSiteRule import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.config +import io.gitlab.arturbosch.detekt.api.configWithAndroidVariants import io.gitlab.arturbosch.detekt.api.internal.AutoCorrectable import io.gitlab.arturbosch.detekt.api.internal.Configuration import io.gitlab.arturbosch.detekt.formatting.FormattingRule /** * See [ktlint docs](https://pinterest.github.io/ktlint/rules/standard/) for documentation. + * + * The default config comes from ktlint and follows these conventions: + * - [Kotlin coding convention](https://kotlinlang.org/docs/coding-conventions.html#trailing-commas) recommends + * trailing comma encourage the use of trailing commas at the declaration site and + * leaves it at your discretion for the call site. + * - [Android Kotlin style guide](https://developer.android.com/kotlin/style-guide) does not include + * trailing comma usage yet. */ @AutoCorrectable(since = "1.22.0") class TrailingCommaOnDeclarationSite(config: Config) : FormattingRule(config) { @@ -17,8 +24,11 @@ class TrailingCommaOnDeclarationSite(config: Config) : FormattingRule(config) { override val wrapping = TrailingCommaOnDeclarationSiteRule() override val issue = issueFor("Rule to mandate/forbid trailing commas at declaration sites") - @Configuration("Defines whether a trailing comma (or no trailing comma) should be enforced at declaration sites") - private val useTrailingCommaOnDeclarationSite by config(false) + @Configuration("Defines whether trailing commas are required (true) or forbidden (false) at declaration sites") + private val useTrailingCommaOnDeclarationSite by configWithAndroidVariants( + defaultValue = true, + defaultAndroidValue = false, + ) override fun overrideEditorConfigProperties(): Map, String> = mapOf( diff --git a/detekt-formatting/src/main/resources/config/config.yml b/detekt-formatting/src/main/resources/config/config.yml index fdc9e9c2800..3b802ac4658 100644 --- a/detekt-formatting/src/main/resources/config/config.yml +++ b/detekt-formatting/src/main/resources/config/config.yml @@ -182,11 +182,11 @@ formatting: TrailingCommaOnCallSite: active: false autoCorrect: true - useTrailingCommaOnCallSite: false + useTrailingCommaOnCallSite: true TrailingCommaOnDeclarationSite: active: false autoCorrect: true - useTrailingCommaOnDeclarationSite: false + useTrailingCommaOnDeclarationSite: true TypeArgumentListSpacing: active: false autoCorrect: true