Как сделать, чтобы режим cperl в emacs делал отступ всех продолжений операторов только на один уровень ?

В 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.";
}
8
задан hakre 11 May 2013 в 07:38
поделиться

1 ответ

cperl-mode не имеет этой проблемы по умолчанию. По умолчанию отступы выглядят следующим образом:

my $var
  = (1+1)
  * (2+2)
  / (3+3);

Ваша настройка не позволяет cperl-mode правильно отступать. См. переменную cperl-indent-rules-alist для настройки отступа.

1
ответ дан 5 December 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: