自动更正库中的行长度

Ara*_*atK 6 ruby syntax rubocop

我正在开发一个庞大的项目,我们决定让所有代码符合每行80个字符.它是一个基于ruby的项目,带有C的包装器.对于Ruby,我决定使用Rubocop并使用命令:

rubocop --only LineLength
Run Code Online (Sandbox Code Playgroud)

我得到了1,714个错误,其中行的长度大于80个字符.除此之外,还有许多Rubocop检测到的其他错误,我现在想忽略它们.

我要寻找到自动纠正所有的线路长度违反最简单的方法,以满足无论是在C和红宝石的80个字符的限制.

Sve*_*mer 1

请不要自动更改行长。

线长是一个度量标准,而不是一种样式。样式通常可以交换,例如双引号与单引号、使用 hashrockets 与 ruby​​ 2 中引入的新哈希语法等。选择样式通常取决于品味,并且对程序本身影响很小(如果有的话)。这就是为什么样式有自动更正的原因:更改它们不会改变语义。

指标包括行长度、类长度ABC-Size等。使用静态代码分析检查指标与检查样式完全不同。例如,设置行长度的最大值不是一个品味问题,您宁愿使用它来强制执行某种编程风格。程序员必须避免长变量名和深度嵌套,以将行长度保持在限制范围内。

指标还可以指示代码中的问题。例如,过高的 ABC 大小表示某个方法可能执行的操作过多。

除此之外,自动缩短所有代码行即使不是不可能,也是非常困难的,因为 Ruby 是一种非常复杂的语言。

这里有一些替代方案,而不是自动减少线长:

  • 查看是否可以通过启用AllowHeredoc 和AllowURI 选项来减少违规次数。在这里阅读有关它们的信息https://rubocop.readthedocs.io/en/latest/cops_metrics/#metricslinelength
  • 运行rubocop --only LineLength --auto-gen-config并使用 rubocops 配置来停止检查行长度。
  • 问问自己:通过减少线路长度我可以获得什么价值?
  • 不要将太长的行视为风格违规,而是将其视为潜在问题的可能指标。尝试找出这个问题并解决它。