perltidy 可以在执行缩进规则之前删除所有前导空格吗?
Can perltidy remove all leading whitespaces before performing indent rules?
假设我有一些如下所示的 Perl 代码
use Data::Dump q[pp];
sub something{
return 2 + 2;
}
我希望它被 perltidy 格式化为
use Data::Dump q[pp];
sub something{
return 2 + 2;
}
也就是说,消除了所有前导空格并且所有行都左对齐,但随后应用了缩进规则。我试过 -dws
但这没有用,而且其他选项似乎都不起作用。这可能吗?
如图所示,这是不可能的。
一些额外的实验表明,只要在文件开头有至少一行(几乎可以包含任何内容)缩进少于四 spaces,perltidy 就会按预期缩进对于原始问题。
针对此类特定示例的解决方案是在 Makefile 中包含预处理步骤,该步骤简单地消除了所有空行并在 运行 perltidy 之前留下了 space。这解决了问题。
sed -i -e 's/^[ \t]*//' file.pl
sed -i -e '/./!d' file.pl
perltidy file.pl
假设我有一些如下所示的 Perl 代码
use Data::Dump q[pp];
sub something{
return 2 + 2;
}
我希望它被 perltidy 格式化为
use Data::Dump q[pp];
sub something{
return 2 + 2;
}
也就是说,消除了所有前导空格并且所有行都左对齐,但随后应用了缩进规则。我试过 -dws
但这没有用,而且其他选项似乎都不起作用。这可能吗?
如图所示,这是不可能的。
一些额外的实验表明,只要在文件开头有至少一行(几乎可以包含任何内容)缩进少于四 spaces,perltidy 就会按预期缩进对于原始问题。
针对此类特定示例的解决方案是在 Makefile 中包含预处理步骤,该步骤简单地消除了所有空行并在 运行 perltidy 之前留下了 space。这解决了问题。
sed -i -e 's/^[ \t]*//' file.pl
sed -i -e '/./!d' file.pl
perltidy file.pl