diff --git a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/RuleSetProvider.kt b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/RuleSetProvider.kt index 26ede8ba8..ba2791bc6 100644 --- a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/RuleSetProvider.kt +++ b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/RuleSetProvider.kt @@ -4,5 +4,12 @@ package io.gitlab.arturbosch.detekt.api * @author Artur Bosch */ interface RuleSetProvider { + fun buildRuleset(config: Config): RuleSet? { + val ruleSet = instance(config) + val subConfig = config.subConfig(ruleSet.id) + val active = subConfig.valueOrDefault("active") { true } + return if (active) ruleSet else null + } + fun instance(config: Config): RuleSet } \ No newline at end of file diff --git a/detekt-api/src/test/resources/detekt.yml b/detekt-api/src/test/resources/detekt.yml index 1125f2fe5..a2a3c9b1a 100644 --- a/detekt-api/src/test/resources/detekt.yml +++ b/detekt-api/src/test/resources/detekt.yml @@ -18,4 +18,7 @@ style: WildcardImport: active: true NoElseInWhenExpression: - active: true \ No newline at end of file + active: true + +comments: + active: false \ No newline at end of file diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Detekt.kt b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Detekt.kt index 067756c02..b9e286ec7 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Detekt.kt +++ b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Detekt.kt @@ -27,9 +27,9 @@ class Detekt(project: Path, fun run(): Map> { val ktFiles = compiler.compile() val providers = loadProviders() - val futures = providers.map { - task { it.instance(config).acceptAll(ktFiles) } - } + val futures = providers.map { it.buildRuleset(config) } + .filterNotNull() + .map { task { it.acceptAll(ktFiles) } } return awaitAll(futures).toMap() }