У меня возникли небольшие проблемы с автоматическим отступом Sublime Text 3 (и повторным отступом) для PHP. Кажется, он неправильно обрабатывает многострочные операторы. Рассмотрим следующий код:
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
с:
function foo() {
return $thing->other_thing->really_quite_long_thing
->so_we_need_a_new_line_here();
}
Как можно структурировать длинные (многострочные) операторы таким образом, чтобы Sublime Text 3 мог правильно их отступить?
Задача ещё не решена.
Других решений пока нет …