pinterest / ktlint

An anti-bikeshedding Kotlin linter with built-in formatter
https://pinterest.github.io/ktlint/
MIT License
6.06k stars 504 forks source link

long type parameter cause `Expected a single space` #2635

Closed david-claimer closed 2 months ago

david-claimer commented 2 months ago

Expected Behavior

    data class TestClass(
        val someTypeParam:
            Map<List<Map<Pair<String, String>, Pair<String, String>>>, List<Map<Pair<String, String>, Pair<String, String>>>>,
        val b: String,
    )

running ./gradlew :ktlintJvmMainSourceSetCheck should not produce any error as far as I am aware

Observed Behavior

`Expected a single space`

Steps to Reproduce

Put that class in a file and run ./gradlew :ktlintJvmMainSourceSetCheck

Your Environment

paul-dingemans commented 2 months ago

This problem seems to be resolved in Ktlint 1.1.1:

$ ktlint-1.0.1 --stdin
11:48:28.780 [main] INFO com.pinterest.ktlint.cli.internal.KtlintCommandLine - Enable default patterns [**/*.kt, **/*.kts]
data class TestClass(
    val someTypeParam:
        Map<List<Map<Pair<String, String>, Pair<String, String>>>, List<Map<Pair<String, String>, Pair<String, String>>>>,
    val b: String,
)
<stdin>:2:23: Expected a single space (standard:parameter-list-spacing)
<stdin>:3:1: Exceeded max line length (100) (standard:max-line-length)

Summary error count (descending) by rule:
  standard:max-line-length: 1
  standard:parameter-list-spacing: 1

$ ktlint-1.1.1 --stdin
11:48:45.395 [main] INFO com.pinterest.ktlint.cli.internal.KtlintCommandLine -- Enable default patterns [**/*.kt, **/*.kts]
data class TestClass(
    val someTypeParam:
        Map<List<Map<Pair<String, String>, Pair<String, String>>>, List<Map<Pair<String, String>, Pair<String, String>>>>,
    val b: String,
)
<stdin>:3:101: Exceeded max line length (100) (standard:max-line-length)

Summary error count (descending) by rule:
  standard:max-line-length: 1

Please upgrade to latest Ktlint 1.2.1.