| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ALE v3.0.0 source code.tar.gz | 2020-09-09 | 325.3 kB | |
| ALE v3.0.0 source code.zip | 2020-09-09 | 607.2 kB | |
| README.md | 2020-09-09 | 10.7 kB | |
| Totals: 3 Items | 943.2 kB | 0 | |
Deprecated Features
- The
g:ale_completion_tsserver_autoimportoption has been deprecated. Useg:ale_completion_autoimportinstead.
Removed Features / Breaking Changes
Many previously deprecated features have been removed. Here is a list of the features removed, and what you should use instead.
| Removed | Replacement |
|---|---|
:ALEGoToDefinitionInTab |
:ALEGoToDefinition -tab |
:ALEGoToDefinitionInSplit |
:ALEGoToDefinition -split |
:ALEGoToDefinitionInVSplit |
:ALEGoToDefinition -vsplit |
:ALEGoToTypeDefinitionInTab |
:ALEGoToTypeDefinition -tab |
:ALEGoToTypeDefinitionInSplit |
:ALEGoToTypeDefinition -split |
:ALEGoToTypeDefinitionInVSplit |
:ALEGoToTypeDefinition -vsplit |
ale#engine#ManageFile |
ale#command#ManageFile |
ale#engine#ManageDirectory |
ale#command#ManageDirectory |
ale#engine#CreateFile |
ale#command#CreateFile |
ale#engine#CreateDirectory |
ale#command#CreateDirectory |
(linter) command_chain |
ale#command#Run |
(linter) 'command_callback': 'Foo' |
'command': function('Foo') |
(linter) 'executable_callback': 'Foo' |
'executable': function('Foo') |
(linter) 'address_callback': 'Foo' |
'address': function('Foo') |
(linter) 'language_callback': 'Foo' |
'language': function('Foo') |
(linter) 'initialization_options_callback': 'Foo' |
'initialization_options': function('Foo') |
(linter) 'lsp_config_callback': 'Foo' |
'lsp_config': function('Foo') |
(fixer) chain_with |
ale#command#Run |
You can update your scripts to work with the current or previous versions of ALE by checking the ALE version with ale#Has('ale-2.7.0').
The following <Plug> mappings were previously scheduled for deprecation, but instead will be supported forever, and are now documented again.
<Plug>(ale_go_to_definition_in_tab)<Plug>(ale_go_to_definition_in_split)<Plug>(ale_go_to_definition_in_vsplit)<Plug>(ale_go_to_type_definition_in_tab)<Plug>(ale_go_to_type_definition_in_split)<Plug>(ale_go_to_type_definition_in_vsplit)
Removed linter options
The following linter options have been replaced.
ale_psalm_langserver_executable->ale_php_psalm_executableale_psalm_langserver_options->ale_php_psalm_optionsale_psalm_langserver_use_global->ale_php_psalm_use_global
make dry run parsing on BSD
ALE now uses make -n --always-make for parsing make dry runs on Linux and BSD. This will not work at all with BSD make, and there's no way to automatically take the option away for BSD users without making ALE worse on all other systems. BSD users should use let g:ale_c_always_make = 0 to make it work again. This issue does not affect Mac OSX users, because ALE can use !has('macunix') to disable the option by default for Mac OSX users.
Generic cc Linter
The existing gcc and clang linters have been replaced with a generic cc linter, which can be selected with any of the old linter names. This combined linter now attempts to run clang if available, and falls back to running gcc. See issue [#3299] for more information.
New Features
- ALE now supports linting or fixing files via Docker containers, virtual machines, remote file systems, etc. [#2556] [#3325]
%sand%tin commands can now be formatted with:h,:t,:r, and:e, to applyfilename-modifiers. [#2556]lint_filefor linters can now be computed dynamically, and from deferred results, so linters and dynamically switch between running only against files on disk, or checking code on the fly. [#3285]- Parsing
compile_commands.jsonfor automatically figuring out flags for compilers is now enabled by default, and several improvements have been made to how ALE handles flags for C/C++ linters. - ALE will now show LSP/tsserver hover information in your echo line when your cursor rests on a symbol ALE can get information about. [#1532]
- ALE now handles some Markdown formatting in hover text, and set syntax highlights when displaying hover text where possible. [#3274]
- ALE now supports renaming symbols (
:ALERename) with connected LSP servers that support it, likegopls. [#3047] [#3196] [#2943] - ALE can now be configured to provide auto-completion with imports for LSP servers. [#2976] [#3196] [#3267]
- A new
:ALEImportcommand can be used to request imports for words at the cursor. [#3268] - You can now disable warnings in
tsservercompletion results, which may not be relevant to you. [#2849] - When completion text is inserted, including through
:ALEImport, a newALECompletePostevent is triggered. [#3333] - You can now call
:ALEFixwith a bang (:ALEFix!) to suppress warnings/errors, such as throughALECompletePost. [#3333] - A new
:ALELintStopcommand has been added which lets you stop any linters currently running. [#3333] - ALE is able to better recognise when newer LSP servers support capabilities like hover, "go to definition," etc. [#2907]
- Ignored linters now appear clearly in
:ALEInfo. [#3003]
New Linters
AsciiDoc-languagetool[#3229]Python-pyright- [#2472]sh-bashate[#2732] [#3070]Swift-swift-format[#3007] (Not to be confused withswiftformat, which is a different tool and fixer.)SQL-sql-lint[#2988]Verilog-hdl-checker[#2804]zig-zls[#3232]
New Fixers
c++-astyle[#3231] [#3257]Dhall-dhall-format[#3310]markdown-remark-lint[#2836]
Linter Enhancements
pylintnow checks code as you type if you have installed a new-enough version. [#2522]dockerfile_lintnow shows more useful information in detailed error messages. [#3158]- The documentation for cloudformation linters has been improved a little bit. [#3172]
- The
eclipselsplinter now starts better on more platforms. [#3137] ktlintuses stdin now, so.editorconfigfiles can be loaded. [#3119] [#3029]- The
checkstylelinter now handles options better. [#2914] - The
markdownlintlinter now parses more output. [#3259] - More
markdownlintversions are now supported. [#3253] - You can now pass options for
markdownlint[#2940] - The
puppetlinter now parses output better. [#3223] - The
cppchecklinter now works with more recent versions ofcppcheck, and parses column numbers and error codes. - The
govetlinter now works with more recent versions of Go. [#3191] - PowerShell linters now work by default when the filetype is
ps1. [#3010] - The
shlinter will now check scripts with the currentfiletypeif there's no hashbang line. [#2906] - You can now set custom target directories for
cargowithale_rust_cargo_target_dir. [#3164] - The
vloglinter parses the filename for the errors now. [#2924] credonow recognizes umbrella projects [#2759]rlsis now enabled by default. [#3324]gccerrors from failed macros are now parsed and reported. [#3327]- The policy name is now included in
vintmessages [#3194] - You can now configure
flake8to try to run from the Python project root. This is the new default. [#2858] - The
ember-template-lintlinter now reads from stdin too, for newer versions. [#2622]
C/C++ flag detection
A wide range of improvements have been made to how ALE detects C/C++ compiler flags.
- Paths from
compile_commands.jsonare now resolved in a much better way, which results in a massive improvement in how ALE determines flags for files. [#3307] - The
cclslinter now detectscompile_commands.jsonin other directories. [#3123] [#2621] compile_commands.jsonflags can now be used for linting header files. [#2919]- ALE now tells
clang-tidythat.hfiles are C++ files when the filetype is set to C++ in Vim. [#1608] @filearguments incompile_commands.jsonare now handled. [#3178]-stdflags from_optionssettings for C/C++ linters are now replaced by flags parsed fromcompile_commands.jsonormake -n. [#3056]- ALE now uses
make -n --always-makeby default on Linux and BSD, to fix issues with ALE not reading flags aftermakeis run. See above notes on breaking changes for BSD. [#2038] [#3247] -fstack-usageis now removed from parsed C flags, which breaks linters. [#3200]-iframeworkis now included in parsed C flags. [#3057]-includeis now included in parsed C flags. [#3317]
Fixer Enhancements
- The
tslintfixer should work with newer versions again. [#3107] - You can now set
ale_ruby_rubocop_auto_correct_allto1to apply unsafe fixes in Rubocop. [#3237] - The
rubocopfixer now fixes via stdin with the filename, which makes the fixes more accurate. [#3230] - The
prettier-standardfixer should now respect configuration files. [#2920] - The
prettierfixer now runs from where.prettierignoreis to ignore files, if available. [#3101] - The
standardfixer should work again. Updates tostandardbroke it. [#3046]
Bugs Fixed
- The ESLint fixer now users the same directory switching logic that the linter uses, for plugin detection. [#3094]
- ESLint linters and fixers now search for the location of ESLint and plugins by finding the
node_modulesdirectory that contains an ESLint executable. [#3222] - LSP servers like
mspylscan respond with invalid hover data, which caused errors in ALE. ALE handles this invalid data now. [#3273] - URI encoding/decoding for paths sent to and from LSP servers now handles UTF-8 paths. [#3278]
- ALE hover messages could send a column index
-1, which caused some servers to crash. [#3294] - ALE now handles LSP servers crashing, and re-sends
initializedmessages when they do. [#3294] - When ALE wrote files, it could append extra newline characters when you've configured Vim not to add them. Now they will not be added. [#3144]
- tsserver completion results from default exports will now insert the name of the default export. [#2899]
- The
eclipselsplinter could find the Java path in a broken way. [#3288] :ALERepeatSelectionnow repeats-relativefrom:ALEFindReferences, etc. [#3316]- ALE no longer inserts garbage when completion is enabled and
'paste'mode is enabled. [#2971] - Completion now avoids inserting text by default. [#3205]
- Carriage return characters are now removed from some messages on Windows. [#2958]
ALERenameno longer generates garbage due to changes not being applied in order. [#3322]- Special characters in filenames like
[and]broke showing diagnostics from tsserver/LSP. They are escaped now. [#3183]