pylsp+ruff sometimes very slow to update an inline error
dstromberg opened this issue · 6 comments
This is an example - this sort of problem doesn't happen every time, not even most of the time, but it does happen enough to shake my confidence in the errors I'm getting:
│ return (
│ │ LockingPassthrough(NewProduct, lock) ■ Undefined name `Status`
│ │ .filter(NewProduct.deleted_on.is_(None))
│ │ .join(subquery, Pipeline.product_id == NewProduct.id)
│ )
As you can see, there's nothing about "Status" on that line. It's been like this for about 10 or 20 minutes. I had Status in there, but I corrected the problem; sadly, the red error never went away.
My question is twofold:
- For the short term, is there command/keystroke to make pylsp forget what it thinks it knows and reexamine the code? That would probably make this easier to deal with.
- For the long term, is there a way to make pylsp+ruff stop giving spurious (outdated) errors?
Thanks!
I'm using:
ruff 0.0.261
...but I just realized my venv didn't have much in it, so I'll give this some time to see if it resurfaces with that fix.
It's still happening.
Here are the pypi packages in my mason virtualenv:
attrs 23.1.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
black 23.3.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
cattrs 22.2.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
click 8.1.3 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
docstring-to-markdown 0.12 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
exceptiongroup 1.1.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
jedi 0.17.2 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
lsprotocol 2023.0.0a1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
mypy-extensions 1.0.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
packaging 23.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
parso 0.7.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
pathspec 0.11.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
pip 23.0.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
platformdirs 3.5.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
pluggy 1.0.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
pydocstyle 6.3.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
python-jsonrpc-server 0.4.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
python-language-server 0.36.2 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
python-lsp-jsonrpc 1.0.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
python-lsp-ruff 1.4.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
python-lsp-server 1.7.2 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
ruff 0.0.267 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
setuptools 67.6.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
snowballstemmer 2.2.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
tomli 2.0.1 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
ujson 5.7.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
wheel 0.40.0 /data/home/dstromberg/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.10/site-packages pip
BTW, if I run:
:!ruff %
...then things look as expected.
IMO this sounds more like an editor problem than a problem of the LSP. Do you use the latest version of neovim?
Also can you try to play with debounce_text_changes to see if this helps avoiding this problem?
I was on neovim 0.8.2, from Ubuntu's repo.
Now I'm on:
NVIM v0.9.0
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
...from an appimage.
I'll have to give it some time to see if that helps.
Were you able to update and test?