We are using request function of vim.lsp.Client function to communicate with
the jdtls.
fun(method: string, params: table?, handler: lsp.Handler?, bufnr: integer?): boolean, integer?`)
This has almost 1 to 1 mapping with vscode APIs most of the time.
await this.languageClient.sendRequest( method: string, params: any, // handler is not passed since there is async / await // buffer I'm guessing is set to current buffer by default??? );
However, some APIs sends more arguments, to which we don't have a Neovim lua equivalent I'm guessing. Following is an example.
await this.languageClient.sendRequest( CompileWorkspaceRequest.type, isFullCompile, token, );
To make this request, probably client.rpc.request should be used without
request() wrapper.