强制第一个散列和数组元素位于rubocop中的同一行上
我正在寻找一种方法来执行这种使用rubocop编写哈希和数组的方式:
a = { first: 'a',
second: 'b' }
我发现了强制关闭大括号和缩进的规则。 但不能强制第一个元素与内部大括号打开。 可能吗?
到目前为止,我找到了Style/FirstHashElementLineBreak
,但它却相反。
强制关闭大括号与最后一个键位于同一行上,我使用这个:
Style/MultilineHashBraceLayout:
EnforcedStyle: same_line
但是这种设置没有任何意义,而不强制将左花括号放在与第一个键相同的行上。
我问过那些曾经试图做过类似事情的人,或者对rubocop配置有深入了解的人,是否有可能这样做,如果是,那么该怎么做?
首先, Style/MultilineHashBraceLayout
已被重命名为Layout/MultilineHashBraceLayout
,其次它的默认配置现在symmetrical
完全符合您的需求。
从文档:
使用对称(默认)样式时:
如果一个散列的左大括号与散列的第一个元素位于同一行,那么右大括号应该与散列的最后一个元素位于同一行。
如果散列的开始大括号位于散列第一个元素上方的行上,则大括号应位于散列最后一个元素下面的行上。
因此,在上面的代码上运行rubocop --only Layout/MultilineHashBraceLayout
将会产生现在的rubocop --only Layout/MultilineHashBraceLayout
。
上一篇: Enforce first hash and array element to be on the same line in rubocop
下一篇: Passing in a hash to a class without using an initialization method