我正在做一个巨大的项目,我们决定让所有代码符合每行 80 个字符。这是一个基于 ruby 的项目,带有 C 的包装器。对于 Ruby,我决定使用 Rubocop 并使用以下命令:
rubocop --only LineLength
我收到了 1,714 个错误,其中行的长度大于 80 个字符。除此之外,Rubocop 还检测到了许多其他错误,我现在想忽略这些错误。
我正在寻找最简单的方法来自动更正所有行长违规,以满足 C 和 Ruby 中 80 个字符的限制。
请不要自动更改行长。
线长是一种度量,而不是一种风格。样式通常可以交换,例如双引号与单引号,使用 hashrockets 与 ruby 2 中引入的新哈希语法等。选择样式通常是品味问题,对程序本身几乎没有(如果有的话)影响。这就是样式自动更正的原因:更改它们不会改变语义。
指标包括 linelength、classlength和ABC-Size等。使用静态代码分析检查指标与检查样式完全不同。例如,将最大线长设置为不是一个品味问题,您宁愿使用它来强制执行某种编程风格。程序员必须避免长变量名和深度嵌套以将行长保持在限制之下。
指标还可以指示代码中的问题。例如,过高的 ABC 大小表示方法可能做得太多。
除此之外,如果不是不可能的话,自动缩短所有代码行将非常困难,因为 ruby 是一种非常复杂的语言。
这里有一些替代方法,而不是自动减少线长:
rubocop --only LineLength --auto-gen-config
并使用 rubocops 配置停止检查线长。