我正在为Haskell开发一个相当简单的文本编辑器,我希望能够在用户点击“check”时突出显示代码中的静态错误。
有没有办法使用GHC-API进行“干运行”编译haskell文件而不实际编译它?我希望能够获取一个字符串并执行正常编译的所有检查,但没有输出。 GHC-API是理想的,因为那时我不必解析GHC的命令行输出来突出显示错误等。
另外,是否可以对字符串进行检查,而不是对文件进行检查? (如果没有,我可以将它写入临时文件,这不是非常有效,但可以工作)。
如果可以的话,您能提供或指出一个如何做到这一点的例子吗?
This question问同样的事情,但它是从三年前开始的,当时答案是“GHC-API是新的,还没有好的文档。”所以我希望状态已经改变。
编辑:“干运行”限制是因为我在基于Web的设置中执行此操作,其中编译发生在服务器端,因此我希望每次用户点击“检查”时避免不必要的磁盘读/写”。无论如何,可执行文件都会被丢弃,直到他们准备好运行一个版本。