问题标签 [merlin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1525 浏览

vim - 在 vim 中获取 ocamlmerlin 自动完成功能

我正在尝试获取 OCaml 的自动完成功能。我喜欢使用 Vim,我发现了这个插件:

https://github.com/the-lambda-church/merlin

我使用 OPAM 安装它并添加了所需的行以将其加载到我的 .vimrc

我确保 OPAM bin 文件夹(包含 ocamlmerlin)在我的 .profile 文件中,并检查我是否可以从终端访问它,对于 vim,我使用“Ctrl-r =$PATH”打印了 PATH 变量,它显示它包含 OPAM bin 文件夹。

它仍然不起作用,我不知道还有什么可以使它起作用。我得到语法突出显示,但无论如何都没有梅林。我希望自动完成工作。

如果我按 Ctrl-N 显示补全建议,我会得到“正常”的 vim 补全,这基本上只是文档中提到的单词列表。

检查启动日志文件,我可以看到 Vim 确实加载了 merlin:

有任何想法吗?

0 投票
2 回答
389 浏览

emacs - 如何让 Merlin (OCaml) 忽略某些行?

我使用Merlin 和 Emacs 来编辑 OCaml 代码。它通常工作得很好,但我遇到了以下问题:

我需要使用一个由其他人构建的包,它向 OCaml 添加了一些不是该语言原生的关键字。由于我使用包来编译代码,因此编译效果很好。另一方面,Merlin 发疯了,认为新的关键字是错误的。幸运的是,新关键字只出现在一行的开头,所以我的代码看起来像这样:

FOO新关键字在哪里。梅林会抱怨说Unbound constructor FOO。所以问题是,我可以让马林忽略那条线吗?或者你能想出一个技巧来将语法包装在 Merlin 不会抱怨的东西中吗?

0 投票
3 回答
359 浏览

vim - 在 vim 中使用 merlin 在 ocaml 中进行 coq 插件开发

我用 opam 安装了 Coq,并想制作一个 Coq 插件。我设法使用 编译了一些插件示例coq_makefile,但如果我可以在 vim 中使用 merlin 来获取 Coq 库的类型信息和补全,那就太好了。

有没有办法可以将 Coq 库添加到 ocamlfind?

0 投票
1 回答
152 浏览

ocaml - 是否可以为 MetaOCaml 设置 Merlin 环境?

是否可以为MetaOCaml设置 Merlin 环境?

0 投票
3 回答
5304 浏览

emacs - Merlin 抱怨同一个项目中缺少一个模块

我是 Ocaml 的新手,只是用 emacs、merlin 和 flycheck 设置我的开发环境。除了一件事之外,一切都或多或少可以预期:merlin 似乎无法识别同一项目中模块之间的依赖关系。

例如,我有一个包含两个模块的测试项目:main.ml 和 awesome.ml。

这是我的 main.ml,它引用了第二个模块 awesome.ml

这是awesome.ml:

当我发送 main.ml 缓冲区以使用 utop-eval-buffer 函数评估到 utop 时,我收到一个错误:“错误:未绑定模块真棒”

我在具有 S 指令的项目的根目录中有 .merlin。我知道它是 merlin 发现的,因为它不会抱怨“开放核心”

这是我的_tags:

使用 ocamlbuild 进行常规项目编译工作正常,没有错误。这是Makefile

任何想法为什么在 utop 中无法识别 Awesome 模块或者这是预期的行为?

0 投票
0 回答
269 浏览

vim - OCaml 的 vim/merlin 插件出现问题

我正在尝试在线关注文档,但遇到了一些绊脚石。

将此代码添加到我的 .vimrc 后:

我最终遇到以下错误:

任何帮助将非常感激。

我还没有跑步opam user-setup install,因为我不确定这是否能解决问题。

谢谢!

0 投票
1 回答
232 浏览

ocaml - 使用 Merlin 打印文件的模块签名

使用 Merlin 2.5.4,在我的项目中打印 OCaml 文件签名的正确方法是什么?例如,假设我有:

我想得到:

什么是正确的命令(或命令序列)?

我试过的:

我暂时将文件包装在一个子模块中:module Foo = struct let x = 1 end,然后运行:

但我得到:

这是有道理的,因为我实际上并没有提到我正在查询哪个文件,也没有提到查询(https://github.com/ocaml/merlin/blob/master/doc/dev/OLD-PROTOCOL.md#type -检查)允许我。

E我应该提一下,我使用的是 BuckleScript,而不是ocamlc,并且ocamlc -i仅在我不仅指定我的模块而且指定其所有模块依赖项时才有效;我正在寻找能够自动管理这些依赖项的东西。

0 投票
1 回答
280 浏览

vim - 带有 VIM 的 Ocaml 的 Merlin 插件:保存时自动编译文件

我最近为一门大学课程安装了 Ocaml 及其 Merlin 插件。我使用 Vim 作为文本编辑器。我听说可以将 Merlin 配置为在保存时自动编译 .ml 文件,但是我无法通过网络研究找到任何相关信息,而且教授正在使用 emacs,所以他无法给我任何有关如何编译的信息激活此功能。

0 投票
1 回答
287 浏览

emacs - 如何在emacs merlin-mode中跳转到.ml(不是.mli)中的函数定义

当我按下M-.C-c C-l它通常会跳转到.mli文件中的函数声明。通常有关联的.ml文件,我可以切换到该文件,C-c C-a但随后,我必须手动在其中搜索此功能的实现。

如果有一种简单的方法可以直接跳转到.ml文件中的定义,或者在.mli.ml之间切换时以某种方式定位到相应的函数位置?

0 投票
1 回答
43 浏览

emacs - hello.ml 的自动生成文件#hello.ml# 来自哪里?

我正在处理hello.mlemacs Taureg Merlin 模式下在 Ocaml 中调用的文件,我意识到同一目录中有文件#hello.ml#(不是hellocaml.ml~)。在此期间,我只使用了顶层#use "hello.ml"并调用ocamlbuild了它。该文件#hello.ml#似乎只是某个hello.ml时间点的纯文本快照。我尝试再次在顶层更新hello.ml和使用,但与. 有谁知道这个文件来自哪里?#use#hello.ml#hello.ml