我在使用Sublime Text 3的自动注册(和reindent)时遇到了一些麻烦 . 它似乎没有正确处理多行语句 . 请考虑以下代码:

class Foo {
    function bar() {
        if (VeryLongThingThatTakesUpALotOfRoom ||
                OtherQuiteLongThingSoINeedTwoLines) {
            statement1();
            statement2();
        }
    }

    function baz() {
        whatever;
    }
}

从命令选项板运行 reindent 会导致

class Foo {
    function bar() {
        if (VeryLongThingThatTakesUpALotOfRoom ||
            OtherQuiteLongThingSoINeedTwoLines) {
            statement1();
        statement2();
    }
}

function baz() {
    whatever();
}
}

这不正确的缩进不仅会导致文件其余部分的缩进,因为它会错误地缩进缩进级别 .

以下代码不那么灾难性(但仍然令人讨厌):

function foo() {
    return $thing->other_thing->really_quite_long_thing
        ->so_we_need_a_new_line_here();
}

reindent s到:

function foo() {
    return $thing->other_thing->really_quite_long_thing
    ->so_we_need_a_new_line_here();
}

如何构造长(多行)语句,使Sublime Text 3可以正确地缩进它们?