Back to Ktlint

Experimental

documentation/release-latest/docs/rules/experimental.md

1.8.01.6 KB
Original Source

!!! important Up and until Ktlint version 0.47, experimental were located in a separate experimental rule set. As of Ktlint version 0.48, each rule set can optionally define experimental rules.

All experimental rules described below are part of the standard rule set of Ktlint. To enable all experimental rules (from all rule sets), set editorconfig property below:

ini
[*.{kt,kts}]
ktlint_experimental=enabled

Also see enable/disable specific rules.

Expression operand wrapping

Wraps each operand in a multiline expression to a separate line.

=== ":material-heart: Ktlint"

```kotlin
val foo1 = bar || baz
val foo2 =
    bar1 ||
        bar2 ||
        baz1 ||
        (baz2 && baz3)
val foo3 = bar + baz
val foo4 =
    bar1 -
        bar2 -
        baz1 -
        (baz2 * baz3)
```

=== ":material-heart-off-outline: Disallowed"

```kotlin
val foo =
  multiLineOperand(
      "bar"
  ) || baz
if (bar1 || bar2 ||
    baz1 || (baz2 && baz3)
) {
   // do something
}
```

Rule id: standard:expression-operand-wrapping

Suppress or disable rule (1) { .annotate }

  1. Suppress rule in code with annotation below:
    kotlin
    @Suppress("ktlint:expression-operand-wrapping")
    
    Enable rule via .editorconfig
    editorconfig
    ktlint_standard_expression-operand-wrapping = enabled
    
    Disable rule via .editorconfig
    editorconfig
    ktlint_standard_expression-operand-wrapping = disabled