Skip to content

Commit

Permalink
New wrapped ktlint rule NoSingleLineBlockCommentRule (#6104)
Browse files Browse the repository at this point in the history
  • Loading branch information
marschwar committed May 20, 2023
1 parent 20853fc commit 940af07
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import io.gitlab.arturbosch.detekt.formatting.wrappers.NoLineBreakAfterElse
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoLineBreakBeforeAssignment
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoMultipleSpaces
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoSemicolons
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoSingleLineBlockComment
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoTrailingSpaces
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoUnitReturn
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoUnusedImports
Expand Down Expand Up @@ -163,6 +164,7 @@ class KtLintMultiRule(config: Config = Config.empty) :
NoBlankLineInList(config),
NoConsecutiveComments(config),
NoEmptyFirstLineInClassBody(config),
NoSingleLineBlockComment(config),
ParameterListSpacing(config),
StringTemplateIndent(config),
TryCatchFinallySpacing(config),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package io.gitlab.arturbosch.detekt.formatting.wrappers

import com.pinterest.ktlint.rule.engine.core.api.editorconfig.EditorConfigProperty
import com.pinterest.ktlint.rule.engine.core.api.editorconfig.INDENT_SIZE_PROPERTY
import com.pinterest.ktlint.ruleset.standard.rules.NoSingleLineBlockCommentRule
import io.gitlab.arturbosch.detekt.api.Config
import io.gitlab.arturbosch.detekt.api.config
import io.gitlab.arturbosch.detekt.api.internal.AutoCorrectable
import io.gitlab.arturbosch.detekt.api.internal.Configuration
import io.gitlab.arturbosch.detekt.formatting.FormattingRule

/**
* See [ktlint docs](https://pinterest.github.io/ktlint/rules/experimental/#no-single-line-block-comments) for documentation.
*/
@AutoCorrectable(since = "1.23.0")
class NoSingleLineBlockComment(config: Config) : FormattingRule(config) {

override val wrapping = NoSingleLineBlockCommentRule()
override val issue = issueFor("Reports single block line comments")

@Configuration("indentation size")
private val indentSize by config(4)

override fun overrideEditorConfigProperties(): Map<EditorConfigProperty<*>, String> =
mapOf(
INDENT_SIZE_PROPERTY to indentSize.toString(),
)
}
4 changes: 4 additions & 0 deletions detekt-formatting/src/main/resources/config/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,10 @@ formatting:
NoSemicolons:
active: true
autoCorrect: true
NoSingleLineBlockComment:
active: false
autoCorrect: true
indentSize: 4
NoTrailingSpaces:
active: true
autoCorrect: true
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package io.gitlab.arturbosch.detekt.formatting

import io.gitlab.arturbosch.detekt.api.Config
import io.gitlab.arturbosch.detekt.formatting.wrappers.CommentWrapping
import io.gitlab.arturbosch.detekt.formatting.wrappers.NoSingleLineBlockComment
import io.gitlab.arturbosch.detekt.test.assertThat
import org.junit.jupiter.api.Test

class NoSingleLineBlockCommentSpec {
@Test
fun `Given a single documentation comment that start starts and end on a same line`() {
val code = """
/** Some comment */
""".trimIndent()
assertThat(NoSingleLineBlockComment(Config.empty).lint(code)).isEmpty()
}

@Test
fun `Given a single block comment that start starts and end on a same line`() {
val code = """
/* Some comment */
""".trimIndent()
assertThat(NoSingleLineBlockComment(Config.empty).lint(code)).hasSize(1)
}

@Test
fun `Given a block comment followed by a code element on the same line as the block`() {
val code = """
/* Some comment 1 */ val foo1 = "foo1"
/* Some comment 2 */val foo2 = "foo2"
/* Some comment 3 */ fun foo3() = "foo3"
/* Some comment 4 */fun foo4() = "foo4"
""".trimIndent()

assertThat(CommentWrapping(Config.empty).lint(code)).hasSize(4)
}
}

0 comments on commit 940af07

Please sign in to comment.