gpt4 book ai didi

ruby - Rubocop 规则在下一行进行赋值时强制双缩进

转载 作者:数据小太阳 更新时间:2023-10-29 09:03:40 26 4
gpt4 key购买 nike

我们的编码风格规定,如果赋值不适合一行,但赋值本身适合一行,我们应该将该行缩进四个空格而不是两个。示例:

my_var = Some.reasonable_method_call(param1)
my_var2 =
Some.crazy_long_ridiculous_method_that_doesnt_fit_on_same_line(param1)

有没有Rubocop我可以用来执行此规则吗?我们在一个 block 内使用两个空格的缩进,而用于长赋值的四个空格缩进有助于直观地表明该行不是嵌套在一个 block 中,而是上一行的延续。

最佳答案

查看 rubocop 源代码后,参数对齐规则似乎在 /lib/rubocop/cop/style/align_parameters.rb line 34:

 def base_column(node, args)
if fixed_indentation?
lineno = target_method_lineno(node)
line = node.loc.expression.source_buffer.source_line(lineno)
indentation_of_line = /\S.*/.match(line).begin(0)
------> indentation_of_line + configured_indentation_width
else
args.first.loc.column
end
end

configured_indentation_width 定义在 lib/rubocop/cop/mixin/autocorrect_alignment.rb 第 10 行:

  def configured_indentation_width
-> config.for_cop('IndentationWidth')['Width']
end

该变量存储在 /config/default.yml 中,这将要求您的所有代码都设置为 4 个空格而不是 2 个(类似于 Python PEP8)。

否则,您可以只修改 rubocop 的源代码,以便在多行参数分配/方法调用中始终需要 4 个空格。

另一个(更好的)选项是修改源代码,但添加对配置变量的引用,这样您就不会使用硬编码值。

关于ruby - Rubocop 规则在下一行进行赋值时强制双缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29237164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com