Skip to content

ALE v1.3.0

Compare
Choose a tag to compare
@w0rp w0rp released this 07 May 18:37
· 3686 commits to master since this release

Bugs Fixed

  • Highlights will now be cleared and restored when buffers are hidden and shown.

New Features

  • Files/buffers will now be checked when the filetype is changed.
  • All ALE commands defined so far may now be combined with |. (command! -bar ...)
  • Commands ALEEnable and ALEDisable have been added for explicitly turning ALE on or off.
  • g:ale_lint_on_text_changed now accepts values 'never', 'normal', and 'always' for controlling whether TextChanged or TextChangedI will be listened to. Old options 0 and 1 will continue to be supported until version 2.0.0.
  • An option g:ale_lint_on_insert_leave for triggering linting on leaving Insert mode. See :help g:ale_lint_on_insert_leave.
  • Line highlights may now be set for set for signs. See :help g:ale_set_signs.
  • For all C and C++ linters, errors inside of headers will be reported on the #include lines.
  • Filetypes may now be aliased to multiple filetypes in a List. See :help g:ale_linter_aliases.
  • All settings for all linters should now be dynamically evaluated, so settings can be changed while Vim is running.

New Linters

  • ASM - gcc
  • Crystal - crystal
  • Elixir - dogma
  • eruby - erb
  • Go - staticcheck, gosimple
  • handlebars - ember-template-lint
  • Koitlin - koitlinc
  • Markdown - Vale
  • ReasonML - merlin
  • RPM Spec - rpmlint
  • Ruby - brakeman, reek, ruby
  • SQL - sqlint
  • Text - Vale

Linter Enhancements

  • cargo check may now be used instead of cargo build See :help g:ale_rust_cargo_use_check.
  • The cargo linter now uses lint_file option so it will only run when files are opened, saved, etc.
  • The rubocop linter's error levels have been improved.
  • The eslint linter will now automatically detect eslint installed via create-react-app.
  • The eslint linter will now report invalid configuration file settings as errors at line 1.
  • The tslint linter will now detect executables installed in node_modules.
  • The csslint linter will now use .csslintrc files defined in ancestor directories.
  • The javac linter will now create .class files in temporary directories, deleted at the end of lint cycles.
  • The javac linter will now include source paths like src/main/java.
  • The javac linter will now get class paths from Maven automatically.
  • The javac linter will now report symbol names in undefined symbol errors for types.
  • The executable and some options may now be configured for the foodcritic linter.
  • The nimcheck linter now turns thread support on, so code using threads can be checked.
  • Error parsing for the sml linter has been improved.
  • The executable and some options may now be configured for the shellcheck linter.
  • The go build linter will now only check files on disk, but is now capable of understanding paths correctly.
  • Options and the executable can now be set for the puppetlint linter.
  • The Fortran gcc linter can now be configured to check fixed form layouts. See :help g:ale_fortran_gcc_use_free_form
  • The Fortran gcc linter's executable can now be configured. See :help g:ale_fortran_gcc_executable
  • The flow linter will now filter out errors/warnings from other files.
  • The tslint linter can now be set to prefer the global executable, like many other linters.
  • The laucheck linter can now be configured with different options.
  • The cppcheck linter will now detect and use compile_commands.json files and switch to the directory they are in, when detected in ancestor directories.
  • The clang-tidy linter now checks files on disk and uses compile_commands.json files, with no extra options by default. See :help ale-cpp-clangtidy
  • The pylint linter will now detect versions of the program in virtualenv automatically. See :help g:ale_python_pylint_use_global for disabling this behaviour.
  • The pylint linter will now check files on disk, and understand import paths.
  • The mypy linter will now detect versions of the program in virtualenv automatically. See :help g:ale_python_mypy_use_global for disabling this behaviour.
  • The mypy linter will now check files on disk, and understand import paths.
  • The flake8 linter will now detect versions of the program in virtualenv automatically. See :help g:ale_python_flake8_use_global for disabling this behaviour.

Misc Changes

  • Linters now run when files are saved by default.
  • The setting g:ale_linters_sh_shell_default_shell has been renamed to g:ale_sh_shell_default_shell.
  • The setting g:ale_linters_sh_shellcheck_exclusions has been renamed to g:ale_sh_shellcheck_exclusions.