New Features
- ALE is now tested against the following Vim versions:
- Vim 8.0
- Vim 9.0
- NeoVim 0.2
- NeoVim 0.8
- LSP completion messages with
textEdit
but noinsertTextFormat
. #4124 b:ale_shell
andb:ale_shell_arguments
can now be used to set shell options
per-buffer. #4146- ALE now advertises
codeActionLiteralSupport
so language servers such as
rust-analyzer
return code actions to ALE. #4163 - An
ALEGoToImplementation
command has been added to go to the location
of the implementation of a symbol via supporting language servers. - All floating window borders characters can now be configured with
g:ale_floating_window_border
. #4215 - Floating windows can be heavily customised with
g:ale_floating_preview_popup_opts
. #4247 - The default omnicompletion regex for Racket is now
'\k\+$'
. #4186 #4293 #4352 - ALE completion has been tweaked to work better with C files. #4231
- ALE now always sets
out_cb
orerr_cb
for jobs to swallow messages to
prevent Vim from excessively polling results. #4259 - ALE now outputs
virtual-text
messages in Vim 9. #4281 #4291 virtual-text
messages can be shown for all lines, not only the line the cursor
is on, by settingale_virtualtext_cursor = 'all'
. #4289virtual-text
messages are now enabled by default where supported nicely. #4396- ALE now reports LSP linters that fail to run due to a project root not being
set as an error, so you can figure out why nothing is happening more easily.
#4207
New Linters
- Ansible -
ansible-language-server
#4355 - Bicep -
bicep
#4310 #4311 - Cairo -
starknet
#4256 - CSS -
vscode-langservers-extracted
#4175 - Erlang -
erlang_ls
#4346 - HTML -
vscode-langservers-extracted
#4175 - JSON -
vscode-langservers-extracted
#4164 #4175 - Lua -
selene
#4169 #4183 - OpenSCAD -
sca2d
#4205 - proto -
buf lint
#4128 #4300 - Python -
ruff
#4347,refurb
#4379 - Rego -
cpsell
#4199,opa check
#4199 - SQL -
sqlfluff
#4361 - Terrafrom -
tfsec
#4323 #4326 - YAML -
actionlint
#4173,gitlab-lint
#3042
New Fixers
- CSS -
css-beautify
#4319 - HCL -
packer fmt
#4192 - OCaml -
dune
#4263 - Packer -
packer fmt
#4192 - PHP -
pint
#4238 - proto -
buf format
#4128 #4300 - Python -
pyflyby
#4219,ruff
#4347 #4393 - Racket -
raco fmt
#4354 - Rego -
opa fmt
#4199 - Ruby -
stree write
#4268 - SQL -
sqlfluff
#4361 #4365 - Zig -
zig fmt
#4198
Linter Enhancements
- You can now override
--lint
options forawk
. #4114 rust-analyzer
can now be run for non-Cargo projects. #4118- ALE now reports errors from a
ghc
panic. #4145 pylama
output handling has been improved #4106- The default list of YAML linters is now
spectral
,yaml-language-server
,
andyamllint
to avoid running linters specialised for particular
applications of YAML. #4178 - ALE now runs
vimls
forVader
files by default, and the default list of
linters forVader
files is to runvimls
. #4201 - ALE now distinguishes between warnings and errors for
golangci_lint
. #4182 - ALE now supports newer
ansible-lint
versions. #4188 - ALE now checks for
.mypy.ini
to detect a Python project root. #4202 - ALE now supports
ember-template-lint
>= 4.0.0, in addition to older
versions. #4200 - ALE now reads only shows detailed error messages if
detail
is not empty
forterraform validate
. #4157 - YAML
actionlint
options can now be configured with
ale_yaml_actionlint_options
. #4216 - ALE now runs
dart analyze
with--fatal-infos
to capture more information.
#4237 - ALE now searches for
deno.json
anddeno.jsonc
to detect a Deno project
root. #4306 - The
volar
language server executable name now defaults to
vue-language-server
, which is its current name. #4308 clj-kondo
is now run with a filename hint to get more accurate problems.
#4315- ALE now uses header-specific filetype options for
clang
to improve on
the accuracy of problems ALE reports. #4318 #4334 - ALE now includes
pyrightconfig.json
andpyrightconfig.toml
in the list of
files it uses to find a Python project root. #4321 - ALE now sets the
cwd
forpylsp
and Pyright to the detected or manually
configured project root to fix incorrect import errors produce by either
pylsp
with themypy
plugin, or by Pyright. #4388 ruff
is now enabled as a linter for Python by default.- Options can now be configured for
hadoint
. #4353 --config
is now explicitly set forcheckmate
so it loads the correct
configuration file. #4351- The executable for
markdownlint
is now configurable. #4358 nix
versions 2.12 and up are supported properly now. #4394
Fixer Enhancements
shfmt
now runs with-filename=
and no other options by default to
use.editorconfig
settings. #4244dprint
is now suggested for more filetypes. #4320clang-format
is now suggested for more filetypes. #4367
Bugs Fixed
:ALEImport
should work with more language servers. #4105- ALE now reports errors ending at the last line in a file when linters reports
end lines beyond the end of the file. #4130 ale_haskell_hls_executable
was incorrectly named
ale_haskell_his_executable
. #4241- ALE no longer shows error messages on hover if
ale_enabled == 0
. #4277 <Plug>(ale_go_to_type_definition_in_vsplit)
didn't run the command. #4304- A missing
<Plug>(ale_go_to_implementation)
mapping has been defined. #4337 - ALE no longer errors when
ansible-lint
returns no output. #4373