[Biome] No longer working with v2
ALE commit: edccdfa9efb7a4b37fb846e55b2137b55275d39e Vim: 9.1.1497-1
Since Biome version 2, the linter no longer works for me although I updated the configuration file. Running biome lint --config-path ~/.config/biome/biome.json advertisement.ts works. However, in Vim it does not.
Relevant sections from my vimrc.
let g:ale_linters =
\{
\ 'bib': ['bibclean'],
\ 'cpp': ['clangtidy'],
\ 'cmake': ['cmake_lint'],
\ 'css': ['stylelint'],
\ 'desktop': ['desktop_file_validate'],
\ 'gitcommit': ['gitlint'],
\ 'html': ['htmlhint', 'tidy'],
\ 'java': ['javac', 'pmd'],
\ 'json': ['jq'],
\ 'mail': [],
\ 'make': ['checkmake'],
\ 'markdown': ['markdownlint'],
\ 'PKGBUILD': ['shell', 'shellcheck'],
\ 'po': ['msgfmt'],
\ 'python': ['bandit', 'mypy', 'pycodestyle', 'pydocstyle', 'pyflakes', 'pyright', 'ruff', 'vulture'],
\ 'sh': ['shell', 'shellcheck'],
\ 'systemd': ['systemd_analyze'],
\ 'tex': ['chktex'],
\ 'text': [],
\ 'toml': [],
\ 'typescript': ['biome'],
\ 'vim': ['vint'],
\ 'xml': ['xmllint'],
\ 'yaml': ['yamllint'],
\ 'zsh': ['shell', 'shellcheck']
\}
""" typescript
let g:ale_biome_lsp_project_root = $XDG_CONFIG_HOME . '/biome/' " Commenting out does still not work.
Consider that I tried to comment out the setting ale_biome_lsp_project_root.
@redbmk Does it still work for you? Do you know a solution? Am I doing something wrong?
Probably we need to add a --version check and use the semver functions in ALE to flip between arguments and output formats, as they probably pushed a breaking change we need to deal with, while still supporting the old versions too.
I haven't updated to v2 yet but I can guarantee if this isn't fixed by the time I do I'll be looking into how to fix it 😂
Do you see any errors if you do :ALEInfo on a file that was working before?
No error.
Command History:
(executable check - success) biome
(started) ['/bin/zsh', '-c', '''biome'' lsp-proxy']
Good news. The problem is solved with version 2.2.0, at least for me. I highly assume that a new version of Biome caused this.
Bad news the issues is present again since version v2.2.3.
@redbmk What might cause this?
Version 2.2.4 fixed it again ...
Interesting... I started experimenting with biome v2 a little bit ago and had to revert back for the time being but i was noticing some weird things. I'm not sure exactly which version it was.
It seemed like it would work at first, but after I had my buffers open for a while it would stop working and even :ALEStopAllLSPs wasn't triggering a fix. Restarting vim (well, nvim in my case) seemed to get it going again.
So yeah not sure yet if it's related to the specific version, or something slightly different in the way the LSP works, or maybe even just that in my case I had various versions of biome installed depending on the folder and might have gotten into a weird state.
I'll have to play around with it some more when I get back to this.
IIRC the fixer always worked but the LSP linter would sometimes get stuck.
I've actually noticed this same issue with pyright as well lately, and am seeing it with biome v1, where it just sometimes stops working until I restart. I wonder if there were some core changes to ALE or some other plugin causing conflicts
For me, the behaviour was consisted and only affected Biome. With one version, Biome consistently did not work while with others it worked.
2.3.1 introduced the issue again.
@redbmk, you might want to take a look at the log files I posted in https://github.com/biomejs/biome/issues/7908.
In https://github.com/biomejs/biome/issues/7908, the main developer of Biome confirmed the issue and described its cause.
@ematipico explained the issue by clients (vim-ale, ...) making a call at the wrong time and then experiencing a deadlock, https://github.com/biomejs/biome/issues/7908#issuecomment-3457461424.
@w0rp, this might be solved globally here as it seems the pyright which @redbmk reported is also affected.
I hope they will fix it. However, relying on biome lint instead of biome lsp-proxy would probably solve the issue for good.