diff --git a/documentation/snapshot/docs/rules/standard.md b/documentation/snapshot/docs/rules/standard.md index 4aea5c64b6..6049bf39ff 100644 --- a/documentation/snapshot/docs/rules/standard.md +++ b/documentation/snapshot/docs/rules/standard.md @@ -499,7 +499,7 @@ Enforce naming of property. } ``` -This rule can also be suppressed with the IntelliJ IDEA inspection suppression `PropertyName`. +This rule can also be suppressed with the IntelliJ IDEA inspection suppression `PropertyName` or `ConstPropertyName`. Rule id: `property-naming` (`standard` rule set) diff --git a/ktlint-rule-engine/src/main/kotlin/com/pinterest/ktlint/rule/engine/internal/SuppressionLocatorBuilder.kt b/ktlint-rule-engine/src/main/kotlin/com/pinterest/ktlint/rule/engine/internal/SuppressionLocatorBuilder.kt index 6f9948303a..715bcae262 100644 --- a/ktlint-rule-engine/src/main/kotlin/com/pinterest/ktlint/rule/engine/internal/SuppressionLocatorBuilder.kt +++ b/ktlint-rule-engine/src/main/kotlin/com/pinterest/ktlint/rule/engine/internal/SuppressionLocatorBuilder.kt @@ -42,6 +42,7 @@ internal object SuppressionLocatorBuilder { "FunctionName" to "standard:function-naming", "PackageName" to "standard:package-name", "PropertyName" to "standard:property-naming", + "ConstPropertyName" to "standard:property-naming", "UnusedImport" to "standard:no-unused-imports", ) private val SUPPRESS_ANNOTATIONS = setOf("Suppress", "SuppressWarnings") diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/rules/PropertyNamingRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/rules/PropertyNamingRuleTest.kt index 16c7f10ad4..c084562568 100644 --- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/rules/PropertyNamingRuleTest.kt +++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/rules/PropertyNamingRuleTest.kt @@ -416,4 +416,30 @@ class PropertyNamingRuleTest { LintViolation(12, 9, "Backing property name not allowed when 'private' modifier is missing", canBeAutoCorrected = false), ) } + + @Test + fun `Given a property name suppressed via 'PropertyName' then also suppress the ktlint violation`() { + val code = + """ + class Foo { + @Suppress("PropertyName") + var FOO = "foo" + } + """.trimIndent() + propertyNamingRuleAssertThat(code).hasNoLintViolations() + } + + @Test + fun `Issue 2441 - Given a property name suppressed via 'ConstPropertyName' then also suppress the ktlint violation`() { + val code = + """ + interface Bar { + companion object { + @Suppress("ConstPropertyName") + const val bar: String = "" + } + } + """.trimIndent() + propertyNamingRuleAssertThat(code).hasNoLintViolations() + } }