如何获得 Elixir 的可靠跳转定义?

2024-01-11

我尝试了 Jet Brains 的 Elixir 插件,以及 VS Code 的两个插件,但到目前为止,它们都没有可靠地引导我定义函数和模块。显然部分原因是因为 Elixir-lsp 无法处理内部的事情scope块(https://github.com/elixir-lsp/elixir-ls#known-issueslimitations https://github.com/elixir-lsp/elixir-ls#known-issueslimitations).


我有一个使用通用 Ctags 的权宜解决方案。

On Mac:

brew install --HEAD universal-ctags/universal-ctags/universal-ctags
/usr/local/bin/ctags --exclude=node_modules -R .

将这样的内容添加到您的 ~/.vimrc 中:

set tags=tags,./tags,../tags,../../tags,../../../tags,../../../../tags,../../../../../tags

然后在一些 Elixir 文件上启动 Vim 并使用 ctrl-] 跳转到定义,使用 ctrl-O 跳转回来。

为了让生活更轻松,我添加了这个 Makefile 目标:

echo '
.PHONY: tags
tags: 
        /usr/local/bin/ctags --exclude=node_modules -R .
' >> Makefile

PHONY 行告诉 Make 始终运行该命令,即使已经存在标签文件。

VS Code 有一个名为 ctagsx 的插件,可以很好地处理这些标记文件。我将它与 ElixirLS 插件一起使用,到目前为止似乎有效。

到目前为止,我还没有找到让 JetBrains/Intellij IDE 使用这些标记文件的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获得 Elixir 的可靠跳转定义? 的相关文章

随机推荐