使用 Merlin 2.5.4,在我的项目中打印 OCaml 文件签名的正确方法是什么?例如,假设我有:
(* foo.ml *)
let x = 1
我想得到:
val x : int
什么是正确的命令(或命令序列)?
我试过的:
我暂时将文件包装在一个子模块中:module Foo = struct let x = 1 end
,然后运行:
$ ocamlmerlin
["type","expression","Foo","at",{"line":1,"col":7}]
但我得到:
["error",{"start":{"line":1,"col":0},"end":{"line":1,"col":3},"type":"type","sub":[],"valid":true,"message":"Error: Unbound constructor Foo"}]
这是有道理的,因为我实际上并没有提到我正在查询哪个文件,也没有提到查询(https://github.com/ocaml/merlin/blob/master/doc/dev/OLD-PROTOCOL.md#type -检查)允许我。
E我应该提一下,我使用的是 BuckleScript,而不是ocamlc
,并且ocamlc -i
仅在我不仅指定我的模块而且指定其所有模块依赖项时才有效;我正在寻找能够自动管理这些依赖项的东西。