问题标签 [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.
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:
有任何想法吗?
emacs - 如何让 Merlin (OCaml) 忽略某些行?
我使用Merlin 和 Emacs 来编辑 OCaml 代码。它通常工作得很好,但我遇到了以下问题:
我需要使用一个由其他人构建的包,它向 OCaml 添加了一些不是该语言原生的关键字。由于我使用包来编译代码,因此编译效果很好。另一方面,Merlin 发疯了,认为新的关键字是错误的。幸运的是,新关键字只出现在一行的开头,所以我的代码看起来像这样:
FOO
新关键字在哪里。梅林会抱怨说Unbound constructor FOO
。所以问题是,我可以让马林忽略那条线吗?或者你能想出一个技巧来将语法包装在 Merlin 不会抱怨的东西中吗?
vim - 在 vim 中使用 merlin 在 ocaml 中进行 coq 插件开发
我用 opam 安装了 Coq,并想制作一个 Coq 插件。我设法使用 编译了一些插件示例coq_makefile
,但如果我可以在 vim 中使用 merlin 来获取 Coq 库的类型信息和补全,那就太好了。
有没有办法可以将 Coq 库添加到 ocamlfind?
ocaml - 是否可以为 MetaOCaml 设置 Merlin 环境?
是否可以为MetaOCaml设置 Merlin 环境?
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 模块或者这是预期的行为?
vim - OCaml 的 vim/merlin 插件出现问题
我正在尝试在线关注文档,但遇到了一些绊脚石。
将此代码添加到我的 .vimrc 后:
我最终遇到以下错误:
任何帮助将非常感激。
我还没有跑步opam user-setup install
,因为我不确定这是否能解决问题。
谢谢!
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
仅在我不仅指定我的模块而且指定其所有模块依赖项时才有效;我正在寻找能够自动管理这些依赖项的东西。
vim - 带有 VIM 的 Ocaml 的 Merlin 插件:保存时自动编译文件
我最近为一门大学课程安装了 Ocaml 及其 Merlin 插件。我使用 Vim 作为文本编辑器。我听说可以将 Merlin 配置为在保存时自动编译 .ml 文件,但是我无法通过网络研究找到任何相关信息,而且教授正在使用 emacs,所以他无法给我任何有关如何编译的信息激活此功能。
emacs - 如何在emacs merlin-mode中跳转到.ml(不是.mli)中的函数定义
当我按下M-.
或C-c C-l
它通常会跳转到.mli文件中的函数声明。通常有关联的.ml文件,我可以切换到该文件,C-c C-a
但随后,我必须手动在其中搜索此功能的实现。
如果有一种简单的方法可以直接跳转到.ml文件中的定义,或者在.mli和.ml之间切换时以某种方式定位到相应的函数位置?
emacs - hello.ml 的自动生成文件#hello.ml# 来自哪里?
我正在处理hello.ml
emacs Taureg Merlin 模式下在 Ocaml 中调用的文件,我意识到同一目录中有文件#hello.ml#
(不是hellocaml.ml~
)。在此期间,我只使用了顶层#use "hello.ml"
并调用ocamlbuild
了它。该文件#hello.ml#
似乎只是某个hello.ml
时间点的纯文本快照。我尝试再次在顶层更新hello.ml
和使用,但与. 有谁知道这个文件来自哪里?#use
#hello.ml#
hello.ml