ALE v2.0.0
ALE no longer supports NeoVim versions below 0.2.0. If you're using an older version of NeoVim, the time to upgrade is now. Today ALE celebrates its independence from older versions of NeoVim. 🎆 🇺🇸 This is so ALE code can begin using lambdas and closures. Vim 8 support remains the same.
Despite supporting more features than ever, ALE also starts up faster than it ever has, thanks to some startup time optimizations.
Removed Features
- Support for NeoVim versions below 0.2.0 has been removed. Upgrade to NeoVim 0.2.0 or newer.
- The option
g:ale_python_flake8_args
has been removed. Useg:ale_python_flake8_options
instead. - The option
g:ale_html_tidy_args
has been removed. Useg:ale_html_tidy_options
instead. ALEGetStatusLine()
andale#statusline#Status()
have been removed. You should write your own status function instead, or use a companion plugin for ALE like lightline-ale.ALELint()
has been removed. Useale#Queue()
instead.- ALE no longer waits for 2 minutes to check for problems or echo a message again after an exception is thrown. This makes ALE slightly more efficient and easier to profile. If any exceptions are thrown by any functions in the future regularly enough, they can be handled separately.
Bugs Fixed
- ALE would run
:edit
when jumping to definitions inside of files via LSP jumps such as "go to definition." Now:edit
won't be run if the location is inside of the file currently being edited. #1661 - The Python
prospector
linter would raise exceptions when no output was returned in NeoVim. This has been fixed. #1682
New Features
- ALE now supports connecting to LSP servers via TCP connections. #830
- ALE now supports defining
intalizationOptions
for LSP linters. #1632 - ALE will now load all of the code for running LSP linters or
tsserver
only when needed, which should improve startup times for some. - ALE will now only notify LSP servers about files being changed if
b:changedtick
changes, which should result in fewer messages being sent. #1531 '*'
can now be used as a filetype forale_fixers
, meaning "every other filetype." #1417- Suggested fixers now appear in
:ALEInfo
. This will help people figure out how to enable fixers. #1522 - Linter results can now be ignored with
g:ale_linters_ignore
. #1453 #1172
Other Changes
- ALE's autocmd functions now use fewer are now set up in fewer
augroup
groups, and should generally be set up faster than before. - ALE will now close preview windows for showing hover messages when new messages are received. #1590
verilog_systemverilog
is now aliased toverilog
by default. #1674
New Linters
- Bash -
bash-language-server
#1641 - C++ -
cquery
#1632 - CloudFormation -
cfn-lint
#1650 - Elixir -
mix compile
#1618 - Python -
pyre
#1691
New Fixers
Linter Enhancements
puppet
versions on 5.4.0 or above are now supported. #1617g:ale_warn_about_trailing_whitespace
is now respected forgitlint
.cargo
can now be configured to check examples or tests. #1627- All Python linters can now be run via
pipenv run
by setting the executable to apipenv
executable. #1625 #1629 - The
lintr
now uses the--vanilla
switch forRscript
. #1638 - The
cython
linter now uses--warning-extra
by default to report more problems, and the options are configurable. #1675 - The
cargo
linter now only builds sub-crates by default. #1679 - The
--stdin-filename
option forreek
will now be set automatically when reek is version 5.0.0 or newer. #1412 - Error codes are no captured for
yamllint
, for applying consistent formatting. - The
yamllint
handler now respectsale_warn_about_trailing_whitespace
.
Fixer Enhancements
prettier
now sets--parser
automatically for buffers with certain filetypes and no file extensions. #1620