ruff
ruff copied to clipboard
`ruff server` fails to work in Neovim or Helix when outside of a workspace
By 'workspace', I mean a working directory that has a pyproject.toml
/ruff.toml
configuration file. When hx
is used outside of a workspace, the server simply does not work with any opened files. None of the functions the server provides work as expected.
These are the associated error logs:
2024-05-01T20:30:48.048 helix_lsp::transport [ERROR] ruff err <- "├─ 0.003277s 0ms WARN ruff_server::session::workspace Workspace not found for file:///<filepath>. Global settings will be used for this document\n"
2024-05-01T20:30:48.048 helix_lsp::transport [ERROR] ruff err <- " 0.003399s ERROR ruff_server::server::api An error occurred while running textDocument/didOpen: Unable to take snapshot for document with URL file:///<filepath>
My assumption is that we don't register a workspace on the server that can 'capture' the opened file, which means that the document is never registered as open (thus, we are unable to take a snapshot of it). We need a better way to handle documents outside of an existing workspace (the best solution may just be to instantiate a new workspace in the session when this happens).
Workaround
To work around this issue, create an empty configuration file from the directory where you launch the editor, using touch ruff.toml
.
Is this problem similar to the one solved in https://github.com/astral-sh/ruff/pull/10398 ?
Yep, it's a related issue 👍
Update: This is also happening on Neovim.