Releases: dense-analysis/ale
Releases · dense-analysis/ale
Release list
ALE v1.4.1
Notes
- From this version and onward, ALE remembers the full output of recent commands by default, which helps with filing bug reports and fixing issues. See
:help g:ale_history_log_outputfor more information.
Bugs Fixed
- When fixers like
yapffailed, they were removing all of the lines in files. This has been fixed. #706 - The
brakemanlinter was throwing errors when no output was returned. This has been fixed. #716 ansible-lintwas reporting errors from other files. This has been fixed. #216- ALE wasn't setting the configuration file when fixing files with
rubocop. Now it does. #732 - The
ghclinter was showing warning as errors. This has been fixed. #710 - The
flowlinter didn't support older versions of flow. This has been fixed. #735 - Rust linters should now work on Windows. They didn't before, due to how paths were handled. #736
- ALE wasn't checking files on save if it also tried to fix files on save, and no changes were made. This has been fixed. #730
- When the shell was set to
fish, some ALE commands didn't work. Now/bin/shwill be used instead when the shell is set to fish. #749 - Errors when ALE is unable to set signs will now be silenced. #560 #763
ALE v1.4.0
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_leavewas set to1, when it should only check buffers. This has been fixed. - ALE now uses the
BufWinEnterevent forg:ale_lint_on_enterinstead ofBufEnter, 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.FileChangedShellPostis used to check if files are changed outside of Vim. If they are, then theBufEnterevent will be used to check the file again. - When
g:ale_open_listis 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
kotlinclinter. #662 - The
ghc-modlinter will now filter out errors for other files. #690 - The
pylintlinter 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_optionsfor 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
:ALEFirstor: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_mapfor 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
eslintlinter will now output some end column indexes for better error highlighting. - The
eslintlinter will now useeslint_d, where available, which can be much faster. - The
phplinter will now output some end column indexes for better error highlighting. - The executable can now be configured for the
rubocoplinter. #561 - When an executable ends with
'bundle', Therubocoplinter will now automatically add' exec rubocop'to the command for executingrubocopvia Bundle. #561 - The performance of
gometalinterintegration has been substantially improved by using the--includeoption. #566 - The
koitlinclinter now supports getting import paths from Maven, just like thejavaclinter. #585 - The
perllinter now shows warnings by default. #600 - The
cargoandrustclinters now report problems with end column and line numbers. #602 - The
cargoandrustclinters now report problems with more details. #601 - The
flake8linter will now report exceptions thrown byflake8. #596 - The
flake8linter will now include end colum indexes for better highlights for some problems. #538 - The
flake8linter now describe E and W errors as style errors, which can be highlighted differently. #430 - The
--versioncheck run forvintwill now be run in the background. #624 'lint_file'has been set to1fornimcheck, so only files on disk will be checked. #620- The
percriticlinter now includes column numbers for problems. #640 - The
tslintlinter now distinguishes warnings from errors. #663 - The
javaclinter now includes column numbers for better error highlighting. #660 - The
phpcslinter will now run locally installed versions where available by default. #666 - The
clang-tidylinter will now detectcompile_commands.jsonfiles, and let you override the build directory location. See:help g:ale-cpp-options#688 - The
tslintlinter now uses the JSON format for parsing errors, which should work better between different versions, and includes end line and column numbers. #684 - The
elmlinter now includes some general errors not previously reported. #637
ALE v1.3.1
Bugs Fixed
- Shell escaping has been fixed pretty much everywhere. #540
- PHP error parsing has been fixed, so more errors will be parsed. #533
- The
gometalinterhandler wasn't filtering file errors correctly. Now errors from other files will be filtered out. #553 csslinterrors without groups weren't being reported. This has been fixed. #555pytlinterror columns were off-by-one. This has been fixed. #578- Fatal errors weren't being parsed for
ember-template-lint. This has been fixed. #589 - ALE was sometimes highlighting entire lines when buffers were un-hidden. This problem was introduced in version 1.3.0. This bug has been fixed. #574
ALE v1.3.0
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
ALEEnableandALEDisablehave been added for explicitly turning ALE on or off. g:ale_lint_on_text_changednow accepts values'never','normal', and'always'for controlling whetherTextChangedorTextChangedIwill be listened to. Old options0and1will continue to be supported until version 2.0.0.- An option
g:ale_lint_on_insert_leavefor 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
#includelines. - 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 checkmay now be used instead ofcargo buildSee:help g:ale_rust_cargo_use_check.- The
cargolinter now useslint_fileoption so it will only run when files are opened, saved, etc. - The
rubocoplinter's error levels have been improved. - The
eslintlinter will now automatically detect eslint installed viacreate-react-app. - The
eslintlinter will now report invalid configuration file settings as errors at line 1. - The
tslintlinter will now detect executables installed innode_modules. - The
csslintlinter will now use.csslintrcfiles defined in ancestor directories. - The
javaclinter will now create.classfiles in temporary directories, deleted at the end of lint cycles. - The
javaclinter will now include source paths likesrc/main/java. - The
javaclinter will now get class paths from Maven automatically. - The
javaclinter will now report symbol names in undefined symbol errors for types. - The executable and some options may now be configured for the
foodcriticlinter. - The
nimchecklinter now turns thread support on, so code using threads can be checked. - Error parsing for the
smllinter has been improved. - The executable and some options may now be configured for the
shellchecklinter. - The
go buildlinter 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
puppetlintlinter. - The Fortran
gcclinter can now be configured to check fixed form layouts. See:help g:ale_fortran_gcc_use_free_form - The Fortran
gcclinter's executable can now be configured. See:help g:ale_fortran_gcc_executable - The
flowlinter will now filter out errors/warnings from other files. - The
tslintlinter can now be set to prefer the global executable, like many other linters. - The
lauchecklinter can now be configured with different options. - The
cppchecklinter will now detect and usecompile_commands.jsonfiles and switch to the directory they are in, when detected in ancestor directories. - The
clang-tidylinter now checks files on disk and usescompile_commands.jsonfiles, with no extra options by default. See:help ale-cpp-clangtidy - The
pylintlinter will now detect versions of the program in virtualenv automatically. See:help g:ale_python_pylint_use_globalfor disabling this behaviour. - The
pylintlinter will now check files on disk, and understand import paths. - The
mypylinter will now detect versions of the program in virtualenv automatically. See:help g:ale_python_mypy_use_globalfor disabling this behaviour. - The
mypylinter will now check files on disk, and understand import paths. - The
flake8linter will now detect versions of the program in virtualenv automatically. See:help g:ale_python_flake8_use_globalfor disabling this behaviour.
Misc Changes
- Linters now run when files are saved by default.
- The setting
g:ale_linters_sh_shell_default_shellhas been renamed tog:ale_sh_shell_default_shell. - The setting
g:ale_linters_sh_shellcheck_exclusionshas been renamed tog:ale_sh_shellcheck_exclusions.
ALE v1.2.1
Bugs Fixed
- Exceptions will no longer be thrown when the checks for conflicting plugins are run before the rest of the ALE plugin code.
- Various linters no longer set errors at column 1, when there is no column set.
- Linting will no longer be performed from inside of a command window.
- Errors will now be returned for
zshscripts for theshelllinter. - The
vintlinter wasn't setting the--no-coloroption for versions 0.3.7 and above, due to a typo. This has been fixed. - The
phplinter was parsing some errors twice. This has been fixed. - Highlights will now be cleared when buffers are unloaded, so matches will not appear in the wrong files.
ALE v1.2.0
Bugs Fixed
- Signs will now be unplaced for Italian users.
- Fixed a bug where loclist items could be set for the wrong buffers.
New Features
- A command
:ALETogglehas been added for turning ALE on or off temporarily. - A command
:ALELinthas been added for running ALE manually. - A command
:ALEDetailhas been added for showing more details for an error at the cursor. - Linters can now use a
read_bufferoption for enabling/disabling stdin input. - Linters can now use a
lint_fileoption for running checks against files, instead of Vim buffers. - ALE now highlights errors in the buffer. See
:help g:ale_set_highlights - The
:ALEInfocommand now outputs linter variables. - The
:ALEInfocommand now outputs a command history. See:help g:ale_history_enabled - ALE will no longer complain if it can't work for empty filetypes or git commits.
- If ALE fails to load properly, it should now still emit airline statusline messages.
New Linters
- AsciiDoc - proselint
- C++ - clang
- CMake - cmakelint
- Haml - hamllint
- Haskell - hdevtools
- HTML - proselint
- Java - javac
- JavaScript - standard, xo
- nim - nim
- nix - nix-instantiate
- nroff - proselint
- PHP - phpmd
- Pod - proselint
- reStructuredText - proselint
- Slim - slim-lint
- SML - smlnj
- Texinfo - proselint
- Vim help - proselint
- XHTML - proselint
Linter Enhancements
- The
coffeeandcoffeelintlinters now attempt to use the versions of those executables fromnode_modules, if available. - The
coffelintlinter will now parse more errors. - The
credolinter now includes the filename of the file being checked, which can be useful for various checks. - The
flowlinter will not now no longer run if no.flowconfigfile exists in an ancestor directory. - You can now configure options for the
stylelintlinter. - The
gfortranlinter now supports more kinds of error output. - The
yamllintlinter can be now be configured with an executable path and options. - The
pylintlinter now includes the symbol (a short name) for error types. - PHP error parsing has been improved, so more errors are handled.
- The
eslintlinter will now report problems with the configuration file, using:ALEDetail. - The
perllinter now supports options. See:help ale-linter-options-perl-perl. - The
clangandgcclinters now support header includes in the same directories files are in. - The
erlclinter will no longer leave compiled files lying around. - The
tslintlinter will now find configuration files, and allow the executable and configuration file to be configured.
Misc Changes
- $TMPDIR will now automatically be set to /tmp on Unix if it is not set.
- ALE will now only run the
cargolinter for Rust by default. To run other linters, modifyg:ale_lintersappropriately. See:help ale-integration-rust. - ALE will now echo the cursor error messages when linting finishes or when leaving insert mode.
ALE v1.1.1
Bugs Fixed
- The Pug linter wasn't parsing errors correctly. This has been fixed.
- The gcc/gfortran linter should now parse errors from more versions.
- Parsing of TypeScript
typecheckerrors has been fixed for some filenames containing the stringts. - The commands for navigating between errors/warnings should now correctly filter out other buffers.
- The commands for navigating between errors/warnings will now prefer to use the quickfix list, if
g:ale_set_quickfixis on.
ALE v1.1.0
New Features
- ALE now splits filetypes containing
.(a dot), and will run all linters for each component of a compound filetype, so files with typefoo.barwill use linters for filetypesfooandbar. - ALE now offers commands and
<Plug>keybinds for moving between warnings and errors. See:help ale-navigation-commandsfor more information. - ALE can now automatically open a window to show the list of errors. See
:help g:ale_open_listfor more information. - ALE now allows you to get some information about the current linters with a new
:ALEInfocommand. - ALE now includes a mechanism for chaining commands for running linters, for any linters which need to run multiple commands to check for errors.
New Linters
Support has been added for the following linters.
- Ansible - ansiblelint
- C/C++ - clang, cppcheck
- C# - mcs
- Chef - foodcritic
- CSS - stylelint
- Dockerfile - hadolint
- Elm - elm-make
- Erland - erlc
- Go - go build
- JavaScript - flow
- LatTex - chtex, lacheck
- Markdown - mdl, proselint
- MATLAB - mlint
- OCaml - merlin (Another Vim plugin is required)
- PHP - hack
- Puppet - puppet, puppet-lint
- Python - mypy, pylint
- SASS - stylelint
- SCSS - stylelint
- Swift - swiftlint
- Text - proselint
- TypeScript - tslint, typecheck
Linter Enhancements
- The
eslintandjshintlinters for JavaScript will now attempt to run eslint installed innode_modulesdirectories first. Theg:ale_javascript_eslint_use_globalorg:ale_javascript_jshint_use_globalvariables can be set to1to force ALE to use the global executables. - The
eslintlinter can now be configured with more options. - The default flags for
gccandg++were changed to use the latest C and C++ standards by default. - The
htmlhintoptions can now be customised with a global variable. htmlhintwill now search for executables innode_modulesdirectories to run.- The
shellchecklinter now uses Vim's special buffer variables for detecting the shell dialect. - The
flake8linter now accept variables for configuring the executable and the command line arguments. - The
flake8linter is now informed with the filename, which plugins can use. - The Haksell linters should produce better error messages.
- C and C++ linter options can now be changed dynamically.
- The Verilator linter was improved so it only produces warnings or errors for the file you are editing.
- The DMD linter should now run on Windows, as the special Linux Bash script has been replaced with
use of the new command chaining feature. - The Vint linter for Vim files now recognises commands specific to NeoVim when running under NeoVim.
Misc Changes
- The stdin-wrapper script for Unix systems has been simplified, and should see increased support for various systems.
- A bug was fixed with this plugin and newer versions of NeoVim which altered the job control API slightly, which broke everything.
ALE v1.0.0
This is the initial stable release of ALE, the asynchronous linting engine for Vim.
Features Implemented
- ALE will run a variety of linters for various programming languages. For a full list of supported linters, please consult the help file.
- ALE will update the loclist when errors/warnings are found.
- ALE will echo messages when the cursor moves over warnings or errors.
- ALE will show signs in the sign gutter when errors or warnings are found.
- ALE supports functions for showing statuses in the statusline, with some integration with vim-airline.