【发布时间】:2011-12-24 00:49:59
【问题描述】:
在 SO 上搜索“vim haskell indent”。关于如何为 Haskell 缩进配置 Vim 有很多答案。他们都没有真正“工作”。他们不提供Haskell indentation wiki page 推荐的代码。例如,do 或 let 块中的语句对齐、数据类型的= 和| 等。
是否存在生成类似于 wiki 的代码的 Vim 解决方案?
【问题讨论】:
标签: haskell indentation
在 SO 上搜索“vim haskell indent”。关于如何为 Haskell 缩进配置 Vim 有很多答案。他们都没有真正“工作”。他们不提供Haskell indentation wiki page 推荐的代码。例如,do 或 let 块中的语句对齐、数据类型的= 和| 等。
是否存在生成类似于 wiki 的代码的 Vim 解决方案?
【问题讨论】:
标签: haskell indentation
这可能不是您正在寻找的答案,但有一种方法可以让您遵循缩进 wiki 指南并与大多数编辑器兼容。
例如,do-blocks
代替
myFunc x = do y <- bar
return $ x + y
你可以这样缩进
myFunx x = do
y <- bar
return $ x + y
这在缩进 wiki 中被明确提及为可接受的替代方案。
同样可以格式化数据类型
data FooBar
= Foo
| Bar
| Asdf
守卫
myFunc x
| x < 0 = 0
| otherwise = x
Where 子句
myFunc x = x + y + c where
y = x + 5
c = x * y
等等……
我个人开始使用这种样式,因为就像你说的那样,没有编辑器可以可靠地缩进代码。这在所有编辑器中效果更好,因为缩进总是四的倍数(或者您为基本缩进级别选择的任何其他内容)。当我使用这种风格时,我也开始在视觉上更喜欢这种一致的缩进级别,所以即使编辑器变得更聪明,我也不会回到这一点。
【讨论】:
where 版本,这是我的眼睛更喜欢的风格(并且,一直以来都有细微的变化)。