问题标签 [perl-tidy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Perlcritic 无法识别已整理的代码
我将perlcritic与perltidy一起使用,并且在应用其他规则时,我收到以下错误消息:
我已经运行 perltidy 来整理代码,但我仍然遇到问题。在 .perlcriticrc 文件中,我添加了以下带有 .perltidyrc 文件路径的规则。
我正在像这样运行 perlcritic:
我确信 perlcritic 正在使用 rc 文件,因为我可以通过修改文件内容来打开和关闭规则。我也确定 perltidy 以同样的方式使用正确的 rc 文件。
如何在不禁用 RequireTidyCode 规则的情况下防止此错误?
我添加了一个示例,通过将实际文件减少到仍然出现错误的最小值来重新创建问题。这就是我运行它的方式:
评论家输出的第一行是:
这些是文件:
TestCritic.pm
.perltidyrc
.perlcriticrc
版本是:perlcritic v1.132 perltidy v20181120
谢谢,
perl - 我们如何或应该排序“使用 Our::Class qw(may_be some_imports);” 带有 Perl::Tidy 的语句(或没有)?
我们希望use
通过 perltidy 或其他工具(如果可用)自动在课程开始时按字母顺序对语句进行排序。我们已经Test::PerlTidy
用来测试代码在提交之前是否已格式化。
我发现 Perl::Tidy 有选项prefilter
和postfilter
.
prefilter
看起来是更好的方法,因为我可以按照我希望的任何逻辑顺序对语句进行排序,然后将其留给 perltidy 进行格式化。
- 你会推荐对使用语句进行排序吗?
use
d 类不依赖于在另一个之前使用一个。 - 你会推荐使用这些 Perl::Tidy 特性吗?
- 有更好的方法吗?
perl - 如何使用 perltidy 对文件进行就地更新?
如果我想使用 perltidy 就地更新文件,我该怎么做?假设我想运行 perl-tidyfoo.pl
但我想进行更改foo.pl
perl - 为什么 perltidy 要去标准输出?
我有一个 bash 命令,get-modified-perl-files
它返回我在存储库中修改的所有 Perl 文件。我想在所有这些文件上使用 perltidy。
我创建了一个 bash 函数来完成这项工作:
根据 perltidy 的帮助页面, -b 选项应该创建我的原始文件的备份并就地修改它:
-b 将原始文件备份到 .bak 并就地修改文件
但是,当我启动我的 bash 函数时,没有创建备份。我的文件没有被修改,但是 perltidy 的输出打印在标准输出上。因此,我决定以这种方式更改对 perltidy 的调用:
现在,当我运行命令时,我的文件备份已正确完成,但原始文件已清空,并显示以下消息:
跳过文件:file.pl:零大小
我找到了一种解决方法,可以提供我想要的结果,但它似乎牵强附会:
为什么 -b 选项不起作用?有没有办法在不使用这种奇怪的重定向的情况下做同样的工作?
编辑:这是我的.perltidyrc
文件:
perl - 如何应用 --space-prototype-paren=0 之类的东西,但对于带有 perltidy 的签名
我们有以下代码:
当我通过 perltidy 运行它时,它的格式如下:
如何确保不在子例程名称和签名的起始括号之间添加空格?我查看了 perltidy文档,但我发现的最接近的文档--space-prototype-paren=0
似乎不适用于签名。
perl - 如何使用 perltidy 格式化 qw 列表?
假设 Perl 脚本如下:
perltidy
使用 options:执行,我在数组和列表perltidy -nopro -ci=4 -boc -sts
之间得到不同的右括号对齐:qw
我想让列表的右括号与第qw
1 列对齐。我做错了什么,或者我错过了什么?
更新
感谢@toolic 的建议,我禁用了我的.perltidyrc
文件(我的错,我之前错过了)并搜索了导致 qw 列表格式错误的规则,发现这是--space-terminal-semicolon
仅改变 qw 列表的关闭括号对齐的规则。
我更新了上述问题描述中的 perltidy 选项。我真的不明白它是否可能是一个错误perltidy
。
无论如何,这个问题现在是可重现的,似乎我必须在qw
列表的右括号未对齐或放弃语句末尾的分号前的空格之间选择较小的邪恶:-(
perl - perltidy 可以在执行缩进规则之前删除所有前导空格吗?
假设我有一些看起来像这样的 Perl 代码
我希望它被 perltidy 格式化为
也就是说,所有前导空格都被消除了,所有行都左对齐,但随后应用了缩进规则。我已经尝试过-dws
,但这没有用,其他选项似乎都没有做任何事情。这可能吗?