Существует недокументированный флаг --no-valign
, который, по-видимому, обеспечивает лучшее из обоих миров без изменения источника perltidy.
Как вы отметили, --no-add-whitespace
слишком агрессивен и не позволяет добавлять пробелы вдругие, желательные места (вокруг операторов и т. д.).С --no-valign
perltidy по-прежнему корректирует такие вещи, как my ($arg)=@_;
до my ($arg) = @_;
, но не пытается выровнять операторы по линиям по вертикали.Параметр не полностью отключает вертикальный выравниватель, поэтому вы по-прежнему получаете некоторые преимущества в других местах (например, побочные комментарии).
Единственная проблема, с которой я до сих пор сталкивался, заключается в том, что первый побочный комментарийблок побочных комментариев не выровнен с последующими:
my @DISAGREE_NONFATAL = grep { exists $warnings::Offsets{$_} } (
'newline', # stat on nonexistent file with a newline in it
'experimental', # no reason for these to be fatal
'deprecated', # unfortunately can't make these fatal
'portable', # everything worked fine here, just may not elsewhere
);
Это только уважение --minimum-space-to-comment
.Я не уверен, почему последующие (третья и четвертая) строки работают должным образом.Я редко использую побочные комментарии, так что это не главная проблема (и вы можете использовать --format-skipping
для таких блоков).