zel*_*ell 5 emacs ocaml coding-style nested
我正在阅读关于Ocaml嵌套版本的Ocaml Style指南.
有人建议
缩进嵌套的let表达式:嵌套的let表达式的代码块不应缩进.坏:
let x = exp1 in
let y = exp2 in
x + y
Run Code Online (Sandbox Code Playgroud)
好:
let x = exp1 in
let y = exp2 in
x + y
Run Code Online (Sandbox Code Playgroud)
但是,你怎么看待如何缩进我的下一个程序.
let f =
let g = 3 in
g + 2
Run Code Online (Sandbox Code Playgroud)
上面的内容由emacs缩进.但显然,这些emacs的缩进违反了我之前引用的风格指南.要遵循这种风格,不应该更像这个吗?
let f =
let g = 3 in
g + 2
Run Code Online (Sandbox Code Playgroud)
谢谢你的想法.
@Gilles:在我目前的默认图阿雷格模式中,我得到了这样的缩进,这与你的不同
let f =
let g = 3 in
let h = 4 in
g + 2
Run Code Online (Sandbox Code Playgroud)
你能解释我应该采取哪种配置来使你的图阿雷格模式缩进吗?
官方caml-mode(标准 Ocaml 发行版的一部分)默认不意图表达表达式的主体let:
let f =
let g = 3 in
let h = 4 in
g + 2
Run Code Online (Sandbox Code Playgroud)
这是 Ocaml 作者使用的风格(因此是正确的风格)。根据我的经验,官方模式与官方风格非常匹配(这并不奇怪,因为它来自同一个人)。如果您得到不同的结果,则您(或在您的计算机上安装该模式的人员或发行版)必须已对其进行配置。
Tuareg 模式在我的机器上的上面的代码片段上放置了相同的缩进(Debian squeeze)。不同版本有不同的缩进默认值;tuareg-in-indent特别是,这是2.0.1的文档字符串:
关键字缩进多少个空格
in。
上游推荐 0,这是我们从 2.0.1 开始默认的值,而不是历史的tuareg-default-indent.