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