You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ALE now defaults g:ale_disable_lsp to a new 'auto' mode. With this
setting applied, ALE will now check for the presence of the nvim-lspconfig
plugin and automatically turn off particular linters if already
configured via nvim-lspconfig.
ALE now has an ALEStopLSP command to stop all language servers with provided
names so only specific language servers can be stopped with a command.
ale#floating_preview#Show, while not officially supported as part of ALE's
API, now returns the preview window ID so you can more easily work with it. Return floating_preview window id #4828
The VSCode JSON language server now works with newer versions that use the vscode-json-languageserver executable name instead of vscode-json-language-server. fix(json): update vscode json lsp name #4601
The volar linter has been updated to work with version 1.0, and uses the
global executable by default, which is required for Volar to function
properly. fix(vue): volar v1 support #4552
If luacheck is run for a Lua file in &runtimepath then ALE automatically
adds --globals vim so the linter is aware of Vim globals. This makes it
easier to lint Vim plugins written in Lua without having to configure anything
manually.
ALE had a bug that was around for some time where echoed error messages would
break the user out of visual mode. This has been fixed. Don't echom if not in normal mode #4560
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Deprecated Features
:ALEInfo'enhancements have led to some deprecations. See new featuresbelow. :ALEInfo -preview and more #3368
:ALEInfoToClipboardhas been deprecated in favour of:ALEInfo -clipboard.Removed Features / Breaking Changes
golinthas been removed, as it represents long ago been deprecated andfrozen. Remove golint support #4535
gometalinterhas been removed, as it has been unsupported for a long timenow. Remove gometalinter support #4534
to work with Neovim versions lower than 0.7.0.
ve-py3as a virtualenv directory by default. Maybe: Respect PEP 704 virtualenv path default #4481g:ale_linters_sh_shell_default_shelloption has been removed,and users should use
g:ale_sh_shell_default_shellinstead.ale_lsp_rootoption has been removed. Useale_rootinstead.New Features
in compatible Vim versions, so they look very subtle when editing code. Use comment colors and characters as the default for virtual-text #4401
let g:ale_python_auto_virtualenv = 1to automatically updatePATHbased on Python virtualenv locations to run executables. Python: Automatically set virtualenv paths #2172g:ale_virtualtext_columnandg:ale_virtualtext_maxcolumn. Virtualtext formatting and alignment fixes #4473g:ale_virtualtext_single. Virtualtext formatting and alignment fixes #4473warnings.
the first problem by column position on the line.
ale_signsgroup for signs as to not disturbvirtual text messages which use the group
ale. Use different group names for signs and virtual text #4704versions of Neovim. diagnostics: support sending ALE output to Neovim's diagnostics API #4345 Display by Neovim diagnostics by default (where possible) #4442 Display by Neovim diagnostics by default (where possible) #4442 fix(neovim): ignore unrelated diagnostics #4597 feat: remove logic for unsupported older Neovim #4921
let g:ale_use_neovim_diagnostics_api = 0to disable thisbehavior.
numhlhighlights are now supported. Support numhl highlights for vim >= 8.2.3874 #4578ModeChangedevent instead ofInsertLeaveemulation with a timer to run linters when leaving insert mode,which is less buggy and more efficient. Possible fix for issue #4642: use ModeChanged events instead of InsertLeave emulation #4738
nvim_buf_set_lines. Improve ALEFix performance for neovim #3974jumplist and can disturb the cursor position. See Fixers + nvim + split windows causes jumps #4735.
run with
let g:ale_save_hidden = 1.:ALEInfohas been supercharged with a new set of features. :ALEInfo -preview and more #3368:ALEInfo -clipas a shorthand for:ALEInfo -clipboard:ALEInfo -previewto render in the preview window:ALEInfo -echofor the classic:ALEInfomode'preview', and make it configurable. See::h ale_info_default_mode.:ALEInfoin preview mode.Linter Variablessection.:ALEInfono longer reports information about its own window. Prevent:ALEInfofrom reporting info about its own preview window #4618g:ale_disable_lspto a new'auto'mode. With thissetting applied, ALE will now check for the presence of the
nvim-lspconfigplugin and automatically turn off particular linters if already
configured via
nvim-lspconfig.ALEStopLSPcommand to stop all language servers with providednames so only specific language servers can be stopped with a command.
:ALEGoTo...commands ALE will now presentthe user with a list of choices if more than one location is available. Implement listing all returned results for LSP textDocument/implements #4755
ale#floating_preview#Show, while not officially supported as part of ALE'sAPI, now returns the preview window ID so you can more easily work with it.
Return floating_preview window id #4828
:ALEFindReferences -quicfixfortsserver. Add matched text to ALEFindReferences -quickfix for tsserver #4898callbackreturns anything other than aListALE willnow silently treat the output as if it was an empty list. more defensive coding: guard against a non-iterable loclist #4912
New Linters
eslintAdd support for astro #4780,prettierAdd support for astro #4780llvm-mcAdd support for llvm-mc as an assembly linter #4446buildifierfeat: support Bazelbuildifierlinter #4529clangcheckAdd clang-check linter for C #4662c3lspAdd support for c3-lsp linter #4836sierraUpdate cairo linter to Cairo 1.0 #4530,scarbAdd support for Scarb incairofiles #4669biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 fix(biome): use temp file instead of stdin #4775 fix(biome): send correct language to lsp proxy #4773 fix(biome): find root when using biome.jsonc #4774 fix(biome): update biome fixer supports css and graphql #4902dockerlinterDockerlinter #4518lexicalAdd lexical for linting elixir projects #4580htmlbeautifierAdd htmlbeautifier support #4751gleamlspGleam: Support for gleam language server #4696,gleam formatGleam: Support 'gleam format' as fixer #4710embertemplatelintAdd support for gjs template linting using embertemplate lint #4653biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 fix(biome): use temp file instead of stdin #4775 fix(biome): send correct language to lsp proxy #4773 fix(biome): find root when using biome.jsonc #4774 fix(biome): update biome fixer supports css and graphql #4902npm-groovy-lintAdd support for npm-groovy-lint #4495djlintAdd support for the [djlinter](https://www.djlint.com/) #4909,eslintadd eslint plugin html for linting js in html files #4428hurlfmtFix 4740 - add hurlfmt linter #4741biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 fix(biome): use temp file instead of stdin #4775 fix(biome): send correct language to lsp proxy #4773 fix(biome): find root when using biome.jsonc #4774biomefeat(biome): add support for json and jsonc #4805 fix(biome): use temp file instead of stdin #4775 fix(biome): send correct language to lsp proxy #4773 fix(biome): find root when using biome.jsonc #4774lua-language-serverf2a21c9marksmanfeat(markdown): add marksman lsp #4565,pymarkdownUpdate: #4785 New tool pymarkdown added for markdown linting #4906deadnixAdd deadnix linter #4443olsAdding support for Odin language server --ols#4679pyclnadd: pycln as a python linter and fixer #4415packwerkAdd support for Packwerk #4594,steepAdd Ruby linter with Steep #4671biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 fix(biome): use temp file instead of stdin #4775 fix(biome): send correct language to lsp proxy #4773 fix(biome): find root when using biome.jsonc #4774slangSlang linter for Verilog/SystemVerilog. #4713yqAdd yq support #4861ylsYara yls support #4886New Fixers
eslintAdd support for astro #4780,prettierAdd support for astro #4780apkbuild-fixerImplement support for apkbuild-fixer #4881cljfmtAdd cljfmt fixer for clojure files #4860biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 fix(biome): use temp file instead of stdin #4775 fix(biome): send correct language to lsp proxy #4773 fix(biome): find root when using biome.jsonc #4774 fix(biome): update biome fixer supports css and graphql #4902erlang-modeAdd erlang-mode fixer for Erlang files #4848,erlfmtAdd erlfmt fixer to the registry and use it with stdin #4868golangci-lintAdd golangci-lint fixer #4853,gopls format0af4899biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 fix(biome): use temp file instead of stdin #4775 fix(biome): send correct language to lsp proxy #4773 fix(biome): find root when using biome.jsonc #4774 fix(biome): update biome fixer supports css and graphql #4902npm-groovy-lintAdd support for npm-groovy-lint #4495rustywindAdd support forrustywindfixer #4477fourmoluAdd fourmolu fixer #4501hurlfmtFix 4740 - add hurlfmt linter #4741biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 Fix biome formatter #4733 fix(biome): use temp file instead of stdin #4775 fix(biome): find root when using biome.jsonc #4774 fix!(biome): allow passing options tobiome check#4799biomefeat(biome): add support for json and jsonc #4805 fix(biome): use temp file instead of stdin #4775 fix(biome): find root when using biome.jsonc #4774 fix!(biome): allow passing options tobiome check#4799nickel formatadd: support fornickel formatasNickelfixer #4665alejandraAdd alejandra for nix #4435scadformatAdd scadformat fixer for OpenSCAD #4808json.toolAdd fixer for json: python's json.tool #4847,pyclnadd: pycln as a python linter and fixer #4415,ruff formatAdding support for ruff formatter #4645erb-formatterAdds erb-formatter support #4546,rubyfmtadd: support forrubyfmtasrubyfixer #4678forgeFeature: addforge fmtas a fixer for Solidity files #4598biomeAdd biome (ex. rome) support for javascript #4701 Add full support for biome #4705 Fix biome formatter #4733 fix(biome): use temp file instead of stdin #4775 fix(biome): find root when using biome.jsonc #4774 fix!(biome): allow passing options tobiome check#4799yamlfmtyamlfmt #4587,yqAdd yq support #4861Linter Enhancements
compatibility in newer versions.
nixversions before 2.4 should be supported as well as newer versions. nix: durably handle versions before 2.4 #4398ruffin version 0.0.69 and up. fix(ale_linters: python: ruff): add --stdin-filename if version >= 0.0.69 #4414ruffwithruff checkin versions 0.3.0 andup to make it compatible with those versions. Fix: ruff version
0.3.0cli breaking changes #4732 Fix for ruff fixer for ruff version >=0.5.0 #4802--no-fixwithruff checkso it doesn't modify files whenlinting. fix: force
--no-fixwhenruffused as a linter #4759ansible-linthas been patched to work with versions 6.11.0 and newer. Fix error from ansible-lint versions >=6.11.0. #4492vscode-json-languageserverexecutable name instead ofvscode-json-language-server. fix(json): update vscode json lsp name #4601solhintversions newer than 3.4.0, as wellas older versions.
solhint >= 3.4.0linter is broken #4499ruffversions. Fix: Ruff output option #4632phpmdversions. fix tempfile for phpmd, to be able to use phpmd 2.14.0 #4617volarlinter has been updated to work with version 1.0, and uses theglobal executable by default, which is required for Volar to function
properly. fix(vue): volar v1 support #4552
stylelinterror messages from stderr as well as stdout.This makes ALE support newer as well as older versions. Stylelint linter output stream can go to stderr #4702
shellcheckversions 0.7.0 and above forcreating more accurate highlights for problems. Add end_col and end_lnum to ShellCheck #4692
sqlfluff3.0.0 and up, in addition to older versions.Add support for sqlfluff 3.0.0 #4743
jqlinter error message parsing has been updated to handle outputfrom versions 1.6 and up. Fix linting with jq (#4765) #4862
phpstanwill now set the memory limit more appropriately for newerversions. fix: memory-limit option for phpstan #4900
phpstanwill now set use the cwd to find the configuration file soconfiguration files are detected better. phpstan: set cwd to configuration file directory #4422
phpstanfilenames will now be mapped correctly so it matches files betterwhen run from inside of Docker. Add file mapping to phpstan #4685
pyrightcan now be automatically be run via poetry, pipenv, venv. Support for poetry and pipenv with pyright #4389Fix 4490 - Fix pyright not running with poetry #4491 Fix python linting/formatting error when in virtual environment #4865
uv. Improve support for python package manage: pipenv, poetry and uv #4825 Fix python linting/formatting error when in virtual environment #4865golangci-lintis no longer configured with--enable-allby default so itdoes not conflict with project configuration files and fail to run. remove
--enable-allfrom golangci-lint options #4488golangci-lintis now enabled by default. feat: enable golangci-lint by default #4536golangci-lintnow lints the package by default, as Go can implicitlyreference symbols from other files. Fix 4586 - Make golangci-lint lint package on by default. #4730
golangci-lintmessages are now read from JSON output for more accurateparsing of linter output. Fix 4913 - use JSON output for golangci-lint instead of regexps. #4917
bicepcan now be run via Azure CLI via anaz_biceplinter using theazcommand. Add support for Bicep when installed as a plugin to Azure CLI #4496
erblinter uses keyword arguments to avoid a deprecation warningand make it compatible with future Ruby versions. 🐛 Fix a Ruby deprecation warning in the ERB linter #4521
cspellhas been updated to highlight the whole word. Add end_col of matched forbidden word #4556glsllanglinter parsing has been updated to catch more errors. fixed parsing errors when certain options are used in glslangValidator #4540xmllintlinter has been updated to work on XML files that haven't beensaved yet. Support format xml file which haven't yet persisted at the disk #4585 xmllint fixer must read from stdin - not buffer filename #4884
actionlinton GitHub configuration files by default bysearching upwards for a
.githubdirectory.actionlintnow respects project configuration files by linting in thedirectory instead of a temporary location. fix(yaml): make actionlint respect config #4584
actionlintwill be run with an appropriate configuration file. When usingactionlintlook for & use a config file #4858actionlintnow lints one file at a time via stdin instead of the wholedirectory. fix #4687 - only lint one file with actionlint instead of whole directory #4688
actionlintsub-linters. Actionlint: correctly parse error line when using shellcheck sublinter #4689rust-analyzerby default for Rust instead ofrls, which waspreviously deprecated. RLS for rust has been deprecated. #4461
luacheckis run for a Lua file in&runtimepaththen ALE automaticallyadds
--globals vimso the linter is aware of Vim globals. This makes iteasier to lint Vim plugins written in Lua without having to configure anything
manually.
.venvis the preferred project directory name for virtualenv directories forPython tools. Maybe: Respect PEP 704 virtualenv path default #4481
reliably. Fix project file search for haskell hls #4541
ruffnow usesjson-linesoutput for better error messages. Ruff use json-lines output format #4656ruffthrows errors, don't explode with errors in Vim. Ruff always raises E474: Unidentified byte and E474: Failed to parse bash on ALELint #4714chktexreports better highlight columns when tabs are used instead ofspaces. Fix chktex highlighting wrong column when using tabs instead of spaces #4661 Fix chktex highlighting wrong column when using tabs instead of spaces #4727
cspellso it can more accurately lint files.Add language id option of CSpell #4700 Fix 4721 - force latex language id on cspell for tex filetype #4724
shellcheckwiki in detailed messages. Add wiki link to ShellCheck linting #4681elvislinter for Erlang now sets the working directory correctly. Set working directory for Elvis linter #4726.eslintrc.cjsconfiguration files are now supported. Add support for .eslintrc.cjs #4742eslint.config.js,eslint.config.mjs, andeslint.config.cjs. feat: add support for ESLint's flat config format #4753in nested project directories. Fix/eslint cwd strategy #4781
cmake-lintis now passed the real filename so the.cmake-formatconfiguration file can be read. Make cmake-lint read .cmake-format config file #4747
php-cs-fixerarguments are now placed in their proper place so options canbe correctly configured. Added fix subcommand options #4746
metalsdefault executable was incorrectly named asmetals-vim,and this has been fixed to be
metalsnow. Update metals.vim #4843erlang-lsto select theerlang_lslinter. Add erlang-ls as an alias for erlang_ls linter #4852sqlflufferror messages without end line or column numbers are now handled.Properly handle optional end_line_no/end_line_pos in sqlfluff #4867
iverilogto improve linting. iverilog current file search path #4907blacklinter is now told where a file is with--stdin-filename.Python black doesn't respect ignored files in their config files #3406
opa checknow runs on the entire directory for more context. fix: run opacheck on entire dir for more context #4531Fixer Enhancements
ruffin version 0.0.69 and up. fix(ale_linters: python: ruff): add --stdin-filename if version >= 0.0.69 #4414syntax_treefixer now formats files without creating temporary files.syntax_tree: no need to write and read temporary file #4834
styluafixer now uses--stdin-filepathand sets the cwd to wherethe configuration file is. fix: stylua should have cwd and --stdin-filepath #4873 Fix cwd setting to use .stylua.toml if stylua.toml is not found #4892
Bugs Fixed
on changes to ALE code. (Only impacts ALE developers.) Vim virtual-text isn't cleared when ALE's lint cycle is finished #4399
before ALE can show a message. Error after upgrade from v3.2.0 to v3.3.0 #4410
Error (Invalid buffer) with fzf-lua #4413
Fix mismatched type on compare g:ale_virtualtext_cursor #4476
been fixed to use correct newlines. Erroneous
textformatting upon LSP didSave #4455Communicate support for markdown to the lsp server (#4450) #4453
break the user out of visual mode. This has been fixed. Don't echom if not in normal mode #4560
0.10 and up. floatwin: use win_execute in NeoVim for commands when it exists #4532
we don't have highlights for. Fix error loading "text" syntax for hover #4574
fixed. ale#Env quoting bug on Windows #3115
b:undo_ftpluginhas been added to ALE's ftplugin files for special filetypesso the changes they make can be undone. add b:undo_ftplugin #4625
correctly now. Fix E1085: Not a callable type: elm_ls#GetOptions #4707
PATHandVIRTUAL_ENVcorrectly whenale_python_auto_virtualenvis used. fix ale_python_auto_virtualenv to correctly set virtualenv env vars #4885This discussion was created from the release ALE v4.0.0.
Beta Was this translation helpful? Give feedback.
All reactions