在SO上搜索“vim haskell indent”,有很多关于如何配置Vim进行Haskell缩进的答案。但它们都没有真正地“起作用”。它们不提供代码,如Haskell缩进维基页面所建议的那样。例如,在do或let块中语句的对齐,数据类型的
是否存在一种Vim解决方案可以生成像维基页面那样的代码?
=
和|
等。是否存在一种Vim解决方案可以生成像维基页面那样的代码?
=
和|
等。myFunc x = do y <- bar
return $ x + y
myFunx x = do
y <- bar
return $ x + y
这在缩进维基中明确提到作为一种可接受的替代方案。
同样地,您可以格式化数据类型。
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
版本外,这是我眼中喜欢的风格(并且在小幅变化下,一直如此)。 - luqui