强制第一个散列和数组元素在rubocop中位于同一行

时间:2017-03-25 00:23:10

标签: ruby rubocop

我正在寻找一种方法来强制使用rubocop编写哈希和数组:

a = { first: 'a',
      second: 'b' }

我找到了强制执行右括号和缩进的规则。但是不能强制第一个元素与开括号内联。有可能吗?

到目前为止,我找到了Style/FirstHashElementLineBreak,但却恰恰相反。

要强制右括号与最后一个键位于同一行,我使用它:

Style/MultilineHashBraceLayout:
  EnforcedStyle: same_line

但是,如果不强迫开口支架与第一把钥匙在同一条线上,这种设置就没有意义了。

我问的是那些曾经尝试做类似事情的人,或者对rubocop配置有很好了解的人,是否可以这样做,如果是的话,该怎么做?

1 个答案:

答案 0 :(得分:0)

首先,Style/MultilineHashBraceLayout已重命名为Layout/MultilineHashBraceLayout,其次为symmetrical的默认配置完全符合您的要求。

From the docs

  

使用对称(默认)样式时:

     

如果哈希的左大括号与第一个元素位于同一行   哈希,然后结束括号应该在同一行   哈希的最后一个元素。

     

如果哈希的左括号位于第一个元素上方的行上   哈希,然后结束括号应该在最后一行下面   哈希的元素。

因此,对上面的代码运行rubocop --only Layout/MultilineHashBraceLayout将产生现在的攻击。<​​/ p>