diff --git a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt index b003a594357d..59f97f82aa5e 100644 --- a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt +++ b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt @@ -57,7 +57,8 @@ import io.gitlab.arturbosch.detekt.formatting.wrappers.SpacingBetweenDeclaration import io.gitlab.arturbosch.detekt.formatting.wrappers.SpacingBetweenDeclarationsWithComments import io.gitlab.arturbosch.detekt.formatting.wrappers.SpacingBetweenFunctionNameAndOpeningParenthesis import io.gitlab.arturbosch.detekt.formatting.wrappers.StringTemplate -import io.gitlab.arturbosch.detekt.formatting.wrappers.TrailingComma +import io.gitlab.arturbosch.detekt.formatting.wrappers.TrailingCommaOnCallSite +import io.gitlab.arturbosch.detekt.formatting.wrappers.TrailingCommaOnDeclarationSite import io.gitlab.arturbosch.detekt.formatting.wrappers.TypeArgumentListSpacing import io.gitlab.arturbosch.detekt.formatting.wrappers.TypeParameterListSpacing import io.gitlab.arturbosch.detekt.formatting.wrappers.UnnecessaryParenthesesBeforeTrailingLambda @@ -66,7 +67,7 @@ import org.jetbrains.kotlin.com.intellij.lang.ASTNode import org.jetbrains.kotlin.com.intellij.psi.impl.source.JavaDummyElement import org.jetbrains.kotlin.com.intellij.psi.impl.source.JavaDummyHolder import org.jetbrains.kotlin.psi.KtFile -import java.util.LinkedList +import java.util.* /** * Runs all KtLint rules. @@ -119,7 +120,8 @@ class KtLintMultiRule(config: Config = Config.empty) : SpacingBetweenDeclarationsWithAnnotations(config), SpacingBetweenDeclarationsWithComments(config), StringTemplate(config), - TrailingComma(config), // in standard ruleset but not enabled by default + TrailingCommaOnCallSite(config), // in standard ruleset but not enabled by default + TrailingCommaOnDeclarationSite(config), // in standard ruleset but not enabled by default Wrapping(config), // Wrappers for ktlint-ruleset-experimental rules. Disabled by default. diff --git a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingComma.kt b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt similarity index 58% rename from detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingComma.kt rename to detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt index 98ca6a7e3e11..785802120a2a 100644 --- a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingComma.kt +++ b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnCallSite.kt @@ -1,7 +1,7 @@ package io.gitlab.arturbosch.detekt.formatting.wrappers import com.pinterest.ktlint.core.api.UsesEditorConfigProperties -import com.pinterest.ktlint.ruleset.experimental.trailingcomma.TrailingCommaRule +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.internal.AutoCorrectable @@ -12,20 +12,16 @@ import io.gitlab.arturbosch.detekt.formatting.FormattingRule * See [ktlint docs](https://pinterest.github.io/ktlint/rules/standard/) for documentation. */ @AutoCorrectable(since = "1.20.0") -class TrailingComma(config: Config) : FormattingRule(config) { +class TrailingCommaOnCallSite(config: Config) : FormattingRule(config) { - override val wrapping = TrailingCommaRule() + override val wrapping = TrailingCommaOnCallSiteRule() override val issue = issueFor("Rule to mandate/forbid trailing commas") - @Configuration("Defines whether a trailing comma (or no trailing comma) should be enforced on the defining side") + @Configuration("Defines whether a trailing comma (or no trailing comma) should be enforced on the call side") private val allowTrailingComma by config(false) - @Configuration("Defines whether a trailing comma (or no trailing comma) should be enforced on the calling side") - private val allowTrailingCommaOnCallSite by config(false) - override fun overrideEditorConfigProperties(): Map, String> = mapOf( - TrailingCommaRule.allowTrailingCommaProperty to allowTrailingComma.toString(), - TrailingCommaRule.allowTrailingCommaOnCallSiteProperty to allowTrailingCommaOnCallSite.toString(), + TrailingCommaOnCallSiteRule.allowTrailingCommaOnCallSiteProperty to allowTrailingComma.toString(), ) } 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 new file mode 100644 index 000000000000..b6ea120c60e7 --- /dev/null +++ b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/wrappers/TrailingCommaOnDeclarationSite.kt @@ -0,0 +1,27 @@ +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.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. + */ +@AutoCorrectable(since = "1.23.0") +class TrailingCommaOnDeclarationSite(config: Config) : FormattingRule(config) { + + override val wrapping = TrailingCommaOnDeclarationSiteRule() + override val issue = issueFor("Rule to mandate/forbid trailing commas") + + @Configuration("Defines whether a trailing comma (or no trailing comma) should be enforced on the declaration side") + private val allowTrailingComma by config(false) + + override fun overrideEditorConfigProperties(): Map, String> = + mapOf( + TrailingCommaOnDeclarationSiteRule.allowTrailingCommaProperty to allowTrailingComma.toString(), + ) +} diff --git a/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/TrailingCommaSpec.kt b/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/TrailingCommaSpec.kt index f72703cb707c..4a9be3cf8cdb 100644 --- a/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/TrailingCommaSpec.kt +++ b/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/TrailingCommaSpec.kt @@ -1,6 +1,5 @@ package io.gitlab.arturbosch.detekt.formatting -import io.gitlab.arturbosch.detekt.formatting.wrappers.TrailingComma import io.gitlab.arturbosch.detekt.test.TestConfig import io.gitlab.arturbosch.detekt.test.assertThat import org.junit.jupiter.api.Nested diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6359d7a28cfa..be0e35f6787e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ dokka = "1.7.10" jacoco = "0.8.8" kotlin = "1.7.10" -ktlint = "0.46.1" +ktlint = "0.47.1" junit = "5.9.0" contester = "0.2.0"