diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRule.kt index 117d8fe2cf..fdac58629f 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRule.kt @@ -1,6 +1,7 @@ package com.github.shyiko.ktlint.ruleset.standard import com.github.shyiko.ktlint.core.Rule +import com.github.shyiko.ktlint.core.ast.ElementType.KDOC_TEXT import com.github.shyiko.ktlint.core.ast.ElementType.OBJECT_KEYWORD import com.github.shyiko.ktlint.core.ast.isPartOf import com.github.shyiko.ktlint.core.ast.isPartOfString @@ -20,6 +21,9 @@ class NoSemicolonsRule : Rule("no-semi") { autoCorrect: Boolean, emit: (offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> Unit ) { + if (node.elementType == KDOC_TEXT) { + return + } if (node is LeafPsiElement && node.textMatches(";") && !node.isPartOfString() && !node.isPartOf(KtEnumEntry::class) ) { diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRuleTest.kt index f800302127..540b02b61c 100644 --- a/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRuleTest.kt +++ b/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoSemicolonsRuleTest.kt @@ -101,4 +101,19 @@ class NoSemicolonsRuleTest { ) ) } + + @Test + fun testSemicolonAllowedInKDocAfterIdentifiers() { + assertThat( + NoSemicolonsRule().lint( + """ + /** + * [x]; + */ + fun foo() { + } + """ + ) + ).isEmpty() + } }