pinterest / ktlint

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

Ignore nested reference expressions in `chain-method-continuation` #2606

Closed paul-dingemans closed 3 months ago

paul-dingemans commented 3 months ago

Description

Ignore nested reference expressions in chain-method-continuation

Given code:

fun buildBar1(): Foo.Bar = Foo.Bar.builder().baz().baz.build()

fun buildBar2(): Foo.Bar = Foo.bar.Bar.builder().baz().baz.build()

fun buildBar3(): Foo.Bar = Foo.bar.bar.Bar.builder().baz().baz.build()

fun buildBar4(): Foo.Bar = Foo.Bar.baz.builder().baz().baz.build()

fun buildBar5(): Foo.Bar = Foo.baz().bar.Bar.builder().build()

Is now formatted as:

fun buildBar1(): Foo.Bar =
    Foo.Bar
        .builder()
        .baz()
        .baz
        .build()

fun buildBar2(): Foo.Bar =
    Foo.bar.Bar
        .builder()
        .baz()
        .baz
        .build()

fun buildBar3(): Foo.Bar =
    Foo.bar.bar.Bar
        .builder()
        .baz()
        .baz
        .build()

fun buildBar4(): Foo.Bar =
    Foo.Bar.baz
        .builder()
        .baz()
        .baz
        .build()

fun buildBar5(): Foo.Bar =
    Foo
        .baz()
        .bar.Bar
        .builder()
        .build()

Closes #2602

Checklist

Before submitting the PR, please check following (checks which are not relevant may be ignored):

Documentation is updated. See difference between snapshot and release documentation