ktfmt
ktfmt copied to clipboard
Line break on Elvis operator inside parenthesized expression
Given an expression that has a parenthesized subexpression with the Elvis operator, ktfmt breaks on the Elvis operator rather than the higher-level subexpression even when the subexpression would all fit on the line. Example:
fun foo(
unreasonablyLongArgumentName: Int?,
unconscionablyLongArgumentName: Int?,
unbearablyLongArgumentName: Int?
): Int {
return (unreasonablyLongArgumentName ?: 0) +
(unconscionablyLongArgumentName ?: 0) +
(unbearablyLongArgumentName ?: 0)
}
Ktfmt 0.41 renders this as
fun foo(
unreasonablyLongArgumentName: Int?,
unconscionablyLongArgumentName: Int?,
unbearablyLongArgumentName: Int?
): Int {
return (unreasonablyLongArgumentName
?: 0) + (unconscionablyLongArgumentName ?: 0) + (unbearablyLongArgumentName ?: 0)
}
I'd expect it to either look like the original version or like
fun foo(
unreasonablyLongArgumentName: Int?,
unconscionablyLongArgumentName: Int?,
unbearablyLongArgumentName: Int?
): Int {
return (unreasonablyLongArgumentName ?: 0) +
(unconscionablyLongArgumentName ?: 0) + (unbearablyLongArgumentName ?: 0)
}