1use serde::{Deserialize, Deserializer};
2
3use crate::vscode::VsCodeTokenColor;
4
5fn empty_string_as_none<'de, D>(deserializer: D) -> Result<Option<String>, D::Error>
6where
7 D: Deserializer<'de>,
8{
9 let value = Option::<String>::deserialize(deserializer)?;
10 Ok(value.filter(|value| !value.is_empty()))
11}
12
13#[derive(Deserialize, Debug)]
14pub struct VsCodeTheme {
15 #[serde(rename = "$schema")]
16 pub schema: Option<String>,
17 pub name: Option<String>,
18 pub author: Option<String>,
19 pub maintainers: Option<Vec<String>>,
20 #[serde(rename = "semanticClass")]
21 pub semantic_class: Option<String>,
22 #[serde(rename = "semanticHighlighting")]
23 pub semantic_highlighting: Option<bool>,
24 pub colors: VsCodeColors,
25 #[serde(rename = "tokenColors")]
26 pub token_colors: Vec<VsCodeTokenColor>,
27}
28
29#[derive(Debug, Deserialize)]
30pub struct VsCodeColors {
31 #[serde(
32 default,
33 rename = "terminal.background",
34 deserialize_with = "empty_string_as_none"
35 )]
36 pub terminal_background: Option<String>,
37
38 #[serde(
39 default,
40 rename = "terminal.foreground",
41 deserialize_with = "empty_string_as_none"
42 )]
43 pub terminal_foreground: Option<String>,
44
45 #[serde(
46 default,
47 rename = "terminal.ansiBrightBlack",
48 deserialize_with = "empty_string_as_none"
49 )]
50 pub terminal_ansi_bright_black: Option<String>,
51
52 #[serde(
53 default,
54 rename = "terminal.ansiBrightRed",
55 deserialize_with = "empty_string_as_none"
56 )]
57 pub terminal_ansi_bright_red: Option<String>,
58
59 #[serde(
60 default,
61 rename = "terminal.ansiBrightGreen",
62 deserialize_with = "empty_string_as_none"
63 )]
64 pub terminal_ansi_bright_green: Option<String>,
65
66 #[serde(
67 default,
68 rename = "terminal.ansiBrightYellow",
69 deserialize_with = "empty_string_as_none"
70 )]
71 pub terminal_ansi_bright_yellow: Option<String>,
72
73 #[serde(
74 default,
75 rename = "terminal.ansiBrightBlue",
76 deserialize_with = "empty_string_as_none"
77 )]
78 pub terminal_ansi_bright_blue: Option<String>,
79
80 #[serde(
81 default,
82 rename = "terminal.ansiBrightMagenta",
83 deserialize_with = "empty_string_as_none"
84 )]
85 pub terminal_ansi_bright_magenta: Option<String>,
86
87 #[serde(
88 default,
89 rename = "terminal.ansiBrightCyan",
90 deserialize_with = "empty_string_as_none"
91 )]
92 pub terminal_ansi_bright_cyan: Option<String>,
93
94 #[serde(
95 default,
96 rename = "terminal.ansiBrightWhite",
97 deserialize_with = "empty_string_as_none"
98 )]
99 pub terminal_ansi_bright_white: Option<String>,
100
101 #[serde(
102 default,
103 rename = "terminal.ansiBlack",
104 deserialize_with = "empty_string_as_none"
105 )]
106 pub terminal_ansi_black: Option<String>,
107
108 #[serde(
109 default,
110 rename = "terminal.ansiRed",
111 deserialize_with = "empty_string_as_none"
112 )]
113 pub terminal_ansi_red: Option<String>,
114
115 #[serde(
116 default,
117 rename = "terminal.ansiGreen",
118 deserialize_with = "empty_string_as_none"
119 )]
120 pub terminal_ansi_green: Option<String>,
121
122 #[serde(
123 default,
124 rename = "terminal.ansiYellow",
125 deserialize_with = "empty_string_as_none"
126 )]
127 pub terminal_ansi_yellow: Option<String>,
128
129 #[serde(
130 default,
131 rename = "terminal.ansiBlue",
132 deserialize_with = "empty_string_as_none"
133 )]
134 pub terminal_ansi_blue: Option<String>,
135
136 #[serde(
137 default,
138 rename = "terminal.ansiMagenta",
139 deserialize_with = "empty_string_as_none"
140 )]
141 pub terminal_ansi_magenta: Option<String>,
142
143 #[serde(
144 default,
145 rename = "terminal.ansiCyan",
146 deserialize_with = "empty_string_as_none"
147 )]
148 pub terminal_ansi_cyan: Option<String>,
149
150 #[serde(
151 default,
152 rename = "terminal.ansiWhite",
153 deserialize_with = "empty_string_as_none"
154 )]
155 pub terminal_ansi_white: Option<String>,
156
157 #[serde(
158 default,
159 rename = "textLink.activeForeground",
160 deserialize_with = "empty_string_as_none"
161 )]
162 pub text_link_active_foreground: Option<String>,
163
164 #[serde(
165 default,
166 rename = "focusBorder",
167 deserialize_with = "empty_string_as_none"
168 )]
169 pub focus_border: Option<String>,
170
171 #[serde(default, deserialize_with = "empty_string_as_none")]
172 pub foreground: Option<String>,
173
174 #[serde(
175 default,
176 rename = "selection.background",
177 deserialize_with = "empty_string_as_none"
178 )]
179 pub selection_background: Option<String>,
180
181 #[serde(
182 default,
183 rename = "errorForeground",
184 deserialize_with = "empty_string_as_none"
185 )]
186 pub error_foreground: Option<String>,
187
188 #[serde(
189 default,
190 rename = "button.background",
191 deserialize_with = "empty_string_as_none"
192 )]
193 pub button_background: Option<String>,
194
195 #[serde(
196 default,
197 rename = "button.foreground",
198 deserialize_with = "empty_string_as_none"
199 )]
200 pub button_foreground: Option<String>,
201
202 #[serde(
203 default,
204 rename = "button.secondaryBackground",
205 deserialize_with = "empty_string_as_none"
206 )]
207 pub button_secondary_background: Option<String>,
208
209 #[serde(
210 default,
211 rename = "button.secondaryForeground",
212 deserialize_with = "empty_string_as_none"
213 )]
214 pub button_secondary_foreground: Option<String>,
215
216 #[serde(
217 default,
218 rename = "button.secondaryHoverBackground",
219 deserialize_with = "empty_string_as_none"
220 )]
221 pub button_secondary_hover_background: Option<String>,
222
223 #[serde(
224 default,
225 rename = "dropdown.background",
226 deserialize_with = "empty_string_as_none"
227 )]
228 pub dropdown_background: Option<String>,
229
230 #[serde(
231 default,
232 rename = "dropdown.border",
233 deserialize_with = "empty_string_as_none"
234 )]
235 pub dropdown_border: Option<String>,
236
237 #[serde(
238 default,
239 rename = "dropdown.foreground",
240 deserialize_with = "empty_string_as_none"
241 )]
242 pub dropdown_foreground: Option<String>,
243
244 #[serde(
245 default,
246 rename = "input.background",
247 deserialize_with = "empty_string_as_none"
248 )]
249 pub input_background: Option<String>,
250
251 #[serde(
252 default,
253 rename = "input.foreground",
254 deserialize_with = "empty_string_as_none"
255 )]
256 pub input_foreground: Option<String>,
257
258 #[serde(
259 default,
260 rename = "input.border",
261 deserialize_with = "empty_string_as_none"
262 )]
263 pub input_border: Option<String>,
264
265 #[serde(
266 default,
267 rename = "input.placeholderForeground",
268 deserialize_with = "empty_string_as_none"
269 )]
270 pub input_placeholder_foreground: Option<String>,
271
272 #[serde(
273 default,
274 rename = "inputOption.activeBorder",
275 deserialize_with = "empty_string_as_none"
276 )]
277 pub input_option_active_border: Option<String>,
278
279 #[serde(
280 default,
281 rename = "inputValidation.infoBorder",
282 deserialize_with = "empty_string_as_none"
283 )]
284 pub input_validation_info_border: Option<String>,
285
286 #[serde(
287 default,
288 rename = "inputValidation.warningBorder",
289 deserialize_with = "empty_string_as_none"
290 )]
291 pub input_validation_warning_border: Option<String>,
292
293 #[serde(
294 default,
295 rename = "inputValidation.errorBorder",
296 deserialize_with = "empty_string_as_none"
297 )]
298 pub input_validation_error_border: Option<String>,
299
300 #[serde(
301 default,
302 rename = "badge.foreground",
303 deserialize_with = "empty_string_as_none"
304 )]
305 pub badge_foreground: Option<String>,
306
307 #[serde(
308 default,
309 rename = "badge.background",
310 deserialize_with = "empty_string_as_none"
311 )]
312 pub badge_background: Option<String>,
313
314 #[serde(
315 default,
316 rename = "progressBar.background",
317 deserialize_with = "empty_string_as_none"
318 )]
319 pub progress_bar_background: Option<String>,
320
321 #[serde(
322 default,
323 rename = "list.activeSelectionBackground",
324 deserialize_with = "empty_string_as_none"
325 )]
326 pub list_active_selection_background: Option<String>,
327
328 #[serde(
329 default,
330 rename = "list.activeSelectionForeground",
331 deserialize_with = "empty_string_as_none"
332 )]
333 pub list_active_selection_foreground: Option<String>,
334
335 #[serde(
336 default,
337 rename = "list.dropBackground",
338 deserialize_with = "empty_string_as_none"
339 )]
340 pub list_drop_background: Option<String>,
341
342 #[serde(
343 default,
344 rename = "list.focusBackground",
345 deserialize_with = "empty_string_as_none"
346 )]
347 pub list_focus_background: Option<String>,
348
349 #[serde(
350 default,
351 rename = "list.highlightForeground",
352 deserialize_with = "empty_string_as_none"
353 )]
354 pub list_highlight_foreground: Option<String>,
355
356 #[serde(
357 default,
358 rename = "list.hoverBackground",
359 deserialize_with = "empty_string_as_none"
360 )]
361 pub list_hover_background: Option<String>,
362
363 #[serde(
364 default,
365 rename = "list.inactiveSelectionBackground",
366 deserialize_with = "empty_string_as_none"
367 )]
368 pub list_inactive_selection_background: Option<String>,
369
370 #[serde(
371 default,
372 rename = "list.warningForeground",
373 deserialize_with = "empty_string_as_none"
374 )]
375 pub list_warning_foreground: Option<String>,
376
377 #[serde(
378 default,
379 rename = "list.errorForeground",
380 deserialize_with = "empty_string_as_none"
381 )]
382 pub list_error_foreground: Option<String>,
383
384 #[serde(
385 default,
386 rename = "activityBar.background",
387 deserialize_with = "empty_string_as_none"
388 )]
389 pub activity_bar_background: Option<String>,
390
391 #[serde(
392 default,
393 rename = "activityBar.inactiveForeground",
394 deserialize_with = "empty_string_as_none"
395 )]
396 pub activity_bar_inactive_foreground: Option<String>,
397
398 #[serde(
399 default,
400 rename = "activityBar.foreground",
401 deserialize_with = "empty_string_as_none"
402 )]
403 pub activity_bar_foreground: Option<String>,
404
405 #[serde(
406 default,
407 rename = "activityBar.activeBorder",
408 deserialize_with = "empty_string_as_none"
409 )]
410 pub activity_bar_active_border: Option<String>,
411
412 #[serde(
413 default,
414 rename = "activityBar.activeBackground",
415 deserialize_with = "empty_string_as_none"
416 )]
417 pub activity_bar_active_background: Option<String>,
418
419 #[serde(
420 default,
421 rename = "activityBarBadge.background",
422 deserialize_with = "empty_string_as_none"
423 )]
424 pub activity_bar_badge_background: Option<String>,
425
426 #[serde(
427 default,
428 rename = "activityBarBadge.foreground",
429 deserialize_with = "empty_string_as_none"
430 )]
431 pub activity_bar_badge_foreground: Option<String>,
432
433 #[serde(
434 default,
435 rename = "sideBar.background",
436 deserialize_with = "empty_string_as_none"
437 )]
438 pub side_bar_background: Option<String>,
439
440 #[serde(
441 default,
442 rename = "sideBarTitle.foreground",
443 deserialize_with = "empty_string_as_none"
444 )]
445 pub side_bar_title_foreground: Option<String>,
446
447 #[serde(
448 default,
449 rename = "sideBarSectionHeader.background",
450 deserialize_with = "empty_string_as_none"
451 )]
452 pub side_bar_section_header_background: Option<String>,
453
454 #[serde(
455 default,
456 rename = "sideBarSectionHeader.border",
457 deserialize_with = "empty_string_as_none"
458 )]
459 pub side_bar_section_header_border: Option<String>,
460
461 #[serde(
462 default,
463 rename = "editorGroup.border",
464 deserialize_with = "empty_string_as_none"
465 )]
466 pub editor_group_border: Option<String>,
467
468 #[serde(
469 default,
470 rename = "editorGroup.dropBackground",
471 deserialize_with = "empty_string_as_none"
472 )]
473 pub editor_group_drop_background: Option<String>,
474
475 #[serde(
476 default,
477 rename = "editorGroupHeader.tabsBackground",
478 deserialize_with = "empty_string_as_none"
479 )]
480 pub editor_group_header_tabs_background: Option<String>,
481
482 #[serde(
483 default,
484 rename = "tab.activeBackground",
485 deserialize_with = "empty_string_as_none"
486 )]
487 pub tab_active_background: Option<String>,
488
489 #[serde(
490 default,
491 rename = "tab.activeForeground",
492 deserialize_with = "empty_string_as_none"
493 )]
494 pub tab_active_foreground: Option<String>,
495
496 #[serde(
497 default,
498 rename = "tab.border",
499 deserialize_with = "empty_string_as_none"
500 )]
501 pub tab_border: Option<String>,
502
503 #[serde(
504 default,
505 rename = "tab.activeBorderTop",
506 deserialize_with = "empty_string_as_none"
507 )]
508 pub tab_active_border_top: Option<String>,
509
510 #[serde(
511 default,
512 rename = "tab.inactiveBackground",
513 deserialize_with = "empty_string_as_none"
514 )]
515 pub tab_inactive_background: Option<String>,
516
517 #[serde(
518 default,
519 rename = "tab.inactiveForeground",
520 deserialize_with = "empty_string_as_none"
521 )]
522 pub tab_inactive_foreground: Option<String>,
523
524 #[serde(
525 default,
526 rename = "editor.foreground",
527 deserialize_with = "empty_string_as_none"
528 )]
529 pub editor_foreground: Option<String>,
530
531 #[serde(
532 default,
533 rename = "editor.background",
534 deserialize_with = "empty_string_as_none"
535 )]
536 pub editor_background: Option<String>,
537
538 #[serde(
539 default,
540 rename = "editorInlayHint.foreground",
541 deserialize_with = "empty_string_as_none"
542 )]
543 pub editor_inlay_hint_foreground: Option<String>,
544
545 #[serde(
546 default,
547 rename = "editorInlayHint.background",
548 deserialize_with = "empty_string_as_none"
549 )]
550 pub editor_inlay_hint_background: Option<String>,
551
552 #[serde(
553 default,
554 rename = "editorInlayHint.parameterForeground",
555 deserialize_with = "empty_string_as_none"
556 )]
557 pub editor_inlay_hint_parameter_foreground: Option<String>,
558
559 #[serde(
560 default,
561 rename = "editorInlayHint.parameterBackground",
562 deserialize_with = "empty_string_as_none"
563 )]
564 pub editor_inlay_hint_parameter_background: Option<String>,
565
566 #[serde(
567 default,
568 rename = "editorInlayHint.typForeground",
569 deserialize_with = "empty_string_as_none"
570 )]
571 pub editor_inlay_hint_typ_foreground: Option<String>,
572
573 #[serde(
574 default,
575 rename = "editorInlayHint.typBackground",
576 deserialize_with = "empty_string_as_none"
577 )]
578 pub editor_inlay_hint_typ_background: Option<String>,
579
580 #[serde(
581 default,
582 rename = "editorLineNumber.foreground",
583 deserialize_with = "empty_string_as_none"
584 )]
585 pub editor_line_number_foreground: Option<String>,
586
587 #[serde(
588 default,
589 rename = "editor.selectionBackground",
590 deserialize_with = "empty_string_as_none"
591 )]
592 pub editor_selection_background: Option<String>,
593
594 #[serde(
595 default,
596 rename = "editor.selectionHighlightBackground",
597 deserialize_with = "empty_string_as_none"
598 )]
599 pub editor_selection_highlight_background: Option<String>,
600
601 #[serde(
602 default,
603 rename = "editor.foldBackground",
604 deserialize_with = "empty_string_as_none"
605 )]
606 pub editor_fold_background: Option<String>,
607
608 #[serde(
609 default,
610 rename = "editor.wordHighlightBackground",
611 deserialize_with = "empty_string_as_none"
612 )]
613 pub editor_word_highlight_background: Option<String>,
614
615 #[serde(
616 default,
617 rename = "editor.wordHighlightStrongBackground",
618 deserialize_with = "empty_string_as_none"
619 )]
620 pub editor_word_highlight_strong_background: Option<String>,
621
622 #[serde(
623 default,
624 rename = "editor.findMatchBackground",
625 deserialize_with = "empty_string_as_none"
626 )]
627 pub editor_find_match_background: Option<String>,
628
629 #[serde(
630 default,
631 rename = "editor.findMatchHighlightBackground",
632 deserialize_with = "empty_string_as_none"
633 )]
634 pub editor_find_match_highlight_background: Option<String>,
635
636 #[serde(
637 default,
638 rename = "editor.findRangeHighlightBackground",
639 deserialize_with = "empty_string_as_none"
640 )]
641 pub editor_find_range_highlight_background: Option<String>,
642
643 #[serde(
644 default,
645 rename = "editor.hoverHighlightBackground",
646 deserialize_with = "empty_string_as_none"
647 )]
648 pub editor_hover_highlight_background: Option<String>,
649
650 #[serde(
651 default,
652 rename = "editor.lineHighlightBorder",
653 deserialize_with = "empty_string_as_none"
654 )]
655 pub editor_line_highlight_border: Option<String>,
656
657 #[serde(
658 default,
659 rename = "editorLink.activeForeground",
660 deserialize_with = "empty_string_as_none"
661 )]
662 pub editor_link_active_foreground: Option<String>,
663
664 #[serde(
665 default,
666 rename = "editor.rangeHighlightBackground",
667 deserialize_with = "empty_string_as_none"
668 )]
669 pub editor_range_highlight_background: Option<String>,
670
671 #[serde(
672 default,
673 rename = "editor.snippetTabstopHighlightBackground",
674 deserialize_with = "empty_string_as_none"
675 )]
676 pub editor_snippet_tabstop_highlight_background: Option<String>,
677
678 #[serde(
679 default,
680 rename = "editor.snippetTabstopHighlightBorder",
681 deserialize_with = "empty_string_as_none"
682 )]
683 pub editor_snippet_tabstop_highlight_border: Option<String>,
684
685 #[serde(
686 default,
687 rename = "editor.snippetFinalTabstopHighlightBackground",
688 deserialize_with = "empty_string_as_none"
689 )]
690 pub editor_snippet_final_tabstop_highlight_background: Option<String>,
691
692 #[serde(
693 default,
694 rename = "editor.snippetFinalTabstopHighlightBorder",
695 deserialize_with = "empty_string_as_none"
696 )]
697 pub editor_snippet_final_tabstop_highlight_border: Option<String>,
698
699 #[serde(
700 default,
701 rename = "editorWhitespace.foreground",
702 deserialize_with = "empty_string_as_none"
703 )]
704 pub editor_whitespace_foreground: Option<String>,
705
706 #[serde(
707 default,
708 rename = "editorIndentGuide.background",
709 deserialize_with = "empty_string_as_none"
710 )]
711 pub editor_indent_guide_background: Option<String>,
712
713 #[serde(
714 default,
715 rename = "editorIndentGuide.activeBackground",
716 deserialize_with = "empty_string_as_none"
717 )]
718 pub editor_indent_guide_active_background: Option<String>,
719
720 #[serde(
721 default,
722 rename = "editorRuler.foreground",
723 deserialize_with = "empty_string_as_none"
724 )]
725 pub editor_ruler_foreground: Option<String>,
726
727 #[serde(
728 default,
729 rename = "editorCodeLens.foreground",
730 deserialize_with = "empty_string_as_none"
731 )]
732 pub editor_code_lens_foreground: Option<String>,
733
734 #[serde(
735 default,
736 rename = "editorBracketHighlight.foreground1",
737 deserialize_with = "empty_string_as_none"
738 )]
739 pub editor_bracket_highlight_foreground1: Option<String>,
740
741 #[serde(
742 default,
743 rename = "editorBracketHighlight.foreground2",
744 deserialize_with = "empty_string_as_none"
745 )]
746 pub editor_bracket_highlight_foreground2: Option<String>,
747
748 #[serde(
749 default,
750 rename = "editorBracketHighlight.foreground3",
751 deserialize_with = "empty_string_as_none"
752 )]
753 pub editor_bracket_highlight_foreground3: Option<String>,
754
755 #[serde(
756 default,
757 rename = "editorBracketHighlight.foreground4",
758 deserialize_with = "empty_string_as_none"
759 )]
760 pub editor_bracket_highlight_foreground4: Option<String>,
761
762 #[serde(
763 default,
764 rename = "editorBracketHighlight.foreground5",
765 deserialize_with = "empty_string_as_none"
766 )]
767 pub editor_bracket_highlight_foreground5: Option<String>,
768
769 #[serde(
770 default,
771 rename = "editorBracketHighlight.foreground6",
772 deserialize_with = "empty_string_as_none"
773 )]
774 pub editor_bracket_highlight_foreground6: Option<String>,
775
776 #[serde(
777 default,
778 rename = "editorBracketHighlight.unexpectedBracket.foreground",
779 deserialize_with = "empty_string_as_none"
780 )]
781 pub editor_bracket_highlight_unexpected_bracket_foreground: Option<String>,
782
783 #[serde(
784 default,
785 rename = "editorOverviewRuler.border",
786 deserialize_with = "empty_string_as_none"
787 )]
788 pub editor_overview_ruler_border: Option<String>,
789
790 #[serde(
791 default,
792 rename = "editorOverviewRuler.selectionHighlightForeground",
793 deserialize_with = "empty_string_as_none"
794 )]
795 pub editor_overview_ruler_selection_highlight_foreground: Option<String>,
796
797 #[serde(
798 default,
799 rename = "editorOverviewRuler.wordHighlightForeground",
800 deserialize_with = "empty_string_as_none"
801 )]
802 pub editor_overview_ruler_word_highlight_foreground: Option<String>,
803
804 #[serde(
805 default,
806 rename = "editorOverviewRuler.wordHighlightStrongForeground",
807 deserialize_with = "empty_string_as_none"
808 )]
809 pub editor_overview_ruler_word_highlight_strong_foreground: Option<String>,
810
811 #[serde(
812 default,
813 rename = "editorOverviewRuler.modifiedForeground",
814 deserialize_with = "empty_string_as_none"
815 )]
816 pub editor_overview_ruler_modified_foreground: Option<String>,
817
818 #[serde(
819 default,
820 rename = "editorOverviewRuler.addedForeground",
821 deserialize_with = "empty_string_as_none"
822 )]
823 pub editor_overview_ruler_added_foreground: Option<String>,
824
825 #[serde(
826 default,
827 rename = "editorOverviewRuler.deletedForeground",
828 deserialize_with = "empty_string_as_none"
829 )]
830 pub editor_overview_ruler_deleted_foreground: Option<String>,
831
832 #[serde(
833 default,
834 rename = "editorOverviewRuler.errorForeground",
835 deserialize_with = "empty_string_as_none"
836 )]
837 pub editor_overview_ruler_error_foreground: Option<String>,
838
839 #[serde(
840 default,
841 rename = "editorOverviewRuler.warningForeground",
842 deserialize_with = "empty_string_as_none"
843 )]
844 pub editor_overview_ruler_warning_foreground: Option<String>,
845
846 #[serde(
847 default,
848 rename = "editorOverviewRuler.infoForeground",
849 deserialize_with = "empty_string_as_none"
850 )]
851 pub editor_overview_ruler_info_foreground: Option<String>,
852
853 #[serde(
854 default,
855 rename = "editorError.foreground",
856 deserialize_with = "empty_string_as_none"
857 )]
858 pub editor_error_foreground: Option<String>,
859
860 #[serde(
861 default,
862 rename = "editorWarning.foreground",
863 deserialize_with = "empty_string_as_none"
864 )]
865 pub editor_warning_foreground: Option<String>,
866
867 #[serde(
868 default,
869 rename = "editorGutter.modifiedBackground",
870 deserialize_with = "empty_string_as_none"
871 )]
872 pub editor_gutter_modified_background: Option<String>,
873
874 #[serde(
875 default,
876 rename = "editorGutter.addedBackground",
877 deserialize_with = "empty_string_as_none"
878 )]
879 pub editor_gutter_added_background: Option<String>,
880
881 #[serde(
882 default,
883 rename = "editorGutter.deletedBackground",
884 deserialize_with = "empty_string_as_none"
885 )]
886 pub editor_gutter_deleted_background: Option<String>,
887
888 #[serde(
889 default,
890 rename = "gitDecoration.modifiedResourceForeground",
891 deserialize_with = "empty_string_as_none"
892 )]
893 pub git_decoration_modified_resource_foreground: Option<String>,
894
895 #[serde(
896 default,
897 rename = "gitDecoration.deletedResourceForeground",
898 deserialize_with = "empty_string_as_none"
899 )]
900 pub git_decoration_deleted_resource_foreground: Option<String>,
901
902 #[serde(
903 default,
904 rename = "gitDecoration.untrackedResourceForeground",
905 deserialize_with = "empty_string_as_none"
906 )]
907 pub git_decoration_untracked_resource_foreground: Option<String>,
908
909 #[serde(
910 default,
911 rename = "gitDecoration.ignoredResourceForeground",
912 deserialize_with = "empty_string_as_none"
913 )]
914 pub git_decoration_ignored_resource_foreground: Option<String>,
915
916 #[serde(
917 default,
918 rename = "gitDecoration.conflictingResourceForeground",
919 deserialize_with = "empty_string_as_none"
920 )]
921 pub git_decoration_conflicting_resource_foreground: Option<String>,
922
923 #[serde(
924 default,
925 rename = "diffEditor.insertedTextBackground",
926 deserialize_with = "empty_string_as_none"
927 )]
928 pub diff_editor_inserted_text_background: Option<String>,
929
930 #[serde(
931 default,
932 rename = "diffEditor.removedTextBackground",
933 deserialize_with = "empty_string_as_none"
934 )]
935 pub diff_editor_removed_text_background: Option<String>,
936
937 #[serde(
938 default,
939 rename = "inlineChat.regionHighlight",
940 deserialize_with = "empty_string_as_none"
941 )]
942 pub inline_chat_region_highlight: Option<String>,
943
944 #[serde(
945 default,
946 rename = "editorWidget.background",
947 deserialize_with = "empty_string_as_none"
948 )]
949 pub editor_widget_background: Option<String>,
950
951 #[serde(
952 default,
953 rename = "editorSuggestWidget.background",
954 deserialize_with = "empty_string_as_none"
955 )]
956 pub editor_suggest_widget_background: Option<String>,
957
958 #[serde(
959 default,
960 rename = "editorSuggestWidget.foreground",
961 deserialize_with = "empty_string_as_none"
962 )]
963 pub editor_suggest_widget_foreground: Option<String>,
964
965 #[serde(
966 default,
967 rename = "editorSuggestWidget.selectedBackground",
968 deserialize_with = "empty_string_as_none"
969 )]
970 pub editor_suggest_widget_selected_background: Option<String>,
971
972 #[serde(
973 default,
974 rename = "editorHoverWidget.background",
975 deserialize_with = "empty_string_as_none"
976 )]
977 pub editor_hover_widget_background: Option<String>,
978
979 #[serde(
980 default,
981 rename = "editorHoverWidget.border",
982 deserialize_with = "empty_string_as_none"
983 )]
984 pub editor_hover_widget_border: Option<String>,
985
986 #[serde(
987 default,
988 rename = "editorMarkerNavigation.background",
989 deserialize_with = "empty_string_as_none"
990 )]
991 pub editor_marker_navigation_background: Option<String>,
992
993 #[serde(
994 default,
995 rename = "peekView.border",
996 deserialize_with = "empty_string_as_none"
997 )]
998 pub peek_view_border: Option<String>,
999
1000 #[serde(
1001 default,
1002 rename = "peekViewEditor.background",
1003 deserialize_with = "empty_string_as_none"
1004 )]
1005 pub peek_view_editor_background: Option<String>,
1006
1007 #[serde(
1008 default,
1009 rename = "peekViewEditor.matchHighlightBackground",
1010 deserialize_with = "empty_string_as_none"
1011 )]
1012 pub peek_view_editor_match_highlight_background: Option<String>,
1013
1014 #[serde(
1015 default,
1016 rename = "peekViewResult.background",
1017 deserialize_with = "empty_string_as_none"
1018 )]
1019 pub peek_view_result_background: Option<String>,
1020
1021 #[serde(
1022 default,
1023 rename = "peekViewResult.fileForeground",
1024 deserialize_with = "empty_string_as_none"
1025 )]
1026 pub peek_view_result_file_foreground: Option<String>,
1027
1028 #[serde(
1029 default,
1030 rename = "peekViewResult.lineForeground",
1031 deserialize_with = "empty_string_as_none"
1032 )]
1033 pub peek_view_result_line_foreground: Option<String>,
1034
1035 #[serde(
1036 default,
1037 rename = "peekViewResult.matchHighlightBackground",
1038 deserialize_with = "empty_string_as_none"
1039 )]
1040 pub peek_view_result_match_highlight_background: Option<String>,
1041
1042 #[serde(
1043 default,
1044 rename = "peekViewResult.selectionBackground",
1045 deserialize_with = "empty_string_as_none"
1046 )]
1047 pub peek_view_result_selection_background: Option<String>,
1048
1049 #[serde(
1050 default,
1051 rename = "peekViewResult.selectionForeground",
1052 deserialize_with = "empty_string_as_none"
1053 )]
1054 pub peek_view_result_selection_foreground: Option<String>,
1055
1056 #[serde(
1057 default,
1058 rename = "peekViewTitle.background",
1059 deserialize_with = "empty_string_as_none"
1060 )]
1061 pub peek_view_title_background: Option<String>,
1062
1063 #[serde(
1064 default,
1065 rename = "peekViewTitleDescription.foreground",
1066 deserialize_with = "empty_string_as_none"
1067 )]
1068 pub peek_view_title_description_foreground: Option<String>,
1069
1070 #[serde(
1071 default,
1072 rename = "peekViewTitleLabel.foreground",
1073 deserialize_with = "empty_string_as_none"
1074 )]
1075 pub peek_view_title_label_foreground: Option<String>,
1076
1077 #[serde(
1078 default,
1079 rename = "merge.currentHeaderBackground",
1080 deserialize_with = "empty_string_as_none"
1081 )]
1082 pub merge_current_header_background: Option<String>,
1083
1084 #[serde(
1085 default,
1086 rename = "merge.incomingHeaderBackground",
1087 deserialize_with = "empty_string_as_none"
1088 )]
1089 pub merge_incoming_header_background: Option<String>,
1090
1091 #[serde(
1092 default,
1093 rename = "editorOverviewRuler.currentContentForeground",
1094 deserialize_with = "empty_string_as_none"
1095 )]
1096 pub editor_overview_ruler_current_content_foreground: Option<String>,
1097
1098 #[serde(
1099 default,
1100 rename = "editorOverviewRuler.incomingContentForeground",
1101 deserialize_with = "empty_string_as_none"
1102 )]
1103 pub editor_overview_ruler_incoming_content_foreground: Option<String>,
1104
1105 #[serde(
1106 default,
1107 rename = "panel.background",
1108 deserialize_with = "empty_string_as_none"
1109 )]
1110 pub panel_background: Option<String>,
1111
1112 #[serde(
1113 default,
1114 rename = "panel.border",
1115 deserialize_with = "empty_string_as_none"
1116 )]
1117 pub panel_border: Option<String>,
1118
1119 #[serde(
1120 default,
1121 rename = "panelTitle.activeBorder",
1122 deserialize_with = "empty_string_as_none"
1123 )]
1124 pub panel_title_active_border: Option<String>,
1125
1126 #[serde(
1127 default,
1128 rename = "panelTitle.activeForeground",
1129 deserialize_with = "empty_string_as_none"
1130 )]
1131 pub panel_title_active_foreground: Option<String>,
1132
1133 #[serde(
1134 default,
1135 rename = "panelTitle.inactiveForeground",
1136 deserialize_with = "empty_string_as_none"
1137 )]
1138 pub panel_title_inactive_foreground: Option<String>,
1139
1140 #[serde(
1141 default,
1142 rename = "scrollbar.shadow",
1143 deserialize_with = "empty_string_as_none"
1144 )]
1145 pub scrollbar_shadow: Option<String>,
1146
1147 #[serde(
1148 default,
1149 rename = "scrollbarSlider.background",
1150 deserialize_with = "empty_string_as_none"
1151 )]
1152 pub scrollbar_slider_background: Option<String>,
1153
1154 #[serde(
1155 default,
1156 rename = "scrollbarSlider.activeBackground",
1157 deserialize_with = "empty_string_as_none"
1158 )]
1159 pub scrollbar_slider_active_background: Option<String>,
1160
1161 #[serde(
1162 default,
1163 rename = "scrollbarSlider.hoverBackground",
1164 deserialize_with = "empty_string_as_none"
1165 )]
1166 pub scrollbar_slider_hover_background: Option<String>,
1167
1168 #[serde(
1169 default,
1170 rename = "statusBar.background",
1171 deserialize_with = "empty_string_as_none"
1172 )]
1173 pub status_bar_background: Option<String>,
1174
1175 #[serde(
1176 default,
1177 rename = "statusBar.border",
1178 deserialize_with = "empty_string_as_none"
1179 )]
1180 pub status_bar_border: Option<String>,
1181
1182 #[serde(
1183 default,
1184 rename = "statusBar.foreground",
1185 deserialize_with = "empty_string_as_none"
1186 )]
1187 pub status_bar_foreground: Option<String>,
1188
1189 #[serde(
1190 default,
1191 rename = "statusBar.debuggingBackground",
1192 deserialize_with = "empty_string_as_none"
1193 )]
1194 pub status_bar_debugging_background: Option<String>,
1195
1196 #[serde(
1197 default,
1198 rename = "statusBar.debuggingForeground",
1199 deserialize_with = "empty_string_as_none"
1200 )]
1201 pub status_bar_debugging_foreground: Option<String>,
1202
1203 #[serde(
1204 default,
1205 rename = "statusBar.noFolderBackground",
1206 deserialize_with = "empty_string_as_none"
1207 )]
1208 pub status_bar_no_folder_background: Option<String>,
1209
1210 #[serde(
1211 default,
1212 rename = "statusBar.noFolderForeground",
1213 deserialize_with = "empty_string_as_none"
1214 )]
1215 pub status_bar_no_folder_foreground: Option<String>,
1216
1217 #[serde(
1218 default,
1219 rename = "statusBarItem.prominentBackground",
1220 deserialize_with = "empty_string_as_none"
1221 )]
1222 pub status_bar_item_prominent_background: Option<String>,
1223
1224 #[serde(
1225 default,
1226 rename = "statusBarItem.prominentHoverBackground",
1227 deserialize_with = "empty_string_as_none"
1228 )]
1229 pub status_bar_item_prominent_hover_background: Option<String>,
1230
1231 #[serde(
1232 default,
1233 rename = "statusBarItem.remoteForeground",
1234 deserialize_with = "empty_string_as_none"
1235 )]
1236 pub status_bar_item_remote_foreground: Option<String>,
1237
1238 #[serde(
1239 default,
1240 rename = "statusBarItem.remoteBackground",
1241 deserialize_with = "empty_string_as_none"
1242 )]
1243 pub status_bar_item_remote_background: Option<String>,
1244
1245 #[serde(
1246 default,
1247 rename = "titleBar.activeBackground",
1248 deserialize_with = "empty_string_as_none"
1249 )]
1250 pub title_bar_active_background: Option<String>,
1251
1252 #[serde(
1253 default,
1254 rename = "titleBar.activeForeground",
1255 deserialize_with = "empty_string_as_none"
1256 )]
1257 pub title_bar_active_foreground: Option<String>,
1258
1259 #[serde(
1260 default,
1261 rename = "titleBar.inactiveBackground",
1262 deserialize_with = "empty_string_as_none"
1263 )]
1264 pub title_bar_inactive_background: Option<String>,
1265
1266 #[serde(
1267 default,
1268 rename = "titleBar.inactiveForeground",
1269 deserialize_with = "empty_string_as_none"
1270 )]
1271 pub title_bar_inactive_foreground: Option<String>,
1272
1273 #[serde(
1274 default,
1275 rename = "extensionButton.prominentForeground",
1276 deserialize_with = "empty_string_as_none"
1277 )]
1278 pub extension_button_prominent_foreground: Option<String>,
1279
1280 #[serde(
1281 default,
1282 rename = "extensionButton.prominentBackground",
1283 deserialize_with = "empty_string_as_none"
1284 )]
1285 pub extension_button_prominent_background: Option<String>,
1286
1287 #[serde(
1288 default,
1289 rename = "extensionButton.prominentHoverBackground",
1290 deserialize_with = "empty_string_as_none"
1291 )]
1292 pub extension_button_prominent_hover_background: Option<String>,
1293
1294 #[serde(
1295 default,
1296 rename = "pickerGroup.border",
1297 deserialize_with = "empty_string_as_none"
1298 )]
1299 pub picker_group_border: Option<String>,
1300
1301 #[serde(
1302 default,
1303 rename = "pickerGroup.foreground",
1304 deserialize_with = "empty_string_as_none"
1305 )]
1306 pub picker_group_foreground: Option<String>,
1307
1308 #[serde(
1309 default,
1310 rename = "debugToolBar.background",
1311 deserialize_with = "empty_string_as_none"
1312 )]
1313 pub debug_tool_bar_background: Option<String>,
1314
1315 #[serde(
1316 default,
1317 rename = "walkThrough.embeddedEditorBackground",
1318 deserialize_with = "empty_string_as_none"
1319 )]
1320 pub walk_through_embedded_editor_background: Option<String>,
1321
1322 #[serde(
1323 default,
1324 rename = "settings.headerForeground",
1325 deserialize_with = "empty_string_as_none"
1326 )]
1327 pub settings_header_foreground: Option<String>,
1328
1329 #[serde(
1330 default,
1331 rename = "settings.modifiedItemIndicator",
1332 deserialize_with = "empty_string_as_none"
1333 )]
1334 pub settings_modified_item_indicator: Option<String>,
1335
1336 #[serde(
1337 default,
1338 rename = "settings.dropdownBackground",
1339 deserialize_with = "empty_string_as_none"
1340 )]
1341 pub settings_dropdown_background: Option<String>,
1342
1343 #[serde(
1344 default,
1345 rename = "settings.dropdownForeground",
1346 deserialize_with = "empty_string_as_none"
1347 )]
1348 pub settings_dropdown_foreground: Option<String>,
1349
1350 #[serde(
1351 default,
1352 rename = "settings.dropdownBorder",
1353 deserialize_with = "empty_string_as_none"
1354 )]
1355 pub settings_dropdown_border: Option<String>,
1356
1357 #[serde(
1358 default,
1359 rename = "settings.checkboxBackground",
1360 deserialize_with = "empty_string_as_none"
1361 )]
1362 pub settings_checkbox_background: Option<String>,
1363
1364 #[serde(
1365 default,
1366 rename = "settings.checkboxForeground",
1367 deserialize_with = "empty_string_as_none"
1368 )]
1369 pub settings_checkbox_foreground: Option<String>,
1370
1371 #[serde(
1372 default,
1373 rename = "settings.checkboxBorder",
1374 deserialize_with = "empty_string_as_none"
1375 )]
1376 pub settings_checkbox_border: Option<String>,
1377
1378 #[serde(
1379 default,
1380 rename = "settings.textInputBackground",
1381 deserialize_with = "empty_string_as_none"
1382 )]
1383 pub settings_text_input_background: Option<String>,
1384
1385 #[serde(
1386 default,
1387 rename = "settings.textInputForeground",
1388 deserialize_with = "empty_string_as_none"
1389 )]
1390 pub settings_text_input_foreground: Option<String>,
1391
1392 #[serde(
1393 default,
1394 rename = "settings.textInputBorder",
1395 deserialize_with = "empty_string_as_none"
1396 )]
1397 pub settings_text_input_border: Option<String>,
1398
1399 #[serde(
1400 default,
1401 rename = "settings.numberInputBackground",
1402 deserialize_with = "empty_string_as_none"
1403 )]
1404 pub settings_number_input_background: Option<String>,
1405
1406 #[serde(
1407 default,
1408 rename = "settings.numberInputForeground",
1409 deserialize_with = "empty_string_as_none"
1410 )]
1411 pub settings_number_input_foreground: Option<String>,
1412
1413 #[serde(
1414 default,
1415 rename = "settings.numberInputBorder",
1416 deserialize_with = "empty_string_as_none"
1417 )]
1418 pub settings_number_input_border: Option<String>,
1419
1420 #[serde(
1421 default,
1422 rename = "breadcrumb.foreground",
1423 deserialize_with = "empty_string_as_none"
1424 )]
1425 pub breadcrumb_foreground: Option<String>,
1426
1427 #[serde(
1428 default,
1429 rename = "breadcrumb.background",
1430 deserialize_with = "empty_string_as_none"
1431 )]
1432 pub breadcrumb_background: Option<String>,
1433
1434 #[serde(
1435 default,
1436 rename = "breadcrumb.focusForeground",
1437 deserialize_with = "empty_string_as_none"
1438 )]
1439 pub breadcrumb_focus_foreground: Option<String>,
1440
1441 #[serde(
1442 default,
1443 rename = "breadcrumb.activeSelectionForeground",
1444 deserialize_with = "empty_string_as_none"
1445 )]
1446 pub breadcrumb_active_selection_foreground: Option<String>,
1447
1448 #[serde(
1449 default,
1450 rename = "breadcrumbPicker.background",
1451 deserialize_with = "empty_string_as_none"
1452 )]
1453 pub breadcrumb_picker_background: Option<String>,
1454
1455 #[serde(
1456 default,
1457 rename = "listFilterWidget.background",
1458 deserialize_with = "empty_string_as_none"
1459 )]
1460 pub list_filter_widget_background: Option<String>,
1461
1462 #[serde(
1463 default,
1464 rename = "listFilterWidget.outline",
1465 deserialize_with = "empty_string_as_none"
1466 )]
1467 pub list_filter_widget_outline: Option<String>,
1468
1469 #[serde(
1470 default,
1471 rename = "listFilterWidget.noMatchesOutline",
1472 deserialize_with = "empty_string_as_none"
1473 )]
1474 pub list_filter_widget_no_matches_outline: Option<String>,
1475}