1 回答
我知道如何做到这一点的唯一方法是手册页中的以下内容:
跳过选定的代码部分
选定的代码行可以逐字传递到输出,无需任何格式。此功能默认启用,但可以使用 --noformat-skipping 或 -nfs 标志禁用。应该谨慎使用它以避免在代码中乱扔标记,但它可能有助于解决偶尔出现的问题。例如,它可能有助于保持旧注释代码的缩进不变,保持对齐注释的长块的缩进不变,保持某些列表格式不变,或者解决 perltidy 中的故障。
-fs, --format-skipping
默认情况下启用此标志,导致特殊开始和结束注释标记之间的任何代码被传递到输出而不进行格式化。默认的开始标记是#<<<,默认的结束标记是#>>>,但它们可能会更改(请参阅下面的下一项)。附加文本可能会出现在这些特殊注释行上,前提是它与标记之间至少有一个空格。例如
#<<< do not let perltidy touch this
my @list = (1,
1, 1,
1, 2, 1,
1, 3, 3, 1,
1, 4, 6, 4, 1,);
#>>>
注释标记可以放置在块注释可能出现的任何位置。如果它们似乎不起作用,请使用 -log 标志并检查 .LOG 文件。使用 -nfs 禁用此功能。
因此,在您的情况下,代码如下:
#<<<
curry add ($x, $y) {
return $x + $y;
}
#>>>
更新
我意识到您可能想要设置custom
特殊的注释标记,其中包含以下内容:
-fsb=string, --format-skipping-begin=string
-fsb=string 参数可用于更改格式跳过的开始标记。默认等效于 -fsb='#<<<'。您输入的字符串必须以 # 开头,并且应该在必要时用引号括起来以通过系统的命令 shell。它实际上是通过附加 '\s' 构造的模式的前导文本,因此您还必须包含反斜杠,以便字符按字面意思而不是作为模式。
一些示例显示示例字符串如何成为模式:
-fsb='#\{\{\{' becomes /^#\{\{\{\s/ which matches #{{{ but not #{{{{
-fsb='#\*\*' becomes /^#\*\*\s/ which matches #** but not #***
-fsb='#\*{2,}' becomes /^#\*{2,}\s/ which matches #** and #*****
然后您需要设置结束的特殊注释字符串:
-fse=string, --format-skipping-end=string
-fsb=string 是用于更改格式跳过的结束标记的相应参数。默认等效于 -fse='#<<<'。
注意特殊的注释字符串必须是注释,所以它们总是必须以#