A lot has changed in the Elixir community since I wrote my previous post on this topic.

It’s time to update what Atom plugins work well for Elixir development.

Atom’s Elixir Development Plugins

The number of needed plugins has gone down. That’s a good thing! It means that the quality of the options is higher. I’m breaking this into 2 categories.

NOTE: Install these plugins through Atom’s Settings > Install. See the Atom Editor website for getting started with Atom.

Must Have Elixir Plugins

The new one here is atom-elixir. It wasn’t available the last time I reviewed the options. It does such a good job that it replaces multiple other plugins.

Here’s a little on how it works. There is a project called Alchemist that was created for supporting Elixir in Emacs. A spin-off project (by the same author) called alchemist-server aims to make that same Elixir information available in an editor-independent way. The atom-elixir plugin leverages alchemist-server to do all the hard work on getting Elixir intelligence and makes it accessible in Atom.

This is meaningful to me because it indicates that support and features are more likely to continue.

I want to draw special attention to the atom-elixir plugin because it still has relatively low download numbers but is my personal go-to tool for Elixir development. I believe more people need to know about it. And no, I have nothing to do with the project or the people involved. :)

Take a Look…

Screenshot of the auto-completion window:

Elixir auto-completion window

Screenshot of the documentation tab that opens on demand:

Elixir documentation tab

Code Navigation Feature

Check the shortcuts for your platform, but with a cursor on a function, I press atl-down (arrow) and it performs a “goto-definition”. I can then jump again and again going deeper. Then, using alt-up, I can pop the stack and jump back to where my cursor was at the previous point. This jumping back keeps popping the stack to eventually return me to the first jump point. I really love this feature!

Caveat

Atom allows you to open multiple projects at the same time. They show up in the tree with different roots. However, the code-completion doesn’t work with multiple projects open like that. It runs 1 alchemist server and it can’t cover both projects at the same time. However, it works fine with an Umbrella project.

Optional Elixir Plugins

  • linter-elixirc - Displays in-line the error with parsed out error message text. Runs after saving the file. Works by compiling the project and displaying the first error it encounters. Works well. In the past is has reported some false positives for me but it appears to be doing better as of late.
  • linter - a base linter provider that other language specific linters build on. Used by “linter-elixirc”.

Conclusion

It’s been fun working in the Elixir ecosystem and community. Lots of great advancements have been made in a relatively short time. I can’t wait to see how things improve and change going forward!

Here I highlighted a small number of Atom plugins that help with developing Elixir applications. If you aren’t already using atom-elixir, you should try it out now.

Want to share your favorite Elixir-related Atom plugin? Share it here!