diff options
Diffstat (limited to 'src')
3 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/detektrules/grammar/AvoidColour.kt b/src/main/java/at/hannibal2/skyhanni/detektrules/grammar/AvoidColour.kt new file mode 100644 index 000000000..4b7fd2276 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/detektrules/grammar/AvoidColour.kt @@ -0,0 +1,38 @@ +package at.hannibal2.skyhanni.detektrules.grammar + +import io.gitlab.arturbosch.detekt.api.CodeSmell +import io.gitlab.arturbosch.detekt.api.Config +import io.gitlab.arturbosch.detekt.api.Debt +import io.gitlab.arturbosch.detekt.api.Entity +import io.gitlab.arturbosch.detekt.api.Issue +import io.gitlab.arturbosch.detekt.api.Rule +import io.gitlab.arturbosch.detekt.api.Severity +import org.jetbrains.kotlin.psi.KtStringTemplateExpression + +/** + * This rule reports all usages of the word "colour" in the codebase, + * preferring the 'American' spelling "color" - this will ignore any + * type annotations, i.e., `@ConfigEditorColour` will not be reported. + */ +class AvoidColour(config: Config) : Rule(config) { + override val issue = Issue( + "AvoidColour", + Severity.Style, + "Avoid using the word 'colour' in code, prefer 'color' instead.", + Debt.FIVE_MINS + ) + + override fun visitStringTemplateExpression(expression: KtStringTemplateExpression) { + val text = expression.text + if (text.contains("colour")) { + report( + CodeSmell( + issue, + Entity.from(expression), + "Avoid using the word 'colour' in code, prefer 'color' instead." + ) + ) + } + super.visitStringTemplateExpression(expression) + } +} diff --git a/src/main/java/at/hannibal2/skyhanni/detektrules/grammar/GrammarRuleSetProvider.kt b/src/main/java/at/hannibal2/skyhanni/detektrules/grammar/GrammarRuleSetProvider.kt new file mode 100644 index 000000000..963ce582b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/detektrules/grammar/GrammarRuleSetProvider.kt @@ -0,0 +1,15 @@ +package at.hannibal2.skyhanni.detektrules.grammar + +import io.gitlab.arturbosch.detekt.api.Config +import io.gitlab.arturbosch.detekt.api.RuleSet +import io.gitlab.arturbosch.detekt.api.RuleSetProvider + +class GrammarRuleSetProvider : RuleSetProvider { + override val ruleSetId: String = "grammar-rules" + + override fun instance(config: Config): RuleSet { + return RuleSet(ruleSetId, listOf( + AvoidColour(config) + )) + } +} diff --git a/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.RuleSetProvider b/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.RuleSetProvider new file mode 100644 index 000000000..74e85a359 --- /dev/null +++ b/src/main/resources/META-INF/services/io.gitlab.arturbosch.detekt.api.RuleSetProvider @@ -0,0 +1 @@ +at.hannibal2.skyhanni.detektrules.grammar.GrammarRuleSetProvider |