Skip to content

ALE v2.0.0

Compare
Choose a tag to compare
@w0rp w0rp released this 04 Jul 07:37
· 2208 commits to master since this release
db85b93

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. Use g:ale_python_flake8_options instead.
  • The option g:ale_html_tidy_args has been removed. Use g:ale_html_tidy_options instead.
  • ALEGetStatusLine() and ale#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. Use ale#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 for ale_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 to verilog 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. #1617
  • g:ale_warn_about_trailing_whitespace is now respected for gitlint.
  • 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 a pipenv executable. #1625 #1629
  • The lintr now uses the --vanilla switch for Rscript. #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 for reek 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 respects ale_warn_about_trailing_whitespace.

Fixer Enhancements

  • prettier now sets --parser automatically for buffers with certain filetypes and no file extensions. #1620