3

我正在为 Haskell 开发一个相当简单的文本编辑器,我希望能够在用户点击“检查”时突出显示代码中的静态错误。

有没有办法使用 GHC-API 来“试运行”编译 haskell 文件而不实际编译它?我希望能够获取一个字符串并进行正常编译的所有检查,但没有输出。GHC-API 将是理想的,因为这样我就不必解析 GHC 的命令行输出来突出显示错误等。

此外,是否可以对字符串而不是文件进行此检查?(如果没有,我可以把它写到一个临时文件中,这不是非常有效,但可以工作)。

如果这是可能的,您能否提供或指出一个示例如何做到这一点?

这个问题问的是同样的问题,但它来自三年前,当时的答案是“GHC-API 是新的,还没有好的文档”。所以我希望状态已经改变。

编辑:“空运行”限制是因为我在基于 Web 的设置中执行此操作,其中编译发生在服务器端,所以我想避免每次用户点击“检查”时不必要的磁盘读/写。无论如何,可执行文件都会被丢弃,直到他们准备好运行的版本。

4

1 回答 1

4

只是为了解决这个问题,这已经作为ghc-mod存在,这里是homepage。这已经有 Emacs、Sublime 和 Vim 的前端,所以如果你需要如何使用它的示例,这里有很多。本质上 ghc-mod 正是您想要的,它是为编辑器设计的 GHC API 的包装器。

于 2013-12-17T05:16:45.773 回答