【发布时间】:2014-10-29 20:14:10
【问题描述】:
我使用 Merlin 和 Emacs 来编辑 OCaml 代码。它通常工作得很好,但我遇到了以下问题:
我需要使用由其他人构建的包,该包向 OCaml 添加了一些不是该语言原生的关键字。由于我使用包来编译代码,因此编译效果很好。另一方面,Merlin 发疯了,认为新的关键字是错误的。幸运的是,新关键字只出现在行首,所以我的代码如下所示:
let square x = x * x;;
let rec fact x =
if x <= 1 then 1 else x * fact (x - 1);;
FOO "This syntax is not standard Ocaml" square fact;;
FOO 是新关键字。 Merlin 会抱怨并说Unbound constructor FOO。所以问题是,我可以让马林忽略那条线吗?或者你能想出一个技巧来将语法包装成 Merlin 不会抱怨的东西吗?
【问题讨论】:
-
我认为你无能为力。实际上,这种语言不再是 OCaml,Merlin 将无法处理它。您可能可以作弊,方法是编写一个将
FOO定义为适当函数或数据构造函数的模块,然后仅为 Merlin 导入该模块。