对于case..when和if..else赋值的Emacs ruby​​-mode缩进定制?

时间:2011-11-23 07:24:41

标签: ruby emacs

在Emacs中,使用ruby-mode,我无法找到阻止这种情况发生的方法:

foo = if something?
        42
      else
        7
      end

当我们的内部惯例是:

foo = if something?
  42
else
  7
end

(同样适用于begin..endcase..when)。

此外,虽然它不那么令人讨厌,但我们case..when的约定是缩进每个when

case whatever
  when foo
    "a"
  when bar
    "b"
  else
    "c"
end

我知道人们通常说你应该将whencase对齐,但这不是我们公司的惯例,所以有人知道如何定制它吗?我可以找到很少的ruby模式定制。我唯一能够自定义的是括号内的缩进。

2 个答案:

答案 0 :(得分:3)

在Emacs 24.4及更新版本中,您可以将ruby-align-to-stmt-keywords设置为'(if begin case),或简单地设置为t,以解决问题的第一部分。

但它不会改变when的缩进偏移量。那将是一个不同的选择。

答案 1 :(得分:2)

无法自定义此功能。就缩进定制而言,ruby-mode是非常准确的,而Matz(其原作者)完全坚持支持缩进的标准样式。