优秀的 Elixir IDE 建议

73

我正在寻找一款至少能够执行以下部分功能的集成开发环境:

  • 在键入变量名称并按下 . 后,自动完成代码,并提供可能的函数列表
  • 显示函数签名和文档
  • 导航到函数/变量/模块的定义位置

如果它还能够:

  • 警告错误
  • 生成代码
  • 创建基本项目脚手架

1
这个问题在http://softwarerecs.stackexchange.com/上更相关,比在Stack Overflow上提问更合适。 - Anderson Green
好问题!抱歉,除了vim和emacs之外,它们都不正确。我将在自己的编辑器(read)上尝试使用IDE(rust, elixir)。 - sailfish009
11个回答

44

Visual Studio Code中,有很好的Elixir扩展支持。目前有2个扩展可以将该语言添加到工具中,我更喜欢vscode-elixir。您可以使用Ctrl+P键,然后输入“ext install vscode-elixir”来添加它。

此扩展程序为VS Code添加了丰富的Elixir语言支持,包括:

  • 语法颜色
  • 代码片段
  • 智能感知

图片描述

还有一个名为ElixirSublime的Sublime集成。它有大部分相同的功能。但是,它已经多年没有更新了。


4
注意使用ElixirSublime:PackageControl版本已过时且存在一些问题(至少对我来说是这样)。您可能希望直接从GitHub安装它,或查看该线程以进行故障排除https://github.com/vishnevskiy/ElixirSublime/issues/6。 - Ben G
即使我从Github安装并查看了可能的解决方案,但我仍无法完全让它正常工作。 - nietaki
@nietaki,你是在指 Elixir Sublime 还是针对 VSCode 的 Elixir? - Letseatlunch
抱歉我没有说清楚:ElixirSublime。 - nietaki
现在是2018年,Sublime的Elixir包似乎已经被放弃了。过去两年没有代码更新。 - Strayobject
现在是2020年:最新提交为2016年12月25日的7781388。 - Ludovic Kuty

29

炼金术士(Alchemist)Elixir工具集成Emacs包目前提供以下功能:

  • Mix集成
  • Elixir代码编译和执行
  • 内联代码评估
  • 内联宏扩展
  • 文档查询
  • 定义查询
  • 强大的IEx集成
  • 智能代码补全
  • Elixir项目管理
  • Phoenix支持
  • company-mode集成

更多信息请参见:https://github.com/tonini/alchemist.el/blob/master/README.md

如果您有任何问题,可以在IRC频道#elixir#emacs-elixir找到我(昵称:tonini)。


26

Atomatom-elixir 配合使用。以下是当前功能的一部分(除了Atom默认功能外,所有功能均可开箱即用):

  • 自动完成
  • 转到定义
  • 转到文档视图
  • 引用代码视图
  • 展开宏视图
  • 所有依赖于别名和导入的功能都已支持新的v1.2符号。

atom-elixir 自动补全

我个人使用它与vim-mode插件一起,似乎没有冲突。

通常我使用IntelliJ,但IntelliJ插件在一些我习惯的自动完成功能方面仍存在不足。

编辑:使用Atom和Elixir约5个月后,我写了一篇博客文章总结了如何调整Atom以适合我的需求,并引用了我的整个配置。


嗨,这与语言-elixir相比如何? - Cristian Garcia
我没有真正比较过这两个,但如果我理解正确的话,它实际上是在语言elixir的基础上构建的 - 它使用了来自它的语法高亮,并添加了其他所有内容。 - nietaki
5
Atom现在是我默认的编辑器。 - Cristian Garcia
直到最近我才了解到一个事情,那就是它能够与 https://atom.io/packages/symbols-view 很好地配合使用——使用 ⌘+R 可以搜索当前文件中的符号/函数并跳转到它们的定义。 - nietaki

16

我尝试过所有知名的文本编辑器以及对应的 Elixir 包。

  • IntelliJ with plugin :没有 Alchemist 服务器集成,因此比其他工具更差。而且 IntelliJ 启动速度比其他 IDE 和编辑器慢。
  • Visual Studio Code :缺少一些快捷键,但如果您已经在使用它来编写其他语言的代码,则通常可以在此编辑器中编写 Elixir 代码。
  • Sublime Text :与 VS Code 相同,如果您现在正在使用 Sublime,则可以将其用于 Elixir。
  • Atom :除了代码格式(美化)之外,非常支持一切,但很快就会解决这个问题。
  • Emacs :最好的支持和包,但如果您没有使用 Emacs,则不适合新手使用。

因此,如果您没有对这些编辑器有硬性偏好,请选择 EmacsAtom 来编写 Elixir 代码。


9
萨莎,你的评论中没有提到VIM。你试过它吗? - iTollu

11
如果您是vim用户,那么有一个名为alchemist.vim的插件可以提供以下功能:
  • 模块和函数的自动完成
  • 模块和函数的文档查找
  • 跳转到定义处
  • Mix集成
  • IEx集成

6

Atom有一个非常好的elixir包,还有大多数其他语言的包,你应该去试试。


4
虽然这个答案缺乏详细说明,不太令人信服,但是 atom-elixir 可以直接使用并且功能良好,包括自动完成。 - nietaki

6

看起来自上次我听说它以来已经走了很长的路。感谢更新。你自己试过吗?你目前在用什么?问这个问题是因为我在工作中使用IntelliJ和Jetbrain软件,而在家里使用Atom进行Elixir编程。虽然切换应该很简单,但与Atom相比,IntelliJ感觉需要更多的资源。 - Wobbley
1
我刚刚看了这个讲座。我自己几乎用 Vim 处理所有事情。 - Patrick Oscity
我正在使用带插件的Atom,但由于最近的Atom更新,它并不工作得很好。 - Haito
@PatrickOscity,你可以在JetBrain IDE中使用IDEAVim插件来获取vim键绑定。 - Luke Imhoff
@LukeImhoff 谢谢你的建议,但我之所以投入Vim,是因为我希望再也不用换编辑器了。在过去的10年里,我见过很多IDE来来去去,而Vim感觉像是在未来20年仍将存在,并且正在积极地开发中。此外,我不认为IDEAVim可以模拟接近Vim的程度,以至于我会喜欢它;即使是备受赞誉的emacs的evil mode也没有说服我。 - Patrick Oscity

4
如果你来自Java背景,不要期望像eclipse或IntelliJ那样的IDE。虽然IntelliJ与Elixir配合得很好,但目前为止,我无法让它与Phoenix框架一起使用。你最好的选择是Atom,或者如果你是高手,可以使用EmacsVS Code是另一个非常类似于Atom的酷工具。

截至v7.4.0(发布于2018-03-07),IntelliJ Elixir已支持解析/突出显示EEx模板和在EEx模板中进行断点调试,这是目前没有其他IDE /编辑器插件具备的功能。 - Luke Imhoff

3
我会强调,EmacsAlchemist 是编写Elixir代码的强大组合。但我怀疑是否有任何东西在任何地方都具备您上述列出的所有特性。

3

Visual Studio Code 搭配 vscode-elixir 扩展,为您提供丰富的 Elixir 语言支持,包括:

  • 语法高亮
  • 代码片段
  • 智能感知

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接