В emacs-режиме cperl строки, продолжающие оператор из предыдущей строки, имеют отступ на один уровень:
my $var
= (1+1)
* (2+2)
/ (3+3);
Однако, если оператор не начинается с нулевой отступ, потому что он внутри блока, тогда, если вы разбиваете свое утверждение на третью строку, Вы получаете другой уровень отступа и т. д.
sub break_my_indentation {
my $var
= (1+1)
* (2+2)
/ (3+3);
return "Indentation is broken.";
}
Есть ли способ исправить это так, чтобы операторы отступали так же, как внутри блоков, так и снаружи? Мне бы хотелось, чтобы второй пример выглядел так:
sub fix_my_indentation {
my $var
= (1+1)
* (2+2)
/ (3+3);
return "Indentation is fixed.";
}
cperl-mode
не имеет этой проблемы по умолчанию. По умолчанию отступы выглядят следующим образом:
my $var
= (1+1)
* (2+2)
/ (3+3);
Ваша настройка не позволяет cperl-mode
правильно отступать. См. переменную cperl-indent-rules-alist
для настройки отступа.