Skip to content

ALE v2.1.0

Compare
Choose a tag to compare
@w0rp w0rp released this 08 Aug 08:58
· 2059 commits to master since this release
1a4456c

In this release, the Hack linters have been moved to run for files with the hack filetype, and the linters run using Language Server Protocol, offering completion support and more. Only the hack linter is enabled by default, as hhast can execute arbitrary code if enabled.

ALE now checks ALE project code with the custom linting script automatically. This should assist with developing ALE itself.

Bugs Fixed

  • The executable for gawk is now escaped. a42999a
  • Auto-completion could sometimes send Ctrl + o if you leave Insert mode at just the right time. This has been fixed. #1700
  • LSP completion results without the kind attribute should now be handled. This is required for clangd. 7bf3a74
  • The omnicomplete menu could sometimes open without the right options being set due to how feedkeys() puts keys to send in a queue. This has been fixed. #1700
  • Marks are now set when jumping to definitions. #1758

New Features

  • ALE now respects the preview completion option. #1690
  • The language option for LSP linters is now optional, and the filetype will be used as the language by default.
  • %e in linter commands will now be replaced with the escaped executable name.
  • The scalastyle linter's configuration file can now be configured with either g:ale_scala_scalastyle_config or for a buffer with b:ale_scala_scalastyle_config. The old g:ale_scalastyle_config_loc option will be used as the default value until ALE 3.0. a42999a
  • ale#Pad can now be used for defining linter conveniently including possibly empty options. a42999a
  • ale#Env can now be used for defining linters including environment variables. a42999a
  • ALE will now detect virtualenv directories for pipenv by default. #1724
  • ALE will now detect project roots based on Pipenv files. #1724
  • Setting g:ale_lint_on_enter to 0 after ALE is loaded will now prevent the already loaded events for linting on entering a buffer from starting linters. The same rules applies to g:ale_lint_on_filetype_changed. #1619
  • ALE linters are now prevented from being defined or modified in the Vim sandbox. #1708
  • ALE fixers are now prevented from being registered in the Vim sandbox. #1708
  • In case multiple language servers are connected to for one buffer, ALE will now only send completion requests to the first language server which supports them. #1692
  • ALE now sets marks when jumping through errors, so you can jump back to a previous location with Ctrl + o, etc. #1539
  • ALE now supports parsing C compiler flags from compile_commands.json files. See :help g:ale_c_parse_compile_commands ac4bac8
  • ALE now indicates that problems were found inside header files at the #include lines. 16d0c52
  • Error codes are now included in messages from LSP and tsserver responses. #1771
  • ALE now includes a linter for checking ALE code itself with custom checks.

New Linters

Linter Enhancements

  • Options are now configurable for isort. #1698
  • The remark-lint linter can now check files as you type. #1730
  • The remark-lint linter will now run locally installed executables if available. #1730
  • The drafter linter now reads the file via stdin. #1750
  • The joker linter now finds .joker files inside project directories. #1760
  • Python linters now also look for .flake8rc to find the project root. #1776
  • The GCC error handler now includes the original error in the detailed error message, so you can read long error messages. ccbdfcd
  • The hack linter now uses Language Server Protocol, offering all other supported LSP features.
  • The executables are now escaped for many linters where they weren't before. 2172843

Fixer Enhancements

  • The prettier fixer can now fix YAML and HTML files without file extensions.