Skip to content

ALE v1.4.0

Compare
Choose a tag to compare
@w0rp w0rp released this 27 Jun 15:22
· 3446 commits to master since this release

Bugs Fixed

  • Escaping of strings for the shell on Windows has been fixed in a major way. Safe strings are passed on verbatim. Strings with spaces are quoted, and percents and quotes are doubled. All other strings have characters with special meanings escaped with carets (^).
  • ALE was checking files when g:ale_run_on_insert_leave was set to 1, when it should only check buffers. This has been fixed.
  • ALE now uses the BufWinEnter event for g:ale_lint_on_enter instead of BufEnter, which should result in files only being checked when they need to be, and prevent problems with checking files again when moving across split windows. FileChangedShellPost is used to check if files are changed outside of Vim. If they are, then the BufEnter event will be used to check the file again.
  • When g:ale_open_list is set, ALE will now allow multiple loclist windows to be opened. #461
  • ALE wasn't finding errors for Flow files when Flow returned relative paths. This has been fixed.
  • The Perl linter was showing some errors from other files. Now ALE checks that the errors come from a file with a matching name. #625
  • The stylelint linter was ignoring quite a few stylelint errors. This has been fixed. #629
  • When checking files on disk, ALE was sometimes checking buffers where the file hasn't been saved to disk yet. This has been fixed. #651
  • Filename escaping has been fixed for the kotlinc linter. #662
  • The ghc-mod linter will now filter out errors for other files. #690
  • The pylint linter wasn't parsing a few errors. This has been fixed. #695

New Features

  • ALE can now help you fix your code, via a configurable set of integrations for programs for fixing code. See :help ale-fix. #541
  • Python functions for fixing files will search for executables in virtualenv directories. #632
  • Linters can now add end column indexes and end lines for error highlights, for highlighting words for problems, etc.
  • ALE linting can now be disabled for particular buffers with b:ale_enabled. #371
  • Arbitrary buffer variables can be configured for filename patterns. See :help g:ale_pattern_options for more information. #371
  • ALE now supports disabling linting of files above a configurable maximum file size. See :help g:ale_maximum_file_size.
  • ALE now supports balloon messages. See :help g:ale_set_balloons.
  • ALE now sets the filename as the quickfix and loclist titles. #588
  • The quickfix window height can now be configured with g:ale_list_window_size.
  • You can now jump straight to the first or last problem with :ALEFirst or :ALELast. #616
  • ALE now makes results for a single linter available as soon as possible, instead of waiting for other running linters to complete. #406
  • Linter problems types can now be re-mapped via a setting. See :help g:ale_type_map for more information. #536
  • C and C++ linters are generally better at detecting the location of header files, but will never be perfect.

Misc Changes

  • The slower Go linters have been disabled by default. To re-enable them, see :help ale-go-options.

New Linters

  • Awk - gawk #638
  • C++ - clang-check #686, cpplint #546
  • FusionScript - fusion-lint #648
  • Haskell - ghc-mod #496
  • Java - checkstyle #551
  • Koitlin - ktlint #610
  • Objective C - clang #568
  • Objective C++ - clang #568
  • TypeScript - eslint #668, tsserver #517
  • XML - xmllint #559

New Fixers

  • JavaScript - eslint #541, prettier #571, prettier-eslint #571
  • Python - autopep8, isort, yapf
  • Ruby - rubocop #689
  • TypeScript - eslint #668

Linter Enhancements

  • The eslint linter will now output some end column indexes for better error highlighting.
  • The eslint linter will now use eslint_d, where available, which can be much faster.
  • The php linter will now output some end column indexes for better error highlighting.
  • The executable can now be configured for the rubocop linter. #561
  • When an executable ends with 'bundle', The rubocop linter will now automatically add ' exec rubocop' to the command for executing rubocop via Bundle. #561
  • The performance of gometalinter integration has been substantially improved by using the --include option. #566
  • The koitlinc linter now supports getting import paths from Maven, just like the javac linter. #585
  • The perl linter now shows warnings by default. #600
  • The cargo and rustc linters now report problems with end column and line numbers. #602
  • The cargo and rustc linters now report problems with more details. #601
  • The flake8 linter will now report exceptions thrown by flake8. #596
  • The flake8 linter will now include end colum indexes for better highlights for some problems. #538
  • The flake8 linter now describe E and W errors as style errors, which can be highlighted differently. #430
  • The --version check run for vint will now be run in the background. #624
  • 'lint_file' has been set to 1 for nimcheck, so only files on disk will be checked. #620
  • The percritic linter now includes column numbers for problems. #640
  • The tslint linter now distinguishes warnings from errors. #663
  • The javac linter now includes column numbers for better error highlighting. #660
  • The phpcs linter will now run locally installed versions where available by default. #666
  • The clang-tidy linter will now detect compile_commands.json files, and let you override the build directory location. See :help g:ale-cpp-options #688
  • The tslint linter now uses the JSON format for parsing errors, which should work better between different versions, and includes end line and column numbers. #684
  • The elm linter now includes some general errors not previously reported. #637