强制第一个散列和数组元素位于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

链接地址: http://www.djcxy.com/p/60961.html

上一篇: 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