1package protocol 2 3// Package protocol contains data types and code for LSP jsonrpcs 4// generated automatically from vscode-languageserver-node 5// commit: 7b90c29d0cb5cd7b9c41084f6cb3781a955adeba 6// last fetched Thu Jan 23 2020 11:10:31 GMT-0500 (Eastern Standard Time) 7 8// Code generated (see typescript/README.md) DO NOT EDIT. 9 10import ( 11 "context" 12 "encoding/json" 13 14 "golang.org/x/tools/internal/jsonrpc2" 15 "golang.org/x/tools/internal/telemetry/log" 16 "golang.org/x/tools/internal/xcontext" 17) 18 19type Client interface { 20 ShowMessage(context.Context, *ShowMessageParams) error 21 LogMessage(context.Context, *LogMessageParams) error 22 Event(context.Context, *interface{}) error 23 PublishDiagnostics(context.Context, *PublishDiagnosticsParams) error 24 WorkspaceFolders(context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error) 25 Configuration(context.Context, *ParamConfiguration) ([]interface{}, error) 26 RegisterCapability(context.Context, *RegistrationParams) error 27 UnregisterCapability(context.Context, *UnregistrationParams) error 28 ShowMessageRequest(context.Context, *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error) 29 ApplyEdit(context.Context, *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error) 30} 31 32func (h clientHandler) Deliver(ctx context.Context, r *jsonrpc2.Request, delivered bool) bool { 33 if delivered { 34 return false 35 } 36 if ctx.Err() != nil { 37 ctx := xcontext.Detach(ctx) 38 r.Reply(ctx, nil, jsonrpc2.NewErrorf(RequestCancelledError, "")) 39 return true 40 } 41 switch r.Method { 42 case "window/showMessage": // notif 43 var params ShowMessageParams 44 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 45 sendParseError(ctx, r, err) 46 return true 47 } 48 if err := h.client.ShowMessage(ctx, ¶ms); err != nil { 49 log.Error(ctx, "", err) 50 } 51 return true 52 case "window/logMessage": // notif 53 var params LogMessageParams 54 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 55 sendParseError(ctx, r, err) 56 return true 57 } 58 if err := h.client.LogMessage(ctx, ¶ms); err != nil { 59 log.Error(ctx, "", err) 60 } 61 return true 62 case "telemetry/event": // notif 63 var params interface{} 64 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 65 sendParseError(ctx, r, err) 66 return true 67 } 68 if err := h.client.Event(ctx, ¶ms); err != nil { 69 log.Error(ctx, "", err) 70 } 71 return true 72 case "textDocument/publishDiagnostics": // notif 73 var params PublishDiagnosticsParams 74 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 75 sendParseError(ctx, r, err) 76 return true 77 } 78 if err := h.client.PublishDiagnostics(ctx, ¶ms); err != nil { 79 log.Error(ctx, "", err) 80 } 81 return true 82 case "workspace/workspaceFolders": // req 83 if r.Params != nil { 84 r.Reply(ctx, nil, jsonrpc2.NewErrorf(jsonrpc2.CodeInvalidParams, "Expected no params")) 85 return true 86 } 87 resp, err := h.client.WorkspaceFolders(ctx) 88 if err := r.Reply(ctx, resp, err); err != nil { 89 log.Error(ctx, "", err) 90 } 91 return true 92 case "workspace/configuration": // req 93 var params ParamConfiguration 94 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 95 sendParseError(ctx, r, err) 96 return true 97 } 98 resp, err := h.client.Configuration(ctx, ¶ms) 99 if err := r.Reply(ctx, resp, err); err != nil { 100 log.Error(ctx, "", err) 101 } 102 return true 103 case "client/registerCapability": // req 104 var params RegistrationParams 105 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 106 sendParseError(ctx, r, err) 107 return true 108 } 109 err := h.client.RegisterCapability(ctx, ¶ms) 110 if err := r.Reply(ctx, nil, err); err != nil { 111 log.Error(ctx, "", err) 112 } 113 return true 114 case "client/unregisterCapability": // req 115 var params UnregistrationParams 116 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 117 sendParseError(ctx, r, err) 118 return true 119 } 120 err := h.client.UnregisterCapability(ctx, ¶ms) 121 if err := r.Reply(ctx, nil, err); err != nil { 122 log.Error(ctx, "", err) 123 } 124 return true 125 case "window/showMessageRequest": // req 126 var params ShowMessageRequestParams 127 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 128 sendParseError(ctx, r, err) 129 return true 130 } 131 resp, err := h.client.ShowMessageRequest(ctx, ¶ms) 132 if err := r.Reply(ctx, resp, err); err != nil { 133 log.Error(ctx, "", err) 134 } 135 return true 136 case "workspace/applyEdit": // req 137 var params ApplyWorkspaceEditParams 138 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 139 sendParseError(ctx, r, err) 140 return true 141 } 142 resp, err := h.client.ApplyEdit(ctx, ¶ms) 143 if err := r.Reply(ctx, resp, err); err != nil { 144 log.Error(ctx, "", err) 145 } 146 return true 147 default: 148 return false 149 150 } 151} 152 153type clientDispatcher struct { 154 *jsonrpc2.Conn 155} 156 157func (s *clientDispatcher) ShowMessage(ctx context.Context, params *ShowMessageParams) error { 158 return s.Conn.Notify(ctx, "window/showMessage", params) 159} 160 161func (s *clientDispatcher) LogMessage(ctx context.Context, params *LogMessageParams) error { 162 return s.Conn.Notify(ctx, "window/logMessage", params) 163} 164 165func (s *clientDispatcher) Event(ctx context.Context, params *interface{}) error { 166 return s.Conn.Notify(ctx, "telemetry/event", params) 167} 168 169func (s *clientDispatcher) PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) error { 170 return s.Conn.Notify(ctx, "textDocument/publishDiagnostics", params) 171} 172func (s *clientDispatcher) WorkspaceFolders(ctx context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error) { 173 var result []WorkspaceFolder /*WorkspaceFolder[] | null*/ 174 if err := s.Conn.Call(ctx, "workspace/workspaceFolders", nil, &result); err != nil { 175 return nil, err 176 } 177 return result, nil 178} 179 180func (s *clientDispatcher) Configuration(ctx context.Context, params *ParamConfiguration) ([]interface{}, error) { 181 var result []interface{} 182 if err := s.Conn.Call(ctx, "workspace/configuration", params, &result); err != nil { 183 return nil, err 184 } 185 return result, nil 186} 187 188func (s *clientDispatcher) RegisterCapability(ctx context.Context, params *RegistrationParams) error { 189 return s.Conn.Call(ctx, "client/registerCapability", params, nil) // Call, not Notify 190} 191 192func (s *clientDispatcher) UnregisterCapability(ctx context.Context, params *UnregistrationParams) error { 193 return s.Conn.Call(ctx, "client/unregisterCapability", params, nil) // Call, not Notify 194} 195 196func (s *clientDispatcher) ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error) { 197 var result MessageActionItem /*MessageActionItem | null*/ 198 if err := s.Conn.Call(ctx, "window/showMessageRequest", params, &result); err != nil { 199 return nil, err 200 } 201 return &result, nil 202} 203 204func (s *clientDispatcher) ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error) { 205 var result ApplyWorkspaceEditResponse 206 if err := s.Conn.Call(ctx, "workspace/applyEdit", params, &result); err != nil { 207 return nil, err 208 } 209 return &result, nil 210} 211