自动更正库中的线长

Auto-correct line lengths in a library

我正在从事一个庞大的项目,我们决定让所有代码都符合每行 80 个字符的要求。这是一个基于 ruby 的项目,带有 C 的包装器。对于 Ruby,我决定使用 Rubocop 并使用命令:

rubocop --only LineLength

我收到 1,714 个错误,其中行的长度大于 80 个字符。除此之外,Rubocop 检测到许多其他错误,我现在想忽略这些错误。

我正在寻找自动更正所有行长度违规的最简单方法 ,以满足 C 和 Ruby 中的 80 个字符限制。

请不要自动更改行长。

线长是度量标准,而不是样式。样式通常可以交换,例如双引号与单引号、使用 hashrockets 与 ruby 2 中引入的新哈希语法等。选择样式通常是个人喜好问题,对程序本身。这就是为什么有样式自动更正的原因:更改它们不会改变语义。

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

指标还可以指示代码中的问题。例如,太高 ABC-size 表示方法可能做得太多。

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

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

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