Skip to content

ALE v1.7.0

Compare
Choose a tag to compare
@w0rp w0rp released this 19 Dec 18:31
· 2635 commits to master since this release

Bugs Fixed

  • ALE will now find files relative to buffers in cygwin. #1180 #1181
  • The temporary file for TSLint was being mentioned sometimes in the quickfix list. #1210
  • ALE will now suppress trailing whitespace warnings for ansible-lint when the option is on. #1216
  • Relative and absolute paths are now resolved better on Windows. #1210
  • ALE no longer moves the cursor slightly when briefly escaping insert mode and echoing a message. #1228

New Features

  • ALE linting can now be toggled for particular buffers. See :help ALEToggleBuffer. #817
  • Problems reported by ALE can now be removed with ALEReset or ALEResetBuffer. #719
  • b:ale_fix_on_save can now be used for controlling fixing on save for specific buffers. #857
  • Fixer functions can now be chained, much like linters. #1086
  • Fixer functions can now specify callbacks for post-processing command output.
  • Reading the buffer via stdin can now be disabled for fixer commands with 'read_buffer': 0, just like linters.
  • b:ale_fixers can now be set to a List. #1108
  • b:ale_linters can now be set to a List. #1108
  • b:ale_linters can now be set to 'all'. #1108
  • b:ale_linter_aliases can now be set to a List. #1108
  • ALE will now show the echoed severity for type 'I' problems as 'Info'.
  • ALE now supports formatting echo messages with error codes. #852
  • Several linters have now been updated so the error codes are configurable. #852
  • The echo message format can now be configured differently for different buffers. See :help b:ale_echo_msg_format
  • Messages for loclist and the quickfix list can now be formatted like echoed messages. See :help g:ale_loclist_msg_format #1069 #852
  • ALE linters can now be configured to only be enabled explicitly. See :help g:ale_linters_explicit #1128
  • :ALEDetail will now show messages in a preview window. #757
  • Line highlights will now be set when signs are disabled. #741
  • ALE now supports jumping to definitions for LSP and tsserver linters. See :help ale-go-to-definition.
  • Warnings about trailing blank lines can be disabled for some linters. See :help g:ale_warn_about_trailing_blank_lines.
  • Failing executable checks may now be cached with let g:ale_cache_executable_check_failures = 1 #1176
  • An autocmd command ALELintPre has been added for running code just before ALE starts linting.

Other Changes

  • ALE will no longer modify runtimepath when g:ale_emit_conflict_warnings is set to 0. #1049
  • ALE should no longer mess with folds when ALELint autocmd commands are set. #1062
  • ALE will no longer send an id key for the LSP notification messages at all, instead of v:null. #1110
  • Output will now be ignored for fixer commands which output only whitespace.
  • When ALE deletes lines as the result of fixing files, the deleted lines will be put in the black hole register. #1165
  • tsserver completions will now be requested again after completion is done only if the cursor moves, rather than waiting for 100ms. #1041
  • The perl linter is now disabled by default, as it can execute malicious code. #1186
  • The ALELint autocmd has been renamed to ALELintPost, but the old commands will still be run until version 2.0. On version 2.0, ALELint commands will probably be removed.
  • ALE will now look for mypy.ini files for finding Python project roots.
  • ALE will now look for venv for finding virtualenv directories by default. #1237
  • Cursor messages can now be disabled while Vim is running.
  • ALE now cleans up buffer data when buffers are deleted instead of unloaded, so the quickfix list can be maintained.

New Linters

New Fixers

Linter Enhancements

  • ALE now captures problems for other files for GCC, clang, and related tools. #1023
  • The rubocop and haml-lint configuration files will be now used for ham-lint automatically. #1047
  • The shellcheck linter will now use -x and follow sourced files when checking for errors. #491
  • The shellcheck linter now uses the type 'I' for notes. #1122
  • The phpcs linter will now include the error code in the message. #1009
  • Errors for missing ESLint configuration files can now be disabled. See :help g:ale_javascript_eslint_suppress_missing_config. #971
  • cargo check and cargo check --all-targets will now automatically be used when cargo is new enough. g:ale_rust_cargo_use_check or g:ale_rust_cargo_check_all_targets can be set to disable either. #626
  • The phpmd executable can now be configured, and error checking should be more reliable. #1076
  • The flow linter will now include more information for errors in the :ALEDetail message. #946
  • Error codes can now be configured for messages from ESLint. #852
  • Error codes can now be configured for messages from TSLint. #852
  • Error codes can now be configured for messages from flake8. #852
  • Error codes can now be configured for messages from rubocop. #852
  • Error codes can now be configured for messages from ansible-lint. #852
  • Error codes can now be configured for messages from cpplint. #852
  • Error codes can now be configured for messages from shellcheck. #852
  • Error codes can now be configured for messages from pylint. #852
  • Error codes can now be configured for messages from checkmake. #852 #1135
  • Error codes can now be configured for messages from checkstyle. #852
  • Error codes can now be configured for messages from pycodestyle. #852
  • Error codes can now be configured for messages from csslint. #852
  • Error codes can now be configured for messages from jscs. #852
  • Error codes can now be configured for messages from luacheck. #852
  • Error codes can now be configured for messages from mcs and mcsc. #852
  • Error codes can now be configured for messages from nimcheck. #852
  • Error codes can now be configured for messages from reek. #852
  • Error codes can now be configured for messages from slim-lint. #852
  • Error codes can now be configured for messages from stylelint. #852
  • Error codes can now be configured for messages from swaglint. #852
  • Error codes can now be configured for messages from swiftlint. #852
  • Error codes can now be configured for messages from tflint. #852
  • Error codes can now be configured for messages from foodcritic. #852
  • msgid values (like E0103) are no longer reported for pylint, which aren't human-readable. #852
  • pycodestyle errors and warnings are now style errors and warnings. #852
  • Rails-specific syntax will now automatically be stripped from erb files. #580 #1114
  • The GCC executable for ASM may now be configured. #1138
  • Options can now be configured for iverilog. #1143
  • The javac linter now includes test source paths for test files. #859
  • The javac linter now includes jaxb source paths when available. #859
  • Problems in other files will now appear in lists for the gobuild linter. #1154
  • The foodcritic linter has been overhauled to check only files on disk with better error messages. #1151
  • flow will no longer check files with home directory configuration files by default, which can eat all of your CPU and RAM. Set g:ale_javascript_flow_use_home_config to 1 to use home directory configuration files, if you really must. #783
  • Prettier text will now be saved for detailed messages for Haskell linters. #918
  • Different toolchains for rls can now be selected. See :help g:ale_rust_rls_toolchain #1166
  • The ruby executable is now configurable. #1168
  • Warnings about trailing blank lines can be disabled for flake8 and pycodestyle.
  • The phpcbf linter should now work properly, apparently. #1188
  • The puppet linter now parses output which doesn't include column numbers. #1182
  • The executable for perl is now properly escaped.
  • gometalinter can now be configured to report problems from other files. See :help g:ale_go_gometalinter_lint_package #1156
  • The php linter now handles error output from PHP 7.2, which has slightly different output.
  • The vale linter now parses end column numbers, for better highlighting.
  • The erb linter now works on puppet style templates. #1221
  • The mcsc linter paths and escaping should now work on Windows.
  • The ember-template-lint linter will now parse line and column numbers for fatal errors if they are included.
  • Some of the options for rustc can now be configured, so -Z no-trans can be replaced with something else. #1031

Fixer Enhancements

  • The prettier fixer will now use the --stdin-filepath argument when the version is 1.6.0 or greater. #1095
  • The prettier_eslint fixer will now use the --stdin-filepath argument when the version is 4.4.0 or greater. #1095
  • The prettier_eslint fixer will now use the --eslint-config-path argument only when the version is 4.2.0 or greater. The old legacy option has been removed, as it is no longer needed. #1095
  • 'prettier-eslint' may now be used in place of 'prettier_eslint' for fixers.
  • 'prettier-standard' may now be used in place of 'prettier_standard' for fixers.
  • --fix-to-stdout is now used for better configuration detection for eslint_d where available. #988
  • --fix-dry-run is now used for ESLint 4.9.0 and up for fixing files with better configuration file detection. #988