1// Package protocol contains data types and code for LSP jsonrpcs
2// generated automatically from vscode-languageserver-node
3// commit: 635ab1fe6f8c57ce9402e573d007f24d6d290fd3
4// last fetched Mon Oct 14 2019 09:09:30 GMT-0400 (Eastern Daylight Time)
5package protocol
6
7// Code generated (see typescript/README.md) DO NOT EDIT.
8
9/*ApplyWorkspaceEditParams defined:
10 * The parameters passed via a apply workspace edit request.
11 */
12type ApplyWorkspaceEditParams struct {
13
14	/*Label defined:
15	 * An optional label of the workspace edit. This label is
16	 * presented in the user interface for example on an undo
17	 * stack to undo the workspace edit.
18	 */
19	Label string `json:"label,omitempty"`
20
21	/*Edit defined:
22	 * The edits to apply.
23	 */
24	Edit WorkspaceEdit `json:"edit"`
25}
26
27/*ApplyWorkspaceEditResponse defined:
28 * A response returned from the apply workspace edit request.
29 */
30type ApplyWorkspaceEditResponse struct {
31
32	/*Applied defined:
33	 * Indicates whether the edit was applied or not.
34	 */
35	Applied bool `json:"applied"`
36
37	/*FailureReason defined:
38	 * An optional textual description for why the edit was not applied.
39	 * This may be used by the server for diagnostic logging or to provide
40	 * a suitable error for a request that triggered the edit.
41	 */
42	FailureReason string `json:"failureReason,omitempty"`
43
44	/*FailedChange defined:
45	 * Depending on the client's failure handling strategy `failedChange` might
46	 * contain the index of the change that failed. This property is only available
47	 * if the client signals a `failureHandlingStrategy` in its client capabilities.
48	 */
49	FailedChange float64 `json:"failedChange,omitempty"`
50}
51
52// ClientCapabilities is
53type ClientCapabilities struct {
54
55	/*Workspace defined:
56	 * Workspace specific client capabilities.
57	 */
58	Workspace struct {
59
60		/*ApplyEdit defined:
61		 * The client supports applying batch edits
62		 * to the workspace by supporting the request
63		 * 'workspace/applyEdit'
64		 */
65		ApplyEdit bool `json:"applyEdit,omitempty"`
66
67		/*WorkspaceEdit defined:
68		 * Capabilities specific to `WorkspaceEdit`s
69		 */
70		WorkspaceEdit WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"`
71
72		/*DidChangeConfiguration defined:
73		 * Capabilities specific to the `workspace/didChangeConfiguration` notification.
74		 */
75		DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"`
76
77		/*DidChangeWatchedFiles defined:
78		 * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
79		 */
80		DidChangeWatchedFiles DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"`
81
82		/*Symbol defined:
83		 * Capabilities specific to the `workspace/symbol` request.
84		 */
85		Symbol WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"`
86
87		/*ExecuteCommand defined:
88		 * Capabilities specific to the `workspace/executeCommand` request.
89		 */
90		ExecuteCommand ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"`
91
92		/*WorkspaceFolders defined:
93		 * The client has support for workspace folders
94		 */
95		WorkspaceFolders bool `json:"workspaceFolders,omitempty"`
96
97		/*Configuration defined:
98		* The client supports `workspace/configuration` requests.
99		 */
100		Configuration bool `json:"configuration,omitempty"`
101	} `json:"workspace,omitempty"`
102
103	/*TextDocument defined:
104	 * Text document specific client capabilities.
105	 */
106	TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"`
107
108	/*Window defined:
109	 * Window specific client capabilities.
110	 */
111	Window interface{} `json:"window,omitempty"`
112
113	/*Experimental defined:
114	 * Experimental client capabilities.
115	 */
116	Experimental interface{} `json:"experimental,omitempty"`
117
118	/*DynamicRegistration defined:
119	 * Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
120	 * the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
121	 * capability as well.
122	 */
123	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
124}
125
126/*CodeAction defined:
127 * A code action represents a change that can be performed in code, e.g. to fix a problem or
128 * to refactor code.
129 *
130 * A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.
131 */
132type CodeAction struct {
133
134	/*Title defined:
135	 * A short, human-readable, title for this code action.
136	 */
137	Title string `json:"title"`
138
139	/*Kind defined:
140	 * The kind of the code action.
141	 *
142	 * Used to filter code actions.
143	 */
144	Kind CodeActionKind `json:"kind,omitempty"`
145
146	/*Diagnostics defined:
147	 * The diagnostics that this code action resolves.
148	 */
149	Diagnostics []Diagnostic `json:"diagnostics,omitempty"`
150
151	/*IsPreferred defined:
152	 * Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted
153	 * by keybindings.
154	 *
155	 * A quick fix should be marked preferred if it properly addresses the underlying error.
156	 * A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
157	 *
158	 * @since 3.15.0
159	 */
160	IsPreferred bool `json:"isPreferred,omitempty"`
161
162	/*Edit defined:
163	 * The workspace edit this code action performs.
164	 */
165	Edit *WorkspaceEdit `json:"edit,omitempty"`
166
167	/*Command defined:
168	 * A command this code action executes. If a code action
169	 * provides a edit and a command, first the edit is
170	 * executed and then the command.
171	 */
172	Command *Command `json:"command,omitempty"`
173}
174
175/*CodeActionClientCapabilities defined:
176 * The Client Capabilities of a [CodeActionRequest](#CodeActionRequest).
177 */
178type CodeActionClientCapabilities struct {
179
180	/*DynamicRegistration defined:
181	 * Whether code action supports dynamic registration.
182	 */
183	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
184
185	/*CodeActionLiteralSupport defined:
186	 * The client support code action literals as a valid
187	 * response of the `textDocument/codeAction` request.
188	 *
189	 * @since 3.8.0
190	 */
191	CodeActionLiteralSupport *struct {
192
193		/*CodeActionKind defined:
194		 * The code action kind is support with the following value
195		 * set.
196		 */
197		CodeActionKind struct {
198
199			/*ValueSet defined:
200			 * The code action kind values the client supports. When this
201			 * property exists the client also guarantees that it will
202			 * handle values outside its set gracefully and falls back
203			 * to a default value when unknown.
204			 */
205			ValueSet []CodeActionKind `json:"valueSet"`
206		} `json:"codeActionKind"`
207	} `json:"codeActionLiteralSupport,omitempty"`
208
209	/*IsPreferredSupport defined:
210	 * Whether code action supports the `isPreferred` property.
211	 * @since 3.15.0
212	 */
213	IsPreferredSupport bool `json:"isPreferredSupport,omitempty"`
214}
215
216/*CodeActionContext defined:
217 * Contains additional diagnostic information about the context in which
218 * a [code action](#CodeActionProvider.provideCodeActions) is run.
219 */
220type CodeActionContext struct {
221
222	/*Diagnostics defined:
223	 * An array of diagnostics known on the client side overlapping the range provided to the
224	 * `textDocument/codeAction` request. They are provied so that the server knows which
225	 * errors are currently presented to the user for the given range. There is no guarantee
226	 * that these accurately reflect the error state of the resource. The primary parameter
227	 * to compute code actions is the provided range.
228	 */
229	Diagnostics []Diagnostic `json:"diagnostics"`
230
231	/*Only defined:
232	 * Requested kind of actions to return.
233	 *
234	 * Actions not of this kind are filtered out by the client before being shown. So servers
235	 * can omit computing them.
236	 */
237	Only []CodeActionKind `json:"only,omitempty"`
238}
239
240/*CodeActionOptions defined:
241 * Provider options for a [CodeActionRequest](#CodeActionRequest).
242 */
243type CodeActionOptions struct {
244
245	/*CodeActionKinds defined:
246	 * CodeActionKinds that this server may return.
247	 *
248	 * The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
249	 * may list out every specific kind they provide.
250	 */
251	CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"`
252	WorkDoneProgressOptions
253}
254
255/*CodeActionParams defined:
256 * The parameters of a [CodeActionRequest](#CodeActionRequest).
257 */
258type CodeActionParams struct {
259
260	/*TextDocument defined:
261	 * The document in which the command was invoked.
262	 */
263	TextDocument TextDocumentIdentifier `json:"textDocument"`
264
265	/*Range defined:
266	 * The range for which the command was invoked.
267	 */
268	Range Range `json:"range"`
269
270	/*Context defined:
271	 * Context carrying additional information.
272	 */
273	Context CodeActionContext `json:"context"`
274	WorkDoneProgressParams
275	PartialResultParams
276}
277
278/*CodeActionRegistrationOptions defined:
279 * Registration options for a [CodeActionRequest](#CodeActionRequest).
280 */
281type CodeActionRegistrationOptions struct {
282	TextDocumentRegistrationOptions
283	CodeActionOptions
284}
285
286/*CodeLens defined:
287 * A code lens represents a [command](#Command) that should be shown along with
288 * source text, like the number of references, a way to run tests, etc.
289 *
290 * A code lens is _unresolved_ when no command is associated to it. For performance
291 * reasons the creation of a code lens and resolving should be done to two stages.
292 */
293type CodeLens struct {
294
295	/*Range defined:
296	 * The range in which this code lens is valid. Should only span a single line.
297	 */
298	Range Range `json:"range"`
299
300	/*Command defined:
301	 * The command this code lens represents.
302	 */
303	Command *Command `json:"command,omitempty"`
304
305	/*Data defined:
306	 * An data entry field that is preserved on a code lens item between
307	 * a [CodeLensRequest](#CodeLensRequest) and a [CodeLensResolveRequest]
308	 * (#CodeLensResolveRequest)
309	 */
310	Data interface{} `json:"data,omitempty"`
311}
312
313/*CodeLensClientCapabilities defined:
314 * The client capabilities  of a [CodeLensRequest](#CodeLensRequest).
315 */
316type CodeLensClientCapabilities struct {
317
318	/*DynamicRegistration defined:
319	 * Whether code lens supports dynamic registration.
320	 */
321	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
322}
323
324/*CodeLensOptions defined:
325 * Code Lens provider options of a [CodeLensRequest](#CodeLensRequest).
326 */
327type CodeLensOptions struct {
328
329	/*ResolveProvider defined:
330	 * Code lens has a resolve provider as well.
331	 */
332	ResolveProvider bool `json:"resolveProvider,omitempty"`
333	WorkDoneProgressOptions
334}
335
336/*CodeLensParams defined:
337 * The parameters of a [CodeLensRequest](#CodeLensRequest).
338 */
339type CodeLensParams struct {
340
341	/*TextDocument defined:
342	 * The document to request code lens for.
343	 */
344	TextDocument TextDocumentIdentifier `json:"textDocument"`
345	WorkDoneProgressParams
346	PartialResultParams
347}
348
349/*CodeLensRegistrationOptions defined:
350 * Registration options for a [CodeLensRequest](#CodeLensRequest).
351 */
352type CodeLensRegistrationOptions struct {
353	TextDocumentRegistrationOptions
354	CodeLensOptions
355}
356
357/*Color defined:
358 * Represents a color in RGBA space.
359 */
360type Color struct {
361
362	/*Red defined:
363	 * The red component of this color in the range [0-1].
364	 */
365	Red float64 `json:"red"`
366
367	/*Green defined:
368	 * The green component of this color in the range [0-1].
369	 */
370	Green float64 `json:"green"`
371
372	/*Blue defined:
373	 * The blue component of this color in the range [0-1].
374	 */
375	Blue float64 `json:"blue"`
376
377	/*Alpha defined:
378	 * The alpha component of this color in the range [0-1].
379	 */
380	Alpha float64 `json:"alpha"`
381}
382
383/*ColorInformation defined:
384 * Represents a color range from a document.
385 */
386type ColorInformation struct {
387
388	/*Range defined:
389	 * The range in the document where this color appers.
390	 */
391	Range Range `json:"range"`
392
393	/*Color defined:
394	 * The actual color value for this color range.
395	 */
396	Color Color `json:"color"`
397}
398
399// ColorPresentation is
400type ColorPresentation struct {
401
402	/*Label defined:
403	 * The label of this color presentation. It will be shown on the color
404	 * picker header. By default this is also the text that is inserted when selecting
405	 * this color presentation.
406	 */
407	Label string `json:"label"`
408
409	/*TextEdit defined:
410	 * An [edit](#TextEdit) which is applied to a document when selecting
411	 * this presentation for the color.  When `falsy` the [label](#ColorPresentation.label)
412	 * is used.
413	 */
414	TextEdit *TextEdit `json:"textEdit,omitempty"`
415
416	/*AdditionalTextEdits defined:
417	 * An optional array of additional [text edits](#TextEdit) that are applied when
418	 * selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves.
419	 */
420	AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"`
421}
422
423/*ColorPresentationParams defined:
424 * Parameters for a [ColorPresentationRequest](#ColorPresentationRequest).
425 */
426type ColorPresentationParams struct {
427
428	/*TextDocument defined:
429	 * The text document.
430	 */
431	TextDocument TextDocumentIdentifier `json:"textDocument"`
432
433	/*Color defined:
434	 * The color to request presentations for.
435	 */
436	Color Color `json:"color"`
437
438	/*Range defined:
439	 * The range where the color would be inserted. Serves as a context.
440	 */
441	Range Range `json:"range"`
442	WorkDoneProgressParams
443	PartialResultParams
444}
445
446/*Command defined:
447 * Represents a reference to a command. Provides a title which
448 * will be used to represent a command in the UI and, optionally,
449 * an array of arguments which will be passed to the command handler
450 * function when invoked.
451 */
452type Command struct {
453
454	/*Title defined:
455	 * Title of the command, like `save`.
456	 */
457	Title string `json:"title"`
458
459	/*Command defined:
460	 * The identifier of the actual command handler.
461	 */
462	Command string `json:"command"`
463
464	/*Arguments defined:
465	 * Arguments that the command handler should be
466	 * invoked with.
467	 */
468	Arguments []interface{} `json:"arguments,omitempty"`
469}
470
471/*CompletionClientCapabilities defined:
472 * Completion client capabilities
473 */
474type CompletionClientCapabilities struct {
475
476	/*DynamicRegistration defined:
477	 * Whether completion supports dynamic registration.
478	 */
479	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
480
481	/*CompletionItem defined:
482	 * The client supports the following `CompletionItem` specific
483	 * capabilities.
484	 */
485	CompletionItem *struct {
486
487		/*SnippetSupport defined:
488		 * Client supports snippets as insert text.
489		 *
490		 * A snippet can define tab stops and placeholders with `$1`, `$2`
491		 * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
492		 * the end of the snippet. Placeholders with equal identifiers are linked,
493		 * that is typing in one will update others too.
494		 */
495		SnippetSupport bool `json:"snippetSupport,omitempty"`
496
497		/*CommitCharactersSupport defined:
498		 * Client supports commit characters on a completion item.
499		 */
500		CommitCharactersSupport bool `json:"commitCharactersSupport,omitempty"`
501
502		/*DocumentationFormat defined:
503		 * Client supports the follow content formats for the documentation
504		 * property. The order describes the preferred format of the client.
505		 */
506		DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"`
507
508		/*DeprecatedSupport defined:
509		 * Client supports the deprecated property on a completion item.
510		 */
511		DeprecatedSupport bool `json:"deprecatedSupport,omitempty"`
512
513		/*PreselectSupport defined:
514		 * Client supports the preselect property on a completion item.
515		 */
516		PreselectSupport bool `json:"preselectSupport,omitempty"`
517
518		/*TagSupport defined:
519		 * Client supports the tag property on a completion item. Clients supporting
520		 * tags have to handle unknown tags gracefully. Clients especially need to
521		 * preserve unknown tags when sending a completion item back to the server in
522		 * a resolve call.
523		 *
524		 * @since 3.15.0
525		 */
526		TagSupport *struct {
527
528			/*ValueSet defined:
529			 * The tags supported by the client.
530			 */
531			ValueSet []CompletionItemTag `json:"valueSet"`
532		} `json:"tagSupport,omitempty"`
533	} `json:"completionItem,omitempty"`
534
535	// CompletionItemKind is
536	CompletionItemKind *struct {
537
538		/*ValueSet defined:
539		 * The completion item kind values the client supports. When this
540		 * property exists the client also guarantees that it will
541		 * handle values outside its set gracefully and falls back
542		 * to a default value when unknown.
543		 *
544		 * If this property is not present the client only supports
545		 * the completion items kinds from `Text` to `Reference` as defined in
546		 * the initial version of the protocol.
547		 */
548		ValueSet []CompletionItemKind `json:"valueSet,omitempty"`
549	} `json:"completionItemKind,omitempty"`
550
551	/*ContextSupport defined:
552	 * The client supports to send additional context information for a
553	 * `textDocument/completion` requestion.
554	 */
555	ContextSupport bool `json:"contextSupport,omitempty"`
556}
557
558/*CompletionContext defined:
559 * Contains additional information about the context in which a completion request is triggered.
560 */
561type CompletionContext struct {
562
563	/*TriggerKind defined:
564	 * How the completion was triggered.
565	 */
566	TriggerKind CompletionTriggerKind `json:"triggerKind"`
567
568	/*TriggerCharacter defined:
569	 * The trigger character (a single character) that has trigger code complete.
570	 * Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
571	 */
572	TriggerCharacter string `json:"triggerCharacter,omitempty"`
573}
574
575/*CompletionItem defined:
576 * A completion item represents a text snippet that is
577 * proposed to complete text that is being typed.
578 */
579type CompletionItem struct {
580
581	/*Label defined:
582	 * The label of this completion item. By default
583	 * also the text that is inserted when selecting
584	 * this completion.
585	 */
586	Label string `json:"label"`
587
588	/*Kind defined:
589	 * The kind of this completion item. Based of the kind
590	 * an icon is chosen by the editor.
591	 */
592	Kind CompletionItemKind `json:"kind,omitempty"`
593
594	/*Tags defined:
595	 * Tags for this completion item.
596	 *
597	 * @since 3.15.0
598	 */
599	Tags []CompletionItemTag `json:"tags,omitempty"`
600
601	/*Detail defined:
602	 * A human-readable string with additional information
603	 * about this item, like type or symbol information.
604	 */
605	Detail string `json:"detail,omitempty"`
606
607	/*Documentation defined:
608	 * A human-readable string that represents a doc-comment.
609	 */
610	Documentation string `json:"documentation,omitempty"` // string | MarkupContent
611
612	/*Deprecated defined:
613	 * Indicates if this item is deprecated.
614	 * @deprecated Use `tags` instead.
615	 */
616	Deprecated bool `json:"deprecated,omitempty"`
617
618	/*Preselect defined:
619	 * Select this item when showing.
620	 *
621	 * *Note* that only one completion item can be selected and that the
622	 * tool / client decides which item that is. The rule is that the *first*
623	 * item of those that match best is selected.
624	 */
625	Preselect bool `json:"preselect,omitempty"`
626
627	/*SortText defined:
628	 * A string that should be used when comparing this item
629	 * with other items. When `falsy` the [label](#CompletionItem.label)
630	 * is used.
631	 */
632	SortText string `json:"sortText,omitempty"`
633
634	/*FilterText defined:
635	 * A string that should be used when filtering a set of
636	 * completion items. When `falsy` the [label](#CompletionItem.label)
637	 * is used.
638	 */
639	FilterText string `json:"filterText,omitempty"`
640
641	/*InsertText defined:
642	 * A string that should be inserted into a document when selecting
643	 * this completion. When `falsy` the [label](#CompletionItem.label)
644	 * is used.
645	 *
646	 * The `insertText` is subject to interpretation by the client side.
647	 * Some tools might not take the string literally. For example
648	 * VS Code when code complete is requested in this example `con<cursor position>`
649	 * and a completion item with an `insertText` of `console` is provided it
650	 * will only insert `sole`. Therefore it is recommended to use `textEdit` instead
651	 * since it avoids additional client side interpretation.
652	 */
653	InsertText string `json:"insertText,omitempty"`
654
655	/*InsertTextFormat defined:
656	 * The format of the insert text. The format applies to both the `insertText` property
657	 * and the `newText` property of a provided `textEdit`.
658	 */
659	InsertTextFormat InsertTextFormat `json:"insertTextFormat,omitempty"`
660
661	/*TextEdit defined:
662	 * An [edit](#TextEdit) which is applied to a document when selecting
663	 * this completion. When an edit is provided the value of
664	 * [insertText](#CompletionItem.insertText) is ignored.
665	 *
666	 * *Note:* The text edit's range must be a [single line] and it must contain the position
667	 * at which completion has been requested.
668	 */
669	TextEdit *TextEdit `json:"textEdit,omitempty"`
670
671	/*AdditionalTextEdits defined:
672	 * An optional array of additional [text edits](#TextEdit) that are applied when
673	 * selecting this completion. Edits must not overlap (including the same insert position)
674	 * with the main [edit](#CompletionItem.textEdit) nor with themselves.
675	 *
676	 * Additional text edits should be used to change text unrelated to the current cursor position
677	 * (for example adding an import statement at the top of the file if the completion item will
678	 * insert an unqualified type).
679	 */
680	AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"`
681
682	/*CommitCharacters defined:
683	 * An optional set of characters that when pressed while this completion is active will accept it first and
684	 * then type that character. *Note* that all commit characters should have `length=1` and that superfluous
685	 * characters will be ignored.
686	 */
687	CommitCharacters []string `json:"commitCharacters,omitempty"`
688
689	/*Command defined:
690	 * An optional [command](#Command) that is executed *after* inserting this completion. *Note* that
691	 * additional modifications to the current document should be described with the
692	 * [additionalTextEdits](#CompletionItem.additionalTextEdits)-property.
693	 */
694	Command *Command `json:"command,omitempty"`
695
696	/*Data defined:
697	 * An data entry field that is preserved on a completion item between
698	 * a [CompletionRequest](#CompletionRequest) and a [CompletionResolveRequest]
699	 * (#CompletionResolveRequest)
700	 */
701	Data interface{} `json:"data,omitempty"`
702}
703
704/*CompletionList defined:
705 * Represents a collection of [completion items](#CompletionItem) to be presented
706 * in the editor.
707 */
708type CompletionList struct {
709
710	/*IsIncomplete defined:
711	 * This list it not complete. Further typing results in recomputing this list.
712	 */
713	IsIncomplete bool `json:"isIncomplete"`
714
715	/*Items defined:
716	 * The completion items.
717	 */
718	Items []CompletionItem `json:"items"`
719}
720
721/*CompletionOptions defined:
722 * Completion options.
723 */
724type CompletionOptions struct {
725
726	/*TriggerCharacters defined:
727	 * Most tools trigger completion request automatically without explicitly requesting
728	 * it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
729	 * starts to type an identifier. For example if the user types `c` in a JavaScript file
730	 * code complete will automatically pop up present `console` besides others as a
731	 * completion item. Characters that make up identifiers don't need to be listed here.
732	 *
733	 * If code complete should automatically be trigger on characters not being valid inside
734	 * an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
735	 */
736	TriggerCharacters []string `json:"triggerCharacters,omitempty"`
737
738	/*AllCommitCharacters defined:
739	 * The list of all possible characters that commit a completion. This field can be used
740	 * if clients don't support individual commmit characters per completion item. See
741	 * `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
742	 *
743	 * @since 3.2.0
744	 */
745	AllCommitCharacters []string `json:"allCommitCharacters,omitempty"`
746
747	/*ResolveProvider defined:
748	 * The server provides support to resolve additional
749	 * information for a completion item.
750	 */
751	ResolveProvider bool `json:"resolveProvider,omitempty"`
752	WorkDoneProgressOptions
753}
754
755/*CompletionParams defined:
756 * Completion parameters
757 */
758type CompletionParams struct {
759
760	/*Context defined:
761	 * The completion context. This is only available it the client specifies
762	 * to send this using the client capability `textDocument.completion.contextSupport === true`
763	 */
764	Context *CompletionContext `json:"context,omitempty"`
765	TextDocumentPositionParams
766	WorkDoneProgressParams
767	PartialResultParams
768}
769
770/*CompletionRegistrationOptions defined:
771 * Registration options for a [CompletionRequest](#CompletionRequest).
772 */
773type CompletionRegistrationOptions struct {
774	TextDocumentRegistrationOptions
775	CompletionOptions
776}
777
778// ConfigurationClientCapabilities is
779type ConfigurationClientCapabilities struct {
780
781	/*Workspace defined:
782	 * The workspace client capabilities
783	 */
784	Workspace *struct {
785
786		/*Configuration defined:
787		* The client supports `workspace/configuration` requests.
788		 */
789		Configuration bool `json:"configuration,omitempty"`
790	} `json:"workspace,omitempty"`
791}
792
793// ConfigurationItem is
794type ConfigurationItem struct {
795
796	/*ScopeURI defined:
797	 * The scope to get the configuration section for.
798	 */
799	ScopeURI string `json:"scopeUri,omitempty"`
800
801	/*Section defined:
802	 * The configuration section asked for.
803	 */
804	Section string `json:"section,omitempty"`
805}
806
807/*ConfigurationParams defined:
808 * The parameters of a configuration request.
809 */
810type ConfigurationParams struct {
811
812	// Items is
813	Items []ConfigurationItem `json:"items"`
814}
815
816/*CreateFile defined:
817 * Create file operation.
818 */
819type CreateFile struct {
820
821	/*Kind defined:
822	 * A create
823	 */
824	Kind string `json:"kind"` // 'create'
825
826	/*URI defined:
827	 * The resource to create.
828	 */
829	URI DocumentURI `json:"uri"`
830
831	/*Options defined:
832	 * Additional options
833	 */
834	Options *CreateFileOptions `json:"options,omitempty"`
835}
836
837/*CreateFileOptions defined:
838 * Options to create a file.
839 */
840type CreateFileOptions struct {
841
842	/*Overwrite defined:
843	 * Overwrite existing file. Overwrite wins over `ignoreIfExists`
844	 */
845	Overwrite bool `json:"overwrite,omitempty"`
846
847	/*IgnoreIfExists defined:
848	 * Ignore if exists.
849	 */
850	IgnoreIfExists bool `json:"ignoreIfExists,omitempty"`
851}
852
853/*DeclarationClientCapabilities defined:
854 * Since 3.14.0
855 */
856type DeclarationClientCapabilities struct {
857
858	/*DynamicRegistration defined:
859	 * Whether declaration supports dynamic registration. If this is set to `true`
860	 * the client supports the new `DeclarationRegistrationOptions` return value
861	 * for the corresponding server capability as well.
862	 */
863	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
864
865	/*LinkSupport defined:
866	 * The client supports additional metadata in the form of declaration links.
867	 */
868	LinkSupport bool `json:"linkSupport,omitempty"`
869}
870
871// DeclarationOptions is
872type DeclarationOptions struct {
873	WorkDoneProgressOptions
874}
875
876// DeclarationParams is
877type DeclarationParams struct {
878	TextDocumentPositionParams
879	WorkDoneProgressParams
880	PartialResultParams
881}
882
883// DeclarationRegistrationOptions is
884type DeclarationRegistrationOptions struct {
885	DeclarationOptions
886	TextDocumentRegistrationOptions
887	StaticRegistrationOptions
888}
889
890/*DefinitionClientCapabilities defined:
891 * Client Capabilities for a [DefinitionRequest](#DefinitionRequest).
892 */
893type DefinitionClientCapabilities struct {
894
895	/*DynamicRegistration defined:
896	 * Whether definition supports dynamic registration.
897	 */
898	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
899
900	/*LinkSupport defined:
901	 * The client supports additional metadata in the form of definition links.
902	 *
903	 * @since 3.14.0
904	 */
905	LinkSupport bool `json:"linkSupport,omitempty"`
906}
907
908/*DefinitionOptions defined:
909 * Server Capabilities for a [DefinitionRequest](#DefinitionRequest).
910 */
911type DefinitionOptions struct {
912	WorkDoneProgressOptions
913}
914
915/*DefinitionParams defined:
916 * Parameters for a [DefinitionRequest](#DefinitionRequest).
917 */
918type DefinitionParams struct {
919	TextDocumentPositionParams
920	WorkDoneProgressParams
921	PartialResultParams
922}
923
924/*DefinitionRegistrationOptions defined:
925 * Registration options for a [DefinitionRequest](#DefinitionRequest).
926 */
927type DefinitionRegistrationOptions struct {
928	TextDocumentRegistrationOptions
929	DefinitionOptions
930}
931
932/*DeleteFile defined:
933 * Delete file operation
934 */
935type DeleteFile struct {
936
937	/*Kind defined:
938	 * A delete
939	 */
940	Kind string `json:"kind"` // 'delete'
941
942	/*URI defined:
943	 * The file to delete.
944	 */
945	URI DocumentURI `json:"uri"`
946
947	/*Options defined:
948	 * Delete options.
949	 */
950	Options *DeleteFileOptions `json:"options,omitempty"`
951}
952
953/*DeleteFileOptions defined:
954 * Delete file options
955 */
956type DeleteFileOptions struct {
957
958	/*Recursive defined:
959	 * Delete the content recursively if a folder is denoted.
960	 */
961	Recursive bool `json:"recursive,omitempty"`
962
963	/*IgnoreIfNotExists defined:
964	 * Ignore the operation if the file doesn't exist.
965	 */
966	IgnoreIfNotExists bool `json:"ignoreIfNotExists,omitempty"`
967}
968
969/*Diagnostic defined:
970 * Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
971 * are only valid in the scope of a resource.
972 */
973type Diagnostic struct {
974
975	/*Range defined:
976	 * The range at which the message applies
977	 */
978	Range Range `json:"range"`
979
980	/*Severity defined:
981	 * The diagnostic's severity. Can be omitted. If omitted it is up to the
982	 * client to interpret diagnostics as error, warning, info or hint.
983	 */
984	Severity DiagnosticSeverity `json:"severity,omitempty"`
985
986	/*Code defined:
987	 * The diagnostic's code, which usually appear in the user interface.
988	 */
989	Code interface{} `json:"code,omitempty"` // number | string
990
991	/*Source defined:
992	 * A human-readable string describing the source of this
993	 * diagnostic, e.g. 'typescript' or 'super lint'. It usually
994	 * appears in the user interface.
995	 */
996	Source string `json:"source,omitempty"`
997
998	/*Message defined:
999	 * The diagnostic's message. It usually appears in the user interface
1000	 */
1001	Message string `json:"message"`
1002
1003	/*Tags defined:
1004	 * Additional metadata about the diagnostic.
1005	 */
1006	Tags []DiagnosticTag `json:"tags,omitempty"`
1007
1008	/*RelatedInformation defined:
1009	 * An array of related diagnostic information, e.g. when symbol-names within
1010	 * a scope collide all definitions can be marked via this property.
1011	 */
1012	RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"`
1013}
1014
1015/*DiagnosticRelatedInformation defined:
1016 * Represents a related message and source code location for a diagnostic. This should be
1017 * used to point to code locations that cause or related to a diagnostics, e.g when duplicating
1018 * a symbol in a scope.
1019 */
1020type DiagnosticRelatedInformation struct {
1021
1022	/*Location defined:
1023	 * The location of this related diagnostic information.
1024	 */
1025	Location Location `json:"location"`
1026
1027	/*Message defined:
1028	 * The message of this related diagnostic information.
1029	 */
1030	Message string `json:"message"`
1031}
1032
1033// DidChangeConfigurationClientCapabilities is
1034type DidChangeConfigurationClientCapabilities struct {
1035
1036	/*DynamicRegistration defined:
1037	 * Did change configuration notification supports dynamic registration.
1038	 */
1039	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1040}
1041
1042/*DidChangeConfigurationParams defined:
1043 * The parameters of a change configuration notification.
1044 */
1045type DidChangeConfigurationParams struct {
1046
1047	/*Settings defined:
1048	 * The actual changed settings
1049	 */
1050	Settings interface{} `json:"settings"`
1051}
1052
1053// DidChangeConfigurationRegistrationOptions is
1054type DidChangeConfigurationRegistrationOptions struct {
1055
1056	// Section is
1057	Section string `json:"section,omitempty"` // string | string[]
1058}
1059
1060/*DidChangeTextDocumentParams defined:
1061 * The change text document notification's parameters.
1062 */
1063type DidChangeTextDocumentParams struct {
1064
1065	/*TextDocument defined:
1066	 * The document that did change. The version number points
1067	 * to the version after all provided content changes have
1068	 * been applied.
1069	 */
1070	TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
1071
1072	/*ContentChanges defined:
1073	 * The actual content changes. The content changes describe single state changes
1074	 * to the document. So if there are two content changes c1 and c2 for a document
1075	 * in state S then c1 move the document to S' and c2 to S''.
1076	 */
1077	ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"`
1078}
1079
1080// DidChangeWatchedFilesClientCapabilities is
1081type DidChangeWatchedFilesClientCapabilities struct {
1082
1083	/*DynamicRegistration defined:
1084	 * Did change watched files notification supports dynamic registration. Please note
1085	 * that the current protocol doesn't support static configuration for file changes
1086	 * from the server side.
1087	 */
1088	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1089}
1090
1091/*DidChangeWatchedFilesParams defined:
1092 * The watched files change notification's parameters.
1093 */
1094type DidChangeWatchedFilesParams struct {
1095
1096	/*Changes defined:
1097	 * The actual file events.
1098	 */
1099	Changes []FileEvent `json:"changes"`
1100}
1101
1102/*DidChangeWatchedFilesRegistrationOptions defined:
1103 * Describe options to be used when registered for text document change events.
1104 */
1105type DidChangeWatchedFilesRegistrationOptions struct {
1106
1107	/*Watchers defined:
1108	 * The watchers to register.
1109	 */
1110	Watchers []FileSystemWatcher `json:"watchers"`
1111}
1112
1113/*DidChangeWorkspaceFoldersParams defined:
1114 * The parameters of a `workspace/didChangeWorkspaceFolders` notification.
1115 */
1116type DidChangeWorkspaceFoldersParams struct {
1117
1118	/*Event defined:
1119	 * The actual workspace folder change event.
1120	 */
1121	Event WorkspaceFoldersChangeEvent `json:"event"`
1122}
1123
1124/*DidCloseTextDocumentParams defined:
1125 * The parameters send in a close text document notification
1126 */
1127type DidCloseTextDocumentParams struct {
1128
1129	/*TextDocument defined:
1130	 * The document that was closed.
1131	 */
1132	TextDocument TextDocumentIdentifier `json:"textDocument"`
1133}
1134
1135/*DidOpenTextDocumentParams defined:
1136 * The parameters send in a open text document notification
1137 */
1138type DidOpenTextDocumentParams struct {
1139
1140	/*TextDocument defined:
1141	 * The document that was opened.
1142	 */
1143	TextDocument TextDocumentItem `json:"textDocument"`
1144}
1145
1146/*DidSaveTextDocumentParams defined:
1147 * The parameters send in a save text document notification
1148 */
1149type DidSaveTextDocumentParams struct {
1150
1151	/*TextDocument defined:
1152	 * The document that was closed.
1153	 */
1154	TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
1155
1156	/*Text defined:
1157	 * Optional the content when saved. Depends on the includeText value
1158	 * when the save notification was requested.
1159	 */
1160	Text string `json:"text,omitempty"`
1161}
1162
1163// DocumentColorClientCapabilities is
1164type DocumentColorClientCapabilities struct {
1165
1166	/*DynamicRegistration defined:
1167	 * Whether implementation supports dynamic registration. If this is set to `true`
1168	 * the client supports the new `DocumentColorRegistrationOptions` return value
1169	 * for the corresponding server capability as well.
1170	 */
1171	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1172}
1173
1174// DocumentColorOptions is
1175type DocumentColorOptions struct {
1176
1177	/*ResolveProvider defined:
1178	 * Code lens has a resolve provider as well.
1179	 */
1180	ResolveProvider bool `json:"resolveProvider,omitempty"`
1181	WorkDoneProgressOptions
1182}
1183
1184/*DocumentColorParams defined:
1185 * Parameters for a [DocumentColorRequest](#DocumentColorRequest).
1186 */
1187type DocumentColorParams struct {
1188
1189	/*TextDocument defined:
1190	 * The text document.
1191	 */
1192	TextDocument TextDocumentIdentifier `json:"textDocument"`
1193	WorkDoneProgressParams
1194	PartialResultParams
1195}
1196
1197// DocumentColorRegistrationOptions is
1198type DocumentColorRegistrationOptions struct {
1199	TextDocumentRegistrationOptions
1200	StaticRegistrationOptions
1201	DocumentColorOptions
1202}
1203
1204/*DocumentFormattingClientCapabilities defined:
1205 * Client capabilities of a [DocumentFormattingRequest](#DocumentFormattingRequest).
1206 */
1207type DocumentFormattingClientCapabilities struct {
1208
1209	/*DynamicRegistration defined:
1210	 * Whether formatting supports dynamic registration.
1211	 */
1212	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1213}
1214
1215/*DocumentFormattingOptions defined:
1216 * Provider options for a [DocumentFormattingRequest](#DocumentFormattingRequest).
1217 */
1218type DocumentFormattingOptions struct {
1219	WorkDoneProgressOptions
1220}
1221
1222/*DocumentFormattingParams defined:
1223 * The parameters of a [DocumentFormattingRequest](#DocumentFormattingRequest).
1224 */
1225type DocumentFormattingParams struct {
1226
1227	/*TextDocument defined:
1228	 * The document to format.
1229	 */
1230	TextDocument TextDocumentIdentifier `json:"textDocument"`
1231
1232	/*Options defined:
1233	 * The format options
1234	 */
1235	Options FormattingOptions `json:"options"`
1236	WorkDoneProgressParams
1237}
1238
1239/*DocumentFormattingRegistrationOptions defined:
1240 * Registration options for a [DocumentFormattingRequest](#DocumentFormattingRequest).
1241 */
1242type DocumentFormattingRegistrationOptions struct {
1243	TextDocumentRegistrationOptions
1244	DocumentFormattingOptions
1245}
1246
1247/*DocumentHighlight defined:
1248 * A document highlight is a range inside a text document which deserves
1249 * special attention. Usually a document highlight is visualized by changing
1250 * the background color of its range.
1251 */
1252type DocumentHighlight struct {
1253
1254	/*Range defined:
1255	 * The range this highlight applies to.
1256	 */
1257	Range Range `json:"range"`
1258
1259	/*Kind defined:
1260	 * The highlight kind, default is [text](#DocumentHighlightKind.Text).
1261	 */
1262	Kind *DocumentHighlightKind `json:"kind,omitempty"`
1263}
1264
1265/*DocumentHighlightClientCapabilities defined:
1266 * Client Capabilities for a [DocumentHighlightRequest](#DocumentHighlightRequest).
1267 */
1268type DocumentHighlightClientCapabilities struct {
1269
1270	/*DynamicRegistration defined:
1271	 * Whether document highlight supports dynamic registration.
1272	 */
1273	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1274}
1275
1276/*DocumentHighlightOptions defined:
1277 * Provider options for a [DocumentHighlightRequest](#DocumentHighlightRequest).
1278 */
1279type DocumentHighlightOptions struct {
1280	WorkDoneProgressOptions
1281}
1282
1283/*DocumentHighlightParams defined:
1284 * Parameters for a [DocumentHighlightRequest](#DocumentHighlightRequest).
1285 */
1286type DocumentHighlightParams struct {
1287	TextDocumentPositionParams
1288	WorkDoneProgressParams
1289	PartialResultParams
1290}
1291
1292/*DocumentHighlightRegistrationOptions defined:
1293 * Registration options for a [DocumentHighlightRequest](#DocumentHighlightRequest).
1294 */
1295type DocumentHighlightRegistrationOptions struct {
1296	TextDocumentRegistrationOptions
1297	DocumentHighlightOptions
1298}
1299
1300/*DocumentLink defined:
1301 * A document link is a range in a text document that links to an internal or external resource, like another
1302 * text document or a web site.
1303 */
1304type DocumentLink struct {
1305
1306	/*Range defined:
1307	 * The range this link applies to.
1308	 */
1309	Range Range `json:"range"`
1310
1311	/*Target defined:
1312	 * The uri this link points to.
1313	 */
1314	Target string `json:"target,omitempty"`
1315
1316	/*Tooltip defined:
1317	 * The tooltip text when you hover over this link.
1318	 *
1319	 * If a tooltip is provided, is will be displayed in a string that includes instructions on how to
1320	 * trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS,
1321	 * user settings, and localization.
1322	 *
1323	 * @since 3.15.0
1324	 */
1325	Tooltip string `json:"tooltip,omitempty"`
1326
1327	/*Data defined:
1328	 * A data entry field that is preserved on a document link between a
1329	 * DocumentLinkRequest and a DocumentLinkResolveRequest.
1330	 */
1331	Data interface{} `json:"data,omitempty"`
1332}
1333
1334/*DocumentLinkClientCapabilities defined:
1335 * The client capabilities of a [DocumentLinkRequest](#DocumentLinkRequest).
1336 */
1337type DocumentLinkClientCapabilities struct {
1338
1339	/*DynamicRegistration defined:
1340	 * Whether document link supports dynamic registration.
1341	 */
1342	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1343
1344	/*TooltipSupport defined:
1345	 * Whether the client support the `tooltip` property on `DocumentLink`.
1346	 *
1347	 * @since 3.15.0
1348	 */
1349	TooltipSupport bool `json:"tooltipSupport,omitempty"`
1350}
1351
1352/*DocumentLinkOptions defined:
1353 * Provider options for a [DocumentLinkRequest](#DocumentLinkRequest).
1354 */
1355type DocumentLinkOptions struct {
1356
1357	/*ResolveProvider defined:
1358	 * Document links have a resolve provider as well.
1359	 */
1360	ResolveProvider bool `json:"resolveProvider,omitempty"`
1361	WorkDoneProgressOptions
1362}
1363
1364/*DocumentLinkParams defined:
1365 * The parameters of a [DocumentLinkRequest](#DocumentLinkRequest).
1366 */
1367type DocumentLinkParams struct {
1368
1369	/*TextDocument defined:
1370	 * The document to provide document links for.
1371	 */
1372	TextDocument TextDocumentIdentifier `json:"textDocument"`
1373	WorkDoneProgressParams
1374	PartialResultParams
1375}
1376
1377/*DocumentLinkRegistrationOptions defined:
1378 * Registration options for a [DocumentLinkRequest](#DocumentLinkRequest).
1379 */
1380type DocumentLinkRegistrationOptions struct {
1381	TextDocumentRegistrationOptions
1382	DocumentLinkOptions
1383}
1384
1385/*DocumentOnTypeFormattingClientCapabilities defined:
1386 * Client capabilities of a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest).
1387 */
1388type DocumentOnTypeFormattingClientCapabilities struct {
1389
1390	/*DynamicRegistration defined:
1391	 * Whether on type formatting supports dynamic registration.
1392	 */
1393	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1394}
1395
1396/*DocumentOnTypeFormattingOptions defined:
1397 * Provider options for a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest).
1398 */
1399type DocumentOnTypeFormattingOptions struct {
1400
1401	/*FirstTriggerCharacter defined:
1402	 * A character on which formatting should be triggered, like `}`.
1403	 */
1404	FirstTriggerCharacter string `json:"firstTriggerCharacter"`
1405
1406	/*MoreTriggerCharacter defined:
1407	 * More trigger characters.
1408	 */
1409	MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"`
1410}
1411
1412/*DocumentOnTypeFormattingParams defined:
1413 * The parameters of a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest).
1414 */
1415type DocumentOnTypeFormattingParams struct {
1416
1417	/*TextDocument defined:
1418	 * The document to format.
1419	 */
1420	TextDocument TextDocumentIdentifier `json:"textDocument"`
1421
1422	/*Position defined:
1423	 * The position at which this request was send.
1424	 */
1425	Position Position `json:"position"`
1426
1427	/*Ch defined:
1428	 * The character that has been typed.
1429	 */
1430	Ch string `json:"ch"`
1431
1432	/*Options defined:
1433	 * The format options.
1434	 */
1435	Options FormattingOptions `json:"options"`
1436}
1437
1438/*DocumentOnTypeFormattingRegistrationOptions defined:
1439 * Registration options for a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest).
1440 */
1441type DocumentOnTypeFormattingRegistrationOptions struct {
1442	TextDocumentRegistrationOptions
1443	DocumentOnTypeFormattingOptions
1444}
1445
1446/*DocumentRangeFormattingClientCapabilities defined:
1447 * Client capabilities of a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest).
1448 */
1449type DocumentRangeFormattingClientCapabilities struct {
1450
1451	/*DynamicRegistration defined:
1452	 * Whether range formatting supports dynamic registration.
1453	 */
1454	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1455}
1456
1457/*DocumentRangeFormattingOptions defined:
1458 * Provider options for a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest).
1459 */
1460type DocumentRangeFormattingOptions struct {
1461	WorkDoneProgressOptions
1462}
1463
1464/*DocumentRangeFormattingParams defined:
1465 * The parameters of a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest).
1466 */
1467type DocumentRangeFormattingParams struct {
1468
1469	/*TextDocument defined:
1470	 * The document to format.
1471	 */
1472	TextDocument TextDocumentIdentifier `json:"textDocument"`
1473
1474	/*Range defined:
1475	 * The range to format
1476	 */
1477	Range Range `json:"range"`
1478
1479	/*Options defined:
1480	 * The format options
1481	 */
1482	Options FormattingOptions `json:"options"`
1483	WorkDoneProgressParams
1484}
1485
1486/*DocumentRangeFormattingRegistrationOptions defined:
1487 * Registration options for a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest).
1488 */
1489type DocumentRangeFormattingRegistrationOptions struct {
1490	TextDocumentRegistrationOptions
1491	DocumentRangeFormattingOptions
1492}
1493
1494/*DocumentSymbol defined:
1495 * Represents programming constructs like variables, classes, interfaces etc.
1496 * that appear in a document. Document symbols can be hierarchical and they
1497 * have two ranges: one that encloses its definition and one that points to
1498 * its most interesting range, e.g. the range of an identifier.
1499 */
1500type DocumentSymbol struct {
1501
1502	/*Name defined:
1503	 * The name of this symbol. Will be displayed in the user interface and therefore must not be
1504	 * an empty string or a string only consisting of white spaces.
1505	 */
1506	Name string `json:"name"`
1507
1508	/*Detail defined:
1509	 * More detail for this symbol, e.g the signature of a function.
1510	 */
1511	Detail string `json:"detail,omitempty"`
1512
1513	/*Kind defined:
1514	 * The kind of this symbol.
1515	 */
1516	Kind SymbolKind `json:"kind"`
1517
1518	/*Deprecated defined:
1519	 * Indicates if this symbol is deprecated.
1520	 */
1521	Deprecated bool `json:"deprecated,omitempty"`
1522
1523	/*Range defined:
1524	 * The range enclosing this symbol not including leading/trailing whitespace but everything else
1525	 * like comments. This information is typically used to determine if the the clients cursor is
1526	 * inside the symbol to reveal in the symbol in the UI.
1527	 */
1528	Range Range `json:"range"`
1529
1530	/*SelectionRange defined:
1531	 * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
1532	 * Must be contained by the the `range`.
1533	 */
1534	SelectionRange Range `json:"selectionRange"`
1535
1536	/*Children defined:
1537	 * Children of this symbol, e.g. properties of a class.
1538	 */
1539	Children []DocumentSymbol `json:"children,omitempty"`
1540}
1541
1542/*DocumentSymbolClientCapabilities defined:
1543 * Client Capabilities for a [DocumentSymbolRequest](#DocumentSymbolRequest).
1544 */
1545type DocumentSymbolClientCapabilities struct {
1546
1547	/*DynamicRegistration defined:
1548	 * Whether document symbol supports dynamic registration.
1549	 */
1550	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1551
1552	/*SymbolKind defined:
1553	 * Specific capabilities for the `SymbolKind`.
1554	 */
1555	SymbolKind *struct {
1556
1557		/*ValueSet defined:
1558		 * The symbol kind values the client supports. When this
1559		 * property exists the client also guarantees that it will
1560		 * handle values outside its set gracefully and falls back
1561		 * to a default value when unknown.
1562		 *
1563		 * If this property is not present the client only supports
1564		 * the symbol kinds from `File` to `Array` as defined in
1565		 * the initial version of the protocol.
1566		 */
1567		ValueSet []SymbolKind `json:"valueSet,omitempty"`
1568	} `json:"symbolKind,omitempty"`
1569
1570	/*HierarchicalDocumentSymbolSupport defined:
1571	 * The client support hierarchical document symbols.
1572	 */
1573	HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"`
1574}
1575
1576/*DocumentSymbolOptions defined:
1577 * Provider options for a [DocumentSymbolRequest](#DocumentSymbolRequest).
1578 */
1579type DocumentSymbolOptions struct {
1580	WorkDoneProgressOptions
1581}
1582
1583/*DocumentSymbolParams defined:
1584 * Parameters for a [DocumentSymbolRequest](#DocumentSymbolRequest).
1585 */
1586type DocumentSymbolParams struct {
1587
1588	/*TextDocument defined:
1589	 * The text document.
1590	 */
1591	TextDocument TextDocumentIdentifier `json:"textDocument"`
1592	WorkDoneProgressParams
1593	PartialResultParams
1594}
1595
1596/*DocumentSymbolRegistrationOptions defined:
1597 * Registration options for a [DocumentSymbolRequest](#DocumentSymbolRequest).
1598 */
1599type DocumentSymbolRegistrationOptions struct {
1600	TextDocumentRegistrationOptions
1601	DocumentSymbolOptions
1602}
1603
1604/*ExecuteCommandClientCapabilities defined:
1605 * The client capabilities of a [ExecuteCommandRequest](#ExecuteCommandRequest).
1606 */
1607type ExecuteCommandClientCapabilities struct {
1608
1609	/*DynamicRegistration defined:
1610	 * Execute command supports dynamic registration.
1611	 */
1612	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1613}
1614
1615/*ExecuteCommandOptions defined:
1616 * The server capabilities of a [ExecuteCommandRequest](#ExecuteCommandRequest).
1617 */
1618type ExecuteCommandOptions struct {
1619
1620	/*Commands defined:
1621	 * The commands to be executed on the server
1622	 */
1623	Commands []string `json:"commands"`
1624	WorkDoneProgressOptions
1625}
1626
1627/*ExecuteCommandParams defined:
1628 * The parameters of a [ExecuteCommandRequest](#ExecuteCommandRequest).
1629 */
1630type ExecuteCommandParams struct {
1631
1632	/*Command defined:
1633	 * The identifier of the actual command handler.
1634	 */
1635	Command string `json:"command"`
1636
1637	/*Arguments defined:
1638	 * Arguments that the command should be invoked with.
1639	 */
1640	Arguments []interface{} `json:"arguments,omitempty"`
1641	WorkDoneProgressParams
1642}
1643
1644/*ExecuteCommandRegistrationOptions defined:
1645 * Registration options for a [ExecuteCommandRequest](#ExecuteCommandRequest).
1646 */
1647type ExecuteCommandRegistrationOptions struct {
1648	ExecuteCommandOptions
1649}
1650
1651/*FileEvent defined:
1652 * An event describing a file change.
1653 */
1654type FileEvent struct {
1655
1656	/*URI defined:
1657	 * The file's uri.
1658	 */
1659	URI DocumentURI `json:"uri"`
1660
1661	/*Type defined:
1662	 * The change type.
1663	 */
1664	Type FileChangeType `json:"type"`
1665}
1666
1667// FileSystemWatcher is
1668type FileSystemWatcher struct {
1669
1670	/*GlobPattern defined:
1671	 * The  glob pattern to watch. Glob patterns can have the following syntax:
1672	 * - `*` to match one or more characters in a path segment
1673	 * - `?` to match on one character in a path segment
1674	 * - `**` to match any number of path segments, including none
1675	 * - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
1676	 * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
1677	 * - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
1678	 */
1679	GlobPattern string `json:"globPattern"`
1680
1681	/*Kind defined:
1682	 * The kind of events of interest. If omitted it defaults
1683	 * to WatchKind.Create | WatchKind.Change | WatchKind.Delete
1684	 * which is 7.
1685	 */
1686	Kind float64 `json:"kind,omitempty"`
1687}
1688
1689/*FoldingRange defined:
1690 * Represents a folding range.
1691 */
1692type FoldingRange struct {
1693
1694	/*StartLine defined:
1695	 * The zero-based line number from where the folded range starts.
1696	 */
1697	StartLine float64 `json:"startLine"`
1698
1699	/*StartCharacter defined:
1700	 * The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line.
1701	 */
1702	StartCharacter float64 `json:"startCharacter,omitempty"`
1703
1704	/*EndLine defined:
1705	 * The zero-based line number where the folded range ends.
1706	 */
1707	EndLine float64 `json:"endLine"`
1708
1709	/*EndCharacter defined:
1710	 * The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line.
1711	 */
1712	EndCharacter float64 `json:"endCharacter,omitempty"`
1713
1714	/*Kind defined:
1715	 * Describes the kind of the folding range such as `comment' or 'region'. The kind
1716	 * is used to categorize folding ranges and used by commands like 'Fold all comments'. See
1717	 * [FoldingRangeKind](#FoldingRangeKind) for an enumeration of standardized kinds.
1718	 */
1719	Kind string `json:"kind,omitempty"`
1720}
1721
1722// FoldingRangeClientCapabilities is
1723type FoldingRangeClientCapabilities struct {
1724
1725	/*DynamicRegistration defined:
1726	 * Whether implementation supports dynamic registration for folding range providers. If this is set to `true`
1727	 * the client supports the new `FoldingRangeRegistrationOptions` return value for the corresponding server
1728	 * capability as well.
1729	 */
1730	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1731
1732	/*RangeLimit defined:
1733	 * The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
1734	 * hint, servers are free to follow the limit.
1735	 */
1736	RangeLimit float64 `json:"rangeLimit,omitempty"`
1737
1738	/*LineFoldingOnly defined:
1739	 * If set, the client signals that it only supports folding complete lines. If set, client will
1740	 * ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
1741	 */
1742	LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"`
1743}
1744
1745// FoldingRangeOptions is
1746type FoldingRangeOptions struct {
1747	WorkDoneProgressOptions
1748}
1749
1750/*FoldingRangeParams defined:
1751 * Parameters for a [FoldingRangeRequest](#FoldingRangeRequest).
1752 */
1753type FoldingRangeParams struct {
1754
1755	/*TextDocument defined:
1756	 * The text document.
1757	 */
1758	TextDocument TextDocumentIdentifier `json:"textDocument"`
1759	WorkDoneProgressParams
1760	PartialResultParams
1761}
1762
1763// FoldingRangeRegistrationOptions is
1764type FoldingRangeRegistrationOptions struct {
1765	TextDocumentRegistrationOptions
1766	FoldingRangeOptions
1767	StaticRegistrationOptions
1768}
1769
1770/*FormattingOptions defined:
1771 * Value-object describing what options formatting should use.
1772 */
1773type FormattingOptions struct {
1774
1775	/*TabSize defined:
1776	 * Size of a tab in spaces.
1777	 */
1778	TabSize float64 `json:"tabSize"`
1779
1780	/*InsertSpaces defined:
1781	 * Prefer spaces over tabs.
1782	 */
1783	InsertSpaces bool `json:"insertSpaces"`
1784
1785	/*TrimTrailingWhitespace defined:
1786	 * Trim trailing whitespaces on a line.
1787	 *
1788	 * @since 3.15.0
1789	 */
1790	TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"`
1791
1792	/*InsertFinalNewline defined:
1793	 * Insert a newline character at the end of the file if one does not exist.
1794	 *
1795	 * @since 3.15.0
1796	 */
1797	InsertFinalNewline bool `json:"insertFinalNewline,omitempty"`
1798
1799	/*TrimFinalNewlines defined:
1800	 * Trim all newlines after the final newline at the end of the file.
1801	 *
1802	 * @since 3.15.0
1803	 */
1804	TrimFinalNewlines bool `json:"trimFinalNewlines,omitempty"`
1805
1806	/*Key defined:
1807	 * Signature for further properties.
1808	 */
1809	Key map[string]bool `json:"key"` // [key: string]: boolean | number | string | undefined;
1810}
1811
1812/*Hover defined:
1813 * The result of a hover request.
1814 */
1815type Hover struct {
1816
1817	/*Contents defined:
1818	 * The hover's content
1819	 */
1820	Contents MarkupContent `json:"contents"` // MarkupContent | MarkedString | MarkedString[]
1821
1822	/*Range defined:
1823	 * An optional range
1824	 */
1825	Range *Range `json:"range,omitempty"`
1826}
1827
1828// HoverClientCapabilities is
1829type HoverClientCapabilities struct {
1830
1831	/*DynamicRegistration defined:
1832	 * Whether hover supports dynamic registration.
1833	 */
1834	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1835
1836	/*ContentFormat defined:
1837	 * Client supports the follow content formats for the content
1838	 * property. The order describes the preferred format of the client.
1839	 */
1840	ContentFormat []MarkupKind `json:"contentFormat,omitempty"`
1841}
1842
1843/*HoverOptions defined:
1844 * Hover options.
1845 */
1846type HoverOptions struct {
1847	WorkDoneProgressOptions
1848}
1849
1850/*HoverParams defined:
1851 * Parameters for a [HoverRequest](#HoverRequest).
1852 */
1853type HoverParams struct {
1854	TextDocumentPositionParams
1855	WorkDoneProgressParams
1856}
1857
1858/*HoverRegistrationOptions defined:
1859 * Registration options for a [HoverRequest](#HoverRequest).
1860 */
1861type HoverRegistrationOptions struct {
1862	TextDocumentRegistrationOptions
1863	HoverOptions
1864}
1865
1866/*ImplementationClientCapabilities defined:
1867 * Since 3.6.0
1868 */
1869type ImplementationClientCapabilities struct {
1870
1871	/*DynamicRegistration defined:
1872	 * Whether implementation supports dynamic registration. If this is set to `true`
1873	 * the client supports the new `ImplementationRegistrationOptions` return value
1874	 * for the corresponding server capability as well.
1875	 */
1876	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1877
1878	/*LinkSupport defined:
1879	 * The client supports additional metadata in the form of definition links.
1880	 *
1881	 * Since 3.14.0
1882	 */
1883	LinkSupport bool `json:"linkSupport,omitempty"`
1884}
1885
1886// ImplementationOptions is
1887type ImplementationOptions struct {
1888	WorkDoneProgressOptions
1889}
1890
1891// ImplementationParams is
1892type ImplementationParams struct {
1893	TextDocumentPositionParams
1894	WorkDoneProgressParams
1895	PartialResultParams
1896}
1897
1898// ImplementationRegistrationOptions is
1899type ImplementationRegistrationOptions struct {
1900	TextDocumentRegistrationOptions
1901	ImplementationOptions
1902	StaticRegistrationOptions
1903}
1904
1905// InitializeParams is
1906type InitializeParams struct {
1907
1908	/*ProcessID defined:
1909	 * The process Id of the parent process that started
1910	 * the server.
1911	 */
1912	ProcessID float64 `json:"processId"`
1913
1914	/*ClientInfo defined:
1915	 * Information about the client
1916	 *
1917	 * @since 3.15.0
1918	 */
1919	ClientInfo *struct {
1920
1921		/*Name defined:
1922		 * The name of the client as defined by the client.
1923		 */
1924		Name string `json:"name"`
1925
1926		/*Version defined:
1927		 * The client's version as defined by the client.
1928		 */
1929		Version string `json:"version,omitempty"`
1930	} `json:"clientInfo,omitempty"`
1931
1932	/*RootPath defined:
1933	 * The rootPath of the workspace. Is null
1934	 * if no folder is open.
1935	 *
1936	 * @deprecated in favour of rootUri.
1937	 */
1938	RootPath string `json:"rootPath,omitempty"`
1939
1940	/*RootURI defined:
1941	 * The rootUri of the workspace. Is null if no
1942	 * folder is open. If both `rootPath` and `rootUri` are set
1943	 * `rootUri` wins.
1944	 *
1945	 * @deprecated in favour of workspaceFolders.
1946	 */
1947	RootURI DocumentURI `json:"rootUri"`
1948
1949	/*Capabilities defined:
1950	 * The capabilities provided by the client (editor or tool)
1951	 */
1952	Capabilities ClientCapabilities `json:"capabilities"`
1953
1954	/*InitializationOptions defined:
1955	 * User provided initialization options.
1956	 */
1957	InitializationOptions interface{} `json:"initializationOptions,omitempty"`
1958
1959	/*Trace defined:
1960	 * The initial trace setting. If omitted trace is disabled ('off').
1961	 */
1962	Trace string `json:"trace,omitempty"` // 'off' | 'messages' | 'verbose'
1963
1964	/*WorkspaceFolders defined:
1965	 * The actual configured workspace folders.
1966	 */
1967	WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders"`
1968}
1969
1970/*InitializeResult defined:
1971 * The result returned from an initialize request.
1972 */
1973type InitializeResult struct {
1974
1975	/*Capabilities defined:
1976	 * The capabilities the language server provides.
1977	 */
1978	Capabilities ServerCapabilities `json:"capabilities"`
1979
1980	/*ServerInfo defined:
1981	 * Information about the server.
1982	 *
1983	 * @since 3.15.0
1984	 */
1985	ServerInfo *struct {
1986
1987		/*Name defined:
1988		 * The name of the server as defined by the server.
1989		 */
1990		Name string `json:"name"`
1991
1992		/*Version defined:
1993		 * The servers's version as defined by the server.
1994		 */
1995		Version string `json:"version,omitempty"`
1996	} `json:"serverInfo,omitempty"`
1997
1998	/*Custom defined:
1999	 * Custom initialization results.
2000	 */
2001	Custom map[string]interface{} `json:"custom"` // [custom: string]: any;
2002}
2003
2004// InitializedParams is
2005type InitializedParams struct {
2006}
2007
2008/*InnerClientCapabilities defined:
2009 * Defines the capabilities provided by the client.
2010 */
2011type InnerClientCapabilities struct {
2012
2013	/*Workspace defined:
2014	 * Workspace specific client capabilities.
2015	 */
2016	Workspace *WorkspaceClientCapabilities `json:"workspace,omitempty"`
2017
2018	/*TextDocument defined:
2019	 * Text document specific client capabilities.
2020	 */
2021	TextDocument *TextDocumentClientCapabilities `json:"textDocument,omitempty"`
2022
2023	/*Window defined:
2024	 * Window specific client capabilities.
2025	 */
2026	Window interface{} `json:"window,omitempty"`
2027
2028	/*Experimental defined:
2029	 * Experimental client capabilities.
2030	 */
2031	Experimental interface{} `json:"experimental,omitempty"`
2032}
2033
2034/*InnerInitializeParams defined:
2035 * The initialize parameters
2036 */
2037type InnerInitializeParams struct {
2038
2039	/*ProcessID defined:
2040	 * The process Id of the parent process that started
2041	 * the server.
2042	 */
2043	ProcessID float64 `json:"processId"`
2044
2045	/*ClientInfo defined:
2046	 * Information about the client
2047	 *
2048	 * @since 3.15.0
2049	 */
2050	ClientInfo *struct {
2051
2052		/*Name defined:
2053		 * The name of the client as defined by the client.
2054		 */
2055		Name string `json:"name"`
2056
2057		/*Version defined:
2058		 * The client's version as defined by the client.
2059		 */
2060		Version string `json:"version,omitempty"`
2061	} `json:"clientInfo,omitempty"`
2062
2063	/*RootPath defined:
2064	 * The rootPath of the workspace. Is null
2065	 * if no folder is open.
2066	 *
2067	 * @deprecated in favour of rootUri.
2068	 */
2069	RootPath string `json:"rootPath,omitempty"`
2070
2071	/*RootURI defined:
2072	 * The rootUri of the workspace. Is null if no
2073	 * folder is open. If both `rootPath` and `rootUri` are set
2074	 * `rootUri` wins.
2075	 *
2076	 * @deprecated in favour of workspaceFolders.
2077	 */
2078	RootURI DocumentURI `json:"rootUri"`
2079
2080	/*Capabilities defined:
2081	 * The capabilities provided by the client (editor or tool)
2082	 */
2083	Capabilities ClientCapabilities `json:"capabilities"`
2084
2085	/*InitializationOptions defined:
2086	 * User provided initialization options.
2087	 */
2088	InitializationOptions interface{} `json:"initializationOptions,omitempty"`
2089
2090	/*Trace defined:
2091	 * The initial trace setting. If omitted trace is disabled ('off').
2092	 */
2093	Trace string `json:"trace,omitempty"` // 'off' | 'messages' | 'verbose'
2094	WorkDoneProgressParams
2095}
2096
2097/*InnerServerCapabilities defined:
2098 * Defines the capabilities provided by a language
2099 * server.
2100 */
2101type InnerServerCapabilities struct {
2102
2103	/*TextDocumentSync defined:
2104	 * Defines how text documents are synced. Is either a detailed structure defining each notification or
2105	 * for backwards compatibility the TextDocumentSyncKind number.
2106	 */
2107	TextDocumentSync interface{} `json:"textDocumentSync,omitempty"` // TextDocumentSyncOptions | TextDocumentSyncKind
2108
2109	/*CompletionProvider defined:
2110	 * The server provides completion support.
2111	 */
2112	CompletionProvider *CompletionOptions `json:"completionProvider,omitempty"`
2113
2114	/*HoverProvider defined:
2115	 * The server provides hover support.
2116	 */
2117	HoverProvider bool `json:"hoverProvider,omitempty"` // boolean | HoverOptions
2118
2119	/*SignatureHelpProvider defined:
2120	 * The server provides signature help support.
2121	 */
2122	SignatureHelpProvider *SignatureHelpOptions `json:"signatureHelpProvider,omitempty"`
2123
2124	/*DeclarationProvider defined:
2125	 * The server provides Goto Declaration support.
2126	 */
2127	DeclarationProvider bool `json:"declarationProvider,omitempty"` // boolean | DeclarationOptions | DeclarationRegistrationOptions
2128
2129	/*DefinitionProvider defined:
2130	 * The server provides goto definition support.
2131	 */
2132	DefinitionProvider bool `json:"definitionProvider,omitempty"` // boolean | DefinitionOptions
2133
2134	/*TypeDefinitionProvider defined:
2135	 * The server provides Goto Type Definition support.
2136	 */
2137	TypeDefinitionProvider bool `json:"typeDefinitionProvider,omitempty"` // boolean | TypeDefinitionOptions | TypeDefinitionRegistrationOptions
2138
2139	/*ImplementationProvider defined:
2140	 * The server provides Goto Implementation support.
2141	 */
2142	ImplementationProvider bool `json:"implementationProvider,omitempty"` // boolean | ImplementationOptions | ImplementationRegistrationOptions
2143
2144	/*ReferencesProvider defined:
2145	 * The server provides find references support.
2146	 */
2147	ReferencesProvider bool `json:"referencesProvider,omitempty"` // boolean | ReferenceOptions
2148
2149	/*DocumentHighlightProvider defined:
2150	 * The server provides document highlight support.
2151	 */
2152	DocumentHighlightProvider bool `json:"documentHighlightProvider,omitempty"` // boolean | DocumentHighlightOptions
2153
2154	/*DocumentSymbolProvider defined:
2155	 * The server provides document symbol support.
2156	 */
2157	DocumentSymbolProvider bool `json:"documentSymbolProvider,omitempty"` // boolean | DocumentSymbolOptions
2158
2159	/*CodeActionProvider defined:
2160	 * The server provides code actions. CodeActionOptions may only be
2161	 * specified if the client states that it supports
2162	 * `codeActionLiteralSupport` in its initial `initialize` request.
2163	 */
2164	CodeActionProvider interface{} `json:"codeActionProvider,omitempty"` // boolean | CodeActionOptions
2165
2166	/*CodeLensProvider defined:
2167	 * The server provides code lens.
2168	 */
2169	CodeLensProvider *CodeLensOptions `json:"codeLensProvider,omitempty"`
2170
2171	/*DocumentLinkProvider defined:
2172	 * The server provides document link support.
2173	 */
2174	DocumentLinkProvider *DocumentLinkOptions `json:"documentLinkProvider,omitempty"`
2175
2176	/*ColorProvider defined:
2177	 * The server provides color provider support.
2178	 */
2179	ColorProvider bool `json:"colorProvider,omitempty"` // boolean | DocumentColorOptions | DocumentColorRegistrationOptions
2180
2181	/*WorkspaceSymbolProvider defined:
2182	 * The server provides workspace symbol support.
2183	 */
2184	WorkspaceSymbolProvider bool `json:"workspaceSymbolProvider,omitempty"` // boolean | WorkspaceSymbolOptions
2185
2186	/*DocumentFormattingProvider defined:
2187	 * The server provides document formatting.
2188	 */
2189	DocumentFormattingProvider bool `json:"documentFormattingProvider,omitempty"` // boolean | DocumentFormattingOptions
2190
2191	/*DocumentRangeFormattingProvider defined:
2192	 * The server provides document range formatting.
2193	 */
2194	DocumentRangeFormattingProvider bool `json:"documentRangeFormattingProvider,omitempty"` // boolean | DocumentRangeFormattingOptions
2195
2196	/*DocumentOnTypeFormattingProvider defined:
2197	 * The server provides document formatting on typing.
2198	 */
2199	DocumentOnTypeFormattingProvider *DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"`
2200
2201	/*RenameProvider defined:
2202	 * The server provides rename support. RenameOptions may only be
2203	 * specified if the client states that it supports
2204	 * `prepareSupport` in its initial `initialize` request.
2205	 */
2206	RenameProvider interface{} `json:"renameProvider,omitempty"` // boolean | RenameOptions
2207
2208	/*FoldingRangeProvider defined:
2209	 * The server provides folding provider support.
2210	 */
2211	FoldingRangeProvider bool `json:"foldingRangeProvider,omitempty"` // boolean | FoldingRangeOptions | FoldingRangeRegistrationOptions
2212
2213	/*SelectionRangeProvider defined:
2214	 * The server provides selection range support.
2215	 */
2216	SelectionRangeProvider bool `json:"selectionRangeProvider,omitempty"` // boolean | SelectionRangeOptions | SelectionRangeRegistrationOptions
2217
2218	/*ExecuteCommandProvider defined:
2219	 * The server provides execute command support.
2220	 */
2221	ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"`
2222
2223	/*Experimental defined:
2224	 * Experimental server capabilities.
2225	 */
2226	Experimental interface{} `json:"experimental,omitempty"`
2227}
2228
2229/*Location defined:
2230 * Represents a location inside a resource, such as a line
2231 * inside a text file.
2232 */
2233type Location struct {
2234
2235	// URI is
2236	URI DocumentURI `json:"uri"`
2237
2238	// Range is
2239	Range Range `json:"range"`
2240}
2241
2242/*LocationLink defined:
2243 * Represents the connection of two locations. Provides additional metadata over normal [locations](#Location),
2244 * including an origin range.
2245 */
2246type LocationLink struct {
2247
2248	/*OriginSelectionRange defined:
2249	 * Span of the origin of this link.
2250	 *
2251	 * Used as the underlined span for mouse definition hover. Defaults to the word range at
2252	 * the definition position.
2253	 */
2254	OriginSelectionRange *Range `json:"originSelectionRange,omitempty"`
2255
2256	/*TargetURI defined:
2257	 * The target resource identifier of this link.
2258	 */
2259	TargetURI DocumentURI `json:"targetUri"`
2260
2261	/*TargetRange defined:
2262	 * The full target range of this link. If the target for example is a symbol then target range is the
2263	 * range enclosing this symbol not including leading/trailing whitespace but everything else
2264	 * like comments. This information is typically used to highlight the range in the editor.
2265	 */
2266	TargetRange Range `json:"targetRange"`
2267
2268	/*TargetSelectionRange defined:
2269	 * The range that should be selected and revealed when this link is being followed, e.g the name of a function.
2270	 * Must be contained by the the `targetRange`. See also `DocumentSymbol#range`
2271	 */
2272	TargetSelectionRange Range `json:"targetSelectionRange"`
2273}
2274
2275/*LogMessageParams defined:
2276 * The log message parameters.
2277 */
2278type LogMessageParams struct {
2279
2280	/*Type defined:
2281	 * The message type. See {@link MessageType}
2282	 */
2283	Type MessageType `json:"type"`
2284
2285	/*Message defined:
2286	 * The actual message
2287	 */
2288	Message string `json:"message"`
2289}
2290
2291// LogTraceParams is
2292type LogTraceParams struct {
2293
2294	// Message is
2295	Message string `json:"message"`
2296
2297	// Verbose is
2298	Verbose string `json:"verbose,omitempty"`
2299}
2300
2301/*MarkupContent defined:
2302 * A `MarkupContent` literal represents a string value which content is interpreted base on its
2303 * kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.
2304 *
2305 * If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.
2306 * See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
2307 *
2308 * Here is an example how such a string can be constructed using JavaScript / TypeScript:
2309 * ```ts
2310 * let markdown: MarkdownContent = {
2311 *  kind: MarkupKind.Markdown,
2312 *	value: [
2313 *		'# Header',
2314 *		'Some text',
2315 *		'```typescript',
2316 *		'someCode();',
2317 *		'```'
2318 *	].join('\n')
2319 * };
2320 * ```
2321 *
2322 * *Please Note* that clients might sanitize the return markdown. A client could decide to
2323 * remove HTML from the markdown to avoid script execution.
2324 */
2325type MarkupContent struct {
2326
2327	/*Kind defined:
2328	 * The type of the Markup
2329	 */
2330	Kind MarkupKind `json:"kind"`
2331
2332	/*Value defined:
2333	 * The content itself
2334	 */
2335	Value string `json:"value"`
2336}
2337
2338// MessageActionItem is
2339type MessageActionItem struct {
2340
2341	/*Title defined:
2342	 * A short title like 'Retry', 'Open Log' etc.
2343	 */
2344	Title string `json:"title"`
2345}
2346
2347/*ParameterInformation defined:
2348 * Represents a parameter of a callable-signature. A parameter can
2349 * have a label and a doc-comment.
2350 */
2351type ParameterInformation struct {
2352
2353	/*Label defined:
2354	 * The label of this parameter information.
2355	 *
2356	 * Either a string or an inclusive start and exclusive end offsets within its containing
2357	 * signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
2358	 * string representation as `Position` and `Range` does.
2359	 *
2360	 * *Note*: a label of type string should be a substring of its containing signature label.
2361	 * Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`.
2362	 */
2363	Label string `json:"label"` // string | [number, number]
2364
2365	/*Documentation defined:
2366	 * The human-readable doc-comment of this signature. Will be shown
2367	 * in the UI but can be omitted.
2368	 */
2369	Documentation string `json:"documentation,omitempty"` // string | MarkupContent
2370}
2371
2372// PartialResultParams is
2373type PartialResultParams struct {
2374
2375	/*PartialResultToken defined:
2376	 * An optional token that a server can use to report partial results (e.g. streaming) to
2377	 * the client.
2378	 */
2379	PartialResultToken *ProgressToken `json:"partialResultToken,omitempty"`
2380}
2381
2382/*Position defined:
2383 * Position in a text document expressed as zero-based line and character offset.
2384 * The offsets are based on a UTF-16 string representation. So a string of the form
2385 * `a��b` the character offset of the character `a` is 0, the character offset of `��`
2386 * is 1 and the character offset of b is 3 since `��` is represented using two code
2387 * units in UTF-16.
2388 *
2389 * Positions are line end character agnostic. So you can not specify a position that
2390 * denotes `\r|\n` or `\n|` where `|` represents the character offset.
2391 */
2392type Position struct {
2393
2394	/*Line defined:
2395	 * Line position in a document (zero-based).
2396	 * If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.
2397	 * If a line number is negative, it defaults to 0.
2398	 */
2399	Line float64 `json:"line"`
2400
2401	/*Character defined:
2402	 * Character offset on a line in a document (zero-based). Assuming that the line is
2403	 * represented as a string, the `character` value represents the gap between the
2404	 * `character` and `character + 1`.
2405	 *
2406	 * If the character value is greater than the line length it defaults back to the
2407	 * line length.
2408	 * If a line number is negative, it defaults to 0.
2409	 */
2410	Character float64 `json:"character"`
2411}
2412
2413// PrepareRenameParams is
2414type PrepareRenameParams struct {
2415	TextDocumentPositionParams
2416	WorkDoneProgressParams
2417}
2418
2419// ProgressParams is
2420type ProgressParams struct {
2421
2422	/*Token defined:
2423	 * The progress token provided by the client or server.
2424	 */
2425	Token ProgressToken `json:"token"`
2426
2427	/*Value defined:
2428	 * The progress data.
2429	 */
2430	Value interface{} `json:"value"`
2431}
2432
2433/*PublishDiagnosticsClientCapabilities defined:
2434 * The publish diagnostic client capabilities.
2435 */
2436type PublishDiagnosticsClientCapabilities struct {
2437
2438	/*RelatedInformation defined:
2439	 * Whether the clients accepts diagnostics with related information.
2440	 */
2441	RelatedInformation bool `json:"relatedInformation,omitempty"`
2442
2443	/*TagSupport defined:
2444	 * Client supports the tag property to provide meta data about a diagnostic.
2445	 * Clients supporting tags have to handle unknown tags gracefully.
2446	 *
2447	 * @since 3.15.0
2448	 */
2449	TagSupport *struct {
2450
2451		/*ValueSet defined:
2452		 * The tags supported by the client.
2453		 */
2454		ValueSet []DiagnosticTag `json:"valueSet"`
2455	} `json:"tagSupport,omitempty"`
2456}
2457
2458/*PublishDiagnosticsParams defined:
2459 * The publish diagnostic notification's parameters.
2460 */
2461type PublishDiagnosticsParams struct {
2462
2463	/*URI defined:
2464	 * The URI for which diagnostic information is reported.
2465	 */
2466	URI DocumentURI `json:"uri"`
2467
2468	/*Version defined:
2469	 * Optional the version number of the document the diagnostics are published for.
2470	 *
2471	 * @since 3.15.0
2472	 */
2473	Version float64 `json:"version,omitempty"`
2474
2475	/*Diagnostics defined:
2476	 * An array of diagnostic information items.
2477	 */
2478	Diagnostics []Diagnostic `json:"diagnostics"`
2479}
2480
2481/*Range defined:
2482 * A range in a text document expressed as (zero-based) start and end positions.
2483 *
2484 * If you want to specify a range that contains a line including the line ending
2485 * character(s) then use an end position denoting the start of the next line.
2486 * For example:
2487 * ```ts
2488 * {
2489 *     start: { line: 5, character: 23 }
2490 *     end : { line 6, character : 0 }
2491 * }
2492 * ```
2493 */
2494type Range struct {
2495
2496	/*Start defined:
2497	 * The range's start position
2498	 */
2499	Start Position `json:"start"`
2500
2501	/*End defined:
2502	 * The range's end position.
2503	 */
2504	End Position `json:"end"`
2505}
2506
2507/*ReferenceClientCapabilities defined:
2508 * Client Capabilities for a [ReferencesRequest](#ReferencesRequest).
2509 */
2510type ReferenceClientCapabilities struct {
2511
2512	/*DynamicRegistration defined:
2513	 * Whether references supports dynamic registration.
2514	 */
2515	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2516}
2517
2518/*ReferenceContext defined:
2519 * Value-object that contains additional information when
2520 * requesting references.
2521 */
2522type ReferenceContext struct {
2523
2524	/*IncludeDeclaration defined:
2525	 * Include the declaration of the current symbol.
2526	 */
2527	IncludeDeclaration bool `json:"includeDeclaration"`
2528}
2529
2530/*ReferenceOptions defined:
2531 * Reference options.
2532 */
2533type ReferenceOptions struct {
2534	WorkDoneProgressOptions
2535}
2536
2537/*ReferenceParams defined:
2538 * Parameters for a [ReferencesRequest](#ReferencesRequest).
2539 */
2540type ReferenceParams struct {
2541
2542	// Context is
2543	Context ReferenceContext `json:"context"`
2544	TextDocumentPositionParams
2545	WorkDoneProgressParams
2546	PartialResultParams
2547}
2548
2549/*ReferenceRegistrationOptions defined:
2550 * Registration options for a [ReferencesRequest](#ReferencesRequest).
2551 */
2552type ReferenceRegistrationOptions struct {
2553	TextDocumentRegistrationOptions
2554	ReferenceOptions
2555}
2556
2557/*Registration defined:
2558 * General parameters to to register for an notification or to register a provider.
2559 */
2560type Registration struct {
2561
2562	/*ID defined:
2563	 * The id used to register the request. The id can be used to deregister
2564	 * the request again.
2565	 */
2566	ID string `json:"id"`
2567
2568	/*Method defined:
2569	 * The method to register for.
2570	 */
2571	Method string `json:"method"`
2572
2573	/*RegisterOptions defined:
2574	 * Options necessary for the registration.
2575	 */
2576	RegisterOptions interface{} `json:"registerOptions,omitempty"`
2577}
2578
2579// RegistrationParams is
2580type RegistrationParams struct {
2581
2582	// Registrations is
2583	Registrations []Registration `json:"registrations"`
2584}
2585
2586// RenameClientCapabilities is
2587type RenameClientCapabilities struct {
2588
2589	/*DynamicRegistration defined:
2590	 * Whether rename supports dynamic registration.
2591	 */
2592	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2593
2594	/*PrepareSupport defined:
2595	 * Client supports testing for validity of rename operations
2596	 * before execution.
2597	 *
2598	 * @since version 3.12.0
2599	 */
2600	PrepareSupport bool `json:"prepareSupport,omitempty"`
2601}
2602
2603/*RenameFile defined:
2604 * Rename file operation
2605 */
2606type RenameFile struct {
2607
2608	/*Kind defined:
2609	 * A rename
2610	 */
2611	Kind string `json:"kind"` // 'rename'
2612
2613	/*OldURI defined:
2614	 * The old (existing) location.
2615	 */
2616	OldURI DocumentURI `json:"oldUri"`
2617
2618	/*NewURI defined:
2619	 * The new location.
2620	 */
2621	NewURI DocumentURI `json:"newUri"`
2622
2623	/*Options defined:
2624	 * Rename options.
2625	 */
2626	Options *RenameFileOptions `json:"options,omitempty"`
2627}
2628
2629/*RenameFileOptions defined:
2630 * Rename file options
2631 */
2632type RenameFileOptions struct {
2633
2634	/*Overwrite defined:
2635	 * Overwrite target if existing. Overwrite wins over `ignoreIfExists`
2636	 */
2637	Overwrite bool `json:"overwrite,omitempty"`
2638
2639	/*IgnoreIfExists defined:
2640	 * Ignores if target exists.
2641	 */
2642	IgnoreIfExists bool `json:"ignoreIfExists,omitempty"`
2643}
2644
2645/*RenameOptions defined:
2646 * Provider options for a [RenameRequest](#RenameRequest).
2647 */
2648type RenameOptions struct {
2649
2650	/*PrepareProvider defined:
2651	 * Renames should be checked and tested before being executed.
2652	 *
2653	 * @since version 3.12.0
2654	 */
2655	PrepareProvider bool `json:"prepareProvider,omitempty"`
2656	WorkDoneProgressOptions
2657}
2658
2659/*RenameParams defined:
2660 * The parameters of a [RenameRequest](#RenameRequest).
2661 */
2662type RenameParams struct {
2663
2664	/*TextDocument defined:
2665	 * The document to rename.
2666	 */
2667	TextDocument TextDocumentIdentifier `json:"textDocument"`
2668
2669	/*Position defined:
2670	 * The position at which this request was sent.
2671	 */
2672	Position Position `json:"position"`
2673
2674	/*NewName defined:
2675	 * The new name of the symbol. If the given name is not valid the
2676	 * request must return a [ResponseError](#ResponseError) with an
2677	 * appropriate message set.
2678	 */
2679	NewName string `json:"newName"`
2680	WorkDoneProgressParams
2681}
2682
2683/*RenameRegistrationOptions defined:
2684 * Registration options for a [RenameRequest](#RenameRequest).
2685 */
2686type RenameRegistrationOptions struct {
2687	TextDocumentRegistrationOptions
2688	RenameOptions
2689}
2690
2691// ResourceOperation is
2692type ResourceOperation struct {
2693
2694	// Kind is
2695	Kind string `json:"kind"`
2696}
2697
2698/*SaveOptions defined:
2699 * Save options.
2700 */
2701type SaveOptions struct {
2702
2703	/*IncludeText defined:
2704	 * The client is supposed to include the content on save.
2705	 */
2706	IncludeText bool `json:"includeText,omitempty"`
2707}
2708
2709/*SelectionRange defined:
2710 * A selection range represents a part of a selection hierarchy. A selection range
2711 * may have a parent selection range that contains it.
2712 */
2713type SelectionRange struct {
2714
2715	/*Range defined:
2716	 * The [range](#Range) of this selection range.
2717	 */
2718	Range Range `json:"range"`
2719
2720	/*Parent defined:
2721	 * The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
2722	 */
2723	Parent *SelectionRange `json:"parent,omitempty"`
2724}
2725
2726// SelectionRangeClientCapabilities is
2727type SelectionRangeClientCapabilities struct {
2728
2729	/*DynamicRegistration defined:
2730	 * Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
2731	 * the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
2732	 * capability as well.
2733	 */
2734	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2735}
2736
2737// SelectionRangeOptions is
2738type SelectionRangeOptions struct {
2739	WorkDoneProgressOptions
2740}
2741
2742/*SelectionRangeParams defined:
2743 * A parameter literal used in selection range requests.
2744 */
2745type SelectionRangeParams struct {
2746
2747	/*TextDocument defined:
2748	 * The text document.
2749	 */
2750	TextDocument TextDocumentIdentifier `json:"textDocument"`
2751
2752	/*Positions defined:
2753	 * The positions inside the text document.
2754	 */
2755	Positions []Position `json:"positions"`
2756	WorkDoneProgressParams
2757	PartialResultParams
2758}
2759
2760// SelectionRangeRegistrationOptions is
2761type SelectionRangeRegistrationOptions struct {
2762	SelectionRangeOptions
2763	TextDocumentRegistrationOptions
2764	StaticRegistrationOptions
2765}
2766
2767// ServerCapabilities is
2768type ServerCapabilities struct {
2769
2770	/*TextDocumentSync defined:
2771	 * Defines how text documents are synced. Is either a detailed structure defining each notification or
2772	 * for backwards compatibility the TextDocumentSyncKind number.
2773	 */
2774	TextDocumentSync interface{} `json:"textDocumentSync,omitempty"` // TextDocumentSyncOptions | TextDocumentSyncKind
2775
2776	/*CompletionProvider defined:
2777	 * The server provides completion support.
2778	 */
2779	CompletionProvider *CompletionOptions `json:"completionProvider,omitempty"`
2780
2781	/*HoverProvider defined:
2782	 * The server provides hover support.
2783	 */
2784	HoverProvider bool `json:"hoverProvider,omitempty"` // boolean | HoverOptions
2785
2786	/*SignatureHelpProvider defined:
2787	 * The server provides signature help support.
2788	 */
2789	SignatureHelpProvider *SignatureHelpOptions `json:"signatureHelpProvider,omitempty"`
2790
2791	/*DeclarationProvider defined:
2792	 * The server provides Goto Declaration support.
2793	 */
2794	DeclarationProvider bool `json:"declarationProvider,omitempty"` // boolean | DeclarationOptions | DeclarationRegistrationOptions
2795
2796	/*DefinitionProvider defined:
2797	 * The server provides goto definition support.
2798	 */
2799	DefinitionProvider bool `json:"definitionProvider,omitempty"` // boolean | DefinitionOptions
2800
2801	/*TypeDefinitionProvider defined:
2802	 * The server provides Goto Type Definition support.
2803	 */
2804	TypeDefinitionProvider bool `json:"typeDefinitionProvider,omitempty"` // boolean | TypeDefinitionOptions | TypeDefinitionRegistrationOptions
2805
2806	/*ImplementationProvider defined:
2807	 * The server provides Goto Implementation support.
2808	 */
2809	ImplementationProvider bool `json:"implementationProvider,omitempty"` // boolean | ImplementationOptions | ImplementationRegistrationOptions
2810
2811	/*ReferencesProvider defined:
2812	 * The server provides find references support.
2813	 */
2814	ReferencesProvider bool `json:"referencesProvider,omitempty"` // boolean | ReferenceOptions
2815
2816	/*DocumentHighlightProvider defined:
2817	 * The server provides document highlight support.
2818	 */
2819	DocumentHighlightProvider bool `json:"documentHighlightProvider,omitempty"` // boolean | DocumentHighlightOptions
2820
2821	/*DocumentSymbolProvider defined:
2822	 * The server provides document symbol support.
2823	 */
2824	DocumentSymbolProvider bool `json:"documentSymbolProvider,omitempty"` // boolean | DocumentSymbolOptions
2825
2826	/*CodeActionProvider defined:
2827	 * The server provides code actions. CodeActionOptions may only be
2828	 * specified if the client states that it supports
2829	 * `codeActionLiteralSupport` in its initial `initialize` request.
2830	 */
2831	CodeActionProvider interface{} `json:"codeActionProvider,omitempty"` // boolean | CodeActionOptions
2832
2833	/*CodeLensProvider defined:
2834	 * The server provides code lens.
2835	 */
2836	CodeLensProvider *CodeLensOptions `json:"codeLensProvider,omitempty"`
2837
2838	/*DocumentLinkProvider defined:
2839	 * The server provides document link support.
2840	 */
2841	DocumentLinkProvider *DocumentLinkOptions `json:"documentLinkProvider,omitempty"`
2842
2843	/*ColorProvider defined:
2844	 * The server provides color provider support.
2845	 */
2846	ColorProvider bool `json:"colorProvider,omitempty"` // boolean | DocumentColorOptions | DocumentColorRegistrationOptions
2847
2848	/*WorkspaceSymbolProvider defined:
2849	 * The server provides workspace symbol support.
2850	 */
2851	WorkspaceSymbolProvider bool `json:"workspaceSymbolProvider,omitempty"` // boolean | WorkspaceSymbolOptions
2852
2853	/*DocumentFormattingProvider defined:
2854	 * The server provides document formatting.
2855	 */
2856	DocumentFormattingProvider bool `json:"documentFormattingProvider,omitempty"` // boolean | DocumentFormattingOptions
2857
2858	/*DocumentRangeFormattingProvider defined:
2859	 * The server provides document range formatting.
2860	 */
2861	DocumentRangeFormattingProvider bool `json:"documentRangeFormattingProvider,omitempty"` // boolean | DocumentRangeFormattingOptions
2862
2863	/*DocumentOnTypeFormattingProvider defined:
2864	 * The server provides document formatting on typing.
2865	 */
2866	DocumentOnTypeFormattingProvider *DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"`
2867
2868	/*RenameProvider defined:
2869	 * The server provides rename support. RenameOptions may only be
2870	 * specified if the client states that it supports
2871	 * `prepareSupport` in its initial `initialize` request.
2872	 */
2873	RenameProvider interface{} `json:"renameProvider,omitempty"` // boolean | RenameOptions
2874
2875	/*FoldingRangeProvider defined:
2876	 * The server provides folding provider support.
2877	 */
2878	FoldingRangeProvider bool `json:"foldingRangeProvider,omitempty"` // boolean | FoldingRangeOptions | FoldingRangeRegistrationOptions
2879
2880	/*SelectionRangeProvider defined:
2881	 * The server provides selection range support.
2882	 */
2883	SelectionRangeProvider bool `json:"selectionRangeProvider,omitempty"` // boolean | SelectionRangeOptions | SelectionRangeRegistrationOptions
2884
2885	/*ExecuteCommandProvider defined:
2886	 * The server provides execute command support.
2887	 */
2888	ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"`
2889
2890	/*Experimental defined:
2891	 * Experimental server capabilities.
2892	 */
2893	Experimental interface{} `json:"experimental,omitempty"`
2894
2895	/*Workspace defined:
2896	 * The workspace server capabilities
2897	 */
2898	Workspace *struct {
2899
2900		// WorkspaceFolders is
2901		WorkspaceFolders *struct {
2902
2903			/*Supported defined:
2904			 * The Server has support for workspace folders
2905			 */
2906			Supported bool `json:"supported,omitempty"`
2907
2908			/*ChangeNotifications defined:
2909			 * Whether the server wants to receive workspace folder
2910			 * change notifications.
2911			 *
2912			 * If a strings is provided the string is treated as a ID
2913			 * under which the notification is registed on the client
2914			 * side. The ID can be used to unregister for these events
2915			 * using the `client/unregisterCapability` request.
2916			 */
2917			ChangeNotifications string `json:"changeNotifications,omitempty"` // string | boolean
2918		} `json:"workspaceFolders,omitempty"`
2919	} `json:"workspace,omitempty"`
2920}
2921
2922// SetTraceParams is
2923type SetTraceParams struct {
2924
2925	// Value is
2926	Value TraceValues `json:"value"`
2927}
2928
2929/*ShowMessageParams defined:
2930 * The parameters of a notification message.
2931 */
2932type ShowMessageParams struct {
2933
2934	/*Type defined:
2935	 * The message type. See {@link MessageType}
2936	 */
2937	Type MessageType `json:"type"`
2938
2939	/*Message defined:
2940	 * The actual message
2941	 */
2942	Message string `json:"message"`
2943}
2944
2945// ShowMessageRequestParams is
2946type ShowMessageRequestParams struct {
2947
2948	/*Type defined:
2949	 * The message type. See {@link MessageType}
2950	 */
2951	Type MessageType `json:"type"`
2952
2953	/*Message defined:
2954	 * The actual message
2955	 */
2956	Message string `json:"message"`
2957
2958	/*Actions defined:
2959	 * The message action items to present.
2960	 */
2961	Actions []MessageActionItem `json:"actions,omitempty"`
2962}
2963
2964/*SignatureHelp defined:
2965 * Signature help represents the signature of something
2966 * callable. There can be multiple signature but only one
2967 * active and only one active parameter.
2968 */
2969type SignatureHelp struct {
2970
2971	/*Signatures defined:
2972	 * One or more signatures.
2973	 */
2974	Signatures []SignatureInformation `json:"signatures"`
2975
2976	/*ActiveSignature defined:
2977	 * The active signature. Set to `null` if no
2978	 * signatures exist.
2979	 */
2980	ActiveSignature float64 `json:"activeSignature"`
2981
2982	/*ActiveParameter defined:
2983	 * The active parameter of the active signature. Set to `null`
2984	 * if the active signature has no parameters.
2985	 */
2986	ActiveParameter float64 `json:"activeParameter"`
2987}
2988
2989/*SignatureHelpClientCapabilities defined:
2990 * Client Capabilities for a [SignatureHelpRequest](#SignatureHelpRequest).
2991 */
2992type SignatureHelpClientCapabilities struct {
2993
2994	/*DynamicRegistration defined:
2995	 * Whether signature help supports dynamic registration.
2996	 */
2997	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2998
2999	/*SignatureInformation defined:
3000	 * The client supports the following `SignatureInformation`
3001	 * specific properties.
3002	 */
3003	SignatureInformation *struct {
3004
3005		/*DocumentationFormat defined:
3006		 * Client supports the follow content formats for the documentation
3007		 * property. The order describes the preferred format of the client.
3008		 */
3009		DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"`
3010
3011		/*ParameterInformation defined:
3012		 * Client capabilities specific to parameter information.
3013		 */
3014		ParameterInformation *struct {
3015
3016			/*LabelOffsetSupport defined:
3017			 * The client supports processing label offsets instead of a
3018			 * simple label string.
3019			 *
3020			 * @since 3.14.0
3021			 */
3022			LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"`
3023		} `json:"parameterInformation,omitempty"`
3024	} `json:"signatureInformation,omitempty"`
3025
3026	/*ContextSupport defined:
3027	 * The client supports to send additional context information for a
3028	 * `textDocument/signatureHelp` request. A client that opts into
3029	 * contextSupport will also support the `retriggerCharacters` on
3030	 * `SignatureHelpOptions`.
3031	 *
3032	 * @since 3.15.0
3033	 */
3034	ContextSupport bool `json:"contextSupport,omitempty"`
3035}
3036
3037/*SignatureHelpContext defined:
3038 * Additional information about the context in which a signature help request was triggered.
3039 *
3040 * @since 3.15.0
3041 */
3042type SignatureHelpContext struct {
3043
3044	/*TriggerKind defined:
3045	 * Action that caused signature help to be triggered.
3046	 */
3047	TriggerKind SignatureHelpTriggerKind `json:"triggerKind"`
3048
3049	/*TriggerCharacter defined:
3050	 * Character that caused signature help to be triggered.
3051	 *
3052	 * This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter`
3053	 */
3054	TriggerCharacter string `json:"triggerCharacter,omitempty"`
3055
3056	/*IsRetrigger defined:
3057	 * `true` if signature help was already showing when it was triggered.
3058	 *
3059	 * Retriggers occur when the signature help is already active and can be caused by actions such as
3060	 * typing a trigger character, a cursor move, or document content changes.
3061	 */
3062	IsRetrigger bool `json:"isRetrigger"`
3063
3064	/*ActiveSignatureHelp defined:
3065	 * The currently active `SignatureHelp`.
3066	 *
3067	 * The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
3068	 * the user navigating through available signatures.
3069	 */
3070	ActiveSignatureHelp *SignatureHelp `json:"activeSignatureHelp,omitempty"`
3071}
3072
3073/*SignatureHelpOptions defined:
3074 * Server Capabilities for a [SignatureHelpRequest](#SignatureHelpRequest).
3075 */
3076type SignatureHelpOptions struct {
3077
3078	/*TriggerCharacters defined:
3079	 * List of characters that trigger signature help.
3080	 */
3081	TriggerCharacters []string `json:"triggerCharacters,omitempty"`
3082
3083	/*RetriggerCharacters defined:
3084	 * List of characters that re-trigger signature help.
3085	 *
3086	 * These trigger characters are only active when signature help is already showing. All trigger characters
3087	 * are also counted as re-trigger characters.
3088	 *
3089	 * @since 3.15.0
3090	 */
3091	RetriggerCharacters []string `json:"retriggerCharacters,omitempty"`
3092	WorkDoneProgressOptions
3093}
3094
3095/*SignatureHelpParams defined:
3096 * Parameters for a [SignatureHelpRequest](#SignatureHelpRequest).
3097 */
3098type SignatureHelpParams struct {
3099
3100	/*Context defined:
3101	 * The signature help context. This is only available if the client specifies
3102	 * to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
3103	 *
3104	 * @since 3.15.0
3105	 */
3106	Context *SignatureHelpContext `json:"context,omitempty"`
3107	TextDocumentPositionParams
3108	WorkDoneProgressParams
3109}
3110
3111/*SignatureHelpRegistrationOptions defined:
3112 * Registration options for a [SignatureHelpRequest](#SignatureHelpRequest).
3113 */
3114type SignatureHelpRegistrationOptions struct {
3115	TextDocumentRegistrationOptions
3116	SignatureHelpOptions
3117}
3118
3119/*SignatureInformation defined:
3120 * Represents the signature of something callable. A signature
3121 * can have a label, like a function-name, a doc-comment, and
3122 * a set of parameters.
3123 */
3124type SignatureInformation struct {
3125
3126	/*Label defined:
3127	 * The label of this signature. Will be shown in
3128	 * the UI.
3129	 */
3130	Label string `json:"label"`
3131
3132	/*Documentation defined:
3133	 * The human-readable doc-comment of this signature. Will be shown
3134	 * in the UI but can be omitted.
3135	 */
3136	Documentation string `json:"documentation,omitempty"` // string | MarkupContent
3137
3138	/*Parameters defined:
3139	 * The parameters of this signature.
3140	 */
3141	Parameters []ParameterInformation `json:"parameters,omitempty"`
3142}
3143
3144/*StaticRegistrationOptions defined:
3145 * Static registration options to be returned in the initialize
3146 * request.
3147 */
3148type StaticRegistrationOptions struct {
3149
3150	/*ID defined:
3151	 * The id used to register the request. The id can be used to deregister
3152	 * the request again. See also Registration#id.
3153	 */
3154	ID string `json:"id,omitempty"`
3155}
3156
3157/*SymbolInformation defined:
3158 * Represents information about programming constructs like variables, classes,
3159 * interfaces etc.
3160 */
3161type SymbolInformation struct {
3162
3163	/*Name defined:
3164	 * The name of this symbol.
3165	 */
3166	Name string `json:"name"`
3167
3168	/*Kind defined:
3169	 * The kind of this symbol.
3170	 */
3171	Kind SymbolKind `json:"kind"`
3172
3173	/*Deprecated defined:
3174	 * Indicates if this symbol is deprecated.
3175	 */
3176	Deprecated bool `json:"deprecated,omitempty"`
3177
3178	/*Location defined:
3179	 * The location of this symbol. The location's range is used by a tool
3180	 * to reveal the location in the editor. If the symbol is selected in the
3181	 * tool the range's start information is used to position the cursor. So
3182	 * the range usually spans more than the actual symbol's name and does
3183	 * normally include thinks like visibility modifiers.
3184	 *
3185	 * The range doesn't have to denote a node range in the sense of a abstract
3186	 * syntax tree. It can therefore not be used to re-construct a hierarchy of
3187	 * the symbols.
3188	 */
3189	Location Location `json:"location"`
3190
3191	/*ContainerName defined:
3192	 * The name of the symbol containing this symbol. This information is for
3193	 * user interface purposes (e.g. to render a qualifier in the user interface
3194	 * if necessary). It can't be used to re-infer a hierarchy for the document
3195	 * symbols.
3196	 */
3197	ContainerName string `json:"containerName,omitempty"`
3198}
3199
3200/*TextDocument defined:
3201 * A simple text document. Not to be implemented.
3202 */
3203type TextDocument struct {
3204
3205	/*URI defined:
3206	 * The associated URI for this document. Most documents have the __file__-scheme, indicating that they
3207	 * represent files on disk. However, some documents may have other schemes indicating that they are not
3208	 * available on disk.
3209	 *
3210	 * @readonly
3211	 */
3212	URI DocumentURI `json:"uri"`
3213
3214	/*LanguageID defined:
3215	 * The identifier of the language associated with this document.
3216	 *
3217	 * @readonly
3218	 */
3219	LanguageID string `json:"languageId"`
3220
3221	/*Version defined:
3222	 * The version number of this document (it will increase after each
3223	 * change, including undo/redo).
3224	 *
3225	 * @readonly
3226	 */
3227	Version float64 `json:"version"`
3228
3229	/*LineCount defined:
3230	 * The number of lines in this document.
3231	 *
3232	 * @readonly
3233	 */
3234	LineCount float64 `json:"lineCount"`
3235}
3236
3237/*TextDocumentChangeEvent defined:
3238 * Event to signal changes to a simple text document.
3239 */
3240type TextDocumentChangeEvent struct {
3241
3242	/*Document defined:
3243	 * The document that has changed.
3244	 */
3245	Document TextDocument `json:"document"`
3246}
3247
3248/*TextDocumentChangeRegistrationOptions defined:
3249 * Describe options to be used when registered for text document change events.
3250 */
3251type TextDocumentChangeRegistrationOptions struct {
3252
3253	/*SyncKind defined:
3254	 * How documents are synced to the server.
3255	 */
3256	SyncKind TextDocumentSyncKind `json:"syncKind"`
3257	TextDocumentRegistrationOptions
3258}
3259
3260/*TextDocumentClientCapabilities defined:
3261 * Text document specific client capabilities.
3262 */
3263type TextDocumentClientCapabilities struct {
3264
3265	/*Synchronization defined:
3266	 * Defines which synchronization capabilities the client supports.
3267	 */
3268	Synchronization *TextDocumentSyncClientCapabilities `json:"synchronization,omitempty"`
3269
3270	/*Completion defined:
3271	 * Capabilities specific to the `textDocument/completion`
3272	 */
3273	Completion *CompletionClientCapabilities `json:"completion,omitempty"`
3274
3275	/*Hover defined:
3276	 * Capabilities specific to the `textDocument/hover`
3277	 */
3278	Hover *HoverClientCapabilities `json:"hover,omitempty"`
3279
3280	/*SignatureHelp defined:
3281	 * Capabilities specific to the `textDocument/signatureHelp`
3282	 */
3283	SignatureHelp *SignatureHelpClientCapabilities `json:"signatureHelp,omitempty"`
3284
3285	/*Declaration defined:
3286	 * Capabilities specific to the `textDocument/declaration`
3287	 *
3288	 * @since 3.14.0
3289	 */
3290	Declaration *DeclarationClientCapabilities `json:"declaration,omitempty"`
3291
3292	/*Definition defined:
3293	 * Capabilities specific to the `textDocument/definition`
3294	 */
3295	Definition *DefinitionClientCapabilities `json:"definition,omitempty"`
3296
3297	/*TypeDefinition defined:
3298	 * Capabilities specific to the `textDocument/typeDefinition`
3299	 *
3300	 * @since 3.6.0
3301	 */
3302	TypeDefinition *TypeDefinitionClientCapabilities `json:"typeDefinition,omitempty"`
3303
3304	/*Implementation defined:
3305	 * Capabilities specific to the `textDocument/implementation`
3306	 *
3307	 * @since 3.6.0
3308	 */
3309	Implementation *ImplementationClientCapabilities `json:"implementation,omitempty"`
3310
3311	/*References defined:
3312	 * Capabilities specific to the `textDocument/references`
3313	 */
3314	References *ReferenceClientCapabilities `json:"references,omitempty"`
3315
3316	/*DocumentHighlight defined:
3317	 * Capabilities specific to the `textDocument/documentHighlight`
3318	 */
3319	DocumentHighlight *DocumentHighlightClientCapabilities `json:"documentHighlight,omitempty"`
3320
3321	/*DocumentSymbol defined:
3322	 * Capabilities specific to the `textDocument/documentSymbol`
3323	 */
3324	DocumentSymbol *DocumentSymbolClientCapabilities `json:"documentSymbol,omitempty"`
3325
3326	/*CodeAction defined:
3327	 * Capabilities specific to the `textDocument/codeAction`
3328	 */
3329	CodeAction *CodeActionClientCapabilities `json:"codeAction,omitempty"`
3330
3331	/*CodeLens defined:
3332	 * Capabilities specific to the `textDocument/codeLens`
3333	 */
3334	CodeLens *CodeLensClientCapabilities `json:"codeLens,omitempty"`
3335
3336	/*DocumentLink defined:
3337	 * Capabilities specific to the `textDocument/documentLink`
3338	 */
3339	DocumentLink *DocumentLinkClientCapabilities `json:"documentLink,omitempty"`
3340
3341	/*ColorProvider defined:
3342	 * Capabilities specific to the `textDocument/documentColor`
3343	 */
3344	ColorProvider *DocumentColorClientCapabilities `json:"colorProvider,omitempty"`
3345
3346	/*Formatting defined:
3347	 * Capabilities specific to the `textDocument/formatting`
3348	 */
3349	Formatting *DocumentFormattingClientCapabilities `json:"formatting,omitempty"`
3350
3351	/*RangeFormatting defined:
3352	 * Capabilities specific to the `textDocument/rangeFormatting`
3353	 */
3354	RangeFormatting *DocumentRangeFormattingClientCapabilities `json:"rangeFormatting,omitempty"`
3355
3356	/*OnTypeFormatting defined:
3357	 * Capabilities specific to the `textDocument/onTypeFormatting`
3358	 */
3359	OnTypeFormatting *DocumentOnTypeFormattingClientCapabilities `json:"onTypeFormatting,omitempty"`
3360
3361	/*Rename defined:
3362	 * Capabilities specific to the `textDocument/rename`
3363	 */
3364	Rename *RenameClientCapabilities `json:"rename,omitempty"`
3365
3366	/*FoldingRange defined:
3367	 * Capabilities specific to `textDocument/foldingRange` requests.
3368	 *
3369	 * @since 3.10.0
3370	 */
3371	FoldingRange *FoldingRangeClientCapabilities `json:"foldingRange,omitempty"`
3372
3373	/*SelectionRange defined:
3374	 * Capabilities specific to `textDocument/selectionRange` requests
3375	 *
3376	 * @since 3.15.0
3377	 */
3378	SelectionRange *SelectionRangeClientCapabilities `json:"selectionRange,omitempty"`
3379
3380	/*PublishDiagnostics defined:
3381	 * Capabilities specific to `textDocument/publishDiagnostics`.
3382	 */
3383	PublishDiagnostics *PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"`
3384}
3385
3386/*TextDocumentContentChangeEvent defined:
3387 * An event describing a change to a text document. If range and rangeLength are omitted
3388 * the new text is considered to be the full content of the document.
3389 */
3390type TextDocumentContentChangeEvent struct {
3391
3392	/*Range defined:
3393	 * The range of the document that changed.
3394	 */
3395	Range *Range `json:"range,omitempty"`
3396
3397	/*RangeLength defined:
3398	 * The length of the range that got replaced.
3399	 */
3400	RangeLength float64 `json:"rangeLength,omitempty"`
3401
3402	/*Text defined:
3403	 * The new text of the document.
3404	 */
3405	Text string `json:"text"`
3406}
3407
3408/*TextDocumentEdit defined:
3409 * Describes textual changes on a text document.
3410 */
3411type TextDocumentEdit struct {
3412
3413	/*TextDocument defined:
3414	 * The text document to change.
3415	 */
3416	TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
3417
3418	/*Edits defined:
3419	 * The edits to be applied.
3420	 */
3421	Edits []TextEdit `json:"edits"`
3422}
3423
3424/*TextDocumentIdentifier defined:
3425 * A literal to identify a text document in the client.
3426 */
3427type TextDocumentIdentifier struct {
3428
3429	/*URI defined:
3430	 * The text document's uri.
3431	 */
3432	URI DocumentURI `json:"uri"`
3433}
3434
3435/*TextDocumentItem defined:
3436 * An item to transfer a text document from the client to the
3437 * server.
3438 */
3439type TextDocumentItem struct {
3440
3441	/*URI defined:
3442	 * The text document's uri.
3443	 */
3444	URI DocumentURI `json:"uri"`
3445
3446	/*LanguageID defined:
3447	 * The text document's language identifier
3448	 */
3449	LanguageID string `json:"languageId"`
3450
3451	/*Version defined:
3452	 * The version number of this document (it will increase after each
3453	 * change, including undo/redo).
3454	 */
3455	Version float64 `json:"version"`
3456
3457	/*Text defined:
3458	 * The content of the opened text document.
3459	 */
3460	Text string `json:"text"`
3461}
3462
3463/*TextDocumentPositionParams defined:
3464 * A parameter literal used in requests to pass a text document and a position inside that
3465 * document.
3466 */
3467type TextDocumentPositionParams struct {
3468
3469	/*TextDocument defined:
3470	 * The text document.
3471	 */
3472	TextDocument TextDocumentIdentifier `json:"textDocument"`
3473
3474	/*Position defined:
3475	 * The position inside the text document.
3476	 */
3477	Position Position `json:"position"`
3478}
3479
3480/*TextDocumentRegistrationOptions defined:
3481 * General text document registration options.
3482 */
3483type TextDocumentRegistrationOptions struct {
3484
3485	/*DocumentSelector defined:
3486	 * A document selector to identify the scope of the registration. If set to null
3487	 * the document selector provided on the client side will be used.
3488	 */
3489	DocumentSelector DocumentSelector `json:"documentSelector"`
3490}
3491
3492/*TextDocumentSaveRegistrationOptions defined:
3493 * Save registration options.
3494 */
3495type TextDocumentSaveRegistrationOptions struct {
3496	TextDocumentRegistrationOptions
3497	SaveOptions
3498}
3499
3500// TextDocumentSyncClientCapabilities is
3501type TextDocumentSyncClientCapabilities struct {
3502
3503	/*DynamicRegistration defined:
3504	 * Whether text document synchronization supports dynamic registration.
3505	 */
3506	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
3507
3508	/*WillSave defined:
3509	 * The client supports sending will save notifications.
3510	 */
3511	WillSave bool `json:"willSave,omitempty"`
3512
3513	/*WillSaveWaitUntil defined:
3514	 * The client supports sending a will save request and
3515	 * waits for a response providing text edits which will
3516	 * be applied to the document before it is saved.
3517	 */
3518	WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
3519
3520	/*DidSave defined:
3521	 * The client supports did save notifications.
3522	 */
3523	DidSave bool `json:"didSave,omitempty"`
3524}
3525
3526// TextDocumentSyncOptions is
3527type TextDocumentSyncOptions struct {
3528
3529	/*OpenClose defined:
3530	 * Open and close notifications are sent to the server. If omitted open close notification should not
3531	 * be sent.
3532	 */
3533	OpenClose bool `json:"openClose,omitempty"`
3534
3535	/*Change defined:
3536	 * Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
3537	 * and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None.
3538	 */
3539	Change TextDocumentSyncKind `json:"change,omitempty"`
3540
3541	/*WillSave defined:
3542	 * If present will save notifications are sent to the server. If omitted the notification should not be
3543	 * sent.
3544	 */
3545	WillSave bool `json:"willSave,omitempty"`
3546
3547	/*WillSaveWaitUntil defined:
3548	 * If present will save wait until requests are sent to the server. If omitted the request should not be
3549	 * sent.
3550	 */
3551	WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
3552
3553	/*Save defined:
3554	 * If present save notifications are sent to the server. If omitted the notification should not be
3555	 * sent.
3556	 */
3557	Save *SaveOptions `json:"save,omitempty"`
3558}
3559
3560// TextDocumentWillSaveEvent is
3561type TextDocumentWillSaveEvent struct {
3562
3563	/*Document defined:
3564	 * The document that will be saved
3565	 */
3566	Document TextDocument `json:"document"`
3567
3568	/*Reason defined:
3569	 * The reason why save was triggered.
3570	 */
3571	Reason TextDocumentSaveReason `json:"reason"`
3572}
3573
3574/*TextEdit defined:
3575 * A text edit applicable to a text document.
3576 */
3577type TextEdit struct {
3578
3579	/*Range defined:
3580	 * The range of the text document to be manipulated. To insert
3581	 * text into a document create a range where start === end.
3582	 */
3583	Range Range `json:"range"`
3584
3585	/*NewText defined:
3586	 * The string to be inserted. For delete operations use an
3587	 * empty string.
3588	 */
3589	NewText string `json:"newText"`
3590}
3591
3592/*TextEditChange defined:
3593 * A change to capture text edits for existing resources.
3594 */
3595type TextEditChange struct {
3596}
3597
3598// Tracer is
3599type Tracer struct {
3600}
3601
3602/*TypeDefinitionClientCapabilities defined:
3603 * Since 3.6.0
3604 */
3605type TypeDefinitionClientCapabilities struct {
3606
3607	/*DynamicRegistration defined:
3608	 * Whether implementation supports dynamic registration. If this is set to `true`
3609	 * the client supports the new `TypeDefinitionRegistrationOptions` return value
3610	 * for the corresponding server capability as well.
3611	 */
3612	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
3613
3614	/*LinkSupport defined:
3615	 * The client supports additional metadata in the form of definition links.
3616	 *
3617	 * Since 3.14.0
3618	 */
3619	LinkSupport bool `json:"linkSupport,omitempty"`
3620}
3621
3622// TypeDefinitionOptions is
3623type TypeDefinitionOptions struct {
3624	WorkDoneProgressOptions
3625}
3626
3627// TypeDefinitionParams is
3628type TypeDefinitionParams struct {
3629	TextDocumentPositionParams
3630	WorkDoneProgressParams
3631	PartialResultParams
3632}
3633
3634// TypeDefinitionRegistrationOptions is
3635type TypeDefinitionRegistrationOptions struct {
3636	TextDocumentRegistrationOptions
3637	TypeDefinitionOptions
3638	StaticRegistrationOptions
3639}
3640
3641/*Unregistration defined:
3642 * General parameters to unregister a request or notification.
3643 */
3644type Unregistration struct {
3645
3646	/*ID defined:
3647	 * The id used to unregister the request or notification. Usually an id
3648	 * provided during the register request.
3649	 */
3650	ID string `json:"id"`
3651
3652	/*Method defined:
3653	 * The method to unregister for.
3654	 */
3655	Method string `json:"method"`
3656}
3657
3658// UnregistrationParams is
3659type UnregistrationParams struct {
3660
3661	// Unregisterations is
3662	Unregisterations []Unregistration `json:"unregisterations"`
3663}
3664
3665/*VersionedTextDocumentIdentifier defined:
3666 * An identifier to denote a specific version of a text document.
3667 */
3668type VersionedTextDocumentIdentifier struct {
3669
3670	/*Version defined:
3671	 * The version number of this document. If a versioned text document identifier
3672	 * is sent from the server to the client and the file is not open in the editor
3673	 * (the server has not received an open notification before) the server can send
3674	 * `null` to indicate that the version is unknown and the content on disk is the
3675	 * truth (as speced with document content ownership).
3676	 */
3677	Version float64 `json:"version"`
3678	TextDocumentIdentifier
3679}
3680
3681/*WillSaveTextDocumentParams defined:
3682 * The parameters send in a will save text document notification.
3683 */
3684type WillSaveTextDocumentParams struct {
3685
3686	/*TextDocument defined:
3687	 * The document that will be saved.
3688	 */
3689	TextDocument TextDocumentIdentifier `json:"textDocument"`
3690
3691	/*Reason defined:
3692	 * The 'TextDocumentSaveReason'.
3693	 */
3694	Reason TextDocumentSaveReason `json:"reason"`
3695}
3696
3697// WorkDoneProgressOptions is
3698type WorkDoneProgressOptions struct {
3699
3700	// WorkDoneProgress is
3701	WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
3702}
3703
3704// WorkDoneProgressParams is
3705type WorkDoneProgressParams struct {
3706
3707	/*WorkDoneToken defined:
3708	 * An optional token that a server can use to report work done progress.
3709	 */
3710	WorkDoneToken *ProgressToken `json:"workDoneToken,omitempty"`
3711}
3712
3713/*WorkspaceClientCapabilities defined:
3714 * Workspace specific client capabilities.
3715 */
3716type WorkspaceClientCapabilities struct {
3717
3718	/*ApplyEdit defined:
3719	 * The client supports applying batch edits
3720	 * to the workspace by supporting the request
3721	 * 'workspace/applyEdit'
3722	 */
3723	ApplyEdit bool `json:"applyEdit,omitempty"`
3724
3725	/*WorkspaceEdit defined:
3726	 * Capabilities specific to `WorkspaceEdit`s
3727	 */
3728	WorkspaceEdit *WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"`
3729
3730	/*DidChangeConfiguration defined:
3731	 * Capabilities specific to the `workspace/didChangeConfiguration` notification.
3732	 */
3733	DidChangeConfiguration *DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"`
3734
3735	/*DidChangeWatchedFiles defined:
3736	 * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
3737	 */
3738	DidChangeWatchedFiles *DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"`
3739
3740	/*Symbol defined:
3741	 * Capabilities specific to the `workspace/symbol` request.
3742	 */
3743	Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"`
3744
3745	/*ExecuteCommand defined:
3746	 * Capabilities specific to the `workspace/executeCommand` request.
3747	 */
3748	ExecuteCommand *ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"`
3749}
3750
3751/*WorkspaceEdit defined:
3752 * A workspace edit represents changes to many resources managed in the workspace. The edit
3753 * should either provide `changes` or `documentChanges`. If documentChanges are present
3754 * they are preferred over `changes` if the client can handle versioned document edits.
3755 */
3756type WorkspaceEdit struct {
3757
3758	/*Changes defined:
3759	 * Holds changes to existing resources.
3760	 */
3761	Changes *map[string][]TextEdit `json:"changes,omitempty"` // [uri: string]: TextEdit[];
3762
3763	/*DocumentChanges defined:
3764	 * Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
3765	 * are either an array of `TextDocumentEdit`s to express changes to n different text documents
3766	 * where each text document edit addresses a specific version of a text document. Or it can contain
3767	 * above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
3768	 *
3769	 * Whether a client supports versioned document edits is expressed via
3770	 * `workspace.workspaceEdit.documentChanges` client capability.
3771	 *
3772	 * If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
3773	 * only plain `TextEdit`s using the `changes` property are supported.
3774	 */
3775	DocumentChanges []TextDocumentEdit `json:"documentChanges,omitempty"` // (TextDocumentEdit | CreateFile | RenameFile | DeleteFile)
3776}
3777
3778// WorkspaceEditClientCapabilities is
3779type WorkspaceEditClientCapabilities struct {
3780
3781	/*DocumentChanges defined:
3782	 * The client supports versioned document changes in `WorkspaceEdit`s
3783	 */
3784	DocumentChanges bool `json:"documentChanges,omitempty"`
3785
3786	/*ResourceOperations defined:
3787	 * The resource operations the client supports. Clients should at least
3788	 * support 'create', 'rename' and 'delete' files and folders.
3789	 *
3790	 * @since 3.13.0
3791	 */
3792	ResourceOperations []ResourceOperationKind `json:"resourceOperations,omitempty"`
3793
3794	/*FailureHandling defined:
3795	 * The failure handling strategy of a client if applying the workspace edit
3796	 * fails.
3797	 *
3798	 * @since 3.13.0
3799	 */
3800	FailureHandling FailureHandlingKind `json:"failureHandling,omitempty"`
3801}
3802
3803// WorkspaceFolder is
3804type WorkspaceFolder struct {
3805
3806	/*URI defined:
3807	 * The associated URI for this workspace folder.
3808	 */
3809	URI string `json:"uri"`
3810
3811	/*Name defined:
3812	 * The name of the workspace folder. Used to refer to this
3813	 * workspace folder in thge user interface.
3814	 */
3815	Name string `json:"name"`
3816}
3817
3818/*WorkspaceFoldersChangeEvent defined:
3819 * The workspace folder change event.
3820 */
3821type WorkspaceFoldersChangeEvent struct {
3822
3823	/*Added defined:
3824	 * The array of added workspace folders
3825	 */
3826	Added []WorkspaceFolder `json:"added"`
3827
3828	/*Removed defined:
3829	 * The array of the removed workspace folders
3830	 */
3831	Removed []WorkspaceFolder `json:"removed"`
3832}
3833
3834// WorkspaceFoldersClientCapabilities is
3835type WorkspaceFoldersClientCapabilities struct {
3836
3837	/*Workspace defined:
3838	 * The workspace client capabilities
3839	 */
3840	Workspace *struct {
3841
3842		/*WorkspaceFolders defined:
3843		 * The client has support for workspace folders
3844		 */
3845		WorkspaceFolders bool `json:"workspaceFolders,omitempty"`
3846	} `json:"workspace,omitempty"`
3847}
3848
3849// WorkspaceFoldersInitializeParams is
3850type WorkspaceFoldersInitializeParams struct {
3851
3852	/*WorkspaceFolders defined:
3853	 * The actual configured workspace folders.
3854	 */
3855	WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders"`
3856}
3857
3858// WorkspaceFoldersServerCapabilities is
3859type WorkspaceFoldersServerCapabilities struct {
3860
3861	/*Workspace defined:
3862	 * The workspace server capabilities
3863	 */
3864	Workspace *struct {
3865
3866		// WorkspaceFolders is
3867		WorkspaceFolders *struct {
3868
3869			/*Supported defined:
3870			 * The Server has support for workspace folders
3871			 */
3872			Supported bool `json:"supported,omitempty"`
3873
3874			/*ChangeNotifications defined:
3875			 * Whether the server wants to receive workspace folder
3876			 * change notifications.
3877			 *
3878			 * If a strings is provided the string is treated as a ID
3879			 * under which the notification is registed on the client
3880			 * side. The ID can be used to unregister for these events
3881			 * using the `client/unregisterCapability` request.
3882			 */
3883			ChangeNotifications string `json:"changeNotifications,omitempty"` // string | boolean
3884		} `json:"workspaceFolders,omitempty"`
3885	} `json:"workspace,omitempty"`
3886}
3887
3888/*WorkspaceSymbolClientCapabilities defined:
3889 * Client capabilities for a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest).
3890 */
3891type WorkspaceSymbolClientCapabilities struct {
3892
3893	/*DynamicRegistration defined:
3894	 * Symbol request supports dynamic registration.
3895	 */
3896	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
3897
3898	/*SymbolKind defined:
3899	 * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
3900	 */
3901	SymbolKind *struct {
3902
3903		/*ValueSet defined:
3904		 * The symbol kind values the client supports. When this
3905		 * property exists the client also guarantees that it will
3906		 * handle values outside its set gracefully and falls back
3907		 * to a default value when unknown.
3908		 *
3909		 * If this property is not present the client only supports
3910		 * the symbol kinds from `File` to `Array` as defined in
3911		 * the initial version of the protocol.
3912		 */
3913		ValueSet []SymbolKind `json:"valueSet,omitempty"`
3914	} `json:"symbolKind,omitempty"`
3915}
3916
3917/*WorkspaceSymbolOptions defined:
3918 * Server capabilities for a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest).
3919 */
3920type WorkspaceSymbolOptions struct {
3921	WorkDoneProgressOptions
3922}
3923
3924/*WorkspaceSymbolParams defined:
3925 * The parameters of a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest).
3926 */
3927type WorkspaceSymbolParams struct {
3928
3929	/*Query defined:
3930	 * A query string to filter symbols by. Clients may send an empty
3931	 * string here to request all symbols.
3932	 */
3933	Query string `json:"query"`
3934	WorkDoneProgressParams
3935	PartialResultParams
3936}
3937
3938/*WorkspaceSymbolRegistrationOptions defined:
3939 * Registration options for a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest).
3940 */
3941type WorkspaceSymbolRegistrationOptions struct {
3942	WorkspaceSymbolOptions
3943}
3944
3945// FoldingRangeKind defines constants
3946type FoldingRangeKind string
3947
3948// ResourceOperationKind defines constants
3949type ResourceOperationKind string
3950
3951// FailureHandlingKind defines constants
3952type FailureHandlingKind string
3953
3954// InitializeError defines constants
3955type InitializeError float64
3956
3957// MessageType defines constants
3958type MessageType float64
3959
3960// TextDocumentSyncKind defines constants
3961type TextDocumentSyncKind float64
3962
3963// FileChangeType defines constants
3964type FileChangeType float64
3965
3966// WatchKind defines constants
3967type WatchKind float64
3968
3969// CompletionTriggerKind defines constants
3970type CompletionTriggerKind float64
3971
3972// SignatureHelpTriggerKind defines constants
3973type SignatureHelpTriggerKind float64
3974
3975// DiagnosticSeverity defines constants
3976type DiagnosticSeverity float64
3977
3978// DiagnosticTag defines constants
3979type DiagnosticTag float64
3980
3981// MarkupKind defines constants
3982type MarkupKind string
3983
3984// CompletionItemKind defines constants
3985type CompletionItemKind float64
3986
3987// InsertTextFormat defines constants
3988type InsertTextFormat float64
3989
3990// CompletionItemTag defines constants
3991type CompletionItemTag float64
3992
3993// DocumentHighlightKind defines constants
3994type DocumentHighlightKind float64
3995
3996// SymbolKind defines constants
3997type SymbolKind float64
3998
3999// CodeActionKind defines constants
4000type CodeActionKind string
4001
4002// TextDocumentSaveReason defines constants
4003type TextDocumentSaveReason float64
4004
4005// ErrorCodes defines constants
4006type ErrorCodes float64
4007
4008// Touch defines constants
4009type Touch float64
4010
4011// Trace defines constants
4012type Trace string
4013
4014// TraceFormat defines constants
4015type TraceFormat string
4016
4017// ConnectionErrors defines constants
4018type ConnectionErrors float64
4019
4020// ConnectionState defines constants
4021type ConnectionState float64
4022
4023const (
4024
4025	/*Comment defined:
4026	 * Folding range for a comment
4027	 */
4028	Comment FoldingRangeKind = "comment"
4029
4030	/*Imports defined:
4031	 * Folding range for a imports or includes
4032	 */
4033	Imports FoldingRangeKind = "imports"
4034
4035	/*Region defined:
4036	 * Folding range for a region (e.g. `#region`)
4037	 */
4038	Region FoldingRangeKind = "region"
4039
4040	/*Create defined:
4041	 * Supports creating new files and folders.
4042	 */
4043	Create ResourceOperationKind = "create"
4044
4045	/*Rename defined:
4046	 * Supports renaming existing files and folders.
4047	 */
4048	Rename ResourceOperationKind = "rename"
4049
4050	/*Delete defined:
4051	 * Supports deleting existing files and folders.
4052	 */
4053	Delete ResourceOperationKind = "delete"
4054
4055	/*Abort defined:
4056	 * Applying the workspace change is simply aborted if one of the changes provided
4057	 * fails. All operations executed before the failing operation stay executed.
4058	 */
4059	Abort FailureHandlingKind = "abort"
4060
4061	/*Transactional defined:
4062	 * All operations are executed transactional. That means they either all
4063	 * succeed or no changes at all are applied to the workspace.
4064	 */
4065	Transactional FailureHandlingKind = "transactional"
4066
4067	/*TextOnlyTransactional defined:
4068	 * If the workspace edit contains only textual file changes they are executed transactional.
4069	 * If resource changes (create, rename or delete file) are part of the change the failure
4070	 * handling startegy is abort.
4071	 */
4072	TextOnlyTransactional FailureHandlingKind = "textOnlyTransactional"
4073
4074	/*Undo defined:
4075	 * The client tries to undo the operations already executed. But there is no
4076	 * guaruntee that this is succeeding.
4077	 */
4078	Undo FailureHandlingKind = "undo"
4079
4080	/*UnknownProtocolVersion defined:
4081	 * If the protocol version provided by the client can't be handled by the server.
4082	 * @deprecated This initialize error got replaced by client capabilities. There is
4083	 * no version handshake in version 3.0x
4084	 */
4085	UnknownProtocolVersion InitializeError = 1
4086
4087	/*Error defined:
4088	 * An error message.
4089	 */
4090	Error MessageType = 1
4091
4092	/*Warning defined:
4093	 * A warning message.
4094	 */
4095	Warning MessageType = 2
4096
4097	/*Info defined:
4098	 * An information message.
4099	 */
4100	Info MessageType = 3
4101
4102	/*Log defined:
4103	 * A log message.
4104	 */
4105	Log MessageType = 4
4106
4107	/*None defined:
4108	 * Documents should not be synced at all.
4109	 */
4110	None TextDocumentSyncKind = 0
4111
4112	/*Full defined:
4113	 * Documents are synced by always sending the full content
4114	 * of the document.
4115	 */
4116	Full TextDocumentSyncKind = 1
4117
4118	/*Incremental defined:
4119	 * Documents are synced by sending the full content on open.
4120	 * After that only incremental updates to the document are
4121	 * send.
4122	 */
4123	Incremental TextDocumentSyncKind = 2
4124
4125	/*Created defined:
4126	 * The file got created.
4127	 */
4128	Created FileChangeType = 1
4129
4130	/*Changed defined:
4131	 * The file got changed.
4132	 */
4133	Changed FileChangeType = 2
4134
4135	/*Deleted defined:
4136	 * The file got deleted.
4137	 */
4138	Deleted FileChangeType = 3
4139
4140	/*WatchCreate defined:
4141	 * Interested in create events.
4142	 */
4143	WatchCreate WatchKind = 1
4144
4145	/*WatchChange defined:
4146	 * Interested in change events
4147	 */
4148	WatchChange WatchKind = 2
4149
4150	/*WatchDelete defined:
4151	 * Interested in delete events
4152	 */
4153	WatchDelete WatchKind = 4
4154
4155	/*Invoked defined:
4156	 * Completion was triggered by typing an identifier (24x7 code
4157	 * complete), manual invocation (e.g Ctrl+Space) or via API.
4158	 */
4159	Invoked CompletionTriggerKind = 1
4160
4161	/*TriggerCharacter defined:
4162	 * Completion was triggered by a trigger character specified by
4163	 * the `triggerCharacters` properties of the `CompletionRegistrationOptions`.
4164	 */
4165	TriggerCharacter CompletionTriggerKind = 2
4166
4167	/*TriggerForIncompleteCompletions defined:
4168	 * Completion was re-triggered as current completion list is incomplete
4169	 */
4170	TriggerForIncompleteCompletions CompletionTriggerKind = 3
4171
4172	/*ContentChange defined:
4173	 * Signature help was triggered by the cursor moving or by the document content changing.
4174	 */
4175	ContentChange SignatureHelpTriggerKind = 3
4176
4177	/*SeverityError defined:
4178	 * Reports an error.
4179	 */
4180	SeverityError DiagnosticSeverity = 1
4181
4182	/*SeverityWarning defined:
4183	 * Reports a warning.
4184	 */
4185	SeverityWarning DiagnosticSeverity = 2
4186
4187	/*SeverityInformation defined:
4188	 * Reports an information.
4189	 */
4190	SeverityInformation DiagnosticSeverity = 3
4191
4192	/*SeverityHint defined:
4193	 * Reports a hint.
4194	 */
4195	SeverityHint DiagnosticSeverity = 4
4196
4197	/*Unnecessary defined:
4198	 * Unused or unnecessary code.
4199	 *
4200	 * Clients are allowed to render diagnostics with this tag faded out instead of having
4201	 * an error squiggle.
4202	 */
4203	Unnecessary DiagnosticTag = 1
4204
4205	/*Deprecated defined:
4206	 * Deprecated or obsolete code.
4207	 *
4208	 * Clients are allowed to rendered diagnostics with this tag strike through.
4209	 */
4210	Deprecated DiagnosticTag = 2
4211
4212	/*PlainText defined:
4213	 * Plain text is supported as a content format
4214	 */
4215	PlainText MarkupKind = "plaintext"
4216
4217	/*Markdown defined:
4218	 * Markdown is supported as a content format
4219	 */
4220	Markdown MarkupKind = "markdown"
4221
4222	// TextCompletion is
4223	TextCompletion CompletionItemKind = 1
4224
4225	// MethodCompletion is
4226	MethodCompletion CompletionItemKind = 2
4227
4228	// FunctionCompletion is
4229	FunctionCompletion CompletionItemKind = 3
4230
4231	// ConstructorCompletion is
4232	ConstructorCompletion CompletionItemKind = 4
4233
4234	// FieldCompletion is
4235	FieldCompletion CompletionItemKind = 5
4236
4237	// VariableCompletion is
4238	VariableCompletion CompletionItemKind = 6
4239
4240	// ClassCompletion is
4241	ClassCompletion CompletionItemKind = 7
4242
4243	// InterfaceCompletion is
4244	InterfaceCompletion CompletionItemKind = 8
4245
4246	// ModuleCompletion is
4247	ModuleCompletion CompletionItemKind = 9
4248
4249	// PropertyCompletion is
4250	PropertyCompletion CompletionItemKind = 10
4251
4252	// UnitCompletion is
4253	UnitCompletion CompletionItemKind = 11
4254
4255	// ValueCompletion is
4256	ValueCompletion CompletionItemKind = 12
4257
4258	// EnumCompletion is
4259	EnumCompletion CompletionItemKind = 13
4260
4261	// KeywordCompletion is
4262	KeywordCompletion CompletionItemKind = 14
4263
4264	// SnippetCompletion is
4265	SnippetCompletion CompletionItemKind = 15
4266
4267	// ColorCompletion is
4268	ColorCompletion CompletionItemKind = 16
4269
4270	// FileCompletion is
4271	FileCompletion CompletionItemKind = 17
4272
4273	// ReferenceCompletion is
4274	ReferenceCompletion CompletionItemKind = 18
4275
4276	// FolderCompletion is
4277	FolderCompletion CompletionItemKind = 19
4278
4279	// EnumMemberCompletion is
4280	EnumMemberCompletion CompletionItemKind = 20
4281
4282	// ConstantCompletion is
4283	ConstantCompletion CompletionItemKind = 21
4284
4285	// StructCompletion is
4286	StructCompletion CompletionItemKind = 22
4287
4288	// EventCompletion is
4289	EventCompletion CompletionItemKind = 23
4290
4291	// OperatorCompletion is
4292	OperatorCompletion CompletionItemKind = 24
4293
4294	// TypeParameterCompletion is
4295	TypeParameterCompletion CompletionItemKind = 25
4296
4297	/*PlainTextTextFormat defined:
4298	 * The primary text to be inserted is treated as a plain string.
4299	 */
4300	PlainTextTextFormat InsertTextFormat = 1
4301
4302	/*SnippetTextFormat defined:
4303	 * The primary text to be inserted is treated as a snippet.
4304	 *
4305	 * A snippet can define tab stops and placeholders with `$1`, `$2`
4306	 * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
4307	 * the end of the snippet. Placeholders with equal identifiers are linked,
4308	 * that is typing in one will update others too.
4309	 *
4310	 * See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md
4311	 */
4312	SnippetTextFormat InsertTextFormat = 2
4313
4314	/*Text defined:
4315	 * A textual occurrence.
4316	 */
4317	Text DocumentHighlightKind = 1
4318
4319	/*Read defined:
4320	 * Read-access of a symbol, like reading a variable.
4321	 */
4322	Read DocumentHighlightKind = 2
4323
4324	/*Write defined:
4325	 * Write-access of a symbol, like writing to a variable.
4326	 */
4327	Write DocumentHighlightKind = 3
4328
4329	// File is
4330	File SymbolKind = 1
4331
4332	// Module is
4333	Module SymbolKind = 2
4334
4335	// Namespace is
4336	Namespace SymbolKind = 3
4337
4338	// Package is
4339	Package SymbolKind = 4
4340
4341	// Class is
4342	Class SymbolKind = 5
4343
4344	// Method is
4345	Method SymbolKind = 6
4346
4347	// Property is
4348	Property SymbolKind = 7
4349
4350	// Field is
4351	Field SymbolKind = 8
4352
4353	// Constructor is
4354	Constructor SymbolKind = 9
4355
4356	// Enum is
4357	Enum SymbolKind = 10
4358
4359	// Interface is
4360	Interface SymbolKind = 11
4361
4362	// Function is
4363	Function SymbolKind = 12
4364
4365	// Variable is
4366	Variable SymbolKind = 13
4367
4368	// Constant is
4369	Constant SymbolKind = 14
4370
4371	// String is
4372	String SymbolKind = 15
4373
4374	// Number is
4375	Number SymbolKind = 16
4376
4377	// Boolean is
4378	Boolean SymbolKind = 17
4379
4380	// Array is
4381	Array SymbolKind = 18
4382
4383	// Object is
4384	Object SymbolKind = 19
4385
4386	// Key is
4387	Key SymbolKind = 20
4388
4389	// Null is
4390	Null SymbolKind = 21
4391
4392	// EnumMember is
4393	EnumMember SymbolKind = 22
4394
4395	// Struct is
4396	Struct SymbolKind = 23
4397
4398	// Event is
4399	Event SymbolKind = 24
4400
4401	// Operator is
4402	Operator SymbolKind = 25
4403
4404	// TypeParameter is
4405	TypeParameter SymbolKind = 26
4406
4407	/*Empty defined:
4408	 * Empty kind.
4409	 */
4410	Empty CodeActionKind = ""
4411
4412	/*QuickFix defined:
4413	 * Base kind for quickfix actions: 'quickfix'
4414	 */
4415	QuickFix CodeActionKind = "quickfix"
4416
4417	/*Refactor defined:
4418	 * Base kind for refactoring actions: 'refactor'
4419	 */
4420	Refactor CodeActionKind = "refactor"
4421
4422	/*RefactorExtract defined:
4423	 * Base kind for refactoring extraction actions: 'refactor.extract'
4424	 *
4425	 * Example extract actions:
4426	 *
4427	 * - Extract method
4428	 * - Extract function
4429	 * - Extract variable
4430	 * - Extract interface from class
4431	 * - ...
4432	 */
4433	RefactorExtract CodeActionKind = "refactor.extract"
4434
4435	/*RefactorInline defined:
4436	 * Base kind for refactoring inline actions: 'refactor.inline'
4437	 *
4438	 * Example inline actions:
4439	 *
4440	 * - Inline function
4441	 * - Inline variable
4442	 * - Inline constant
4443	 * - ...
4444	 */
4445	RefactorInline CodeActionKind = "refactor.inline"
4446
4447	/*RefactorRewrite defined:
4448	 * Base kind for refactoring rewrite actions: 'refactor.rewrite'
4449	 *
4450	 * Example rewrite actions:
4451	 *
4452	 * - Convert JavaScript function to class
4453	 * - Add or remove parameter
4454	 * - Encapsulate field
4455	 * - Make method static
4456	 * - Move method to base class
4457	 * - ...
4458	 */
4459	RefactorRewrite CodeActionKind = "refactor.rewrite"
4460
4461	/*Source defined:
4462	 * Base kind for source actions: `source`
4463	 *
4464	 * Source code actions apply to the entire file.
4465	 */
4466	Source CodeActionKind = "source"
4467
4468	/*SourceOrganizeImports defined:
4469	 * Base kind for an organize imports source action: `source.organizeImports`
4470	 */
4471	SourceOrganizeImports CodeActionKind = "source.organizeImports"
4472
4473	/*Manual defined:
4474	 * Manually triggered, e.g. by the user pressing save, by starting debugging,
4475	 * or by an API call.
4476	 */
4477	Manual TextDocumentSaveReason = 1
4478
4479	/*AfterDelay defined:
4480	 * Automatic after a delay.
4481	 */
4482	AfterDelay TextDocumentSaveReason = 2
4483
4484	/*FocusOut defined:
4485	 * When the editor lost focus.
4486	 */
4487	FocusOut TextDocumentSaveReason = 3
4488
4489	// MessageWriteError is
4490	MessageWriteError ErrorCodes = 1
4491
4492	// MessageReadError is
4493	MessageReadError ErrorCodes = 2
4494
4495	// First is
4496	First Touch = 1
4497
4498	// Last is
4499	Last Touch = 2
4500
4501	// JSON is
4502	JSON TraceFormat = "json"
4503
4504	/*Closed defined:
4505	 * The connection is closed.
4506	 */
4507	Closed ConnectionErrors = 1
4508
4509	/*Disposed defined:
4510	 * The connection got disposed.
4511	 */
4512	Disposed ConnectionErrors = 2
4513
4514	/*AlreadyListening defined:
4515	 * The connection is already in listening mode.
4516	 */
4517	AlreadyListening ConnectionErrors = 3
4518
4519	// New is
4520	New ConnectionState = 1
4521
4522	// Listening is
4523	Listening ConnectionState = 2
4524)
4525
4526// DocumentFilter is a type
4527/**
4528 * A document filter denotes a document by different properties like
4529 * the [language](#TextDocument.languageId), the [scheme](#Uri.scheme) of
4530 * its resource, or a glob-pattern that is applied to the [path](#TextDocument.fileName).
4531 *
4532 * Glob patterns can have the following syntax:
4533 * - `*` to match one or more characters in a path segment
4534 * - `?` to match on one character in a path segment
4535 * - `**` to match any number of path segments, including none
4536 * - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
4537 * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
4538 * - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
4539 *
4540 * @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
4541 * @sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`
4542 */
4543type DocumentFilter = struct {
4544
4545	/*Language defined: A language id, like `typescript`. */
4546	Language string `json:"language,omitempty"`
4547
4548	/*Scheme defined: A Uri [scheme](#Uri.scheme), like `file` or `untitled`. */
4549	Scheme string `json:"scheme,omitempty"`
4550
4551	/*Pattern defined: A glob pattern, like `*.{ts,js}`. */
4552	Pattern string `json:"pattern,omitempty"`
4553}
4554
4555// DocumentSelector is a type
4556/**
4557 * A document selector is the combination of one or many document filters.
4558 *
4559 * @sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**∕tsconfig.json' }]`;
4560 */
4561type DocumentSelector = []DocumentFilter
4562
4563// DocumentURI is a type
4564/**
4565 * A tagging type for string properties that are actually URIs.
4566 */
4567type DocumentURI = string
4568
4569// MarkedString is a type
4570/**
4571 * MarkedString can be used to render human readable text. It is either a markdown string
4572 * or a code-block that provides a language and a code snippet. The language identifier
4573 * is semantically equal to the optional language identifier in fenced code blocks in GitHub
4574 * issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
4575 *
4576 * The pair of a language and a value is an equivalent to markdown:
4577 * ```${language}
4578 * ${value}
4579 * ```
4580 *
4581 * Note that markdown strings will be sanitized - that means html will be escaped.
4582 * @deprecated use MarkupContent instead.
4583 */
4584type MarkedString = string
4585
4586// DefinitionLink is a type
4587/**
4588 * Information about where a symbol is defined.
4589 *
4590 * Provides additional metadata over normal [location](#Location) definitions, including the range of
4591 * the defining symbol
4592 */
4593type DefinitionLink = LocationLink
4594
4595// DeclarationLink is a type
4596/**
4597 * Information about where a symbol is declared.
4598 *
4599 * Provides additional metadata over normal [location](#Location) declarations, including the range of
4600 * the declaring symbol.
4601 *
4602 * Servers should prefer returning `DeclarationLink` over `Declaration` if supported
4603 * by the client.
4604 */
4605type DeclarationLink = LocationLink
4606
4607// LSPMessageType is a type
4608/**
4609 * A LSP Log Entry.
4610 */
4611type LSPMessageType = string
4612
4613// ProgressToken is a type
4614type ProgressToken = interface{} // number | string
4615// TraceValues is a type
4616type TraceValues = string
4617