Download Latest Version vim80-586w32.zip (1.3 MB)
Email in envelope

Get an email when there's a new version of ALE

Home / v3.2.0
Name Modified Size InfoDownloads / Week
Parent folder
ALE v3.2.0 source code.tar.gz 2022-03-05 382.8 kB
ALE v3.2.0 source code.zip 2022-03-05 728.8 kB
README.md 2022-03-05 10.9 kB
Totals: 3 Items   1.1 MB 0

Special Notes

  • The pyls linter has been removed because it's no longer maintained, and it has been replaced with the pylsp linter. [#3810]
  • The dartanalyzer linter has been removed because the Dart team discourages its use over built-in tools instead.

Deprecated Features

  • The ale_lsp_root setting is now deprecated, and you should replace it with ale_root instead. [#3599]

New Features

  • :ALEGoToTypeDefinition is now supported for tsserver. [#3545]
  • You can now rename TypeScript files with the :ALEFileRename command. [#4012]
  • You can now manually populate loclist and quickfix with :ALEPopulateLocList and :ALEPopulateQuickfix, respectively. [#3761]
  • You can now send found references to quickfix with :ALEFindReferences -quickfix. [#4033]
  • Linters and fixers can now set their cwd separately from their commands to run them, to make them easier to manager and enable other features. [#2281]
  • ALE will now read signs with sign_getplaced, when the function is available. This is faster and safer. [#3648]
  • When repeating selections, ALE will now jump to the last selected item, such as when finding references.
  • ALE will now de-duplicate items before adding them to the location list. [#3792]
  • Popup windows are now supported in Vim versions that have popup versions. [#3817]
  • ALE is now tested against NeoVim 0.5. [#3830]
  • ALE now triggers ALELSPStarted autocommands after language servers start. [#3878]
  • ALE now supports virtual text in Vim 8.2 when g:ale_virtualtext_cursor is set to 1. [#3915]
  • Multi-line messages are handled better for virtualtext. [#3949]
  • virtualtext highlights now respect other ALE highlights better. [#3960]
  • ALE now handles code actions responses from language servers that directly return commands to run. [#3929]
  • ALE now includes the text of a file in the textDocument/didSave notification for language servers where supported to support more language servers like Godot. [#3923]
  • ALE now only sends textDocument/didSave if the language server supports it. [#3930] [#4008]
  • textDocument/didSave is now dispatched after files are saved due to a rename, and ALE now respects the value of hidden to determine if other files modified should be written or not. [#4049]
  • g:ale_open_list/b:ale_open_list can now be used as a threshold for opening the window after so many problems are found. [#4050]
  • ALE now attempts to automatically restart language servers when they crash. [#4098]

New Linters

  • Ada - cspell [#3981]
  • AsciiDoc - cpell [#3981]
  • AVRA - avra [#3950]
  • bitbake - oelint-adv [#4043]
  • C - cpell [#3981]
  • C - cpplint [#3008]
  • C++ - cspell [#3981]
  • C# - cspell [#3981], dotnet format [#3879]
  • CSS - cspell [#3981]
  • CMake - cmake-lint [#4036]
  • CUDA - clangd [#3598]
  • Dart - dart analyze [#3825]
  • desktop - desktop-file-validate
  • Elixir - cspell [#3981]
  • eRuby - erblint [#3931]
  • Go - cspell [#3981]
  • Haskell - cspell [#3981]
  • help - cspell [#3981]
  • HTML - angular (@angular/language-server) [#2102], cspell [#3981]
  • Java - cspell [#3981]
  • JavaScript - cspell [#3981], deno [#3924]
  • JSON - cspell [#3981]
  • Jsonnet - jsonnet-lint [#3907], jsonnetfmt [#3907]
  • Lua - cspell [#3981]
  • Markdown - cspell [#3981]
  • Nix - statix [#3969]
  • OCaml - ocamllsp [#3595]
  • PHP - cspell [#3981], phpactor [#3975]
  • PowerShell - cspell [#3981]
  • Python - cspell [#3981], flakehell [#3921], pylsp [#3810], unimport [#4058]
  • Robot - rflint [#3715]
  • RST - cspell [#3981]
  • Ruby - cspell [#3981]
  • Rust - cspell [#3981]
  • Scala - cspell [#3981]
  • sh - cspell [#3981]
  • svelte - svelteserver [#3644]
  • Swift - cspell [#3981]
  • systemd - systemd-analyze
  • Terraform - checkov [#4006]
  • Texinfo - cspell [#3981]
  • Thrift - thriftcheck [#3852] [#3893]
  • TypeScript - cspell [#3981]
  • Verilog - yosys [#3713]
  • Vue - cspell [#3981], volar [#3992]
  • WGSL - naga [#4047]
  • YAML - yaml-language-server [#4029]
  • Zeek - zeek [#3952]

New Fixers

  • Crystal - crystal tool format [#4016]
  • Bazel - buildifier [#3499]
  • Dart - dart format [#3764]
  • Erlang - erlfmt [#3602]
  • eRuby - erblint [#3935]
  • Go - gofumpt [#3968], golines [#3862]
  • JavaScript - dprint [#4024]
  • Jsonnet - jsonnetfmt [#3907]
  • JSON - dprint [#4024], eslint [#3873]
  • JSON5 - eslint [#3873]
  • JSONC - eslint [#3873]
  • Lua - stylua [#3789], lua-format [#3804]
  • Markdown - dprint [#4024], pandoc [#3641]
  • Nix - statix [#3969]
  • PureScript - purs-tidy [#3863] [#3867]
  • Python - autoflake [#3779]
  • Racket - racket-langserver [#3808]
  • TypeScript - dprint [#4024]

Linter Enhancements

  • The Verilog verilator linter now includes the directory the file is in. [#3500]
  • _options you define for the mypy linter are now the first options in the arguments list, so you can run the linter with python -m mypy. [#3582]
  • The executable, options, and input file can now be configured for the vale linter. [#3594]
  • The -T argument was removed from the ruby command to support Ruby 3.0 and above. [#3537]
  • ansible-lint should now print more warnings and errors for files with newer versions. [#3601]
  • The texlab linter now defaults to using the .git project directory as the default project path. [#3610]
  • The texlab LSP settings are now configurable. [#4027]
  • _options can now be set for the pyls linter. [#3620]
  • gopls is now used for Go by default, and is automatically run from GOPATH if installed locally.
  • staticcheck is automatically run from GOPATH if installed locally.
  • The staticcheck linter for Go now defaults to linting the entire package at once. [#3799]
  • lintr now runs for more projects by avoiding the --vanilla option. [#3727]
  • tflint reads from stdin now, which yields better results when linting. [#3717]
  • eslint now runs from Yarn sdk directories too. [#3684]
  • The angular linter now works for HTML files on Linux in more cases.
  • The phpstan linter now detects phpstan.neon.dist configuration files. [#3765]
  • The phpstan linter now supports multi-line errors. [#3686]
  • The phpstan linter now supports setting --memory-limit. [#3973]
  • Local executables for phpstan can now be used. [#3809]
  • The psalm linter now searches for the project root based on where composer.json is. [#3979]
  • The raco linter now includes the filename in the loclist. [#3777]
  • The rpmlint version 2.0.0 and above is now support. [#3757]
  • All checkstyle problems are now style problems. [#3780]
  • The R language server linter now considers .Renviron [#3744]
  • The solc linter now works with more versions. [#3763]
  • ansible-lint works with more recent versions. [#3786]
  • ansible-lint colors are now always disabled so problems are parsed better. [#3811]
  • ansible-lint now runs only against files on disk for more accurate results. [#3846]
  • More recent versions of hadolint are supported. [#3678]
  • hadolint error codes are now only included if available. [#3943]
  • The Python linters now consider .tool-versions when looking for the project root. [#3820] [#3826]
  • poetry is now supported for running Python linters. [#3834]
  • The column number is now read from elrc to produce more accurate problem locations. [#3823]
  • The clj-kondo linter options are now configurable. [#3812]
  • More clj-kondo messages are parsed correctly. [#3946]
  • The deno linter now supports setting the importMap. [#3827]
  • Older cppcheck versions are now supported. [#3887]
  • More cppcheck problems are parsed, such as problems from plugins. [#3980]
  • cppcheck should only run on the current file only to make it faster. [#3983] [#3987]
  • cppcheck is only used to check headers included in a source file now. [#3983]
  • The pyre linter now runs more consistently. [#3895] [#3900]
  • The circleci linter now avoids checking for updates so it runs faster. [#3902]
  • The rubocop fixer now avoids loading the --config file so it's easier to run it in Docker. [#3916]
  • sml linters now handle more errors. [#3860] [#3957]
  • Newer versions of Ruby are supported for type checking by removing -T1. [#3538]
  • elvis problems are now style problems. [#3976]
  • alex now uses --stdin to check for problems while you type. [#3982]
  • More checkmake versions are supported. [#3986]
  • Newer versions of reek are supported. [#4010]
  • The hls language server can now be configured. [#4038]
  • More nix versions are supported. [#4045]
  • Stable commands are used to run rustc now by default, instead of commands for nightly builds. [#4087]

Fixer Enhancements

  • clang-format can now be configured to use a particular style, or local style file. [#3587]
  • prettier can now be used with Ruby code if you have the right plugin installed. [#3593]
  • cmake-format now reads from stdin, which enables it to use configuration files for projects. [#3725]
  • The isort fixer now includes the filename in the arguments for better results. [#3815] [#3942]
  • The Dhall fixers now read from stdin. [#3868]
  • poetry is now supported for running Python fixers. [#3834] [#3898]
  • uncrustify now includes a language option depending on what filetype you're editing. [#4007]

Bugs Fixed

  • The way ALE handles code actions, completion insertion, and renaming has been reworked with much more robust tests to fix edge cases and stop the cursor moving around strangely. [#3478]
  • The terraform linter didn't handle all error types correctly. [#3606]
  • If ALE was run inside of an execute() call it would fail due to uses of redir. Now ALE uses execute() so calls can be nested. [#3719]
  • Certain Java errors could cause errors in ALE. These messages are handled better. [#3706]
  • The black fixer for Python didn't build its command string correctly. [#3759]
  • -include and -imacros now use the filenames instead of absolute paths. [#3775]
  • Language server messages for completion data are handled better, where they would cause errors before. [#3807] [#3894]
  • The sign column wasn't being kept open when configured in NeoVim 0.5. [#3832]
  • Empty hover messages could trigger errors in ALE. [#3889]
  • Code fixes for tsserver or language servers now identify errors that came from the server instead finding other errors from other tools. [#3901]
  • Code fixes could sometimes cause errors because end line number and column numbers could be missing. This has been fixed. [#4062]
  • pydocstyle wasn't checking files outside of the root of the project correctly. [#3995]
Source: README.md, updated 2022-03-05