1// Copyright 2019 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5package protocol 6 7// Package protocol contains data types and code for LSP jsonrpcs 8// generated automatically from vscode-languageserver-node 9// commit: 092c2afc3ad7e4d2b03fe8ac0deb418ec4276915 10// last fetched Sat Jul 03 2021 10:17:05 GMT-0700 (Pacific Daylight Time) 11 12// Code generated (see typescript/README.md) DO NOT EDIT. 13 14import ( 15 "context" 16 "encoding/json" 17 18 "golang.org/x/tools/internal/jsonrpc2" 19 errors "golang.org/x/xerrors" 20) 21 22type Client interface { 23 ShowMessage(context.Context, *ShowMessageParams) error 24 LogMessage(context.Context, *LogMessageParams) error 25 Event(context.Context, *interface{}) error 26 PublishDiagnostics(context.Context, *PublishDiagnosticsParams) error 27 Progress(context.Context, *ProgressParams) error 28 WorkspaceFolders(context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error) 29 Configuration(context.Context, *ParamConfiguration) ([]interface{}, error) 30 WorkDoneProgressCreate(context.Context, *WorkDoneProgressCreateParams) error 31 ShowDocument(context.Context, *ShowDocumentParams) (*ShowDocumentResult, error) 32 RegisterCapability(context.Context, *RegistrationParams) error 33 UnregisterCapability(context.Context, *UnregistrationParams) error 34 ShowMessageRequest(context.Context, *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error) 35 ApplyEdit(context.Context, *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error) 36} 37 38func clientDispatch(ctx context.Context, client Client, reply jsonrpc2.Replier, r jsonrpc2.Request) (bool, error) { 39 switch r.Method() { 40 case "window/showMessage": // notif 41 var params ShowMessageParams 42 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 43 return true, sendParseError(ctx, reply, err) 44 } 45 err := client.ShowMessage(ctx, ¶ms) 46 return true, reply(ctx, nil, err) 47 case "window/logMessage": // notif 48 var params LogMessageParams 49 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 50 return true, sendParseError(ctx, reply, err) 51 } 52 err := client.LogMessage(ctx, ¶ms) 53 return true, reply(ctx, nil, err) 54 case "telemetry/event": // notif 55 var params interface{} 56 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 57 return true, sendParseError(ctx, reply, err) 58 } 59 err := client.Event(ctx, ¶ms) 60 return true, reply(ctx, nil, err) 61 case "textDocument/publishDiagnostics": // notif 62 var params PublishDiagnosticsParams 63 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 64 return true, sendParseError(ctx, reply, err) 65 } 66 err := client.PublishDiagnostics(ctx, ¶ms) 67 return true, reply(ctx, nil, err) 68 case "$/progress": // notif 69 var params ProgressParams 70 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 71 return true, sendParseError(ctx, reply, err) 72 } 73 err := client.Progress(ctx, ¶ms) 74 return true, reply(ctx, nil, err) 75 case "workspace/workspaceFolders": // req 76 if len(r.Params()) > 0 { 77 return true, reply(ctx, nil, errors.Errorf("%w: expected no params", jsonrpc2.ErrInvalidParams)) 78 } 79 resp, err := client.WorkspaceFolders(ctx) 80 return true, reply(ctx, resp, err) 81 case "workspace/configuration": // req 82 var params ParamConfiguration 83 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 84 return true, sendParseError(ctx, reply, err) 85 } 86 resp, err := client.Configuration(ctx, ¶ms) 87 return true, reply(ctx, resp, err) 88 case "window/workDoneProgress/create": // req 89 var params WorkDoneProgressCreateParams 90 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 91 return true, sendParseError(ctx, reply, err) 92 } 93 err := client.WorkDoneProgressCreate(ctx, ¶ms) 94 return true, reply(ctx, nil, err) 95 case "window/showDocument": // req 96 var params ShowDocumentParams 97 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 98 return true, sendParseError(ctx, reply, err) 99 } 100 resp, err := client.ShowDocument(ctx, ¶ms) 101 return true, reply(ctx, resp, err) 102 case "client/registerCapability": // req 103 var params RegistrationParams 104 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 105 return true, sendParseError(ctx, reply, err) 106 } 107 err := client.RegisterCapability(ctx, ¶ms) 108 return true, reply(ctx, nil, err) 109 case "client/unregisterCapability": // req 110 var params UnregistrationParams 111 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 112 return true, sendParseError(ctx, reply, err) 113 } 114 err := client.UnregisterCapability(ctx, ¶ms) 115 return true, reply(ctx, nil, err) 116 case "window/showMessageRequest": // req 117 var params ShowMessageRequestParams 118 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 119 return true, sendParseError(ctx, reply, err) 120 } 121 resp, err := client.ShowMessageRequest(ctx, ¶ms) 122 return true, reply(ctx, resp, err) 123 case "workspace/applyEdit": // req 124 var params ApplyWorkspaceEditParams 125 if err := json.Unmarshal(r.Params(), ¶ms); err != nil { 126 return true, sendParseError(ctx, reply, err) 127 } 128 resp, err := client.ApplyEdit(ctx, ¶ms) 129 return true, reply(ctx, resp, err) 130 131 default: 132 return false, nil 133 } 134} 135 136func (s *clientDispatcher) ShowMessage(ctx context.Context, params *ShowMessageParams) error { 137 return s.sender.Notify(ctx, "window/showMessage", params) 138} 139 140func (s *clientDispatcher) LogMessage(ctx context.Context, params *LogMessageParams) error { 141 return s.sender.Notify(ctx, "window/logMessage", params) 142} 143 144func (s *clientDispatcher) Event(ctx context.Context, params *interface{}) error { 145 return s.sender.Notify(ctx, "telemetry/event", params) 146} 147 148func (s *clientDispatcher) PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) error { 149 return s.sender.Notify(ctx, "textDocument/publishDiagnostics", params) 150} 151 152func (s *clientDispatcher) Progress(ctx context.Context, params *ProgressParams) error { 153 return s.sender.Notify(ctx, "$/progress", params) 154} 155func (s *clientDispatcher) WorkspaceFolders(ctx context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error) { 156 var result []WorkspaceFolder /*WorkspaceFolder[] | null*/ 157 if err := s.sender.Call(ctx, "workspace/workspaceFolders", nil, &result); err != nil { 158 return nil, err 159 } 160 return result, nil 161} 162 163func (s *clientDispatcher) Configuration(ctx context.Context, params *ParamConfiguration) ([]interface{}, error) { 164 var result []interface{} 165 if err := s.sender.Call(ctx, "workspace/configuration", params, &result); err != nil { 166 return nil, err 167 } 168 return result, nil 169} 170 171func (s *clientDispatcher) WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) error { 172 return s.sender.Call(ctx, "window/workDoneProgress/create", params, nil) // Call, not Notify 173} 174 175func (s *clientDispatcher) ShowDocument(ctx context.Context, params *ShowDocumentParams) (*ShowDocumentResult, error) { 176 var result *ShowDocumentResult 177 if err := s.sender.Call(ctx, "window/showDocument", params, &result); err != nil { 178 return nil, err 179 } 180 return result, nil 181} 182 183func (s *clientDispatcher) RegisterCapability(ctx context.Context, params *RegistrationParams) error { 184 return s.sender.Call(ctx, "client/registerCapability", params, nil) // Call, not Notify 185} 186 187func (s *clientDispatcher) UnregisterCapability(ctx context.Context, params *UnregistrationParams) error { 188 return s.sender.Call(ctx, "client/unregisterCapability", params, nil) // Call, not Notify 189} 190 191func (s *clientDispatcher) ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error) { 192 var result *MessageActionItem /*MessageActionItem | null*/ 193 if err := s.sender.Call(ctx, "window/showMessageRequest", params, &result); err != nil { 194 return nil, err 195 } 196 return result, nil 197} 198 199func (s *clientDispatcher) ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error) { 200 var result *ApplyWorkspaceEditResponse 201 if err := s.sender.Call(ctx, "workspace/applyEdit", params, &result); err != nil { 202 return nil, err 203 } 204 return result, nil 205} 206