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