haskell - 如何快速轻松地为 Emacs 配置 GHC 集成?

标签 haskell emacs ghc

过去,我尝试在 Emacs 中开发 Haskell 时获得更多类似 IDE 的体验,但我总是偶然发现不太有效的集成。

有没有办法让 GHC 驱动的基本功能(例如查找标识符类型或使用 flymake 即时编译)才有效*。我所说的只是工作,我的意思是与生态系统的其他部分(例如 haskell-mode、cabal)很好地集成?

* Just works here 基本上意味着:只需要在 init.el 中进行一些基本配置,并且可能从 Hackage 安装一些包。

最佳答案

对于内联错误检查,hdevtools是我发现的最好的。它是一个运行 GHC 的后台服务器,以加快分析程序的速度。

它实际上很容易安装:你需要一个 Haskell 包:

cabal install hdevtools

和两个 Emacs 包,都通过 M-x list-packages : flycheckflycheck-hdevtools .

安装后,您只需要使用 M-x global-flycheck-mode 之类的东西来启用它。 (您也可以将其放入您的 .emacs 中。)您可以使用 C-x ` 转到下一个错误.您可能还想更改错误和警告面,您可以使用 M-x customize-group flycheck-faces .

不幸的是,Emacs 模式只做错误和警告(包括 hlint);它不公开检索标识符的类型,我相信 hdevtools支持。当遇到 Unicode 变量名或某些扩展名时,它有时也会给我随机的解析错误;但是,如果我只是忽略它们,其他一切都会起作用。我可能应该提交一个错误报告或其他东西。

关于haskell - 如何快速轻松地为 Emacs 配置 GHC 集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296676/

相关文章:

Emacs Magit : how can I see differences between a given branch and unstaged changes?

regex - 是否可以更改 emacs 的正则表达式语法?

haskell - 分析部分评估的程序

javascript - 这个编译为 JavaScript 的 Haskell 程序如何比 JavaScript 本身更快?

haskell - 如何轻松查看 Template Haskell 语句的输出?

haskell - 在类和记录之间进行选择

parsing - 如果从文件中读取,Parsec 将失败且没有错误

emacs - 是什么让您想学习 Common Lisp?你想从中得到什么?

haskell - 有人可以提供执行以下计划的机器吗?

haskell - Haskell 中是否有完全应用的柯里化(Currying)函数 thunk?