Skip to content

ALE v2.5.0

Compare
Choose a tag to compare
@w0rp w0rp released this 10 Jun 22:54
· 1317 commits to master since this release
80ab12c

Bugs Fixed

  • ALE no longer tracks if LSP linters are busy, and thus allows loclist windows to close automatically. #2460
  • The ale_disable_lsp setting wasn't applied if you didn't also ignore something else.
  • The ale_disable_lsp setting wasn't applied to diagnostic callbacks if you had previously run language servers.
  • ALE's handler for language server diagnostics could display results for a directory in a file. This has been fixed. #2524
  • ALE no longer lints on save if ale_lint_on_save is set to 0 after fixing a file with ale_fix_on_save. #2497
  • When jumping through problems, problems at column 0 are treated as if they were at column 1, so jumping through them works. #1317
  • Turning ALE's automatic completion on could stop Ctrl+O working in Insert mode. This should now only happen right before the completion menu is about to open automatically. #2535
  • Completion positions were off by 1 in many cases. Completion results should be greatly enhanced now. #2544
  • tsserver diagnostics were off by 1 on the last character. #2551
  • ALE now prints a friendly message when you try to use :ALEInfoToClipboard and no clipboard is available. #2438
  • The checkstyle error parser now stops after finding results in the newer format, so it doesn't show some errors twice. #2543
  • Highlights weren't being removed when set up in other character cases, such as all lowercase. #2555
  • In order to better support environments like MSYS, ALE now converts backslashes in paths in Unix to forward slashes, even though they are valid characters for filenames in Unix. #2525
  • ALE now updates loclists for all windows showing a buffer, instead of just the first one. #2253
  • Linters that have been previously defined with the same name for the same filetype are now replaced. #1727

New Features

  • Fixers can be prevented from being run automatically on save with the new ale_fix_on_save_ignore setting. #1930
  • ALE can now apply fixes to buffers that aren't currently open in Vim versions with the deletebufline function. #1739
  • ALE now integrates with Deoplete for offering completion results, in addition to ALE's own completion implementation. #1753 #2492
  • ALE now offers an omnifunc completion function. (set omnifunc=ale#completion#OmniFunc) #2285
  • ALE's automatic completion implementation can now be disabled for specific buffers by using let b:ale_completion_enabled = 0.
  • ALE now updates the tagstack when jumping from one file another by default. #2448
  • ALE now use's NeoVim's highlighting API, where available, instead of Vim's. Highlights in newer versions of NeoVim are now adjusted as lines move around as a result. #2169 #2475 (REMOVE FROM NOTES if this isn't done in time. Taken out for now.)
  • ALE now tells language servers documents are closed when buffers are deleted. #829
  • ALE now tells language servers which features are supported by ALE. #2515
  • You can now send custom request to language servers ALE knows about with ale#lsp_linter#SendRequest. #2549

Other Changes

  • Newlines are now removed for language server messages with newlines, but kept in detailed messages. #2425
  • ALE now displays simple messages instead of detailed messages in virtualtext. #2434
  • ALE now uses the 'S' flag for writefile to avoid using fsync calls for temporary files it creates, which may improve performance for some machines.
  • ALE now lints when leaving insert mode and not while in Insert mode by default.
  • b:ale_lint_on_insert_leave can now be set to 0 to disable linting when leaving insert mode for particular buffers.

New Linters

New Fixers

  • LaTex - latexindent #2387
  • OCaml - ocp-indent #2436
  • Python - reorder-python-imports #2567
  • R - styler #2401
  • SQL - pgformatter #2540

Linter Enhancements

  • rls now find the toolchain to use automatically. If rls no longer starts for you, use let g:ale_rust_rls_toolchain = 'rls'. #2432
  • The stack and cabal linters now set the working directory to where the file is. #2345
  • The working directory for shellcheck is now set to the buffer's directory by default. #2446
  • phpstan problems are now marked as errors. #2444
  • phpstan now only sets a default level if no configuration file is found. #2444
  • The autoload file for phpstan can now be set with ale_php_phpstan_autoload #2491
  • numeric errors codes for pylint can now be used instead of symbolic errors codes with let g:ale_python_pylint_use_msg_id = 1. #2445
  • The ESLint linter now respects the ale_warn_about_trailing_whitespace setting.
  • ALE now reads JSON output from ESLint and ESLint-derived linters for highlighting ranges. #2551
  • ALE now uses ale_javascript_eslint_options for fixing code with ESLint too. #1989
  • Syntax errors for puglint are now handled and printed. #791
  • phpcs errors are now reported as style errors. #908
  • gcc linters now use -o /dev/null or -o nul so all errors are caught. #2512
  • ALE now searches in build directories to find compile_commands.json #2421
  • cppcheck now uses compile_commands.json found in build directories. #2359
  • cppcheck now runs from the file's directory with -I when a buffer is modified. #2506
  • gcc errors for inlined functions are now indicated more clearly. #2516
  • Python project roots are now found based on the location of .flake8, instead of flake8.cfg. #2502
  • The checkstyle linter is now much more configurable. #2542
  • You can now pass options for clang-tidy itself with ale_c(pp)_clangtidy_extra_options. #2566
  • xml linters are now run on xsd and xslt filetypes by default. #2565
  • The cargo linter now shows detailed error messages for clippy errors. #2559
  • The Java language server can now be launched with either the language server's own binary, or Java. There is no default executable any more. #2558
  • rmarkdown files now run R linters by default and suggest R fixers.