New Features
:ALERename
now just saves other buffers you have open and automatically reloads them when you next open them up again. #3332- You can now apply code actions with the
ALECodeAction
command, such as quick fixes. #1466 - You can apply refactors and renames with the right click context menu. #1466 #3482
- You can now configure balloons to only appear for LSP/tsserver hover information. #2727
- Hover messages and detailed error messages can now be displayed in NeoVim floating windows. See
:h g:ale_floating_preview
. #3470 #3314 - ALE socket LSP connections now support named pipes in NeoVim. #3509
- Hints and suggestions can now be displayed for
tsserver
with theg:ale_lsp_suggestions
setting #3362 - ALE now permits duplicate completion results when auto-imports are enabled. #3473
- ALE's Makefile detection will now also look for GNUmakefile. #3575
- ALE's automatic completion now only uses
noselect
forcompleteopt
if Vim is configured that way already. #3433 - When selections are repeated with
:ALERepeatSelection
, ALE now jumps to the last selection made, so resuming a search is easier.
New Linters
- Ada -
ada_language_server
#2825 - APKBUILD -
apkbuild-lint
#3424,secfixes-check
#3424 - Dart -
analysis_server
#3069 - Erlang -
Elvis
#3292 - Inko -
inko
#3494 - JSON -
jq #3568,
spectral` #3489 - Nix -
rnix-lsp
#3556 - OpenApi -
ibm_validator
#2711 #2782,yamllint
#2711 #2782 - PHP -
intelephense
#3357,tlint
#3291 - R -
languageserver
#3370 - Salt -
salt-lint
#3491 - TypeScript -
deno
#3533 - Vala -
vala-lint
#3519 - YAML -
spectral
#3489
New Fixers
fish
-fish_indent
#2148 #3576- Dhall -
dhall format
#3261,dhall freeze
#3261,dhall lint
#3261 - Haskell -
ormolu
#2903 - Lua -
luafmt
#3289 - OpenApi -
prettier
#2782 - Python -
autoimport
#3409 - TypeScript -
deno
#3533 - YAML -
circleci
,yamlfix
#3461
Linter Enhancements
- The
bibclean
linter now parses more errors #3367 - Maven wrappers can now be run more easily #2934 #3374
- The
sh
linter now looks at Vim's buffer-local variables to determine the shell type #3427 eslint
andtsserver
will now automatically be run from.yarn/sdks
#3435- The
phpcs
linter now parses more errors #3282 - The
shellcheck
linter now respectsshellcheck
directives #3216 - The
sorbet
linter now defaults to disablingwatchman
, which requireswatchman
to be separately installed #3403 - The
elrc
linter executable can now be customised #3531 - The Python project root detection now also looks for poetry.lock and pyproject.toml #3398
- A custom configuration file can now be used for Credo #3455
-imacros
flags are now included for linting with C compilers #3430- The
dafny
linter now has a time limit setting and parses more errors #3475 xo
options can now be customised #3148- The
swipl
linter for Prolog parses error messages from newer versions swipl - Jar files for running eclipselsp are included more reliably #3559
- The
nix
linter works with newer versions of Nix #3227 - The
dialyzer
linter's options can now be configured #3425 - The
cloudformation
linter can now also be enabled with the aliascfn-lint
, which matches the executable name. #2547 - The severity of problems can now be shown for newer versions of
hadolint
#3472 - Initialization options can now be set for
gopls
#3571
Fixer Enhancements
- You can now set additional options for the phpcbf fixer. #3383
gofmt
now runs via stdin, which helps with running it via Docker. #3381- The
isort
fixer now works withpipenv
#3386 scalafmt
is now suggested forsbt
#3399- The
xo
fixer now fixes files via stdin #3148 xo
options can now be customised #3148- The
standardrb
fixers now use stdin #3521
Bugs Fixed
- Fixer performance is much improved in modern version so Vim and NeoVim. #3358
- Rename operations or other code actions should no longer trigger an indexing error now and again. #2801 #3344
- Additional spaces and line breaks for completion items are now collapsed into single spaces. #3354
- The Java
checkstyle
linter now checks errors properly in NeoVim on Windows. #3467 - The
dafny
linter now returns results for the correct filenames. #3390 #3557 - The
phan
linter now returns results for the correct filenames. #3529 rust-analyzer
now sends options in the initial configuration so the server recognises them #3453clang-tidy
respectcompile_commands.json
better for header files #3551- The Java tools fixer now longer throws errors when no Maven executable can be found #3547
- ALE wasn't parsing
Makefile
output unless there were already some compiler flags #3574 - An index error in the
javac
linter has been fixed. #3706