Good IDE for Elixir
IdeElixirIde Problem Overview
I am looking for an IDE that does atleast some of the following
- Code completion when typing variable names and possible
functions after pressing
.
- Show a functions signature and docs
- Navigate to the function/variable/module's definition
It would be nice if it could also
- Warn about errors
- Code generation
- Scaffold basic projects
Ide Solutions
Solution 1 - Ide
There is a great Elixir extension support for Visual Studio Code and there are currently 2 extensions to add the language to the tool, my preference being vscode-elixir. You can add it by hitting ctrl+P then typing "ext install vscode-elixir".
This extension adds rich elixir language support to VS Code including:
- Syntax Coloring
- Snippets
- Intellisense
There is also a sublime integration called ElixirSublime. It has most of the same features. However, it hasn't been updated in many years.
Solution 2 - Ide
The Alchemist Elixir Tooling integration Emacs package brings the following functionality so far:
- Mix integration
- Compile & Execution of Elixir code
- Inline code evaluation
- Inline macro expanding
- Documentation lookup
- Definition lookup
- Powerful IEx integration
- Smart code completion
- Elixir project management
- Phoenix support
- Integration with company-mode
More infos available here: https://github.com/tonini/alchemist.el/blob/master/README.md
If you have questions you can find me on IRC channel #elixir and #emacs-elixir (nickname: tonini)
Solution 3 - Ide
Atom with atom-elixir. An excerpt from the current features (on top of the default Atom goodness, all working out of the box):
- Autocomplete
- Go to definition
- Go to Documentation View
- Quoted Code view
- Expand Macro view
- All features depending on aliases and imports are already supporting the new v1.2 notation.
I'm personally using it together with the vim-mode plugin and it seems like there's no conflicts.
I'm usually an IntelliJ person, but the IntelliJ plugin is still lacking in some of the autocomplete functionality that I'm used to.
Edit: after working with Atom and elixir for about 5 months now I wrote a blog post summarising how I tweaked it to work for me and referencing my entire config.
Solution 4 - Ide
I have tried all of well known text editors and corresponding elixir packages.
- IntelliJ with plugin : No alchemist server integration so it is worse then others. Also IntelliJ is slower to start than other IDE-s and editors.
- Visual Studio Code : Missing some shortcuts but generally you can Elixir code in this editor if you are already using it for other languages.
- Sublime Text : Same as VS code, if you are using sublime now than you can use it for Elixir
- Atom : Very good support for everything except code format (beautify) but that will be fixed soon.
- Emacs : Best support and package but it is not for the feint of heart if you do not use emacs already.
So if you do not have hard preference for some of this editors choose between Emacs or Atom to code Elixir in.
Solution 5 - Ide
If you are a vim user, There is alchemist.vim plugin which has
- Completion for Modules and functions
- Documentation lookup for Modules and functions
- Jump to the definition
- Mix integration
- IEx integration
Solution 6 - Ide
Atom has a great package for elixir and mostly any other language, you should go and give it a try.
Solution 7 - Ide
Now, there's also an Elixir plugin for IntelliJ: https://github.com/KronicDeth/intellij-elixir
The author also did a talk at ElixirConf 2015: https://m.youtube.com/watch?v=0Its8r5RBf0
Solution 8 - Ide
If you are from Java background then don't expect IDE like eclipse or IntelliJ. Though IntelliJ works fine with Elixir, but as of now, I was not able to make it work with Phoenix framework. Your best bet is Atom, or Emacs if you are a guru. VS Code is another cool tool very similar to Atom.
Solution 9 - Ide
I'll add that Emacs and Alchemist are a powerful combo for writing Elixir code. But I doubt there's anything available anywhere that has all the features you list above.
Solution 10 - Ide
Visual Studio Code with vscode-elixir extension.
This extension adds rich elixir language support to VS Code including:
- Syntax Coloring
- Snippets
- Intellisense
Solution 11 - Ide
elixir-tmbundle is great and highly lightweight package available for Sublime text support of Elixir Lang, you can simply add it to sublime text by simply running.
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
There is TextMate support for this package as well, you can follow this link for more info.