Rubocop Linelength:如何忽略带注释的行?

使用Rails 4应用程序时,我想要Rubocop在检查一行是否很长时忽略包含注释的行(只是一个注释或一些带行尾注释的代码)。 有没有办法做到这一点?

有一种方法可以在每行的基础上忽略警察。

还有一种方法可以通过configuration文件来完成。

运行rubocop --auto-gen-config ,它会生成一个文件,可以用来禁用这个rubocop --auto-gen-config

该命令还提供了如何加载这些选项的提示。

在每行的基础上,您也可以启用和禁用警察。

 # rubocop:disable RuleByName This is a long line # rubocop:enable RuleByName 

您也可以在代码中一次执行多个规则。

 # rubocop:disable BlockComments, AsciiComments 

通过使用内联指令,该指令只对该行有效,它看起来像这样:

 # Thanks to @jnt30 for the comment! method(argument) # rubocop:disable SomeRule, SomeOtherRule 

您可以在官方手册中阅读更多关于RuboCop的内容。

要find所有规则名称,在rubocopconfiguration文件中查找它的值得

cyberwiz说 – “当我需要规则名称而不是查看文档时运行rubocop -D 。”

可以定义正则expression式来自动忽略rubocop.yml某些行,因此您可以select忽略以#开头的所有行:

 Metrics/LineLength: Max: 80 IgnoredPatterns: ['\A#'] 

这可以改进,以便“缩进”的注释行(即空格后跟一个#字符)也被忽略,如果这是你想要的。

请注意,这不包含以评论结尾的代码行,但是:

 some_code(that_does_something) # This line would NOT be ignored by Rubocop. 

我认为这里的基本思想是你要强制行长,不pipen字符后面是什么。 默认为80个字符是一些旧的terminal窗口,只能容纳这个字符数的货物邪教。 我在代码中看到的唯一选项是允许可能超出字符数限制的URL。

你可以忽略整个文件 ,我想这不是你要找的。