ALE v2.1.0
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 forclangd
. 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 eitherg:ale_scala_scalastyle_config
or for a buffer withb:ale_scala_scalastyle_config
. The oldg: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. a42999aale#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
to0
after ALE is loaded will now prevent the already loaded events for linting on entering a buffer from starting linters. The same rules applies tog: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
- C -
clangd
#1751,cquery
#1757 - Hack
hhast
#1770 - Haskell -
cabal-ghc
#1742,hie
#1735 - Fortran -
fortran-language-server
#1736 - kotlin -
kotlin-language-server
#1725 - Puppet -
puppet-languageserver
#1697 - Python -
vulture
#1756 - Vue -
vls
#1699 - Yang -
yang-lsp
#1783
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.