Are commands executed by LanguageClient locked to read-only filesystem access?

Hi folks.

I’m experimenting with adding Shopify’s ruby-lsp for language server support for Ruby.

The language server tries to ensure that it has all its own dependencies accounted for by writing a Gemfile to the .ruby-lsp directory in the workspace path. When the extension activates and launches the language server, it fails because the process doesn’t seem to have write access to the workspace path.

Can language server clients executed by Nova write to the filesystem?

Hi Mike, I’m not sure if you ever got beyond that point - or if you’re still interested.

But I’m currently also trying to get ruby-lsp up and running. I suspected the server got only launched in the wrong working directory by the LanguageClient, and found that by adding an (undocumented) cwd: nova.workspace.path to the serverOptions I can get it running on the workspace sources and it can write the .ruby-lsp temporary files quite ok,

I have it running now, however, quickly after the initial LSP handshake Nova closes the connection again because it can’t marshal the one of the lsp response data structures. I suspect a bug or something that is not supported yet and will post separately - maybe that can be fixed.


1 Like