internal/lsp: make ShowDocument RPC available to gopls
The window/showDocument RPC is now correctly classified as being
sent from the server to the client.
Change-Id: I659528af69662fb709242d326563d52070fd5702
Reviewed-on: https://go-review.googlesource.com/c/tools/+/315990
Run-TryBot: Peter Weinberger <pjw@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Peter Weinberger <pjw@google.com>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
diff --git a/internal/lsp/cmd/cmd.go b/internal/lsp/cmd/cmd.go
index e594ab4..1acf197 100644
--- a/internal/lsp/cmd/cmd.go
+++ b/internal/lsp/cmd/cmd.go
@@ -443,6 +443,10 @@
return nil
}
+func (c *cmdClient) ShowDocument(context.Context, *protocol.ShowDocumentParams) (*protocol.ShowDocumentResult, error) {
+ return nil, nil
+}
+
func (c *cmdClient) WorkDoneProgressCreate(context.Context, *protocol.WorkDoneProgressCreateParams) error {
return nil
}
diff --git a/internal/lsp/fake/client.go b/internal/lsp/fake/client.go
index acc4ea5..a105110 100644
--- a/internal/lsp/fake/client.go
+++ b/internal/lsp/fake/client.go
@@ -111,6 +111,10 @@
return nil
}
+func (c *Client) ShowDocument(context.Context, *protocol.ShowDocumentParams) (*protocol.ShowDocumentResult, error) {
+ return nil, nil
+}
+
// ApplyEdit applies edits sent from the server.
func (c *Client) ApplyEdit(ctx context.Context, params *protocol.ApplyWorkspaceEditParams) (*protocol.ApplyWorkspaceEditResponse, error) {
if len(params.Edit.Changes) != 0 {
diff --git a/internal/lsp/protocol/tsclient.go b/internal/lsp/protocol/tsclient.go
index 8878edd..1f33c02 100644
--- a/internal/lsp/protocol/tsclient.go
+++ b/internal/lsp/protocol/tsclient.go
@@ -28,6 +28,7 @@
WorkspaceFolders(context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error)
Configuration(context.Context, *ParamConfiguration) ([]interface{}, error)
WorkDoneProgressCreate(context.Context, *WorkDoneProgressCreateParams) error
+ ShowDocument(context.Context, *ShowDocumentParams) (*ShowDocumentResult, error)
RegisterCapability(context.Context, *RegistrationParams) error
UnregisterCapability(context.Context, *UnregistrationParams) error
ShowMessageRequest(context.Context, *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error)
@@ -91,6 +92,13 @@
}
err := client.WorkDoneProgressCreate(ctx, ¶ms)
return true, reply(ctx, nil, err)
+ case "window/showDocument": // req
+ var params ShowDocumentParams
+ if err := json.Unmarshal(r.Params(), ¶ms); err != nil {
+ return true, sendParseError(ctx, reply, err)
+ }
+ resp, err := client.ShowDocument(ctx, ¶ms)
+ return true, reply(ctx, resp, err)
case "client/registerCapability": // req
var params RegistrationParams
if err := json.Unmarshal(r.Params(), ¶ms); err != nil {
@@ -164,6 +172,14 @@
return Call(ctx, s.Conn, "window/workDoneProgress/create", params, nil) // Call, not Notify
}
+func (s *clientDispatcher) ShowDocument(ctx context.Context, params *ShowDocumentParams) (*ShowDocumentResult, error) {
+ var result *ShowDocumentResult
+ if err := Call(ctx, s.Conn, "window/showDocument", params, &result); err != nil {
+ return nil, err
+ }
+ return result, nil
+}
+
func (s *clientDispatcher) RegisterCapability(ctx context.Context, params *RegistrationParams) error {
return Call(ctx, s.Conn, "client/registerCapability", params, nil) // Call, not Notify
}
diff --git a/internal/lsp/protocol/tsserver.go b/internal/lsp/protocol/tsserver.go
index 8a2daab..a479968 100644
--- a/internal/lsp/protocol/tsserver.go
+++ b/internal/lsp/protocol/tsserver.go
@@ -50,7 +50,6 @@
SemanticTokensFullDelta(context.Context, *SemanticTokensDeltaParams) (interface{} /* SemanticTokens | SemanticTokensDelta | float64*/, error)
SemanticTokensRange(context.Context, *SemanticTokensRangeParams) (*SemanticTokens /*SemanticTokens | null*/, error)
SemanticTokensRefresh(context.Context) error
- ShowDocument(context.Context, *ShowDocumentParams) (*ShowDocumentResult, error)
LinkedEditingRange(context.Context, *LinkedEditingRangeParams) (*LinkedEditingRanges /*LinkedEditingRanges | null*/, error)
WillCreateFiles(context.Context, *CreateFilesParams) (*WorkspaceEdit /*WorkspaceEdit | null*/, error)
WillRenameFiles(context.Context, *RenameFilesParams) (*WorkspaceEdit /*WorkspaceEdit | null*/, error)
@@ -294,13 +293,6 @@
}
err := server.SemanticTokensRefresh(ctx)
return true, reply(ctx, nil, err)
- case "window/showDocument": // req
- var params ShowDocumentParams
- if err := json.Unmarshal(r.Params(), ¶ms); err != nil {
- return true, sendParseError(ctx, reply, err)
- }
- resp, err := server.ShowDocument(ctx, ¶ms)
- return true, reply(ctx, resp, err)
case "textDocument/linkedEditingRange": // req
var params LinkedEditingRangeParams
if err := json.Unmarshal(r.Params(), ¶ms); err != nil {
@@ -708,14 +700,6 @@
return Call(ctx, s.Conn, "workspace/semanticTokens/refresh", nil, nil)
}
-func (s *serverDispatcher) ShowDocument(ctx context.Context, params *ShowDocumentParams) (*ShowDocumentResult, error) {
- var result *ShowDocumentResult
- if err := Call(ctx, s.Conn, "window/showDocument", params, &result); err != nil {
- return nil, err
- }
- return result, nil
-}
-
func (s *serverDispatcher) LinkedEditingRange(ctx context.Context, params *LinkedEditingRangeParams) (*LinkedEditingRanges /*LinkedEditingRanges | null*/, error) {
var result *LinkedEditingRanges /*LinkedEditingRanges | null*/
if err := Call(ctx, s.Conn, "textDocument/linkedEditingRange", params, &result); err != nil {
diff --git a/internal/lsp/protocol/typescript/code.ts b/internal/lsp/protocol/typescript/code.ts
index 5826dd4..abf7345 100644
--- a/internal/lsp/protocol/typescript/code.ts
+++ b/internal/lsp/protocol/typescript/code.ts
@@ -135,6 +135,7 @@
receives.set('workspace/applyEdit', 'client');
receives.set('textDocument/publishDiagnostics', 'client');
receives.set('window/workDoneProgress/create', 'client');
+ receives.set('window/showDocument', 'client');
receives.set('$/progress', 'client');
// a small check
receives.forEach((_, k) => {
diff --git a/internal/lsp/server_gen.go b/internal/lsp/server_gen.go
index 978474e..75069a0 100644
--- a/internal/lsp/server_gen.go
+++ b/internal/lsp/server_gen.go
@@ -228,10 +228,6 @@
return notImplemented("SetTrace")
}
-func (s *Server) ShowDocument(context.Context, *protocol.ShowDocumentParams) (*protocol.ShowDocumentResult, error) {
- return nil, notImplemented("ShowDocument")
-}
-
func (s *Server) Shutdown(ctx context.Context) error {
return s.shutdown(ctx)
}