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