在 Emacs 中,使用 ruby 模式,我找不到阻止这种情况发生的方法:
foo = if something?
42
else
7
end
Run Code Online (Sandbox Code Playgroud)
当我们的内部会议是:
foo = if something?
42
else
7
end
Run Code Online (Sandbox Code Playgroud)
(同样适用于begin..end和case..when)。
另外,虽然这不那么麻烦,但我们的惯例case..when是缩进每个when.
case whatever
when foo
"a"
when bar
"b"
else
"c"
end
Run Code Online (Sandbox Code Playgroud)
我知道人们通常说你应该when与保持一致case,但这不是我们公司的惯例,所以有人知道如何定制它吗?我发现 ruby 模式的定制很少。我唯一真正能够自定义的是括号内的缩进。
在 Emacs 24.4 及更高版本中,您可以设置ruby-align-to-stmt-keywords为'(if begin case)或简单地设置为t来解决问题的第一部分。
但它不会改变 的缩进偏移量when。那必须是一个不同的选择。