From f66a3217b9f15a055fc82d3cb4daa19d08f60db8 Mon Sep 17 00:00:00 2001 From: schalkms <30376729+schalkms@users.noreply.github.com> Date: Tue, 31 May 2022 23:04:03 +0200 Subject: [PATCH] Update MagicNumber rule to exclude .kts files (#4877) * Update MagicNumber rule to exclude .kts files The MagicNumber rule should not be enforced in script files, because you cannot have constants in these files. Closes #4863 * Adapt Exclusion.kt for MagicNumber rule --- .../src/main/resources/default-detekt-config.yml | 2 +- .../generator/printer/defaultconfig/Exclusion.kt | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/detekt-core/src/main/resources/default-detekt-config.yml b/detekt-core/src/main/resources/default-detekt-config.yml index c7d8ccb55a1..d1f23451b23 100644 --- a/detekt-core/src/main/resources/default-detekt-config.yml +++ b/detekt-core/src/main/resources/default-detekt-config.yml @@ -543,7 +543,7 @@ style: maxJumpCount: 1 MagicNumber: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts'] ignoreNumbers: - '-1' - '0' diff --git a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/defaultconfig/Exclusion.kt b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/defaultconfig/Exclusion.kt index 380dfa87258..56a00af6ad5 100644 --- a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/defaultconfig/Exclusion.kt +++ b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/defaultconfig/Exclusion.kt @@ -5,7 +5,7 @@ import io.gitlab.arturbosch.detekt.generator.collection.Rule /** * Holds a list of extra exclusions for rules and rule sets. */ -val exclusions = arrayOf(TestExclusions, KotlinScriptExclusions, LibraryExclusions) +val exclusions = arrayOf(TestExclusions, KotlinScriptExclusions, KotlinScriptAndTestExclusions, LibraryExclusions) /** * Tracks rules and rule sets which needs an extra `excludes: $pattern` property @@ -28,7 +28,6 @@ private object TestExclusions : Exclusions() { override val rules = setOf( "FunctionNaming", "WildcardImport", - "MagicNumber", "LateinitUsage", "StringLiteralDuplication", "SpreadOperator", @@ -51,6 +50,14 @@ private object KotlinScriptExclusions : Exclusions() { override val rules = setOf("MissingPackageDeclaration") } +private object KotlinScriptAndTestExclusions : Exclusions() { + + override val pattern = + "['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', " + + "'**/*.kts']" + override val rules = setOf("MagicNumber") +} + private object LibraryExclusions : Exclusions() { override val pattern = "['**']"