intellij 代码格式在方法参数 return 之后没有正确缩进 (kotlin & Java)

intellij code formatting does not indent correctly after a method parameter return (kotlin & Java)

当 return 在方法参数调用后未与上述 ) 正确对齐时,代码格式的工作方式存在一些问题。目前在 AndroidStudio 3.2.1 中,但据我所知它一直在这样做。问题发生在 Kotlin 和 Java.

我们不喜欢自动套用格式的功能。

fun behaviourExample() {
    this.methodCall(
        lambda1 = { /*something*/ },
        lambda2 = { /*somethingElse*/ }
    )
        .map { "Line incorrectly indented" }
        .map { "I'd like the lines to be correctly indented" }
}

fun methodCall(lambda1: () -> Unit, lambda2: () -> Unit): String {
    return "otherThing"
}

我们想找到更改自动套用格式的参数,如下所示:map{} 与结尾 )

正确对齐
fun behaviourExample() {
    this.methodCall(
            lambda1 = { /*something*/ },
            lambda2 = { /*somethingElse*/ }
        )
        .map { "Line correctly indented" }
        .map { "I'd like the lines to be correctly indented" }
}

同时我们正在做的是 return 在 methodCall 之前,这并不漂亮,但确实有效。

fun behaviourExample() {
    this
        .methodCall(
            lambda1 = { /*something*/ },
            lambda2 = { /*somethingElse*/ }
        )
        .map { "Line correctly indented but I don't like to be forced to add methodCall() in a new line" }
        .map { "I'd like the lines to be correctly indented" }
}

我们怀疑它应该在 preferences -> Code Style -> Kotlin 的某个地方,但我们尝试了一堆参数但没有找到它

以上是自动套用格式的示例,但我们的问题是调用 Single.zip()Observable.concat() 等...缩进会误导您在链中的位置。所以我们这样使用。

Single
    .zip (
        /* parameters */
    )
    .map { /* something */ }

而不是

Single.zip (
        /* parameters */
    )
    .map { /* something */ }

感谢您的帮助或线索。

您现在使用的格式实际上是根据 coding conventions 对此类代码进行格式化的方式。如果方法调用的右括号换行,则它与方法调用的开头对齐。没有缩进 4 个空格的选项。