форматирование кода intellij не имеет правильного отступа после возврата параметра метода (kotlin & Java) - PullRequest
0 голосов
/ 26 октября 2018

У нас есть некоторые проблемы с тем, как работает форматирование кода при возврате после вызова параметров метода, который неправильно выровнен с указанным выше ). В 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" }
}

Мы подозреваем, что это должно быть где-то в настройках -> Code Style -> Kotlin, но мы поиграли с кучей параметров и не нашли его

AndroidStudio Preferences Code Style

Выше приведен пример поведения автоформатов, но наша проблема в таких вызовах, как Single.zip(), Observable.concat() и т. Д. ... Отступы вводят в заблуждение, где в цепочке вы можете находиться. Таким образом, мы используем это так.

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

вместо

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

Спасибо за любую помощь или приводит.

1 Ответ

0 голосов
/ 26 октября 2018

Форматирование, которое вы используете сейчас, на самом деле соответствует тому, как такой код должен форматироваться в соответствии с соглашениями по кодированию . Если закрывающая круглая скобка вызова метода переносится на новую строку, она выравнивается с началом вызова метода. Нет возможности сделать отступ на 4 пробела.

...