1package protocol
2
3// Code generated (see typescript/README.md) DO NOT EDIT.
4
5import (
6	"context"
7	"encoding/json"
8
9	"golang.org/x/tools/internal/jsonrpc2"
10	"golang.org/x/tools/internal/telemetry/log"
11)
12
13type Server interface {
14	DidChangeWorkspaceFolders(context.Context, *DidChangeWorkspaceFoldersParams) error
15	Initialized(context.Context, *InitializedParams) error
16	Exit(context.Context) error
17	DidChangeConfiguration(context.Context, *DidChangeConfigurationParams) error
18	DidOpen(context.Context, *DidOpenTextDocumentParams) error
19	DidChange(context.Context, *DidChangeTextDocumentParams) error
20	DidClose(context.Context, *DidCloseTextDocumentParams) error
21	DidSave(context.Context, *DidSaveTextDocumentParams) error
22	WillSave(context.Context, *WillSaveTextDocumentParams) error
23	DidChangeWatchedFiles(context.Context, *DidChangeWatchedFilesParams) error
24	Progress(context.Context, *ProgressParams) error
25	SetTraceNotification(context.Context, *SetTraceParams) error
26	LogTraceNotification(context.Context, *LogTraceParams) error
27	Implementation(context.Context, *ImplementationParams) ([]Location, error)
28	TypeDefinition(context.Context, *TypeDefinitionParams) ([]Location, error)
29	DocumentColor(context.Context, *DocumentColorParams) ([]ColorInformation, error)
30	ColorPresentation(context.Context, *ColorPresentationParams) ([]ColorPresentation, error)
31	FoldingRange(context.Context, *FoldingRangeParams) ([]FoldingRange, error)
32	Declaration(context.Context, *DeclarationParams) ([]DeclarationLink, error)
33	SelectionRange(context.Context, *SelectionRangeParams) ([]SelectionRange, error)
34	Initialize(context.Context, *ParamInitia) (*InitializeResult, error)
35	Shutdown(context.Context) error
36	WillSaveWaitUntil(context.Context, *WillSaveTextDocumentParams) ([]TextEdit, error)
37	Completion(context.Context, *CompletionParams) (*CompletionList, error)
38	Resolve(context.Context, *CompletionItem) (*CompletionItem, error)
39	Hover(context.Context, *HoverParams) (*Hover, error)
40	SignatureHelp(context.Context, *SignatureHelpParams) (*SignatureHelp, error)
41	Definition(context.Context, *DefinitionParams) ([]Location, error)
42	References(context.Context, *ReferenceParams) ([]Location, error)
43	DocumentHighlight(context.Context, *DocumentHighlightParams) ([]DocumentHighlight, error)
44	DocumentSymbol(context.Context, *DocumentSymbolParams) ([]DocumentSymbol, error)
45	CodeAction(context.Context, *CodeActionParams) ([]CodeAction, error)
46	Symbol(context.Context, *WorkspaceSymbolParams) ([]SymbolInformation, error)
47	CodeLens(context.Context, *CodeLensParams) ([]CodeLens, error)
48	ResolveCodeLens(context.Context, *CodeLens) (*CodeLens, error)
49	Formatting(context.Context, *DocumentFormattingParams) ([]TextEdit, error)
50	RangeFormatting(context.Context, *DocumentRangeFormattingParams) ([]TextEdit, error)
51	OnTypeFormatting(context.Context, *DocumentOnTypeFormattingParams) ([]TextEdit, error)
52	Rename(context.Context, *RenameParams) (*WorkspaceEdit, error)
53	PrepareRename(context.Context, *PrepareRenameParams) (*Range, error)
54	DocumentLink(context.Context, *DocumentLinkParams) ([]DocumentLink, error)
55	ResolveDocumentLink(context.Context, *DocumentLink) (*DocumentLink, error)
56	ExecuteCommand(context.Context, *ExecuteCommandParams) (interface{}, error)
57}
58
59func (h serverHandler) Deliver(ctx context.Context, r *jsonrpc2.Request, delivered bool) bool {
60	if delivered {
61		return false
62	}
63	switch r.Method {
64	case "$/cancelRequest":
65		var params CancelParams
66		if err := json.Unmarshal(*r.Params, &params); err != nil {
67			sendParseError(ctx, r, err)
68			return true
69		}
70		r.Conn().Cancel(params.ID)
71		return true
72	case "workspace/didChangeWorkspaceFolders": // notif
73		var params DidChangeWorkspaceFoldersParams
74		if err := json.Unmarshal(*r.Params, &params); err != nil {
75			sendParseError(ctx, r, err)
76			return true
77		}
78		if err := h.server.DidChangeWorkspaceFolders(ctx, &params); err != nil {
79			log.Error(ctx, "", err)
80		}
81		return true
82	case "initialized": // notif
83		var params InitializedParams
84		if err := json.Unmarshal(*r.Params, &params); err != nil {
85			sendParseError(ctx, r, err)
86			return true
87		}
88		if err := h.server.Initialized(ctx, &params); err != nil {
89			log.Error(ctx, "", err)
90		}
91		return true
92	case "exit": // notif
93		if err := h.server.Exit(ctx); err != nil {
94			log.Error(ctx, "", err)
95		}
96		return true
97	case "workspace/didChangeConfiguration": // notif
98		var params DidChangeConfigurationParams
99		if err := json.Unmarshal(*r.Params, &params); err != nil {
100			sendParseError(ctx, r, err)
101			return true
102		}
103		if err := h.server.DidChangeConfiguration(ctx, &params); err != nil {
104			log.Error(ctx, "", err)
105		}
106		return true
107	case "textDocument/didOpen": // notif
108		var params DidOpenTextDocumentParams
109		if err := json.Unmarshal(*r.Params, &params); err != nil {
110			sendParseError(ctx, r, err)
111			return true
112		}
113		if err := h.server.DidOpen(ctx, &params); err != nil {
114			log.Error(ctx, "", err)
115		}
116		return true
117	case "textDocument/didChange": // notif
118		var params DidChangeTextDocumentParams
119		if err := json.Unmarshal(*r.Params, &params); err != nil {
120			sendParseError(ctx, r, err)
121			return true
122		}
123		if err := h.server.DidChange(ctx, &params); err != nil {
124			log.Error(ctx, "", err)
125		}
126		return true
127	case "textDocument/didClose": // notif
128		var params DidCloseTextDocumentParams
129		if err := json.Unmarshal(*r.Params, &params); err != nil {
130			sendParseError(ctx, r, err)
131			return true
132		}
133		if err := h.server.DidClose(ctx, &params); err != nil {
134			log.Error(ctx, "", err)
135		}
136		return true
137	case "textDocument/didSave": // notif
138		var params DidSaveTextDocumentParams
139		if err := json.Unmarshal(*r.Params, &params); err != nil {
140			sendParseError(ctx, r, err)
141			return true
142		}
143		if err := h.server.DidSave(ctx, &params); err != nil {
144			log.Error(ctx, "", err)
145		}
146		return true
147	case "textDocument/willSave": // notif
148		var params WillSaveTextDocumentParams
149		if err := json.Unmarshal(*r.Params, &params); err != nil {
150			sendParseError(ctx, r, err)
151			return true
152		}
153		if err := h.server.WillSave(ctx, &params); err != nil {
154			log.Error(ctx, "", err)
155		}
156		return true
157	case "workspace/didChangeWatchedFiles": // notif
158		var params DidChangeWatchedFilesParams
159		if err := json.Unmarshal(*r.Params, &params); err != nil {
160			sendParseError(ctx, r, err)
161			return true
162		}
163		if err := h.server.DidChangeWatchedFiles(ctx, &params); err != nil {
164			log.Error(ctx, "", err)
165		}
166		return true
167	case "$/progress": // notif
168		var params ProgressParams
169		if err := json.Unmarshal(*r.Params, &params); err != nil {
170			sendParseError(ctx, r, err)
171			return true
172		}
173		if err := h.server.Progress(ctx, &params); err != nil {
174			log.Error(ctx, "", err)
175		}
176		return true
177	case "$/setTraceNotification": // notif
178		var params SetTraceParams
179		if err := json.Unmarshal(*r.Params, &params); err != nil {
180			sendParseError(ctx, r, err)
181			return true
182		}
183		if err := h.server.SetTraceNotification(ctx, &params); err != nil {
184			log.Error(ctx, "", err)
185		}
186		return true
187	case "$/logTraceNotification": // notif
188		var params LogTraceParams
189		if err := json.Unmarshal(*r.Params, &params); err != nil {
190			sendParseError(ctx, r, err)
191			return true
192		}
193		if err := h.server.LogTraceNotification(ctx, &params); err != nil {
194			log.Error(ctx, "", err)
195		}
196		return true
197	case "textDocument/implementation": // req
198		var params ImplementationParams
199		if err := json.Unmarshal(*r.Params, &params); err != nil {
200			sendParseError(ctx, r, err)
201			return true
202		}
203		resp, err := h.server.Implementation(ctx, &params)
204		if err := r.Reply(ctx, resp, err); err != nil {
205			log.Error(ctx, "", err)
206		}
207		return true
208	case "textDocument/typeDefinition": // req
209		var params TypeDefinitionParams
210		if err := json.Unmarshal(*r.Params, &params); err != nil {
211			sendParseError(ctx, r, err)
212			return true
213		}
214		resp, err := h.server.TypeDefinition(ctx, &params)
215		if err := r.Reply(ctx, resp, err); err != nil {
216			log.Error(ctx, "", err)
217		}
218		return true
219	case "textDocument/documentColor": // req
220		var params DocumentColorParams
221		if err := json.Unmarshal(*r.Params, &params); err != nil {
222			sendParseError(ctx, r, err)
223			return true
224		}
225		resp, err := h.server.DocumentColor(ctx, &params)
226		if err := r.Reply(ctx, resp, err); err != nil {
227			log.Error(ctx, "", err)
228		}
229		return true
230	case "textDocument/colorPresentation": // req
231		var params ColorPresentationParams
232		if err := json.Unmarshal(*r.Params, &params); err != nil {
233			sendParseError(ctx, r, err)
234			return true
235		}
236		resp, err := h.server.ColorPresentation(ctx, &params)
237		if err := r.Reply(ctx, resp, err); err != nil {
238			log.Error(ctx, "", err)
239		}
240		return true
241	case "textDocument/foldingRange": // req
242		var params FoldingRangeParams
243		if err := json.Unmarshal(*r.Params, &params); err != nil {
244			sendParseError(ctx, r, err)
245			return true
246		}
247		resp, err := h.server.FoldingRange(ctx, &params)
248		if err := r.Reply(ctx, resp, err); err != nil {
249			log.Error(ctx, "", err)
250		}
251		return true
252	case "textDocument/declaration": // req
253		var params DeclarationParams
254		if err := json.Unmarshal(*r.Params, &params); err != nil {
255			sendParseError(ctx, r, err)
256			return true
257		}
258		resp, err := h.server.Declaration(ctx, &params)
259		if err := r.Reply(ctx, resp, err); err != nil {
260			log.Error(ctx, "", err)
261		}
262		return true
263	case "textDocument/selectionRange": // req
264		var params SelectionRangeParams
265		if err := json.Unmarshal(*r.Params, &params); err != nil {
266			sendParseError(ctx, r, err)
267			return true
268		}
269		resp, err := h.server.SelectionRange(ctx, &params)
270		if err := r.Reply(ctx, resp, err); err != nil {
271			log.Error(ctx, "", err)
272		}
273		return true
274	case "initialize": // req
275		var params ParamInitia
276		if err := json.Unmarshal(*r.Params, &params); err != nil {
277			sendParseError(ctx, r, err)
278			return true
279		}
280		resp, err := h.server.Initialize(ctx, &params)
281		if err := r.Reply(ctx, resp, err); err != nil {
282			log.Error(ctx, "", err)
283		}
284		return true
285	case "shutdown": // req
286		if r.Params != nil {
287			r.Reply(ctx, nil, jsonrpc2.NewErrorf(jsonrpc2.CodeInvalidParams, "Expected no params"))
288			return true
289		}
290		err := h.server.Shutdown(ctx)
291		if err := r.Reply(ctx, nil, err); err != nil {
292			log.Error(ctx, "", err)
293		}
294		return true
295	case "textDocument/willSaveWaitUntil": // req
296		var params WillSaveTextDocumentParams
297		if err := json.Unmarshal(*r.Params, &params); err != nil {
298			sendParseError(ctx, r, err)
299			return true
300		}
301		resp, err := h.server.WillSaveWaitUntil(ctx, &params)
302		if err := r.Reply(ctx, resp, err); err != nil {
303			log.Error(ctx, "", err)
304		}
305		return true
306	case "textDocument/completion": // req
307		var params CompletionParams
308		if err := json.Unmarshal(*r.Params, &params); err != nil {
309			sendParseError(ctx, r, err)
310			return true
311		}
312		resp, err := h.server.Completion(ctx, &params)
313		if err := r.Reply(ctx, resp, err); err != nil {
314			log.Error(ctx, "", err)
315		}
316		return true
317	case "completionItem/resolve": // req
318		var params CompletionItem
319		if err := json.Unmarshal(*r.Params, &params); err != nil {
320			sendParseError(ctx, r, err)
321			return true
322		}
323		resp, err := h.server.Resolve(ctx, &params)
324		if err := r.Reply(ctx, resp, err); err != nil {
325			log.Error(ctx, "", err)
326		}
327		return true
328	case "textDocument/hover": // req
329		var params HoverParams
330		if err := json.Unmarshal(*r.Params, &params); err != nil {
331			sendParseError(ctx, r, err)
332			return true
333		}
334		resp, err := h.server.Hover(ctx, &params)
335		if err := r.Reply(ctx, resp, err); err != nil {
336			log.Error(ctx, "", err)
337		}
338		return true
339	case "textDocument/signatureHelp": // req
340		var params SignatureHelpParams
341		if err := json.Unmarshal(*r.Params, &params); err != nil {
342			sendParseError(ctx, r, err)
343			return true
344		}
345		resp, err := h.server.SignatureHelp(ctx, &params)
346		if err := r.Reply(ctx, resp, err); err != nil {
347			log.Error(ctx, "", err)
348		}
349		return true
350	case "textDocument/definition": // req
351		var params DefinitionParams
352		if err := json.Unmarshal(*r.Params, &params); err != nil {
353			sendParseError(ctx, r, err)
354			return true
355		}
356		resp, err := h.server.Definition(ctx, &params)
357		if err := r.Reply(ctx, resp, err); err != nil {
358			log.Error(ctx, "", err)
359		}
360		return true
361	case "textDocument/references": // req
362		var params ReferenceParams
363		if err := json.Unmarshal(*r.Params, &params); err != nil {
364			sendParseError(ctx, r, err)
365			return true
366		}
367		resp, err := h.server.References(ctx, &params)
368		if err := r.Reply(ctx, resp, err); err != nil {
369			log.Error(ctx, "", err)
370		}
371		return true
372	case "textDocument/documentHighlight": // req
373		var params DocumentHighlightParams
374		if err := json.Unmarshal(*r.Params, &params); err != nil {
375			sendParseError(ctx, r, err)
376			return true
377		}
378		resp, err := h.server.DocumentHighlight(ctx, &params)
379		if err := r.Reply(ctx, resp, err); err != nil {
380			log.Error(ctx, "", err)
381		}
382		return true
383	case "textDocument/documentSymbol": // req
384		var params DocumentSymbolParams
385		if err := json.Unmarshal(*r.Params, &params); err != nil {
386			sendParseError(ctx, r, err)
387			return true
388		}
389		resp, err := h.server.DocumentSymbol(ctx, &params)
390		if err := r.Reply(ctx, resp, err); err != nil {
391			log.Error(ctx, "", err)
392		}
393		return true
394	case "textDocument/codeAction": // req
395		var params CodeActionParams
396		if err := json.Unmarshal(*r.Params, &params); err != nil {
397			sendParseError(ctx, r, err)
398			return true
399		}
400		resp, err := h.server.CodeAction(ctx, &params)
401		if err := r.Reply(ctx, resp, err); err != nil {
402			log.Error(ctx, "", err)
403		}
404		return true
405	case "workspace/symbol": // req
406		var params WorkspaceSymbolParams
407		if err := json.Unmarshal(*r.Params, &params); err != nil {
408			sendParseError(ctx, r, err)
409			return true
410		}
411		resp, err := h.server.Symbol(ctx, &params)
412		if err := r.Reply(ctx, resp, err); err != nil {
413			log.Error(ctx, "", err)
414		}
415		return true
416	case "textDocument/codeLens": // req
417		var params CodeLensParams
418		if err := json.Unmarshal(*r.Params, &params); err != nil {
419			sendParseError(ctx, r, err)
420			return true
421		}
422		resp, err := h.server.CodeLens(ctx, &params)
423		if err := r.Reply(ctx, resp, err); err != nil {
424			log.Error(ctx, "", err)
425		}
426		return true
427	case "codeLens/resolve": // req
428		var params CodeLens
429		if err := json.Unmarshal(*r.Params, &params); err != nil {
430			sendParseError(ctx, r, err)
431			return true
432		}
433		resp, err := h.server.ResolveCodeLens(ctx, &params)
434		if err := r.Reply(ctx, resp, err); err != nil {
435			log.Error(ctx, "", err)
436		}
437		return true
438	case "textDocument/formatting": // req
439		var params DocumentFormattingParams
440		if err := json.Unmarshal(*r.Params, &params); err != nil {
441			sendParseError(ctx, r, err)
442			return true
443		}
444		resp, err := h.server.Formatting(ctx, &params)
445		if err := r.Reply(ctx, resp, err); err != nil {
446			log.Error(ctx, "", err)
447		}
448		return true
449	case "textDocument/rangeFormatting": // req
450		var params DocumentRangeFormattingParams
451		if err := json.Unmarshal(*r.Params, &params); err != nil {
452			sendParseError(ctx, r, err)
453			return true
454		}
455		resp, err := h.server.RangeFormatting(ctx, &params)
456		if err := r.Reply(ctx, resp, err); err != nil {
457			log.Error(ctx, "", err)
458		}
459		return true
460	case "textDocument/onTypeFormatting": // req
461		var params DocumentOnTypeFormattingParams
462		if err := json.Unmarshal(*r.Params, &params); err != nil {
463			sendParseError(ctx, r, err)
464			return true
465		}
466		resp, err := h.server.OnTypeFormatting(ctx, &params)
467		if err := r.Reply(ctx, resp, err); err != nil {
468			log.Error(ctx, "", err)
469		}
470		return true
471	case "textDocument/rename": // req
472		var params RenameParams
473		if err := json.Unmarshal(*r.Params, &params); err != nil {
474			sendParseError(ctx, r, err)
475			return true
476		}
477		resp, err := h.server.Rename(ctx, &params)
478		if err := r.Reply(ctx, resp, err); err != nil {
479			log.Error(ctx, "", err)
480		}
481		return true
482	case "textDocument/prepareRename": // req
483		var params PrepareRenameParams
484		if err := json.Unmarshal(*r.Params, &params); err != nil {
485			sendParseError(ctx, r, err)
486			return true
487		}
488		resp, err := h.server.PrepareRename(ctx, &params)
489		if err := r.Reply(ctx, resp, err); err != nil {
490			log.Error(ctx, "", err)
491		}
492		return true
493	case "textDocument/documentLink": // req
494		var params DocumentLinkParams
495		if err := json.Unmarshal(*r.Params, &params); err != nil {
496			sendParseError(ctx, r, err)
497			return true
498		}
499		resp, err := h.server.DocumentLink(ctx, &params)
500		if err := r.Reply(ctx, resp, err); err != nil {
501			log.Error(ctx, "", err)
502		}
503		return true
504	case "documentLink/resolve": // req
505		var params DocumentLink
506		if err := json.Unmarshal(*r.Params, &params); err != nil {
507			sendParseError(ctx, r, err)
508			return true
509		}
510		resp, err := h.server.ResolveDocumentLink(ctx, &params)
511		if err := r.Reply(ctx, resp, err); err != nil {
512			log.Error(ctx, "", err)
513		}
514		return true
515	case "workspace/executeCommand": // req
516		var params ExecuteCommandParams
517		if err := json.Unmarshal(*r.Params, &params); err != nil {
518			sendParseError(ctx, r, err)
519			return true
520		}
521		resp, err := h.server.ExecuteCommand(ctx, &params)
522		if err := r.Reply(ctx, resp, err); err != nil {
523			log.Error(ctx, "", err)
524		}
525		return true
526
527	default:
528		return false
529	}
530}
531
532type serverDispatcher struct {
533	*jsonrpc2.Conn
534}
535
536func (s *serverDispatcher) DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) error {
537	return s.Conn.Notify(ctx, "workspace/didChangeWorkspaceFolders", params)
538}
539
540func (s *serverDispatcher) Initialized(ctx context.Context, params *InitializedParams) error {
541	return s.Conn.Notify(ctx, "initialized", params)
542}
543
544func (s *serverDispatcher) Exit(ctx context.Context) error {
545	return s.Conn.Notify(ctx, "exit", nil)
546}
547
548func (s *serverDispatcher) DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) error {
549	return s.Conn.Notify(ctx, "workspace/didChangeConfiguration", params)
550}
551
552func (s *serverDispatcher) DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) error {
553	return s.Conn.Notify(ctx, "textDocument/didOpen", params)
554}
555
556func (s *serverDispatcher) DidChange(ctx context.Context, params *DidChangeTextDocumentParams) error {
557	return s.Conn.Notify(ctx, "textDocument/didChange", params)
558}
559
560func (s *serverDispatcher) DidClose(ctx context.Context, params *DidCloseTextDocumentParams) error {
561	return s.Conn.Notify(ctx, "textDocument/didClose", params)
562}
563
564func (s *serverDispatcher) DidSave(ctx context.Context, params *DidSaveTextDocumentParams) error {
565	return s.Conn.Notify(ctx, "textDocument/didSave", params)
566}
567
568func (s *serverDispatcher) WillSave(ctx context.Context, params *WillSaveTextDocumentParams) error {
569	return s.Conn.Notify(ctx, "textDocument/willSave", params)
570}
571
572func (s *serverDispatcher) DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) error {
573	return s.Conn.Notify(ctx, "workspace/didChangeWatchedFiles", params)
574}
575
576func (s *serverDispatcher) Progress(ctx context.Context, params *ProgressParams) error {
577	return s.Conn.Notify(ctx, "$/progress", params)
578}
579
580func (s *serverDispatcher) SetTraceNotification(ctx context.Context, params *SetTraceParams) error {
581	return s.Conn.Notify(ctx, "$/setTraceNotification", params)
582}
583
584func (s *serverDispatcher) LogTraceNotification(ctx context.Context, params *LogTraceParams) error {
585	return s.Conn.Notify(ctx, "$/logTraceNotification", params)
586}
587func (s *serverDispatcher) Implementation(ctx context.Context, params *ImplementationParams) ([]Location, error) {
588	var result []Location
589	if err := s.Conn.Call(ctx, "textDocument/implementation", params, &result); err != nil {
590		return nil, err
591	}
592	return result, nil
593}
594
595func (s *serverDispatcher) TypeDefinition(ctx context.Context, params *TypeDefinitionParams) ([]Location, error) {
596	var result []Location
597	if err := s.Conn.Call(ctx, "textDocument/typeDefinition", params, &result); err != nil {
598		return nil, err
599	}
600	return result, nil
601}
602
603func (s *serverDispatcher) DocumentColor(ctx context.Context, params *DocumentColorParams) ([]ColorInformation, error) {
604	var result []ColorInformation
605	if err := s.Conn.Call(ctx, "textDocument/documentColor", params, &result); err != nil {
606		return nil, err
607	}
608	return result, nil
609}
610
611func (s *serverDispatcher) ColorPresentation(ctx context.Context, params *ColorPresentationParams) ([]ColorPresentation, error) {
612	var result []ColorPresentation
613	if err := s.Conn.Call(ctx, "textDocument/colorPresentation", params, &result); err != nil {
614		return nil, err
615	}
616	return result, nil
617}
618
619func (s *serverDispatcher) FoldingRange(ctx context.Context, params *FoldingRangeParams) ([]FoldingRange, error) {
620	var result []FoldingRange
621	if err := s.Conn.Call(ctx, "textDocument/foldingRange", params, &result); err != nil {
622		return nil, err
623	}
624	return result, nil
625}
626
627func (s *serverDispatcher) Declaration(ctx context.Context, params *DeclarationParams) ([]DeclarationLink, error) {
628	var result []DeclarationLink
629	if err := s.Conn.Call(ctx, "textDocument/declaration", params, &result); err != nil {
630		return nil, err
631	}
632	return result, nil
633}
634
635func (s *serverDispatcher) SelectionRange(ctx context.Context, params *SelectionRangeParams) ([]SelectionRange, error) {
636	var result []SelectionRange
637	if err := s.Conn.Call(ctx, "textDocument/selectionRange", params, &result); err != nil {
638		return nil, err
639	}
640	return result, nil
641}
642
643func (s *serverDispatcher) Initialize(ctx context.Context, params *ParamInitia) (*InitializeResult, error) {
644	var result InitializeResult
645	if err := s.Conn.Call(ctx, "initialize", params, &result); err != nil {
646		return nil, err
647	}
648	return &result, nil
649}
650
651func (s *serverDispatcher) Shutdown(ctx context.Context) error {
652	return s.Conn.Call(ctx, "shutdown", nil, nil)
653}
654
655func (s *serverDispatcher) WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) ([]TextEdit, error) {
656	var result []TextEdit
657	if err := s.Conn.Call(ctx, "textDocument/willSaveWaitUntil", params, &result); err != nil {
658		return nil, err
659	}
660	return result, nil
661}
662
663func (s *serverDispatcher) Completion(ctx context.Context, params *CompletionParams) (*CompletionList, error) {
664	var result CompletionList
665	if err := s.Conn.Call(ctx, "textDocument/completion", params, &result); err != nil {
666		return nil, err
667	}
668	return &result, nil
669}
670
671func (s *serverDispatcher) Resolve(ctx context.Context, params *CompletionItem) (*CompletionItem, error) {
672	var result CompletionItem
673	if err := s.Conn.Call(ctx, "completionItem/resolve", params, &result); err != nil {
674		return nil, err
675	}
676	return &result, nil
677}
678
679func (s *serverDispatcher) Hover(ctx context.Context, params *HoverParams) (*Hover, error) {
680	var result Hover
681	if err := s.Conn.Call(ctx, "textDocument/hover", params, &result); err != nil {
682		return nil, err
683	}
684	return &result, nil
685}
686
687func (s *serverDispatcher) SignatureHelp(ctx context.Context, params *SignatureHelpParams) (*SignatureHelp, error) {
688	var result SignatureHelp
689	if err := s.Conn.Call(ctx, "textDocument/signatureHelp", params, &result); err != nil {
690		return nil, err
691	}
692	return &result, nil
693}
694
695func (s *serverDispatcher) Definition(ctx context.Context, params *DefinitionParams) ([]Location, error) {
696	var result []Location
697	if err := s.Conn.Call(ctx, "textDocument/definition", params, &result); err != nil {
698		return nil, err
699	}
700	return result, nil
701}
702
703func (s *serverDispatcher) References(ctx context.Context, params *ReferenceParams) ([]Location, error) {
704	var result []Location
705	if err := s.Conn.Call(ctx, "textDocument/references", params, &result); err != nil {
706		return nil, err
707	}
708	return result, nil
709}
710
711func (s *serverDispatcher) DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) ([]DocumentHighlight, error) {
712	var result []DocumentHighlight
713	if err := s.Conn.Call(ctx, "textDocument/documentHighlight", params, &result); err != nil {
714		return nil, err
715	}
716	return result, nil
717}
718
719func (s *serverDispatcher) DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) ([]DocumentSymbol, error) {
720	var result []DocumentSymbol
721	if err := s.Conn.Call(ctx, "textDocument/documentSymbol", params, &result); err != nil {
722		return nil, err
723	}
724	return result, nil
725}
726
727func (s *serverDispatcher) CodeAction(ctx context.Context, params *CodeActionParams) ([]CodeAction, error) {
728	var result []CodeAction
729	if err := s.Conn.Call(ctx, "textDocument/codeAction", params, &result); err != nil {
730		return nil, err
731	}
732	return result, nil
733}
734
735func (s *serverDispatcher) Symbol(ctx context.Context, params *WorkspaceSymbolParams) ([]SymbolInformation, error) {
736	var result []SymbolInformation
737	if err := s.Conn.Call(ctx, "workspace/symbol", params, &result); err != nil {
738		return nil, err
739	}
740	return result, nil
741}
742
743func (s *serverDispatcher) CodeLens(ctx context.Context, params *CodeLensParams) ([]CodeLens, error) {
744	var result []CodeLens
745	if err := s.Conn.Call(ctx, "textDocument/codeLens", params, &result); err != nil {
746		return nil, err
747	}
748	return result, nil
749}
750
751func (s *serverDispatcher) ResolveCodeLens(ctx context.Context, params *CodeLens) (*CodeLens, error) {
752	var result CodeLens
753	if err := s.Conn.Call(ctx, "codeLens/resolve", params, &result); err != nil {
754		return nil, err
755	}
756	return &result, nil
757}
758
759func (s *serverDispatcher) Formatting(ctx context.Context, params *DocumentFormattingParams) ([]TextEdit, error) {
760	var result []TextEdit
761	if err := s.Conn.Call(ctx, "textDocument/formatting", params, &result); err != nil {
762		return nil, err
763	}
764	return result, nil
765}
766
767func (s *serverDispatcher) RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) ([]TextEdit, error) {
768	var result []TextEdit
769	if err := s.Conn.Call(ctx, "textDocument/rangeFormatting", params, &result); err != nil {
770		return nil, err
771	}
772	return result, nil
773}
774
775func (s *serverDispatcher) OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) ([]TextEdit, error) {
776	var result []TextEdit
777	if err := s.Conn.Call(ctx, "textDocument/onTypeFormatting", params, &result); err != nil {
778		return nil, err
779	}
780	return result, nil
781}
782
783func (s *serverDispatcher) Rename(ctx context.Context, params *RenameParams) (*WorkspaceEdit, error) {
784	var result WorkspaceEdit
785	if err := s.Conn.Call(ctx, "textDocument/rename", params, &result); err != nil {
786		return nil, err
787	}
788	return &result, nil
789}
790
791func (s *serverDispatcher) PrepareRename(ctx context.Context, params *PrepareRenameParams) (*Range, error) {
792	var result Range
793	if err := s.Conn.Call(ctx, "textDocument/prepareRename", params, &result); err != nil {
794		return nil, err
795	}
796	return &result, nil
797}
798
799func (s *serverDispatcher) DocumentLink(ctx context.Context, params *DocumentLinkParams) ([]DocumentLink, error) {
800	var result []DocumentLink
801	if err := s.Conn.Call(ctx, "textDocument/documentLink", params, &result); err != nil {
802		return nil, err
803	}
804	return result, nil
805}
806
807func (s *serverDispatcher) ResolveDocumentLink(ctx context.Context, params *DocumentLink) (*DocumentLink, error) {
808	var result DocumentLink
809	if err := s.Conn.Call(ctx, "documentLink/resolve", params, &result); err != nil {
810		return nil, err
811	}
812	return &result, nil
813}
814
815func (s *serverDispatcher) ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (interface{}, error) {
816	var result interface{}
817	if err := s.Conn.Call(ctx, "workspace/executeCommand", params, &result); err != nil {
818		return nil, err
819	}
820	return result, nil
821}
822
823type CancelParams struct {
824	/**
825	 * The request id to cancel.
826	 */
827	ID jsonrpc2.ID `json:"id"`
828}
829
830// Types constructed to avoid structs as formal argument types
831type ParamInitia struct {
832	InitializeParams
833	WorkDoneProgressParams
834}
835