gpt4 book ai didi

haskell - 有 Haskell 代码格式化程序吗?

转载 作者:行者123 更新时间:2023-12-03 07:02:56 25 4
gpt4 key购买 nike

我曾经写过

data A = A {
a :: Double
}
deriving(Eq, Show)

但现在我更喜欢

data A = A {
a :: Double
} deriving(Eq, Show)

我认为答案是否定的,但我还是要问:Haskell 有代码格式化程序吗?

最佳答案

新答案

我现在已经写了hindent ,用 haskell-src-exts 写成。它支持 Emacs 和 Vim。

<小时/>

旧答案

haskell-src-exts它会解析你的代码,并且有一个 pretty-print 模块,用于将 AST 打印到字符串中。例如

import Language.Haskell.Exts

main = interact codeFormat

codeFormat = check . fmap reformat . parseModuleWithComments where
reformat = prettyPrint
check r = case r of
ParseOk a -> a
ParseFailed loc err -> error $ show (loc,err)

示例:

λ> putStrLn $ codeFormat "module X where x = 1 where { y 1 = 2; y _ = 2 }"
module X where
x = 1
where y 1 = 2
y _ = 2

或者,您可以自己编写一个 pretty-print (如果您只是想特化,甚至可以基于上述内容),然后您就可以拥有您想要的任何样式。将 prettyPrint 替换为您自己的。 AST 非常简单。

然后你可以将它与 Emacs 连接起来,以便在每次点击保存或其他操作时重新格式化。

关于haskell - 有 Haskell 代码格式化程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com