I want to create a new language server extension. I use the following guide: https://code.visualstudio.com/api/language-extensions/language-server-extension-guide
- For a client's side I use https://www.npmjs.com/package/vscode-languageclient
- For a server's side I'll use Java (based on https://github.com/eclipse-lsp4j/lsp4j).
I have to provide an instance of ServerOptions
to create an instance of LanguageClient
. But I don't know what kind of ServerOptions
I should choose.
There are few options:
Executable
NodeModule
(() => Promise<ChildProcess | StreamInfo | MessageTransports | ChildProcessInfo>)
I guess I shouldn't use NodeModule
because I'm going to use Java. But I don't know how to decide which other option I should choose.
What's the difference between the remaining options? What details do I need to pay attention to in order to make the right choice?