Elixir的良好IDE [关闭]


70

我正在寻找可以完成以下至少一些任务的IDE

  • 按下后键入变量名称和可能的功能时的代码完成 .
  • 显示功能签名和文档
  • 导航到函数/变量/模块的定义

如果可以的话也很好

  • 警告错误
  • 代码生成
  • 脚手架基础工程

1
这个问题可能在softwarerecs.stackexchange.com上比在Stack Overflow上更相关。
安德森·格林

好问题!对不起,但是除了vim和emacs之外,它们都不对。要在我自己的编辑器(已读)上尝试ide(铁锈,长生不老药)。
sailfish009 '18

Answers:


41

Elixir对Visual Studio Code有很好的扩展支持,目前有2个扩展可以将语言添加到工具中,我的首选是vscode-elixir。您可以通过按ctrl + P然后输入“ ext install vscode-elixir”来添加它。

此扩展为VS Code添加了丰富的长生不老药语言支持,其中包括:

  • 语法着色
  • 片段
  • 智能感知

在此处输入图片说明

还有一个名为ElixirSublime的崇高集成。它具有大多数相同的功能。但是,它已经很多年没有更新了。


4
使用ElixirSublime时要小心:PackageControl版本已过时,并且存在一些问题(至少对我来说是这样)。您可能想要直接从github安装它,或查看该线程以进行故障排除github.com/vishnevskiy/ElixirSublime/issues/6
Ben G

即使我是从github安装的,并仔细研究了所有可能的解决方案,也无法使其完全正常工作。
nietaki

@nietaki您是指vslix的Elixir Sublime还是Elixir吗?
Letseatlunch '16

抱歉,我没有具体说明:ElixirSublime
nietaki

这是2018年,而用于高级包装的长生不老药似乎已被放弃。过去两年没有代码更新。
StrayObject

29

到目前为止,Alchemist Elixir工具集成Emacs软件包带来了以下功能:

  • 混合整合
  • Elixir代码的编译和执行
  • 内联代码评估
  • 内联宏扩展
  • 文档查找
  • 定义查询
  • 强大的IEx集成
  • 智能代码完成
  • 药剂项目管理
  • 凤凰支持
  • 公司模式整合

此处提供更多信息:https//github.com/tonini/alchemist.el/blob/master/README.md

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


26

原子原子的酏剂。当前功能的摘录(在默认的Atom优势之上,所有功能均可使用):

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

原子elixir自动完成

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

我通常是IntelliJ使用者,但是IntelliJ插件仍然缺少我惯用的一些自动完成功能。

编辑:在与Atom和Elixir一起工作了大约5个月之后,我现在写了一篇博客文章,概述了我如何对其进行调整并引用我的整个配置。


嗨,这与language-elixir相比如何?
克里斯蒂安·加西亚

我并没有真正比较两者,但是如果我理解正确的话,它实际上是建立在language-elixir之上的-它使用语法高亮显示它并添加其他内容。
nietaki

5
Atom现在是我的默认编辑器
Cristian Garcia

直到最近我才意识到一件事,它可以与atom.io/packages/symbols-view很好地配合使用-⌘+R让您搜索当前文件中的符号/函数并跳转到它们的定义。
nietaki

16

我已经尝试了所有知名的文本编辑器和相应的Elixir软件包。

  • 带有插件的IntelliJ:没有炼金术士服务器集成,因此比其他人更糟。另外,IntelliJ的启动速度也比其他IDE和编辑器慢。
  • Visual Studio代码:缺少一些快捷方式,但是如果您已经将其用于其他语言,则通常可以在此编辑器中使用Elixir代码。
  • Sublime Text:与VS代码相同,如果您现在正在使用Sublime,则可以将其用于Elixir
  • Atom:除代码格式(美化)外,对所有内容都提供了很好的支持,但很快就会解决。
  • Emacs:最好的支持和软件包,但是如果您还没有使用emacs的话,那不是for之以鼻。

因此,如果您对某些此类编辑器没有强烈的偏好,请在EmacsAtom之间进行选择以编写Elixir。


9
萨沙,您的评论缺少VIM。你试过了吗?
iTollu

11

如果您是vim用户,则有alchemist.vim插件,其中包含

  • 完成模块和功能
  • 有关模块和功能的文档查找
  • 跳转到定义
  • 混合整合
  • IEx整合

6

Atom为长生不老药和几乎所有其他语言提供了一个不错的选择,您应该尝试一下。


4
尽管此答案令人难以置信且缺乏详细信息,但是atomic-elixir可以立即使用并且可以很好地工作,包括自动完成功能。
nietaki

6

现在,还有一个用于IntelliJ的Elixir插件:https : //github.com/KronicDeth/intellij-elixir

作者还在ElixirConf 2015上做了演讲:https ://m.youtube.com/watch ?v= 0Its8r5RBf0


自从我上次听说以来,似乎已经走了很长一段路。感谢更新。您自己尝试过吗,目前使用什么?询问是因为我在工作中使用IntelliJ和Jetbrain软件,而在家中却将Atom用于Elixir。切换应该很简单,但是与Atom相比,IntelliJ感到资源如此匮乏。
2015年

1
我刚才看到了谈话。我自己几乎将Vim用于任何东西。
Patrick Oscity 2015年

我正在将Atom与插件一起使用,但是由于最近的Atom更新,它不能很好地工作。
Haito 2015年

@PatrickOscity,您可以在JetBrain IDE中使用IDEAVim插件在其IDE中获取vim键盘绑定。
路加·伊姆霍夫

@LukeImhoff谢谢,但是我投资Vim的原因是因为我希望不再切换编辑器。我已经看到IDE来了10年,而Vim感觉它会在20年后问世,并且仍在积极开发中。此外,我认为IDEAVim不能像我喜欢的那样足够接近地模拟Vim。即使是emacs广受赞誉的邪恶模式也无法说服我。
Patrick Oscity

4

如果您来自Java背景,那么不要期望像eclipse或IntelliJ这样的IDE。尽管IntelliJ在Elixir上可以正常工作,但是截至目前,我无法使其在Phoenix框架上运行。最好的选择是AtomEmacs(如果您是专家)。VS Code是另一个非常酷的工具,与Atom非常相似。


从v7.4.0(发布于2018-03-07)开始,IntelliJ Elixir支持解析/聚焦EEx模板以及EEx模板中的断点调试,目前尚无其他IDE / Editor插件支持。
卢克·伊姆霍夫


3

带有vscode-elixir扩展名的Visual Studio Code

此扩展为VS Code添加了丰富的长生不老药语言支持,其中包括:

  • 语法着色
  • 片段
  • 智能感知

2

在此处输入图片说明 elixir-tmbundle是一个很棒的轻量级软件包,可用于Elixir Lang的Sublime文本支持,您只需运行即可将其添加到Sublime文本中。

cd ~/.config/sublime-text-2/Packages # If you are on Linux using sublime text-2

cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages # If you are on OS X

cd %HOMEPATH%\AppData\Roaming\Sublime^ Text^ 2\Packages # If you are on Windows Vista or above

cd %HOMEPATH%\Application^ Data\Sublime^ Text^ 2\Packages # If you are on Windows XP

git clone git://github.com/elixir-lang/elixir-tmbundle Elixir

该软件包也有TextMate支持,您可以单击此链接以获取更多信息。

https://github.com/elixir-lang/elixir-tmbundle


1
这仅适用于崇高2吗?
克里斯蒂安·加西亚

不,我也将其与崇高的文本一起使用,我只是为了举例说明而提及该版本。
Subhash Chandra
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.