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 Wed Feb 12 2020 17:16:47 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 Server interface { 20 DidChangeWorkspaceFolders(context.Context, *DidChangeWorkspaceFoldersParams) error 21 WorkDoneProgressCancel(context.Context, *WorkDoneProgressCancelParams) error 22 Initialized(context.Context, *InitializedParams) error 23 Exit(context.Context) error 24 DidChangeConfiguration(context.Context, *DidChangeConfigurationParams) error 25 DidOpen(context.Context, *DidOpenTextDocumentParams) error 26 DidChange(context.Context, *DidChangeTextDocumentParams) error 27 DidClose(context.Context, *DidCloseTextDocumentParams) error 28 DidSave(context.Context, *DidSaveTextDocumentParams) error 29 WillSave(context.Context, *WillSaveTextDocumentParams) error 30 DidChangeWatchedFiles(context.Context, *DidChangeWatchedFilesParams) error 31 Progress(context.Context, *ProgressParams) error 32 SetTraceNotification(context.Context, *SetTraceParams) error 33 LogTraceNotification(context.Context, *LogTraceParams) error 34 Implementation(context.Context, *ImplementationParams) (Definition /*Definition | DefinitionLink[] | null*/, error) 35 TypeDefinition(context.Context, *TypeDefinitionParams) (Definition /*Definition | DefinitionLink[] | null*/, error) 36 DocumentColor(context.Context, *DocumentColorParams) ([]ColorInformation, error) 37 ColorPresentation(context.Context, *ColorPresentationParams) ([]ColorPresentation, error) 38 FoldingRange(context.Context, *FoldingRangeParams) ([]FoldingRange /*FoldingRange[] | null*/, error) 39 Declaration(context.Context, *DeclarationParams) (Declaration /*Declaration | DeclarationLink[] | null*/, error) 40 SelectionRange(context.Context, *SelectionRangeParams) ([]SelectionRange /*SelectionRange[] | null*/, error) 41 WorkDoneProgressCreate(context.Context, *WorkDoneProgressCreateParams) error 42 Initialize(context.Context, *ParamInitialize) (*InitializeResult, error) 43 Shutdown(context.Context) error 44 WillSaveWaitUntil(context.Context, *WillSaveTextDocumentParams) ([]TextEdit /*TextEdit[] | null*/, error) 45 Completion(context.Context, *CompletionParams) (*CompletionList /*CompletionItem[] | CompletionList | null*/, error) 46 Resolve(context.Context, *CompletionItem) (*CompletionItem, error) 47 Hover(context.Context, *HoverParams) (*Hover /*Hover | null*/, error) 48 SignatureHelp(context.Context, *SignatureHelpParams) (*SignatureHelp /*SignatureHelp | null*/, error) 49 Definition(context.Context, *DefinitionParams) (Definition /*Definition | DefinitionLink[] | null*/, error) 50 References(context.Context, *ReferenceParams) ([]Location /*Location[] | null*/, error) 51 DocumentHighlight(context.Context, *DocumentHighlightParams) ([]DocumentHighlight /*DocumentHighlight[] | null*/, error) 52 DocumentSymbol(context.Context, *DocumentSymbolParams) ([]DocumentSymbol /*SymbolInformation[] | DocumentSymbol[] | null*/, error) 53 CodeAction(context.Context, *CodeActionParams) ([]CodeAction /*(Command | CodeAction)[] | null*/, error) 54 Symbol(context.Context, *WorkspaceSymbolParams) ([]SymbolInformation /*SymbolInformation[] | null*/, error) 55 CodeLens(context.Context, *CodeLensParams) ([]CodeLens /*CodeLens[] | null*/, error) 56 ResolveCodeLens(context.Context, *CodeLens) (*CodeLens, error) 57 DocumentLink(context.Context, *DocumentLinkParams) ([]DocumentLink /*DocumentLink[] | null*/, error) 58 ResolveDocumentLink(context.Context, *DocumentLink) (*DocumentLink, error) 59 Formatting(context.Context, *DocumentFormattingParams) ([]TextEdit /*TextEdit[] | null*/, error) 60 RangeFormatting(context.Context, *DocumentRangeFormattingParams) ([]TextEdit /*TextEdit[] | null*/, error) 61 OnTypeFormatting(context.Context, *DocumentOnTypeFormattingParams) ([]TextEdit /*TextEdit[] | null*/, error) 62 Rename(context.Context, *RenameParams) (*WorkspaceEdit /*WorkspaceEdit | null*/, error) 63 PrepareRename(context.Context, *PrepareRenameParams) (*Range /*Range | { range: Range, placeholder: string } | null*/, error) 64 ExecuteCommand(context.Context, *ExecuteCommandParams) (interface{} /*any | null*/, error) 65 PrepareCallHierarchy(context.Context, *CallHierarchyPrepareParams) ([]CallHierarchyItem /*CallHierarchyItem[] | null*/, error) 66 IncomingCalls(context.Context, *CallHierarchyIncomingCallsParams) ([]CallHierarchyIncomingCall /*CallHierarchyIncomingCall[] | null*/, error) 67 OutgoingCalls(context.Context, *CallHierarchyOutgoingCallsParams) ([]CallHierarchyOutgoingCall /*CallHierarchyOutgoingCall[] | null*/, error) 68 SemanticTokens(context.Context, *SemanticTokensParams) (*SemanticTokens /*SemanticTokens | null*/, error) 69 SemanticTokensEdits(context.Context, *SemanticTokensEditsParams) (interface{} /* SemanticTokens | SemanticTokensEdits | nil*/, error) 70 SemanticTokensRange(context.Context, *SemanticTokensRangeParams) (*SemanticTokens /*SemanticTokens | null*/, error) 71 NonstandardRequest(ctx context.Context, method string, params interface{}) (interface{}, error) 72} 73 74func (h serverHandler) Deliver(ctx context.Context, r *jsonrpc2.Request, delivered bool) bool { 75 if delivered { 76 return false 77 } 78 if ctx.Err() != nil { 79 ctx := xcontext.Detach(ctx) 80 r.Reply(ctx, nil, jsonrpc2.NewErrorf(RequestCancelledError, "")) 81 return true 82 } 83 switch r.Method { 84 case "workspace/didChangeWorkspaceFolders": // notif 85 var params DidChangeWorkspaceFoldersParams 86 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 87 sendParseError(ctx, r, err) 88 return true 89 } 90 if err := h.server.DidChangeWorkspaceFolders(ctx, ¶ms); err != nil { 91 log.Error(ctx, "", err) 92 } 93 return true 94 case "window/workDoneProgress/cancel": // notif 95 var params WorkDoneProgressCancelParams 96 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 97 sendParseError(ctx, r, err) 98 return true 99 } 100 if err := h.server.WorkDoneProgressCancel(ctx, ¶ms); err != nil { 101 log.Error(ctx, "", err) 102 } 103 return true 104 case "initialized": // notif 105 var params InitializedParams 106 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 107 sendParseError(ctx, r, err) 108 return true 109 } 110 if err := h.server.Initialized(ctx, ¶ms); err != nil { 111 log.Error(ctx, "", err) 112 } 113 return true 114 case "exit": // notif 115 if err := h.server.Exit(ctx); err != nil { 116 log.Error(ctx, "", err) 117 } 118 return true 119 case "workspace/didChangeConfiguration": // notif 120 var params DidChangeConfigurationParams 121 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 122 sendParseError(ctx, r, err) 123 return true 124 } 125 if err := h.server.DidChangeConfiguration(ctx, ¶ms); err != nil { 126 log.Error(ctx, "", err) 127 } 128 return true 129 case "textDocument/didOpen": // notif 130 var params DidOpenTextDocumentParams 131 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 132 sendParseError(ctx, r, err) 133 return true 134 } 135 if err := h.server.DidOpen(ctx, ¶ms); err != nil { 136 log.Error(ctx, "", err) 137 } 138 return true 139 case "textDocument/didChange": // notif 140 var params DidChangeTextDocumentParams 141 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 142 sendParseError(ctx, r, err) 143 return true 144 } 145 if err := h.server.DidChange(ctx, ¶ms); err != nil { 146 log.Error(ctx, "", err) 147 } 148 return true 149 case "textDocument/didClose": // notif 150 var params DidCloseTextDocumentParams 151 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 152 sendParseError(ctx, r, err) 153 return true 154 } 155 if err := h.server.DidClose(ctx, ¶ms); err != nil { 156 log.Error(ctx, "", err) 157 } 158 return true 159 case "textDocument/didSave": // notif 160 var params DidSaveTextDocumentParams 161 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 162 sendParseError(ctx, r, err) 163 return true 164 } 165 if err := h.server.DidSave(ctx, ¶ms); err != nil { 166 log.Error(ctx, "", err) 167 } 168 return true 169 case "textDocument/willSave": // notif 170 var params WillSaveTextDocumentParams 171 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 172 sendParseError(ctx, r, err) 173 return true 174 } 175 if err := h.server.WillSave(ctx, ¶ms); err != nil { 176 log.Error(ctx, "", err) 177 } 178 return true 179 case "workspace/didChangeWatchedFiles": // notif 180 var params DidChangeWatchedFilesParams 181 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 182 sendParseError(ctx, r, err) 183 return true 184 } 185 if err := h.server.DidChangeWatchedFiles(ctx, ¶ms); err != nil { 186 log.Error(ctx, "", err) 187 } 188 return true 189 case "$/progress": // notif 190 var params ProgressParams 191 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 192 sendParseError(ctx, r, err) 193 return true 194 } 195 if err := h.server.Progress(ctx, ¶ms); err != nil { 196 log.Error(ctx, "", err) 197 } 198 return true 199 case "$/setTraceNotification": // notif 200 var params SetTraceParams 201 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 202 sendParseError(ctx, r, err) 203 return true 204 } 205 if err := h.server.SetTraceNotification(ctx, ¶ms); err != nil { 206 log.Error(ctx, "", err) 207 } 208 return true 209 case "$/logTraceNotification": // notif 210 var params LogTraceParams 211 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 212 sendParseError(ctx, r, err) 213 return true 214 } 215 if err := h.server.LogTraceNotification(ctx, ¶ms); err != nil { 216 log.Error(ctx, "", err) 217 } 218 return true 219 case "textDocument/implementation": // req 220 var params ImplementationParams 221 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 222 sendParseError(ctx, r, err) 223 return true 224 } 225 resp, err := h.server.Implementation(ctx, ¶ms) 226 if err := r.Reply(ctx, resp, err); err != nil { 227 log.Error(ctx, "", err) 228 } 229 return true 230 case "textDocument/typeDefinition": // req 231 var params TypeDefinitionParams 232 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 233 sendParseError(ctx, r, err) 234 return true 235 } 236 resp, err := h.server.TypeDefinition(ctx, ¶ms) 237 if err := r.Reply(ctx, resp, err); err != nil { 238 log.Error(ctx, "", err) 239 } 240 return true 241 case "textDocument/documentColor": // req 242 var params DocumentColorParams 243 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 244 sendParseError(ctx, r, err) 245 return true 246 } 247 resp, err := h.server.DocumentColor(ctx, ¶ms) 248 if err := r.Reply(ctx, resp, err); err != nil { 249 log.Error(ctx, "", err) 250 } 251 return true 252 case "textDocument/colorPresentation": // req 253 var params ColorPresentationParams 254 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 255 sendParseError(ctx, r, err) 256 return true 257 } 258 resp, err := h.server.ColorPresentation(ctx, ¶ms) 259 if err := r.Reply(ctx, resp, err); err != nil { 260 log.Error(ctx, "", err) 261 } 262 return true 263 case "textDocument/foldingRange": // req 264 var params FoldingRangeParams 265 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 266 sendParseError(ctx, r, err) 267 return true 268 } 269 resp, err := h.server.FoldingRange(ctx, ¶ms) 270 if err := r.Reply(ctx, resp, err); err != nil { 271 log.Error(ctx, "", err) 272 } 273 return true 274 case "textDocument/declaration": // req 275 var params DeclarationParams 276 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 277 sendParseError(ctx, r, err) 278 return true 279 } 280 resp, err := h.server.Declaration(ctx, ¶ms) 281 if err := r.Reply(ctx, resp, err); err != nil { 282 log.Error(ctx, "", err) 283 } 284 return true 285 case "textDocument/selectionRange": // req 286 var params SelectionRangeParams 287 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 288 sendParseError(ctx, r, err) 289 return true 290 } 291 resp, err := h.server.SelectionRange(ctx, ¶ms) 292 if err := r.Reply(ctx, resp, err); err != nil { 293 log.Error(ctx, "", err) 294 } 295 return true 296 case "window/workDoneProgress/create": // req 297 var params WorkDoneProgressCreateParams 298 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 299 sendParseError(ctx, r, err) 300 return true 301 } 302 err := h.server.WorkDoneProgressCreate(ctx, ¶ms) 303 if err := r.Reply(ctx, nil, err); err != nil { 304 log.Error(ctx, "", err) 305 } 306 return true 307 case "initialize": // req 308 var params ParamInitialize 309 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 310 sendParseError(ctx, r, err) 311 return true 312 } 313 resp, err := h.server.Initialize(ctx, ¶ms) 314 if err := r.Reply(ctx, resp, err); err != nil { 315 log.Error(ctx, "", err) 316 } 317 return true 318 case "shutdown": // req 319 if r.Params != nil { 320 r.Reply(ctx, nil, jsonrpc2.NewErrorf(jsonrpc2.CodeInvalidParams, "Expected no params")) 321 return true 322 } 323 err := h.server.Shutdown(ctx) 324 if err := r.Reply(ctx, nil, err); err != nil { 325 log.Error(ctx, "", err) 326 } 327 return true 328 case "textDocument/willSaveWaitUntil": // req 329 var params WillSaveTextDocumentParams 330 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 331 sendParseError(ctx, r, err) 332 return true 333 } 334 resp, err := h.server.WillSaveWaitUntil(ctx, ¶ms) 335 if err := r.Reply(ctx, resp, err); err != nil { 336 log.Error(ctx, "", err) 337 } 338 return true 339 case "textDocument/completion": // req 340 var params CompletionParams 341 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 342 sendParseError(ctx, r, err) 343 return true 344 } 345 resp, err := h.server.Completion(ctx, ¶ms) 346 if err := r.Reply(ctx, resp, err); err != nil { 347 log.Error(ctx, "", err) 348 } 349 return true 350 case "completionItem/resolve": // req 351 var params CompletionItem 352 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 353 sendParseError(ctx, r, err) 354 return true 355 } 356 resp, err := h.server.Resolve(ctx, ¶ms) 357 if err := r.Reply(ctx, resp, err); err != nil { 358 log.Error(ctx, "", err) 359 } 360 return true 361 case "textDocument/hover": // req 362 var params HoverParams 363 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 364 sendParseError(ctx, r, err) 365 return true 366 } 367 resp, err := h.server.Hover(ctx, ¶ms) 368 if err := r.Reply(ctx, resp, err); err != nil { 369 log.Error(ctx, "", err) 370 } 371 return true 372 case "textDocument/signatureHelp": // req 373 var params SignatureHelpParams 374 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 375 sendParseError(ctx, r, err) 376 return true 377 } 378 resp, err := h.server.SignatureHelp(ctx, ¶ms) 379 if err := r.Reply(ctx, resp, err); err != nil { 380 log.Error(ctx, "", err) 381 } 382 return true 383 case "textDocument/definition": // req 384 var params DefinitionParams 385 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 386 sendParseError(ctx, r, err) 387 return true 388 } 389 resp, err := h.server.Definition(ctx, ¶ms) 390 if err := r.Reply(ctx, resp, err); err != nil { 391 log.Error(ctx, "", err) 392 } 393 return true 394 case "textDocument/references": // req 395 var params ReferenceParams 396 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 397 sendParseError(ctx, r, err) 398 return true 399 } 400 resp, err := h.server.References(ctx, ¶ms) 401 if err := r.Reply(ctx, resp, err); err != nil { 402 log.Error(ctx, "", err) 403 } 404 return true 405 case "textDocument/documentHighlight": // req 406 var params DocumentHighlightParams 407 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 408 sendParseError(ctx, r, err) 409 return true 410 } 411 resp, err := h.server.DocumentHighlight(ctx, ¶ms) 412 if err := r.Reply(ctx, resp, err); err != nil { 413 log.Error(ctx, "", err) 414 } 415 return true 416 case "textDocument/documentSymbol": // req 417 var params DocumentSymbolParams 418 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 419 sendParseError(ctx, r, err) 420 return true 421 } 422 resp, err := h.server.DocumentSymbol(ctx, ¶ms) 423 if err := r.Reply(ctx, resp, err); err != nil { 424 log.Error(ctx, "", err) 425 } 426 return true 427 case "textDocument/codeAction": // req 428 var params CodeActionParams 429 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 430 sendParseError(ctx, r, err) 431 return true 432 } 433 resp, err := h.server.CodeAction(ctx, ¶ms) 434 if err := r.Reply(ctx, resp, err); err != nil { 435 log.Error(ctx, "", err) 436 } 437 return true 438 case "workspace/symbol": // req 439 var params WorkspaceSymbolParams 440 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 441 sendParseError(ctx, r, err) 442 return true 443 } 444 resp, err := h.server.Symbol(ctx, ¶ms) 445 if err := r.Reply(ctx, resp, err); err != nil { 446 log.Error(ctx, "", err) 447 } 448 return true 449 case "textDocument/codeLens": // req 450 var params CodeLensParams 451 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 452 sendParseError(ctx, r, err) 453 return true 454 } 455 resp, err := h.server.CodeLens(ctx, ¶ms) 456 if err := r.Reply(ctx, resp, err); err != nil { 457 log.Error(ctx, "", err) 458 } 459 return true 460 case "codeLens/resolve": // req 461 var params CodeLens 462 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 463 sendParseError(ctx, r, err) 464 return true 465 } 466 resp, err := h.server.ResolveCodeLens(ctx, ¶ms) 467 if err := r.Reply(ctx, resp, err); err != nil { 468 log.Error(ctx, "", err) 469 } 470 return true 471 case "textDocument/documentLink": // req 472 var params DocumentLinkParams 473 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 474 sendParseError(ctx, r, err) 475 return true 476 } 477 resp, err := h.server.DocumentLink(ctx, ¶ms) 478 if err := r.Reply(ctx, resp, err); err != nil { 479 log.Error(ctx, "", err) 480 } 481 return true 482 case "documentLink/resolve": // req 483 var params DocumentLink 484 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 485 sendParseError(ctx, r, err) 486 return true 487 } 488 resp, err := h.server.ResolveDocumentLink(ctx, ¶ms) 489 if err := r.Reply(ctx, resp, err); err != nil { 490 log.Error(ctx, "", err) 491 } 492 return true 493 case "textDocument/formatting": // req 494 var params DocumentFormattingParams 495 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 496 sendParseError(ctx, r, err) 497 return true 498 } 499 resp, err := h.server.Formatting(ctx, ¶ms) 500 if err := r.Reply(ctx, resp, err); err != nil { 501 log.Error(ctx, "", err) 502 } 503 return true 504 case "textDocument/rangeFormatting": // req 505 var params DocumentRangeFormattingParams 506 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 507 sendParseError(ctx, r, err) 508 return true 509 } 510 resp, err := h.server.RangeFormatting(ctx, ¶ms) 511 if err := r.Reply(ctx, resp, err); err != nil { 512 log.Error(ctx, "", err) 513 } 514 return true 515 case "textDocument/onTypeFormatting": // req 516 var params DocumentOnTypeFormattingParams 517 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 518 sendParseError(ctx, r, err) 519 return true 520 } 521 resp, err := h.server.OnTypeFormatting(ctx, ¶ms) 522 if err := r.Reply(ctx, resp, err); err != nil { 523 log.Error(ctx, "", err) 524 } 525 return true 526 case "textDocument/rename": // req 527 var params RenameParams 528 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 529 sendParseError(ctx, r, err) 530 return true 531 } 532 resp, err := h.server.Rename(ctx, ¶ms) 533 if err := r.Reply(ctx, resp, err); err != nil { 534 log.Error(ctx, "", err) 535 } 536 return true 537 case "textDocument/prepareRename": // req 538 var params PrepareRenameParams 539 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 540 sendParseError(ctx, r, err) 541 return true 542 } 543 resp, err := h.server.PrepareRename(ctx, ¶ms) 544 if err := r.Reply(ctx, resp, err); err != nil { 545 log.Error(ctx, "", err) 546 } 547 return true 548 case "workspace/executeCommand": // req 549 var params ExecuteCommandParams 550 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 551 sendParseError(ctx, r, err) 552 return true 553 } 554 resp, err := h.server.ExecuteCommand(ctx, ¶ms) 555 if err := r.Reply(ctx, resp, err); err != nil { 556 log.Error(ctx, "", err) 557 } 558 return true 559 case "textDocument/prepareCallHierarchy": // req 560 var params CallHierarchyPrepareParams 561 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 562 sendParseError(ctx, r, err) 563 return true 564 } 565 resp, err := h.server.PrepareCallHierarchy(ctx, ¶ms) 566 if err := r.Reply(ctx, resp, err); err != nil { 567 log.Error(ctx, "", err) 568 } 569 return true 570 case "callHierarchy/incomingCalls": // req 571 var params CallHierarchyIncomingCallsParams 572 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 573 sendParseError(ctx, r, err) 574 return true 575 } 576 resp, err := h.server.IncomingCalls(ctx, ¶ms) 577 if err := r.Reply(ctx, resp, err); err != nil { 578 log.Error(ctx, "", err) 579 } 580 return true 581 case "callHierarchy/outgoingCalls": // req 582 var params CallHierarchyOutgoingCallsParams 583 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 584 sendParseError(ctx, r, err) 585 return true 586 } 587 resp, err := h.server.OutgoingCalls(ctx, ¶ms) 588 if err := r.Reply(ctx, resp, err); err != nil { 589 log.Error(ctx, "", err) 590 } 591 return true 592 case "textDocument/semanticTokens": // req 593 var params SemanticTokensParams 594 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 595 sendParseError(ctx, r, err) 596 return true 597 } 598 resp, err := h.server.SemanticTokens(ctx, ¶ms) 599 if err := r.Reply(ctx, resp, err); err != nil { 600 log.Error(ctx, "", err) 601 } 602 return true 603 case "textDocument/semanticTokens/edits": // req 604 var params SemanticTokensEditsParams 605 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 606 sendParseError(ctx, r, err) 607 return true 608 } 609 resp, err := h.server.SemanticTokensEdits(ctx, ¶ms) 610 if err := r.Reply(ctx, resp, err); err != nil { 611 log.Error(ctx, "", err) 612 } 613 return true 614 case "textDocument/semanticTokens/range": // req 615 var params SemanticTokensRangeParams 616 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 617 sendParseError(ctx, r, err) 618 return true 619 } 620 resp, err := h.server.SemanticTokensRange(ctx, ¶ms) 621 if err := r.Reply(ctx, resp, err); err != nil { 622 log.Error(ctx, "", err) 623 } 624 return true 625 default: 626 var params interface{} 627 if err := json.Unmarshal(*r.Params, ¶ms); err != nil { 628 sendParseError(ctx, r, err) 629 return true 630 } 631 resp, err := h.server.NonstandardRequest(ctx, r.Method, params) 632 if err := r.Reply(ctx, resp, err); err != nil { 633 log.Error(ctx, "", err) 634 } 635 return true 636 637 } 638} 639 640type serverDispatcher struct { 641 *jsonrpc2.Conn 642} 643 644func (s *serverDispatcher) DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) error { 645 return s.Conn.Notify(ctx, "workspace/didChangeWorkspaceFolders", params) 646} 647 648func (s *serverDispatcher) WorkDoneProgressCancel(ctx context.Context, params *WorkDoneProgressCancelParams) error { 649 return s.Conn.Notify(ctx, "window/workDoneProgress/cancel", params) 650} 651 652func (s *serverDispatcher) Initialized(ctx context.Context, params *InitializedParams) error { 653 return s.Conn.Notify(ctx, "initialized", params) 654} 655 656func (s *serverDispatcher) Exit(ctx context.Context) error { 657 return s.Conn.Notify(ctx, "exit", nil) 658} 659 660func (s *serverDispatcher) DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) error { 661 return s.Conn.Notify(ctx, "workspace/didChangeConfiguration", params) 662} 663 664func (s *serverDispatcher) DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) error { 665 return s.Conn.Notify(ctx, "textDocument/didOpen", params) 666} 667 668func (s *serverDispatcher) DidChange(ctx context.Context, params *DidChangeTextDocumentParams) error { 669 return s.Conn.Notify(ctx, "textDocument/didChange", params) 670} 671 672func (s *serverDispatcher) DidClose(ctx context.Context, params *DidCloseTextDocumentParams) error { 673 return s.Conn.Notify(ctx, "textDocument/didClose", params) 674} 675 676func (s *serverDispatcher) DidSave(ctx context.Context, params *DidSaveTextDocumentParams) error { 677 return s.Conn.Notify(ctx, "textDocument/didSave", params) 678} 679 680func (s *serverDispatcher) WillSave(ctx context.Context, params *WillSaveTextDocumentParams) error { 681 return s.Conn.Notify(ctx, "textDocument/willSave", params) 682} 683 684func (s *serverDispatcher) DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) error { 685 return s.Conn.Notify(ctx, "workspace/didChangeWatchedFiles", params) 686} 687 688func (s *serverDispatcher) Progress(ctx context.Context, params *ProgressParams) error { 689 return s.Conn.Notify(ctx, "$/progress", params) 690} 691 692func (s *serverDispatcher) SetTraceNotification(ctx context.Context, params *SetTraceParams) error { 693 return s.Conn.Notify(ctx, "$/setTraceNotification", params) 694} 695 696func (s *serverDispatcher) LogTraceNotification(ctx context.Context, params *LogTraceParams) error { 697 return s.Conn.Notify(ctx, "$/logTraceNotification", params) 698} 699func (s *serverDispatcher) Implementation(ctx context.Context, params *ImplementationParams) (Definition /*Definition | DefinitionLink[] | null*/, error) { 700 var result Definition /*Definition | DefinitionLink[] | null*/ 701 if err := s.Conn.Call(ctx, "textDocument/implementation", params, &result); err != nil { 702 return nil, err 703 } 704 return result, nil 705} 706 707func (s *serverDispatcher) TypeDefinition(ctx context.Context, params *TypeDefinitionParams) (Definition /*Definition | DefinitionLink[] | null*/, error) { 708 var result Definition /*Definition | DefinitionLink[] | null*/ 709 if err := s.Conn.Call(ctx, "textDocument/typeDefinition", params, &result); err != nil { 710 return nil, err 711 } 712 return result, nil 713} 714 715func (s *serverDispatcher) DocumentColor(ctx context.Context, params *DocumentColorParams) ([]ColorInformation, error) { 716 var result []ColorInformation 717 if err := s.Conn.Call(ctx, "textDocument/documentColor", params, &result); err != nil { 718 return nil, err 719 } 720 return result, nil 721} 722 723func (s *serverDispatcher) ColorPresentation(ctx context.Context, params *ColorPresentationParams) ([]ColorPresentation, error) { 724 var result []ColorPresentation 725 if err := s.Conn.Call(ctx, "textDocument/colorPresentation", params, &result); err != nil { 726 return nil, err 727 } 728 return result, nil 729} 730 731func (s *serverDispatcher) FoldingRange(ctx context.Context, params *FoldingRangeParams) ([]FoldingRange /*FoldingRange[] | null*/, error) { 732 var result []FoldingRange /*FoldingRange[] | null*/ 733 if err := s.Conn.Call(ctx, "textDocument/foldingRange", params, &result); err != nil { 734 return nil, err 735 } 736 return result, nil 737} 738 739func (s *serverDispatcher) Declaration(ctx context.Context, params *DeclarationParams) (Declaration /*Declaration | DeclarationLink[] | null*/, error) { 740 var result Declaration /*Declaration | DeclarationLink[] | null*/ 741 if err := s.Conn.Call(ctx, "textDocument/declaration", params, &result); err != nil { 742 return nil, err 743 } 744 return result, nil 745} 746 747func (s *serverDispatcher) SelectionRange(ctx context.Context, params *SelectionRangeParams) ([]SelectionRange /*SelectionRange[] | null*/, error) { 748 var result []SelectionRange /*SelectionRange[] | null*/ 749 if err := s.Conn.Call(ctx, "textDocument/selectionRange", params, &result); err != nil { 750 return nil, err 751 } 752 return result, nil 753} 754 755func (s *serverDispatcher) WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) error { 756 return s.Conn.Call(ctx, "window/workDoneProgress/create", params, nil) // Call, not Notify 757} 758 759func (s *serverDispatcher) Initialize(ctx context.Context, params *ParamInitialize) (*InitializeResult, error) { 760 var result InitializeResult 761 if err := s.Conn.Call(ctx, "initialize", params, &result); err != nil { 762 return nil, err 763 } 764 return &result, nil 765} 766 767func (s *serverDispatcher) Shutdown(ctx context.Context) error { 768 return s.Conn.Call(ctx, "shutdown", nil, nil) 769} 770 771func (s *serverDispatcher) WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) ([]TextEdit /*TextEdit[] | null*/, error) { 772 var result []TextEdit /*TextEdit[] | null*/ 773 if err := s.Conn.Call(ctx, "textDocument/willSaveWaitUntil", params, &result); err != nil { 774 return nil, err 775 } 776 return result, nil 777} 778 779func (s *serverDispatcher) Completion(ctx context.Context, params *CompletionParams) (*CompletionList /*CompletionItem[] | CompletionList | null*/, error) { 780 var result CompletionList /*CompletionItem[] | CompletionList | null*/ 781 if err := s.Conn.Call(ctx, "textDocument/completion", params, &result); err != nil { 782 return nil, err 783 } 784 return &result, nil 785} 786 787func (s *serverDispatcher) Resolve(ctx context.Context, params *CompletionItem) (*CompletionItem, error) { 788 var result CompletionItem 789 if err := s.Conn.Call(ctx, "completionItem/resolve", params, &result); err != nil { 790 return nil, err 791 } 792 return &result, nil 793} 794 795func (s *serverDispatcher) Hover(ctx context.Context, params *HoverParams) (*Hover /*Hover | null*/, error) { 796 var result Hover /*Hover | null*/ 797 if err := s.Conn.Call(ctx, "textDocument/hover", params, &result); err != nil { 798 return nil, err 799 } 800 return &result, nil 801} 802 803func (s *serverDispatcher) SignatureHelp(ctx context.Context, params *SignatureHelpParams) (*SignatureHelp /*SignatureHelp | null*/, error) { 804 var result SignatureHelp /*SignatureHelp | null*/ 805 if err := s.Conn.Call(ctx, "textDocument/signatureHelp", params, &result); err != nil { 806 return nil, err 807 } 808 return &result, nil 809} 810 811func (s *serverDispatcher) Definition(ctx context.Context, params *DefinitionParams) (Definition /*Definition | DefinitionLink[] | null*/, error) { 812 var result Definition /*Definition | DefinitionLink[] | null*/ 813 if err := s.Conn.Call(ctx, "textDocument/definition", params, &result); err != nil { 814 return nil, err 815 } 816 return result, nil 817} 818 819func (s *serverDispatcher) References(ctx context.Context, params *ReferenceParams) ([]Location /*Location[] | null*/, error) { 820 var result []Location /*Location[] | null*/ 821 if err := s.Conn.Call(ctx, "textDocument/references", params, &result); err != nil { 822 return nil, err 823 } 824 return result, nil 825} 826 827func (s *serverDispatcher) DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) ([]DocumentHighlight /*DocumentHighlight[] | null*/, error) { 828 var result []DocumentHighlight /*DocumentHighlight[] | null*/ 829 if err := s.Conn.Call(ctx, "textDocument/documentHighlight", params, &result); err != nil { 830 return nil, err 831 } 832 return result, nil 833} 834 835func (s *serverDispatcher) DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) ([]DocumentSymbol /*SymbolInformation[] | DocumentSymbol[] | null*/, error) { 836 var result []DocumentSymbol /*SymbolInformation[] | DocumentSymbol[] | null*/ 837 if err := s.Conn.Call(ctx, "textDocument/documentSymbol", params, &result); err != nil { 838 return nil, err 839 } 840 return result, nil 841} 842 843func (s *serverDispatcher) CodeAction(ctx context.Context, params *CodeActionParams) ([]CodeAction /*(Command | CodeAction)[] | null*/, error) { 844 var result []CodeAction /*(Command | CodeAction)[] | null*/ 845 if err := s.Conn.Call(ctx, "textDocument/codeAction", params, &result); err != nil { 846 return nil, err 847 } 848 return result, nil 849} 850 851func (s *serverDispatcher) Symbol(ctx context.Context, params *WorkspaceSymbolParams) ([]SymbolInformation /*SymbolInformation[] | null*/, error) { 852 var result []SymbolInformation /*SymbolInformation[] | null*/ 853 if err := s.Conn.Call(ctx, "workspace/symbol", params, &result); err != nil { 854 return nil, err 855 } 856 return result, nil 857} 858 859func (s *serverDispatcher) CodeLens(ctx context.Context, params *CodeLensParams) ([]CodeLens /*CodeLens[] | null*/, error) { 860 var result []CodeLens /*CodeLens[] | null*/ 861 if err := s.Conn.Call(ctx, "textDocument/codeLens", params, &result); err != nil { 862 return nil, err 863 } 864 return result, nil 865} 866 867func (s *serverDispatcher) ResolveCodeLens(ctx context.Context, params *CodeLens) (*CodeLens, error) { 868 var result CodeLens 869 if err := s.Conn.Call(ctx, "codeLens/resolve", params, &result); err != nil { 870 return nil, err 871 } 872 return &result, nil 873} 874 875func (s *serverDispatcher) DocumentLink(ctx context.Context, params *DocumentLinkParams) ([]DocumentLink /*DocumentLink[] | null*/, error) { 876 var result []DocumentLink /*DocumentLink[] | null*/ 877 if err := s.Conn.Call(ctx, "textDocument/documentLink", params, &result); err != nil { 878 return nil, err 879 } 880 return result, nil 881} 882 883func (s *serverDispatcher) ResolveDocumentLink(ctx context.Context, params *DocumentLink) (*DocumentLink, error) { 884 var result DocumentLink 885 if err := s.Conn.Call(ctx, "documentLink/resolve", params, &result); err != nil { 886 return nil, err 887 } 888 return &result, nil 889} 890 891func (s *serverDispatcher) Formatting(ctx context.Context, params *DocumentFormattingParams) ([]TextEdit /*TextEdit[] | null*/, error) { 892 var result []TextEdit /*TextEdit[] | null*/ 893 if err := s.Conn.Call(ctx, "textDocument/formatting", params, &result); err != nil { 894 return nil, err 895 } 896 return result, nil 897} 898 899func (s *serverDispatcher) RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) ([]TextEdit /*TextEdit[] | null*/, error) { 900 var result []TextEdit /*TextEdit[] | null*/ 901 if err := s.Conn.Call(ctx, "textDocument/rangeFormatting", params, &result); err != nil { 902 return nil, err 903 } 904 return result, nil 905} 906 907func (s *serverDispatcher) OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) ([]TextEdit /*TextEdit[] | null*/, error) { 908 var result []TextEdit /*TextEdit[] | null*/ 909 if err := s.Conn.Call(ctx, "textDocument/onTypeFormatting", params, &result); err != nil { 910 return nil, err 911 } 912 return result, nil 913} 914 915func (s *serverDispatcher) Rename(ctx context.Context, params *RenameParams) (*WorkspaceEdit /*WorkspaceEdit | null*/, error) { 916 var result WorkspaceEdit /*WorkspaceEdit | null*/ 917 if err := s.Conn.Call(ctx, "textDocument/rename", params, &result); err != nil { 918 return nil, err 919 } 920 return &result, nil 921} 922 923func (s *serverDispatcher) PrepareRename(ctx context.Context, params *PrepareRenameParams) (*Range /*Range | { range: Range, placeholder: string } | null*/, error) { 924 var result Range /*Range | { range: Range, placeholder: string } | null*/ 925 if err := s.Conn.Call(ctx, "textDocument/prepareRename", params, &result); err != nil { 926 return nil, err 927 } 928 return &result, nil 929} 930 931func (s *serverDispatcher) ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (interface{} /*any | null*/, error) { 932 var result interface{} /*any | null*/ 933 if err := s.Conn.Call(ctx, "workspace/executeCommand", params, &result); err != nil { 934 return nil, err 935 } 936 return result, nil 937} 938 939func (s *serverDispatcher) PrepareCallHierarchy(ctx context.Context, params *CallHierarchyPrepareParams) ([]CallHierarchyItem /*CallHierarchyItem[] | null*/, error) { 940 var result []CallHierarchyItem /*CallHierarchyItem[] | null*/ 941 if err := s.Conn.Call(ctx, "textDocument/prepareCallHierarchy", params, &result); err != nil { 942 return nil, err 943 } 944 return result, nil 945} 946 947func (s *serverDispatcher) IncomingCalls(ctx context.Context, params *CallHierarchyIncomingCallsParams) ([]CallHierarchyIncomingCall /*CallHierarchyIncomingCall[] | null*/, error) { 948 var result []CallHierarchyIncomingCall /*CallHierarchyIncomingCall[] | null*/ 949 if err := s.Conn.Call(ctx, "callHierarchy/incomingCalls", params, &result); err != nil { 950 return nil, err 951 } 952 return result, nil 953} 954 955func (s *serverDispatcher) OutgoingCalls(ctx context.Context, params *CallHierarchyOutgoingCallsParams) ([]CallHierarchyOutgoingCall /*CallHierarchyOutgoingCall[] | null*/, error) { 956 var result []CallHierarchyOutgoingCall /*CallHierarchyOutgoingCall[] | null*/ 957 if err := s.Conn.Call(ctx, "callHierarchy/outgoingCalls", params, &result); err != nil { 958 return nil, err 959 } 960 return result, nil 961} 962 963func (s *serverDispatcher) SemanticTokens(ctx context.Context, params *SemanticTokensParams) (*SemanticTokens /*SemanticTokens | null*/, error) { 964 var result SemanticTokens /*SemanticTokens | null*/ 965 if err := s.Conn.Call(ctx, "textDocument/semanticTokens", params, &result); err != nil { 966 return nil, err 967 } 968 return &result, nil 969} 970 971func (s *serverDispatcher) SemanticTokensEdits(ctx context.Context, params *SemanticTokensEditsParams) (interface{} /* SemanticTokens | SemanticTokensEdits | nil*/, error) { 972 var result interface{} /* SemanticTokens | SemanticTokensEdits | nil*/ 973 if err := s.Conn.Call(ctx, "textDocument/semanticTokens/edits", params, &result); err != nil { 974 return nil, err 975 } 976 return result, nil 977} 978 979func (s *serverDispatcher) SemanticTokensRange(ctx context.Context, params *SemanticTokensRangeParams) (*SemanticTokens /*SemanticTokens | null*/, error) { 980 var result SemanticTokens /*SemanticTokens | null*/ 981 if err := s.Conn.Call(ctx, "textDocument/semanticTokens/range", params, &result); err != nil { 982 return nil, err 983 } 984 return &result, nil 985} 986 987func (s *serverDispatcher) NonstandardRequest(ctx context.Context, method string, params interface{}) (interface{}, error) { 988 var result interface{} 989 if err := s.Conn.Call(ctx, method, params, &result); err != nil { 990 return nil, err 991 } 992 return result, nil 993} 994