方法参数返回后,intellij代码格式无法正确缩进(kotlin&Java)

时间:2018-10-26 14:43:10

标签: java android-studio intellij-idea kotlin code-formatting

在与上述)不正确对齐的方法参数调用之后返回时,代码格式化如何工作有些麻烦。目前在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" }
}

与此同时,我们正在做的事情是在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" }
}

我们怀疑它应该位于首选项->代码样式-> Kotlin中,但是我们使用了很多参数,却没有找到它

AndroidStudio Preferences Code Style

上面是自动格式化行为的一个示例,但我们的问题出在诸如Single.zip()Observable.concat()之类的调用上。缩进会误导您在链中的位置。所以我们这样使用它。

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

代替

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

感谢您的帮助或线索。

1 个答案:

答案 0 :(得分:2)

您现在使用的格式实际上就是应该按照coding conventions来格式化此类代码的方式。如果方法调用的右括号被换行换行,则它与方法调用的开始对齐。不能选择缩进4个空格。