据我所知,perltidy在代码格式化方面非常方便和有帮助。不过我还没有找到微调的方法perltidy。例如,我需要对&&和||进行格式化,以便在它们之前和之后有两个空格。像这样:
$some && $x > 7;
我可以做吗?如果是这样,怎么办?
构建您自己的整洁脚本非常容易,PPI您可以在perltidy. 概念验证:
use PPI;
my $doc = PPI::Document->new($ARGV[0]);
for my $op (@{$doc->find('PPI::Token::Operator')}) {
if ($op eq '&&' || $op eq '||') {
$op->{content} = " $op ";
}
}
print $doc;
Run Code Online (Sandbox Code Playgroud)
如果我们运行这个脚本本身,我们会得到:
$ perl je8tidy.pl je8tidy.pl
use PPI;
my $doc = PPI::Document->new($ARGV[0]);
for my $op (@{$doc->find('PPI::Token::Operator')}) {
if ($op eq '&&' || $op eq '||') {
$op->{content} = " $op ";
}
}
print $doc;
Run Code Online (Sandbox Code Playgroud)
它确实在第 4 行唯一的运算符周围插入了额外的空格||。