在SO上搜索“
vim haskell indent”。有很多答案如何配置Vim为Haskell缩进。他们都没有真正的“工作”。它们不提供由
Haskell indentation wiki page推荐的代码。例如,在do或let块中的语句对齐,=和|的数据类型等
这可能不是您正在寻找的答案,但有一种方法可以跟踪缩进维基指南,并与大多数编辑兼容。
例如,do-blocks
代替
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
当从句
myFunc x = x + y + c where y = x + 5 c = x * y
等等…
我个人开始使用这种风格,因为像你说的那样,没有编辑可以可靠地缩进代码。这在所有的编辑器中都能更好地工作,因为缩进总是四分之一的倍数(或者您选择的基准缩进级别)。当我使用这种风格,我也开始喜欢视觉上这种一致的缩进级别,所以即使编辑变得更聪明,我也不会回到这一点。