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

时间:2014-10-13 14:37:26

标签: ruby rubocop

使用Rails 4应用程序我希望Rubocop在检查行是否为long时忽略带注释的行(只是注释或带有行尾注释的代码)。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:143)

有一种方法可以忽略每行的警察。

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

运行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

您可以在official manual中阅读更多关于RuboCop的内容。

查找值得查看的所有规则名称in the rubocop config files

cyberwiz说 - “当我需要规则名称而不是查看文档时运行rubocop -D。” 更新:现在这是没有标志的默认行为。

答案 1 :(得分:26)

可以定义正则表达式模式以自动忽略rubocop.yml中的某些行,因此您可以选择忽略以#字符开头的所有行:

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

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

请注意,这并不代表结束带注释的代码行:

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

答案 2 :(得分:6)

我认为这里的基本思想是你要强制行长度,无论n个字符后面是什么。默认为80个字符是旧终端窗口的一些货物崇拜,只能容纳那些数量的字符。我看到in the code的唯一选项是允许可能超出字符数限制的网址。

你可以ignore whole files,我猜这不是你想要的。

答案 3 :(得分:2)

您可以在rubocop中使用以下注释来忽略特定规则:

# rubocop:disable Metrics/LineLength
def this_could_be_a_very_long_line_that_extends_forever_into_infinity
end
# rubocop:enable Metrics/LineLength

您还可以通过将整个文件添加到.rubocop.yml来忽略整个文件:

AllCops:
  Exclude:
    - path/to/file.rb
相关问题