Releases: dense-analysis/ale
Releases · dense-analysis/ale
Release list
ALE v1.8.1
Bugs Fixed
- The
textlintlinter will now detect configuration files properly by using the--stdin-filenameoption. - The
textlintlinter will now run local versions oftextlintfromnode_moduleson Windows. - The
flawfinderlinter for C++ didn't initialize a severity variable correctly. This has been fixed. #1385 - The
brittanyfixer wasn't writing its output correctly. This has been fixed. #1424 - The
pylintlinter now handles errors with Windows filenames properly. #1492 - ALE commands didn't work at all if the Mac OSX shell was replaced with PowerShell. Now
/bin/shwill be used in such cases. #1495 - ALE could throw errors sometimes when opening certain buffers with the plugin not being fully loaded. This has been fixed. #1497
ALE v1.8.0
Deprecated Features
Support for NeoVim versions below 0.2.0 is deprecated in this version of ALE. Users using older versions of NeoVim will see a warning they can turn off when NeoVim starts. Support for NeoVim versions below 0.2.0 will be removed in ALE v2.0.0, to be released during Spring or Summer 2018. NeoVim 0.2.0 supports closures, which will make development of ALE easier.
The following functions will now emit deprecation warnings, and will be removed in ALE 0.2.0.
ale#statusline#Status()ALELint()ALEGetStatusLine()
Bugs Fixed
- tsserver now reports warnings with
'W'and suggestions with'I'. #1384 - The
tslintexectuable is now escaped. #416 - Forward slashes in temporary filenames could cause issue with errors being reported on Windows. This has been fixed. #1431
- Errors returned by
fish -nare now handled properly on Linux. #1373 - ALE will no longer show balloons when
g:ale_set_balloonsis set to0while Vim is running. #1404
New Features
- ALE now supports wrapping commands that are run. See
:help g:ale_command_wrapper. #1115 - ALE will now send
textDocument/didSaveto LSP servers when linting is done as the result of saving a file. #1288 - ALE now increments a variable
b:ale_lintedwhen buffers are checked, for use in other plugins. #1379 - LSP-like clients can now be stopped with
:ALEStopAllLSPs. - ALE now runs
ALEFixPreandALEFixPostevents when fixing files. - Balloons can now be disabled for a buffer by setting
b:ale_set_balloonsto0. #1404
Other Changes
- If you specify a fixer which is neither in the registry, nor a valid function name, ALE will now print a friendly message telling you your settings are wrong. #1336
New Linters
- Elixir -
dialyxir#1257 - Erb -
erubi#1157 - fish -
fish -n#1252 - Fountain -
proselint#1243 - Lua -
luac -p#1272 - Git commit messages -
gitlint#1233 - Go -
gotype#1099 - Markdown -
markdownlint#1394,textlint#1383 #1448 - PO -
alex#1321,msgfmt#1321,proselint#1321,write-good#1321 - Pony -
ponyc#1343 - QML -
qmllint#1419 - Text -
textlint#1448
New Fixers
- JSON -
fixjson#1284,jq#1303 - C -
flawfinder#1361 - C++ -
flawfinder#1361 - PHP -
php-cs-fixer#1390 - Ruby -
rufo#1415
Linter Enhancements
- The
gawklinter now prevents arbitrary execution of code by exiting early. #1411 - The options for
ghccan now be configured. #1260 - The HTML
tidylinter will now no longer run the outdated version oftidywhich comes with Mac OSX. Install a modern version via homebrew instead. #1262 htmlhintwill now automatically use the.htmlhintrcconfiguration file when checking for problems while you type. #1038- Syntax errors can now be ignored for
mypywithg:ale_python_mypy_ignore_invalid_syntax. - The Rust features code will be checked with can now be controlled for the
cargolinter. #1275 - Options for
protocare now configurable. #1268 - The
credoanddogmalinters now contain a work-around for an obscure hot-reloading issue. #1266 - Error messages will be read from
stderrfor newer versions of ESLint. #1246 - The
hadolintlinter now reports Dockerfile parse errors. #1308 - The
hadolintlinter now outputs hyperlinks with information about errors for:ALEDetail. #1308 - Some namespace issues for
lintrhave been solved. #1326 - Options can now be set for the
gobuildlinter. #1206 - The
gobuildlinter should now setGOPATHon Windows. #1206 - The
gobuildlinter should now escape the path forGOPATHand for changing the directory. #1206 - The
lintrlinter can now be set to lint packages. See:help g:ale_r_lintr_lint_package#1332 - F401 is now a warning and E112 is now a syntax error for pycodestyle and flake8. #476
- The
go vetlinter now only lints files and checks the entire package, which solves a number of problems, but removes the ability to use it to lint while you type. #1369 #1358 - The
staticchecklinter for Go can now be set to lint all files in a package, which can solve some problems with linting certain files. See:help g:ale_go_staticcheck_package - The
perllinter now reports warnings as warnings. #933 - The
perllinter now only shows the first problem among many problems one line. #933 - The markdown
mdllinter options are now configurable. #945 - Whether warnings are errors are displayed for flawfinder can now be controlled with
g:ale_c_flawfinder_error_severity. #1400 - The
gotypelinter will now only check files on disk, so it can work with vendored-only dependencies. #1392 - The
gotypeandgosimplelinters will now check whole packages, which seems like the only thing that will work properly. #1433 #936 - The
mixformat options are now configurable. #1410 - Errors for Japanese text with Redpen will now be highlighted better. #1416
- Problems with ranges will now be handled for the
remarklinter. #1207
Fixer Enhancements
- The
elm-formatfixer is now available as'elm-format', in addition to the old name of'format'. #1395
ALE v1.7.1
Bugs Fixed
rustfmtwill now apply project settings correctly by using stdin and stdout instead. #1254- The extra arguments are now passed to
clang-checkcorrectly. #1255 - ALE now supports running commands on Windows when the shell is PowerShell. #1298
- Rust errors will now use the correct column numbers instead of byte offsets. #1322
isortconfiguration files will now be detected more accurately by changing the working directory instead of setting the configuration file. #1330
ALE v1.7.0
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-lintwhen 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
ALEResetorALEResetBuffer. #719 b:ale_fix_on_savecan 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_fixerscan now be set to aList. #1108b:ale_linterscan now be set to aList. #1108b:ale_linterscan now be set to'all'. #1108b:ale_linter_aliasescan now be set to aList. #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 :ALEDetailwill 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
ALELintPrehas been added for running code just before ALE starts linting.
Other Changes
- ALE will no longer modify
runtimepathwheng:ale_emit_conflict_warningsis set to0. #1049 - ALE should no longer mess with folds when
ALELintautocmd commands are set. #1062 - ALE will no longer send an
idkeyfor the LSP notification messages at all, instead ofv: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
tsservercompletions will now be requested again after completion is done only if the cursor moves, rather than waiting for 100ms. #1041- The
perllinter is now disabled by default, as it can execute malicious code. #1186 - The
ALELintautocmd has been renamed toALELintPost, but the old commands will still be run until version 2.0. On version 2.0,ALELintcommands will probably be removed. - ALE will now look for
mypy.inifiles for finding Python project roots. - ALE will now look for
venvfor 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
- AsciiDoc -
alex#1220,redpen#1142,write-good#643 #811 - API Blueprint -
drafter#1152 - Clojure -
joker#1133 - Dafny -
dafny#1093 - Dart -
dart_language_server#1006 - GLSL -
glslls#1179 - GraphQL -
eslint#1169 - HTML -
alex#1220,write-good#643 #811 - LaTeX -
alex#1220,redpen#1142,vale#1230,write-good#643 #811 - LESS -
lessc#1103,stylelint#510 - mail -
alex#1220,proselint#1037,vale#1044 - Markdown -
alex#1220,redpen#1137,write-good#643 #811 - nroff -
alex#1220,write-good#643 #811 - OCaml -
ols#1110 - PHP -
phan#1026 - Pod -
alex#1220,write-good#643 #811 - proto -
protoc-gen-lint#1098 - Python -
prospector#565 #1183,pyflakes#516,PyLS#1097 - Solidarity -
solhint#1192 - ReasonML -
ols#1110 - reStructuredText -
alex#1220,redpen#1142,rstcheck#1090,vale#1230,write-good#643 #811 - Re:VIEW -
redpen#1142 - Terraform -
tflint#1046 - Texinfo -
alex#1220,write-good#643 #811 - text -
alex#1220,redpen#1142,write-good#643 #811 - Vim help -
alex#1220,write-good#643 #811 - XHTML -
alex#1220,write-good#643 #811
New Fixers
- Elixir -
mix format#1017 - Go -
goimports#1123 - Hack -
hackfmt#1053 - Haskell -
brittany#1174,hfmt#1027 - Java -
google-java-format#1209 - JavaScript -
importjs#1191 - ReasonML -
refmt#1059 - Rust -
rustfmt#1025 - Shell -
shfmt#1083
Linter Enhancements
- ALE now captures problems for other files for GCC, clang, and related tools. #1023
- The
rubocopandhaml-lintconfiguration files will be now used forham-lintautomatically. #1047 - The
shellchecklinter will now use-xand follow sourced files when checking for errors. #491 - The
shellchecklinter now uses the type'I'for notes. #1122 - The
phpcslinter 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 checkandcargo check --all-targetswill now automatically be used whencargois new enough.g:ale_rust_cargo_use_checkorg:ale_rust_cargo_check_all_targetscan be set to disable either. #626- The
phpmdexecutable can now be configured, and error checking should be more reliable. #1076 - The
flowlinter will now include more information for errors in the:ALEDetailmessage. #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
msgidvalues (likeE0103) 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
erbfiles. #580 #1114 - The GCC executable for ASM may now be configured. #1138
- Options can now be configured for
iverilog. #1143 - The
javaclinter now includes test source paths for test files. #859 - The
javaclinter now includes jaxb source paths when available. #859 - Problems in other files will now appear in lists for the
gobuildlinter. #1154 - The
foodcriticlinter has been overhauled to check only files on disk with better error messages. #1151 flowwill no longer check files with home directory configuration files by default, which can eat all of your CPU and RAM. Setg:ale_javascript_flow_use_home_configto1to 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
rlscan now be selected. See:help g:ale_rust_rls_toolchain#1166 - The
rubyexecutable is now configurable. #1168 - Warnings about trailing blank lines can be disabled for
flake8andpycodestyle. - The
phpcbflinter should now work properly, apparently. #1188 - The
puppetlinter now parses output which doesn't include column numbers. #1182 - The executable for
perlis now properly escaped. gometalintercan now be configured to report problems from other files. See:help g:ale_go_gometalinter_lint_package#1156- The
phplinter now handles error output from PHP 7.2, which has slightly different output. - The
valelinter now parses end column numbers, for better highlighting. - The
erblinter now works on puppet style templates. #1221 - The
mcsclinter paths and escaping should now work on Windows. - The
ember-template-lintlinter will now parse line and column numbers for fatal errors if they are included. - Some of the options for
rustccan now be configured, so-Z no-trans...
ALE v1.6.2
ALE v1.6.1
Bugs Fixed
- ALE will now read
cargooutput from eitherstdoutorstderr, to support more versions ofcargo#1045 - ALE will no longer try to lint files named
.#1048 ashanddashare now supported for shell linters #1051- Completions will now not be requested shortly after
CompleteDone, fixing a bug where the menu kept re-opening #1041 gosimpleandstaticcheckwill now check only the actual files on disk, because that is all they support. #936- Running the
phplinter will no longer write to the PHP error log. #1072 - The
erlclinter is now supported on Windows. #1071 - Python fixers weren't working on Windows since version 1.6.0. This has been fixed. #1081
- When combined with some other plugins in NeoVim, ALE would sometimes through exceptions when trying to stop jobs. These errors are now silenced. #1058
- The
javaclinter wasn't handling errors from other files correctly. This has been fixed. #1061 - All LSP and
tsservermessages which include a buffer's text data will now include a final line feed, so tools which complain about missing newline characters will be quiet. #1085 - Message handling for LSP linters wasn't working in NeoVim, due to improper handling of LSP messages. This has been fixed. #1006
- ALE was reporting
no-implicit-dependenciesfor most files with in TSLint's latest version, because TSLint does not fully support checking for errors while you type yet. These errors have been silenced for now. #1101
ALE v1.6.0
Bugs Fixed
- ALE wasn't checking buffers on enter in some cases. This has been fixed. #734
- The regular expression for parsing
phpmderrors has been updated, so errors may be handled better in some cases. #1032
New Features
- The maximum number of signs ALE will set can now be configured. See
:help g:ale_max_signs#965 - The delay before echoing a message can now be configured. See
:help g:ale_echo_delay#965
Other Changes
- Linters and some other processing will no longer be run when
v:exitingis set in NeoVim 0.2.0 and above. #904 - Linters will no longer be run on
:wqor:x, which did nothing useful. #904
New Linters
- C -
clang-tidy#827 - C# -
mcsc(See:helpale-cs-mcsc`) #952 - GLSL -
glslang#914 - LLVM IR - llc #979
- Solidity - solium #929
- Thrift -
thrift#892 - Markdown -
remark-lint#1010
New Fixers
prettierfor TypeScript, CSS, SCSS, LESS, and JSON #910 #1018elm-format#916gofmt#970trim_whitespace#991tslint#1001
Linter Enhancements
- ALE will now prefer to use
prettier_dforprettier, if it is installed. #885 - The
javaclinter will now include paths based on gradle build commands. #889 - CM files are now used for smlnj where available. See
:help ale-sml-smlnj#884 - TSLint output can now be ignored for empty files. See
:help g:ale_typescript_tslint_ignore_empty_files - The
brakemanlinter will now report problems for other files in quickfix and loclist. - The
slim-lintlinter will now use rubocop configuration files. #903 #942 - The
shellchecklinter now arranges the arguments in such a way that manually changing the dialect is possible. #949 - The
phpstanconfiguration file can now be configured. #969 $VIRTUAL_ENVwill be used for running Python tools when no local directories can be found. #990- The
luachecklinter will now respect theg:ale_warn_about_trailing_whitespaceoption. #968 - ALE will now tell you how to configure
scalastylewhen no configuration file was found. #977
Fixer Enhancements
- Configuration files can now be detected for
prettier. See:help g:ale_javascript_prettier_use_local_config#886 - The
prettier-eslintfixer now uses the eslint configuration file by default, which will yield better results, but may break things for some users.See :help g:ale_javascript_prettier_eslint_legacy#854 - The
yapffixer should now run local virtualenv executables on Windows. - The
standardfixer can now be used even if the linter is never loaded.
ALE v1.5.2
Bugs Fixed
- ALE was sometimes reporting errors when trying to open empty list windows. This has been fixed. #920
staticcheckandgosimplenow capture both output streams so they will report errors where they didn't. #921- ALE wasn't changing the sign column color any more when that option was on since 1.5.0. This has been fixed. #924
- ALE stopped removing signs properly when multiple signs ended up lying on a single line, since 1.5.0. This has been fixed. #964
- ALE was using the wrong ESLint configuration files in some cases. This has been fixed. #922
eslint --fixnow uses-cinstead of--configfor specifying the configuration file, which apparently works better in some versions. #951
ALE v1.5.1
Bugs Fixed
- ALE will now detect the shell dialect for
shellcheckby parsing hashbang (#!) lines. #869 pycodestyleis now disabled by default, as it is also installed when you installflake8. #888- ALE now uses
node.exeinstead ofnodeto execute Node.js scripts on Windows, and the path can be configured if needed. See:help g:ale_windows_node_executable_path#895 - ALE will no longer lint a file when the filetype is initially set if
g:ale_lint_on_enteris set to0. #505 - ALE should no longer show linting results in ctrlp-funky windows. #891
- Since version 1.5.0, ALE wasn't closing the loclist or quickfix windows most of the time. This has been fixed. #899 #912
- Since version 1.5.0,
tsserverintegration was broken due to a bug in NeoVim. A workaround has been added to fix this issue in ALE. #907
ALE v1.5.0
Bugs Fixed
- ALE sometimes didn't remove highlights now and again. This has been fixed. #697
eslint --fixneeded to be executed withnodeon Windows when installed viacreate-react-app. This has been fixed. #775- The GCC error handler was ignoring errors without column numbers. This has been fixed. #795
scalacwas being run for SBT files with the filetypescala.sbt. Nowscalacis not run for SBT files. #804- Many linters which expect JSON output now ignore output which isn't JSON. #810
- ALE was not handling syntax errors from
tsserver. This has been fixed. #798 - ALE didn't check files some of the time when restoring multiple windows from a saved session. This has been fixed. #734
- When ALE wrote files with
fileformat=dos, carriage returns were not included. This has been fixed. #823 - Now when selections are active when loclist or quickfix windows are opened, the selection will be reset. #788
flake8wasn't parsing errors if you configured the format option in configuration files. Now the format is always explicitly set in the command, so it works. #837- The
rubocopfixer now uses the same options that the linter is configured with. #841 - Jumping through problems didn't work in some cases with blank lines. This has been fixed. #848
- If problems were kept from previous linter runs, like a
lint_filelinter, ALE would not downgrade signs in the sign column. This has been fixed. #825
New Features
- ALE now comes with LSP (Language Server Protocol) support, for checking files with language servers. See
:help ale-lsp-lintersfor documentation on how LSP linters can be defined. #517 - ALE now offers support for code completion while you type for TypeScript code via
tsserver. See:help ale-completion :ALEFixSuggestwill now suggest tools for fixing problems in a new window, instead of a long echo message.- ALE will now stop checking buffers for a period of time when exceptions are thrown. See
:help ale-cool-down#468 - ALE now supports running Python executables from virtualenv directories on Windows. #729
- ALE will now remove any problems previously set when linters are disabled, removed, or when the filetype changes.
- Buffer-local settings can now be set with
g:ale_pattern_optionsby using names starting with&. - ALE will now detect Python project roots based on common configuration files, in addition to looking upwards to find the first directory without an
__init__.pyfile. #755 - ALE can now be configured to open quickfix or loclist windows only when files are saved. See
:help g:ale_open_list#271 - Buffer local options
b:ale_open_listandb:ale_keep_list_window_openare now supported. #271 ALEInfowill now print the results of executable checks for linters, which should help you figure out why a linter might not be running.
New Linters
- Dart -
dartanalyzer#308 - Erlang -
SyntaxErl#774 - eruby -
erubis#865 - GraphQL -
gqlint#863 - Idris -
idris#838 - PHP -
langserver#517,phpstan#772 - Python -
pycodestyle#872 - R -
lintr#182 - Ruby -
rails_best_practices#751 - Rust -
rls#517 - Scala -
scalastyle#766 - Stylus -
stylelint#178 - Tcl -
nagelfar#821 - YAML -
swaglint#771
New Fixers
- C, C++ -
clang-format#873 - CSS, SASS, SCSS, stylus -
stylelint#657 #813 - JavaScript -
prettier-standard#702 - JavaScript -
standard#781 - PHP -
phpcbf#862 - Puppet -
puppet-lint#701 - Swift -
swiftformat#842
Linter Enhancements
- All C and C++ linters executable paths can now be configured. #711
- The
elm-makelinter now includes end line and column numbers for highlights. #699 - The
verilatorlinter's options can now be configured. #698 - The
pug-lintlinter now detectsnode_modulesexecutables, like other linters, and supports the same options as most other linters. 79e8e06 - The
perlcriticlinter now supports more options and will automatically load configuration files. See:help ale-perl-perlcritic-options#675 - The
luachecklinter now includes the error codes in the message. #717 - The
hadolintlinter can now be run via a Docker image. #720 stylelintlinters will now print exceptions thrown bystylelint, including missing configuration files.- The
gometalinterlinter's executable can now be configured. - The
jscslinter can now be used with older versions of jscs. #737 - The
rubocoplinter now works with older versions of rubocop. #339 #738 - The
rubocoplinter now includes end column numbers for better error highlighting. #738 - The
rubocoplinter now includes the error type in the error messages. #820 - The
clang-checklinter now uses some additional arguments to avoid generating .plist files if no build directory is set. #703 - The
hlintlinter now uses typeIfor suggestions. #710 - The
hlintlinter now includes end line and column numbers for better highlighting. #710 - The
hdevtoolslinter's options and executable can now be configured. #799 - The
ghc-modlinter will now map the temporary file for better error messages. #846 - The rule name is now included in the messages for tslint problems.
- The
SyntaxErllinter will now include the basename option when available. #860 #861 - Warnings about files ignored by ESLint can now be disabled. #836
- Some
Vintproblems will be highlighted better.
Fixer Enhancements
- The
yapffixer now only sets--no-local-styleif a configuration file is detected. #786