Currently I’m writing JS and Elixir code and I’ve using a lot of plugins to help me about misspelling in my code, first I was using Syntastic, later I was using Neomake but now I fell in love with ALE and I try to explain why.

Ale knows clearly about if a plugin/addon shows an error that plugin/addon can fix that error if is possible.

For example if I’m using eslint and I see this error:

before

I want to ALE fix this (automatically) to:

after

That is easy and is built-in by default.

Another amazing feature is to queue fixer’s, let me explain this:

Prettier is a amazing opinionated code formatter for a lot of languages and provides a few options to configure, and if we can use ‘prettier + eslint’, I see a lot of issues with this combination, for example this. To avoid this, people made a lot of workarounds (npm’s, disabling rules, etc.), but in my opinion any code formatter only live in the IDE/editor and not in the project as dependency.

So with Ale you can only do that:

" vimrc
let g:ale_fixers = {
\   'javascript': ['prettier', 'eslint']
\}

then Ale first apply fixes/format from prettier and later with eslint, AWESOME!

Finally Ale has support to newest elixir code formatter!

Later in a next post I would like to explain step by step all the configurations.