1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#include "lifecyclemessage.h"
6
7namespace newlsp {
8using namespace json;
9std::string toJsonValueStr(const ResolveSupport &val)
10{
11 std::string ret;
12 ret = json::addValue(ret, json::KV{"properties", val.properties});
13 return json::addScope(ret);
14}
15
16std::string toJsonValueStr(const CompletionClientCapabilities::CompletionList &val)
17{
18 std::string ret;
19 if (val.itemDefaults)
20 ret = json::addValue(ret, json::KV{"itemDefaults", val.itemDefaults});
21 return json::addScope(ret);
22}
23
24std::string toJsonValueStr(const CompletionClientCapabilities::CompletionItemKind &val)
25{
26 std::string ret;
27 if (val.valueSet)
28 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
29 return json::addScope(ret);
30}
31
32std::string toJsonValueStr(const CompletionClientCapabilities::CompletionItem::TagSupport &val)
33{
34 std::string ret;
35 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
36 return json::addScope(ret);
37}
38
39std::string toJsonValueStr(const CompletionClientCapabilities::CompletionItem &val)
40{
41 std::string ret;
42 if (val.snippetSupport)
43 ret = json::addValue(ret, json::KV{"snippetSupport", val.snippetSupport});
44
45 if (val.commitCharactersSupport)
46 ret = json::addValue(ret, json::KV{"commitCharactersSupport", val.commitCharactersSupport});
47
48 if (val.documentationFormat)
49 ret = json::addValue(ret, json::KV{"documentationFormat", val.documentationFormat});
50
51 if (val.deprecatedSupport)
52 ret = json::addValue(ret, json::KV{"deprecatedSupport", val.deprecatedSupport});
53
54 if (val.preselectSupport)
55 ret = json::addValue(ret, json::KV{"preselectSupport", val.preselectSupport});
56
57 if (val.tagSupport)
58 ret = json::addValue(ret, json::KV{"tagSupport", val.tagSupport});
59
60 if (val.insertReplaceSupport)
61 ret = json::addValue(ret, json::KV{"insertReplaceSupport", val.insertReplaceSupport});
62
63 if (val.resolveSupport)
64 ret = json::addValue(ret, json::KV{"resolveSupport", val.resolveSupport});
65
66 if (val.insertTextModeSupport)
67 ret = json::addValue(ret, json::KV{"insertTextModeSupport", val.insertTextModeSupport});
68
69 if (val.labelDetailsSupport)
70 ret = json::addValue(ret, json::KV{"labelDetailsSupport", val.labelDetailsSupport});
71
72 return json::addScope(ret);
73}
74
75std::string toJsonValueStr(const CodeActionLiteralSupport &val)
76{
77 std::string ret;
78 ret = json::addValue(ret, json::KV{"codeActionKind", val.codeActionKind});
79 return json::addScope(ret);
80}
81
82std::string toJsonValueStr(const SignatureHelpClientCapabilities::SignatureInformation::ParameterInformation &val)
83{
84 std::string ret;
85 if (val.labelOffsetSupport)
86 ret = json::addValue(ret, json::KV{"labelOffsetSupport", val.labelOffsetSupport});
87 return json::addScope(ret);
88}
89
90std::string toJsonValueStr(const SignatureHelpClientCapabilities::SignatureInformation &val)
91{
92 std::string ret;
93 if (val.documentationFormat)
94 ret = json::addValue(ret, json::KV{"documentationFormat", val.documentationFormat});
95
96 if (val.parameterInformation)
97 ret = json::addValue(ret, json::KV{"parameterInformation", val.parameterInformation});
98
99 if (val.activeParameterSupport)
100 ret = json::addValue(ret, json::KV{"activeParameterSupport", val.activeParameterSupport});
101
102 return json::addScope(ret);
103}
104
105std::string toJsonValueStr(const CodeActionKind &val)
106{
107 std::string ret;
108 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
109 return json::addScope(ret);
110}
111
112std::string toJsonValueStr(const ChangeAnotationSupport &val)
113{
114 std::string ret;
115 if (val.groupsOnLabel)
116 ret = json::addValue(ret, json::KV{"groupsOnLabel", val.groupsOnLabel});
117 return json::addScope(ret);
118}
119
120std::string toJsonValueStr(const SymbolKind &val)
121{
122 std::string ret;
123 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
124 return json::addScope(ret);
125}
126
127std::string toJsonValueStr(const WorkspaceEditClientCapabilities &val)
128{
129 std::string ret;
130 if (val.documentChanges)
131 ret = json::addValue(ret, json::KV{"documentChanges", val.documentChanges});
132 if (val.resourceOperations)
133 ret = json::addValue(ret, json::KV{"resourceOperations", val.resourceOperations});
134 if (val.failureHandling)
135 ret = json::addValue(ret, json::KV{"failureHandling", val.failureHandling});
136 if (val.normalizesLineEndings)
137 ret = json::addValue(ret, json::KV{"normalizesLineEndings", val.normalizesLineEndings});
138 if (val.changeAnnotationSupport)
139 ret = json::addValue(ret, json::KV{"changeAnnotationSupport", val.changeAnnotationSupport});
140 return json::addScope(ret);
141}
142
143std::string toJsonValueStr(const DidChangeConfigurationClientCapabilities &val)
144{
145 std::string ret;
146 if (val.dynamicRegistration)
147 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
148 return json::addScope(ret);
149}
150
151std::string toJsonValueStr(const DidChangeWatchedFilesClientCapabilities &val)
152{
153 std::string ret;
154 if (val.dynamicRegistration)
155 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
156 if (val.relativePatternSupport)
157 ret = json::addValue(ret, json::KV{"relativePatternSupport", val.relativePatternSupport});
158 return json::addScope(ret);
159}
160
161std::string toJsonValueStr(const ExecuteCommandClientCapabilities &val)
162{
163 std::string ret;
164 if (val.dynamicRegistration)
165 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
166 return json::addScope(ret);
167}
168
169std::string toJsonValueStr(const WorkspaceSymbolClientCapabilities::TagSupport &val)
170{
171 std::string ret;
172 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
173 return json::addScope(ret);
174}
175
176std::string toJsonValueStr(const WorkspaceSymbolClientCapabilities &val){
177 std::string ret;
178 if (val.dynamicRegistration)
179 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
180 if (val.symbolKind)
181 ret = json::addValue(ret, json::KV{"symbolKind", val.symbolKind});
182 if (val.tagSupport)
183 ret = json::addValue(ret, json::KV{"tagSupport", val.tagSupport});
184 if (val.resolveSupport)
185 ret = json::addValue(ret, json::KV{"resolveSupport", val.resolveSupport});
186 return json::addScope(ret);
187}
188
189std::string toJsonValueStr(const SemanticTokensWorkspaceClientCapabilities &val)
190{
191 std::string ret;
192 if (val.refreshSupport)
193 ret = json::addValue(ret, json::KV{"refreshSupport", val.refreshSupport});
194 return json::addScope(ret);
195}
196
197std::string toJsonValueStr(const CodeLensWorkspaceClientCapabilities &val)
198{
199 std::string ret;
200 if (val.refreshSupport)
201 ret = json::addValue(ret, json::KV{"refreshSupport", val.refreshSupport});
202 return json::addScope(ret);
203}
204
205std::string toJsonValueStr(const InlineValueWorkspaceClientCapabilities &val)
206{
207 std::string ret;
208 if (val.refreshSupport)
209 ret = json::addValue(ret, json::KV{"refreshSupport", val.refreshSupport});
210 return json::addScope(ret);
211}
212
213std::string toJsonValueStr(const InlayHintWorkspaceClientCapabilities &val)
214{
215 std::string ret;
216 if (val.refreshSupport)
217 ret = json::addValue(ret, json::KV{"refreshSupport", val.refreshSupport});
218 return json::addScope(ret);
219}
220
221std::string toJsonValueStr(const DiagnosticWorkspaceClientCapabilities &val)
222{
223 std::string ret;
224 if (val.refreshSupport)
225 ret = json::addValue(ret, json::KV{"refreshSupport", val.refreshSupport});
226 return json::addScope(ret);
227}
228
229std::string toJsonValueStr(const TextDocumentSyncClientCapabilities &val)
230{
231 std::string ret;
232 if (val.dynamicRegistration)
233 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
234 if (val.willSave)
235 ret = json::addValue(ret, json::KV{"willSave", val.willSave});
236 if (val.willSaveWaitUntil)
237 ret = json::addValue(ret, json::KV{"willSaveWaitUntil", val.willSaveWaitUntil});
238 if (val.didSave)
239 ret = json::addValue(ret, json::KV{"didSave", val.didSave});
240 return json::addScope(ret);
241}
242
243std::string toJsonValueStr(const CompletionClientCapabilities &val)
244{
245 std::string ret;
246 if (val.dynamicRegistration)
247 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
248 if (val.completionItem)
249 ret = json::addValue(ret, json::KV{"completionItem", val.completionItem});
250 if (val.completionItemKind)
251 ret = json::addValue(ret, json::KV{"completionItemKind", val.completionItemKind});
252 if (val.contextSupport)
253 ret = json::addValue(ret, json::KV{"contextSupport", val.contextSupport});
254 if (val.insertTextMode)
255 ret = json::addValue(ret, json::KV{"insertTextMode", val.insertTextMode});
256 if (val.itemDefaults)
257 ret = json::addValue(ret, json::KV{"itemDefaults", val.itemDefaults});
258 return json::addScope(ret);
259}
260
261std::string toJsonValueStr(const HoverClientCapabilities &val)
262{
263 std::string ret;
264 if (val.dynamicRegistration)
265 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
266 if (val.contentFormat)
267 ret = json::addValue(ret, json::KV{"contentFormat", val.contentFormat});
268 return json::addScope(ret);
269}
270
271std::string toJsonValueStr(const SignatureHelpClientCapabilities &val)
272{
273 std::string ret;
274 if (val.dynamicRegistration)
275 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
276 if (val.signatureInformation)
277 ret = json::addValue(ret, json::KV{"signatureInformation", val.signatureInformation});
278 if (val.contextSupport)
279 ret = json::addValue(ret, json::KV{"contextSupport", val.contextSupport});
280 return json::addScope(ret);
281}
282
283std::string toJsonValueStr(const DeclarationClientCapabilities &val)
284{
285 std::string ret;
286 if (val.dynamicRegistration)
287 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
288 if (val.linkSupport)
289 ret = json::addValue(ret, json::KV{"linkSupport", val.linkSupport});
290 return json::addScope(ret);
291}
292
293std::string toJsonValueStr(const DefinitionClientCapabilities &val)
294{
295 std::string ret;
296 if (val.dynamicRegistration)
297 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
298 if (val.linkSupport)
299 ret = json::addValue(ret, json::KV{"linkSupport", val.linkSupport});
300 return json::addScope(ret);
301}
302
303std::string toJsonValueStr(const TypeDefinitionClientCapabilities &val)
304{
305 std::string ret;
306 if (val.dynamicRegistration)
307 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
308 if (val.linkSupport)
309 ret = json::addValue(ret, json::KV{"linkSupport", val.linkSupport});
310 return json::addScope(ret);
311}
312
313std::string toJsonValueStr(const ImplementationClientCapabilities &val)
314{
315 std::string ret;
316 if (val.dynamicRegistration)
317 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
318 if (val.linkSupport)
319 ret = json::addValue(ret, json::KV{"linkSupport", val.linkSupport});
320 return json::addScope(ret);
321}
322
323std::string toJsonValueStr(const ReferenceClientCapabilities &val)
324{
325 std::string ret;
326 if (val.dynamicRegistration)
327 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
328 return json::addScope(ret);
329}
330
331std::string toJsonValueStr(const DocumentHighlightClientCapabilities &val)
332{
333 std::string ret;
334 if (val.dynamicRegistration)
335 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
336 return json::addScope(ret);
337}
338
339std::string toJsonValueStr(const DocumentSymbolClientCapabilities &val)
340{
341 std::string ret;
342 if (val.dynamicRegistration)
343 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
344 if (val.symbolKind)
345 ret = json::addValue(ret, json::KV{"symbolKind", val.symbolKind});
346 if (val.hierarchicalDocumentSymbolSupport)
347 ret = json::addValue(ret, json::KV{"hierarchicalDocumentSymbolSupport",
348 val.hierarchicalDocumentSymbolSupport});
349 if (val.tagSupport)
350 ret = json::addValue(ret, json::KV{"tagSupport", val.tagSupport});
351 if (val.labelSupport)
352 ret = json::addValue(ret, json::KV{"labelSupport", val.labelSupport});
353 return json::addScope(ret);
354}
355
356std::string toJsonValueStr(const CodeActionClientCapabilities &val)
357{
358 std::string ret;
359 if (val.dynamicRegistration)
360 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
361 if (val.codeActionLiteralSupport)
362 ret = json::addValue(ret, json::KV{"codeActionLiteralSupport", val.codeActionLiteralSupport});
363 if (val.isPreferredSupport)
364 ret = json::addValue(ret, json::KV{"isPreferredSupport", val.isPreferredSupport});
365 if (val.disabledSupport)
366 ret = json::addValue(ret, json::KV{"disabledSupport", val.disabledSupport});
367 if (val.dataSupport)
368 ret = json::addValue(ret, json::KV{"dataSupport", val.dataSupport});
369 if (val.resolveSupport)
370 ret = json::addValue(ret, json::KV{"resolveSupport", val.resolveSupport});
371 if (val.honorsChangeAnnotations)
372 ret = json::addValue(ret, json::KV{"honorsChangeAnnotations", val.honorsChangeAnnotations});
373 return json::addScope(ret);
374}
375
376std::string toJsonValueStr(const CodeLensClientCapabilities &val)
377{
378 std::string ret;
379 if (val.dynamicRegistration)
380 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
381 return json::addScope(ret);
382}
383
384std::string toJsonValueStr(const DocumentLinkClientCapabilities &val)
385{
386 std::string ret;
387 if (val.dynamicRegistration)
388 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
389 if (val.tooltipSupport)
390 ret = json::addValue(ret, json::KV{"tooltipSupport", val.tooltipSupport});
391 return json::addScope(ret);
392}
393
394std::string toJsonValueStr(const DocumentColorClientCapabilities &val)
395{
396 std::string ret;
397 if (val.dynamicRegistration)
398 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
399 return json::addScope(ret);
400}
401
402std::string toJsonValueStr(const DocumentFormattingClientCapabilities &val)
403{
404 std::string ret;
405 if (val.dynamicRegistration)
406 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
407 return json::addScope(ret);
408}
409
410std::string toJsonValueStr(const DocumentRangeFormattingClientCapabilities &val)
411{
412 std::string ret;
413 if (val.dynamicRegistration)
414 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
415 return json::addScope(ret);
416}
417
418std::string toJsonValueStr(const DocumentOnTypeFormattingClientCapabilities &val)
419{
420 std::string ret;
421 if (val.dynamicRegistration)
422 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
423 return json::addScope(ret);
424}
425
426std::string toJsonValueStr(const RenameClientCapabilities &val)
427{
428 std::string ret;
429 if (val.dynamicRegistration)
430 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
431 if (val.prepareSupport)
432 ret = json::addValue(ret, json::KV{"prepareSupport", val.prepareSupport});
433 if (val.prepareSupportDefaultBehavior)
434 ret = json::addValue(ret, json::KV{"prepareSupportDefaultBehavior", val.prepareSupportDefaultBehavior});
435 if (val.honorsChangeAnnotations)
436 ret = json::addValue(ret, json::KV{"honorsChangeAnnotations", val.honorsChangeAnnotations});
437 return json::addScope(ret);
438}
439
440std::string toJsonValueStr(const PublishDiagnosticsClientCapabilities &val)
441{
442 std::string ret;
443 if (val.relatedInformation)
444 ret = json::addValue(ret, json::KV{"relatedInformation", val.relatedInformation});
445 if (val.tagSupport)
446 ret = json::addValue(ret, json::KV{"tagSupport", val.tagSupport});
447 if (val.versionSupport)
448 ret = json::addValue(ret, json::KV{"versionSupport", val.versionSupport});
449 if (val.codeDescriptionSupport)
450 ret = json::addValue(ret, json::KV{"codeDescriptionSupport", val.codeDescriptionSupport});
451 if (val.dataSupport)
452 ret = json::addValue(ret, json::KV{"dataSupport", val.dataSupport});
453 return json::addScope(ret);
454}
455
456std::string toJsonValueStr(const FoldingRangeClientCapabilities::FoldingRangeKind &val)
457{
458 std::string ret;
459 if (val.valueSet)
460 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
461 return json::addScope(ret);
462}
463
464std::string toJsonValueStr(const FoldingRangeClientCapabilities::FoldingRange &val)
465{
466 std::string ret;
467 if (val.collapsedText)
468 ret = json::addValue(ret, json::KV{"collapsedText", val.collapsedText});
469 return json::addScope(ret);
470}
471
472std::string toJsonValueStr(const FoldingRangeClientCapabilities &val)
473{
474 std::string ret;
475 if (val.dynamicRegistration)
476 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
477 if (val.rangeLimit)
478 ret = json::addValue(ret, json::KV{"rangeLimit", val.rangeLimit});
479 if (val.lineFoldingOnly)
480 ret = json::addValue(ret, json::KV{"lineFoldingOnly", val.lineFoldingOnly});
481 if (val.foldingRangeKind)
482 ret = json::addValue(ret, json::KV{"foldingRangeKind", val.foldingRangeKind});
483 if (val.foldingRange)
484 ret = json::addValue(ret, json::KV{"foldingRange", val.foldingRange});
485 return json::addScope(ret);
486}
487
488std::string toJsonValueStr(const SelectionRangeClientCapabilities &val)
489{
490 std::string ret;
491 if (val.dynamicRegistration)
492 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
493 return json::addScope(ret);
494}
495
496std::string toJsonValueStr(const LinkedEditingRangeClientCapabilities &val)
497{
498 std::string ret;
499 if (val.dynamicRegistration)
500 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
501 return json::addScope(ret);
502}
503
504std::string toJsonValueStr(const CallHierarchyClientCapabilities &val)
505{
506 std::string ret;
507 if (val.dynamicRegistration)
508 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
509 return json::addScope(ret);
510}
511
512std::string toJsonValueStr(const SemanticTokensClientCapabilities::Requests::Full &val)
513{
514 std::string ret;
515 if (val.delta) {
516 ret = json::addValue(ret, json::KV{"delta", val.delta});
517 }
518 return json::addScope(ret);
519}
520
521std::string toJsonValueStr(const SemanticTokensClientCapabilities::Requests &val)
522{
523 std::string ret;
524 if (val.range) {
525 if (any_contrast<bool>(val.range.value())) {
526 ret = json::addValue(ret, json::KV{"range", std::any_cast<bool>(val.range.value())});
527 } else {
528 ret = json::addValue(ret, json::KV{"range", std::string("{}")});
529 }
530 }
531 if (val.full) {
532 ret = json::addValue(ret, json::KV{"full", val.full});
533 }
534 return json::addScope(ret);
535}
536
537std::string toJsonValueStr(const SemanticTokensClientCapabilities &val)
538{
539 std::string ret;
540 if (val.dynamicRegistration)
541 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
542 ret = json::addValue(ret, json::KV{"requests", val.requests});
543 ret = json::addValue(ret, json::KV{"tokenTypes", val.tokenTypes});
544 ret = json::addValue(ret, json::KV{"tokenModifiers", val.tokenModifiers});
545 ret = json::addValue(ret, json::KV{"formats", val.formats});
546 if (val.overlappingTokenSupport)
547 ret = json::addValue(ret, json::KV{"overlappingTokenSupport", val.overlappingTokenSupport});
548 if (val.multilineTokenSupport)
549 ret = json::addValue(ret, json::KV{"multilineTokenSupport", val.multilineTokenSupport});
550 if (val.serverCancelSupport)
551 ret = json::addValue(ret, json::KV{"serverCancelSupport", val.multilineTokenSupport});
552 if (val.augmentsSyntaxTokens)
553 ret = json::addValue(ret, json::KV{"augmentsSyntaxTokens", val.multilineTokenSupport});
554 return json::addScope(ret);
555}
556
557
558
559std::string toJsonValueStr(const MonikerClientCapabilities &val)
560{
561 std::string ret;
562 if (val.dynamicRegistration)
563 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
564 return json::addScope(ret);
565}
566
567std::string toJsonValueStr(const TypeHierarchyClientCapabilities &val)
568{
569 std::string ret;
570 if (val.dynamicRegistration)
571 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
572 return json::addScope(ret);
573}
574
575std::string toJsonValueStr(const InlineValueClientCapabilities &val)
576{
577 std::string ret;
578 if (val.dynamicRegistration)
579 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
580 return json::addScope(ret);
581}
582
583std::string toJsonValueStr(const InlayHintClientCapabilities &val)
584{
585 std::string ret;
586 if (val.dynamicRegistration)
587 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
588 if (val.resolveSupport)
589 ret = json::addValue(ret, json::KV{"resolveSupport", val.resolveSupport});
590 return json::addScope(ret);
591}
592
593std::string toJsonValueStr(const DiagnosticClientCapabilities &val)
594{
595 std::string ret;
596 if (val.dynamicRegistration)
597 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
598 if (val.relatedDocumentSupport)
599 ret = json::addValue(ret, json::KV{"relatedDocumentSupport", val.relatedDocumentSupport});
600 return json::addScope(ret);
601}
602
603std::string toJsonValueStr(const TextDocumentClientCapabilities &val) {
604 std::string ret;
605 if (val.synchronization)
606 ret = json::addValue(ret, json::KV{"synchronization", val.synchronization});
607 if (val.completion)
608 ret = json::addValue(ret, json::KV{"completion", val.completion});
609 if (val.hover)
610 ret = json::addValue(ret, json::KV{"hover", val.hover});
611 if (val.signatureHelp)
612 ret = json::addValue(ret, json::KV{"signatureHelp", val.signatureHelp});
613 if (val.declaration)
614 ret = json::addValue(ret, json::KV{"declaration", val.declaration});
615 if (val.definition)
616 ret = json::addValue(ret, json::KV{"definition", val.definition});
617 if (val.typeDefinition)
618 ret = json::addValue(ret, json::KV{"typeDefinition", val.typeDefinition});
619 if (val.implementation)
620 ret = json::addValue(ret, json::KV{"implementation", val.implementation});
621 if (val.references)
622 ret = json::addValue(ret, json::KV{"references", val.references});
623 if (val.documentHighlight)
624 ret = json::addValue(ret, json::KV{"documentHighlight", val.documentHighlight});
625 if (val.documentSymbol)
626 ret = json::addValue(ret, json::KV{"documentSymbol", val.documentSymbol});
627 if (val.codeAction)
628 ret = json::addValue(ret, json::KV{"codeAction", val.codeAction});
629 if (val.codeLens)
630 ret = json::addValue(ret, json::KV{"codeLens", val.codeLens});
631 if (val.documentLink)
632 ret = json::addValue(ret, json::KV{"documentLink", val.documentLink});
633 if (val.colorProvider)
634 ret = json::addValue(ret, json::KV{"colorProvider", val.colorProvider});
635 if (val.formatting)
636 ret = json::addValue(ret, json::KV{"formatting", val.formatting});
637 if (val.rangeFormatting)
638 ret = json::addValue(ret, json::KV{"rangeFormatting", val.formatting});
639 if (val.onTypeFormatting)
640 ret = json::addValue(ret, json::KV{"onTypeFormatting", val.onTypeFormatting});
641 if (val.rename)
642 ret = json::addValue(ret, json::KV{"rename", val.rename});
643 if (val.publishDiagnostics)
644 ret = json::addValue(ret, json::KV{"publishDiagnostics", val.publishDiagnostics});
645 if (val.foldingRange)
646 ret = json::addValue(ret, json::KV{"foldingRange", val.foldingRange});
647 if (val.selectionRange)
648 ret = json::addValue(ret, json::KV{"selectionRange", val.selectionRange});
649 if (val.linkedEditingRange)
650 ret = json::addValue(ret, json::KV{"linkedEditingRange", val.linkedEditingRange});
651 if (val.callHierarchy)
652 ret = json::addValue(ret, json::KV{"callHierarchy", val.callHierarchy});
653 if (val.semanticTokens)
654 ret = json::addValue(ret, json::KV{"semanticTokens", val.semanticTokens});
655 if (val.moniker)
656 ret = json::addValue(ret, json::KV{"moniker", val.moniker});
657 if (val.typeHierarchy)
658 ret = json::addValue(ret, json::KV{"typeHierarchy", val.typeHierarchy});
659 if (val.inlineValue)
660 ret = json::addValue(ret, json::KV{"inlineValue", val.inlineValue});
661 if (val.inlayHint)
662 ret = json::addValue(ret, json::KV{"inlayHint", val.inlayHint});
663 if (val.diagnostic)
664 ret = json::addValue(ret, json::KV{"diagnostic", val.diagnostic});
665 return json::addScope(ret);
666}
667
668std::string toJsonValueStr(const FileOperations &val)
669{
670 std::string ret;
671 if (val.dynamicRegistration)
672 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
673 if (val.didCreate)
674 ret = json::addValue(ret, json::KV{"didCreate", val.didCreate});
675 if (val.willCreate)
676 ret = json::addValue(ret, json::KV{"willCreate", val.willCreate});
677 if (val.didRename)
678 ret = json::addValue(ret, json::KV{"didRename", val.didRename});
679 if (val.willRename)
680 ret = json::addValue(ret, json::KV{"willRename", val.willRename});
681 if (val.didDelete)
682 ret = json::addValue(ret, json::KV{"didDelete", val.didDelete});
683 if (val.willDelete)
684 ret = json::addValue(ret, json::KV{"willDelete", val.willDelete});
685 return json::addScope(ret);
686}
687
688std::string toJsonValueStr(const Workspace &val)
689{
690 std::string ret;
691 if (val.applyEdit)
692 ret = json::addValue(ret, json::KV{"applyEdit", val.applyEdit});
693 if (val.workspaceEdit)
694 ret = json::addValue(ret, json::KV{"workspaceEdit", val.workspaceEdit});
695 if (val.didChangeConfiguration)
696 ret = json::addValue(ret, json::KV{"didChangeConfiguration", val.didChangeConfiguration});
697 if (val.didChangeWatchedFiles)
698 ret = json::addValue(ret, json::KV{"didChangeWatchedFiles", val.didChangeWatchedFiles});
699 if (val.symbol)
700 ret = json::addValue(ret, json::KV{"symbol", val.symbol});
701 if (val.executeCommand)
702 ret = json::addValue(ret, json::KV{"executeCommand", val.executeCommand});
703 if (val.workspaceFolders)
704 ret = json::addValue(ret, json::KV{"workspaceFolders", val.workspaceFolders});
705 if (val.configuration)
706 ret = json::addValue(ret, json::KV{"configuration", val.configuration});
707 if (val.semanticTokens)
708 ret = json::addValue(ret, json::KV{"semanticTokens", val.semanticTokens});
709 if (val.codeLens)
710 ret = json::addValue(ret, json::KV{"codeLens", val.codeLens});
711 if (val.fileOperations)
712 ret = json::addValue(ret, json::KV{"fileOperations", val.fileOperations});
713 if (val.inlineValue)
714 ret = json::addValue(ret, json::KV{"inlineValue", val.inlineValue});
715 if (val.inlayHint)
716 ret = json::addValue(ret, json::KV{"inlayHint", val.inlayHint});
717 if (val.diagnostics)
718 ret = json::addValue(ret, json::KV{"diagnostics", val.diagnostics});
719 return json::addScope(ret);
720}
721
722std::string toJsonValueStr(const ClientInfo &val)
723{
724 std::string result{};
725 result = json::addValue(result, json::KV{"name", val.name});
726 if (val.version)
727 result = json::addValue(result, json::KV{"version", val.version});
728 return json::addScope(result);
729}
730
731std::string toJsonValueStr(const NotebookDocumentSyncClientCapabilities &val)
732{
733 std::string ret = "";
734 if (val.dynamicRegistration)
735 ret = json::addValue(ret, json::KV{"dynamicRegistration", val.dynamicRegistration});
736 if (val.executionSummarySupport)
737 ret = json::addValue(ret, json::KV{"executionSummarySupport", val.executionSummarySupport});
738 return json::addScope(ret);
739}
740
741std::string toJsonValueStr(const NotebookDocumentClientCapabilities &val)
742{
743 std::string ret;
744 ret = json::addValue(ret, json::KV{"synchronization", val.synchronization});
745 return json::addScope(ret);
746}
747
748std::string toJsonValueStr(const MessageActionItem &val)
749{
750 std::string ret;
751 if (val.additionalPropertiesSupport)
752 ret = json::addValue(ret, json::KV{"additionalPropertiesSupport", val.additionalPropertiesSupport});
753 return json::addScope(ret);
754}
755
756std::string toJsonValueStr(const ShowMessageRequestClientCapabilities &val)
757{
758 std::string ret;
759 if (val.messageActionItem)
760 ret = json::addValue(ret, json::KV{"messageActionItem", val.messageActionItem});
761 return json::addScope(ret);
762}
763
764std::string toJsonValueStr(const ShowDocumentClientCapabilities &val) {
765 std::string ret;
766 ret = json::addValue(ret, json::KV{"support", val.support});
767 return json::addScope(ret);
768}
769
770std::string toJsonValueStr(const Window &val)
771{
772 std::string ret;
773 if (val.workDoneProgress)
774 ret = json::addValue(ret, json::KV{"workDoneProgress", val.workDoneProgress});
775 if (val.showMessage)
776 ret = json::addValue(ret, json::KV{"showMessage", val.showMessage});
777 if (val.showDocument)
778 ret = json::addValue(ret, json::KV{"showDocument", val.showDocument});
779 return json::addScope(ret);
780}
781
782std::string toJsonValueStr(const StaleRequestSupport &val)
783{
784 std::string ret;
785 ret = json::addValue(ret, json::KV{"cancel", val.cancel});
786 ret = json::addValue(ret,json::KV{"retryOnContentModified", val.retryOnContentModified});
787 return json::addScope(ret);
788}
789
790std::string toJsonValueStr(const RegularExpressionsClientCapabilities &val)
791{
792 std::string ret;
793 ret = json::addValue(ret, json::KV{"engine", val.engine});
794 if (val.version)
795 ret = json::addValue(ret, json::KV{"version", val.version});
796 return json::addScope(ret);
797}
798
799std::string toJsonValueStr(const MarkdownClientCapabilities &val)
800{
801 std::string ret;
802 ret = json::addValue(ret, json::KV{"parser", val.parser});
803 if (val.version)
804 ret = json::addValue(ret, json::KV{"version", val.version});
805 if (val.allowedTags)
806 ret = json::addValue(ret, json::KV{"allowedTags", val.allowedTags});
807 return json::addScope(ret);
808}
809
810std::string toJsonValueStr(const General &val)
811{
812 std::string ret;
813 if (val.staleRequestSupport)
814 ret = json::addValue(ret, json::KV{"staleRequestSupport", val.staleRequestSupport});
815 if (val.regularExpressions)
816 ret = json::addValue(ret, json::KV{"regularExpressions", val.regularExpressions});
817 if (val.markdown)
818 ret = json::addValue(ret, json::KV{"markdown", val.markdown});
819 if (val.positionEncodings)
820 ret = json::addValue(ret, json::KV{"positionEncodings", val.positionEncodings});
821 if (val.experimental)
822 ret = json::addValue(ret, json::KV{"experimental", std::string("{}")});
823 return json::addScope(ret);
824}
825
826std::string toJsonValueStr(const ClientCapabilities &val)
827{
828 std::string ret;
829 if (val.workspace)
830 ret = json::addValue(ret, json::KV{"workspace", val.workspace});
831 if (val.textDocument)
832 ret = json::addValue(ret, json::KV{"textDocument", val.textDocument});
833 if (val.notebookDocument)
834 ret = json::addValue(ret, json::KV{"notebookDocument", val.notebookDocument});
835 if (val.window)
836 ret = json::addValue(ret, json::KV{"window", val.window});
837 if (val.general)
838 ret = json::addValue(ret, json::KV{"general", val.general});
839 return json::addScope(ret);
840}
841
842std::string toJsonValueStr(const WorkspaceFolder &val)
843{
844 std::string ret;
845 ret = json::addValue(ret, json::KV{"uri", val.uri});
846 ret = json::addValue(ret, json::KV{"name", val.name});
847 return json::addScope(ret);
848}
849
850std::string toJsonValueStr(const DocumentSymbolClientCapabilities::TagSupport &val)
851{
852 std::string ret;
853 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
854 return json::addScope(ret);
855}
856
857std::string toJsonValueStr(const PublishDiagnosticsClientCapabilities::TagSupport &val)
858{
859 std::string ret;
860 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
861 return json::addScope(ret);
862}
863
864std::string toJsonValueStr(const CompletionClientCapabilities::CompletionItem::InsertTextModeSupport &val)
865{
866 std::string ret;
867 ret = json::addValue(ret, json::KV{"valueSet", val.valueSet});
868 return json::addScope(ret);
869}
870
871std::string toJsonValueStr(const std::vector<WorkspaceFolder> &val)
872{
873 std::string ret;
874 ret += "[";
875 int valSize = val.size();
876 for (int i = 0; i < valSize; i++) {
877 ret += toJsonValueStr(val[i]);
878 if (i < valSize -1) {
879 ret += ",";
880 }
881 }
882 ret += "]";
883 return ret;
884}
885
886std::string toJsonValueStr(const InitializeParams &val)
887{
888 std::string ret;
889
890 if (val.workDoneToken)
891 ret += json::addValue(ret, json::KV{"workDoneToken", val.workDoneToken});
892 if (val.language)
893 ret = json::addValue(ret, json::KV{"language", val.language});
894 if (val.processId)
895 ret = json::addValue(ret, json::KV{"processId", val.processId});
896 if (val.clientInfo)
897 ret = json::addValue(ret, json::KV{"clientInfo", val.clientInfo});
898 if (val.locale)
899 ret = json::addValue(ret, json::KV{"locale", val.locale});
900 if (val.rootPath)
901 ret = json::addValue(ret, json::KV{"rootPath", val.rootPath});
902 if (val.rootUri)
903 ret = json::addValue(ret, json::KV{"rootUri", val.rootUri});
904 if (val.initializationOptions)
905 ret = json::addValue(ret, json::KV{"initializationOptions", std::string("{}")});
906
907 ret = json::addValue(ret, json::KV{"capabilities", val.capabilities});
908
909 if (val.trace)
910 ret = json::addValue(ret, json::KV{"trace", val.trace});
911 if (val.workspaceFolders)
912 ret = json::addValue(ret, json::KV{"workspaceFolders", val.workspaceFolders});
913
914 return json::addScope(ret);
915}
916
917std::string toJsonValueStr(const InitializedParams &val)
918{
919 std::string result;
920 return json::addScope(result);
921}
922
923} // newlsp
924
925