diff --git a/.theme-schema.json b/.theme-schema.json new file mode 100644 index 00000000..1cf6bb1a --- /dev/null +++ b/.theme-schema.json @@ -0,0 +1,1784 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ThemeConfig", + "description": "Represents a theme configuration.", + "type": "object", + "properties": { + "name": { + "description": "The name of the theme.", + "type": "string", + "default": "" + }, + "author": { + "description": "The author of the theme.", + "type": [ + "string", + "null" + ], + "default": null + }, + "url": { + "description": "The URL of the theme.", + "type": [ + "string", + "null" + ], + "default": null + }, + "mode": { + "description": "The mode of the theme, default is light.", + "$ref": "#/$defs/ThemeMode", + "default": "dark" + }, + "font.size": { + "description": "The base font size, default is 16.", + "type": [ + "number", + "null" + ], + "format": "float", + "default": null + }, + "colors": { + "description": "The colors of the theme.", + "$ref": "#/$defs/ThemeConfigColors", + "default": { + "accent.background": null, + "accent.foreground": null, + "accordion.background": null, + "accordion.active.background": null, + "accordion.hover.background": null, + "background": null, + "border": null, + "card.background": null, + "card.foreground": null, + "caret": null, + "chart.1": null, + "chart.2": null, + "chart.3": null, + "chart.4": null, + "chart.5": null, + "danger.background": null, + "danger.active.background": null, + "danger.foreground": null, + "danger.hover.background": null, + "description_list.label.background": null, + "description_list.label.foreground": null, + "drag.border": null, + "drop_target.background": null, + "foreground": null, + "info.background": null, + "info.active.background": null, + "info.foreground": null, + "info.hover.background": null, + "input.border": null, + "link": null, + "link.active": null, + "link.hover": null, + "list.background": null, + "list.active.background": null, + "list.active.border": null, + "list.even.background": null, + "list.head.background": null, + "list.hover.background": null, + "muted.background": null, + "muted.foreground": null, + "popover.background": null, + "popover.foreground": null, + "primary.background": null, + "primary.active.background": null, + "primary.foreground": null, + "primary.hover.background": null, + "progress.bar.background": null, + "ring": null, + "scrollbar.background": null, + "scrollbar.thumb.background": null, + "scrollbar.thumb.hover.background": null, + "secondary.background": null, + "secondary.active.background": null, + "secondary.foreground": null, + "secondary.hover.background": null, + "selection.background": null, + "sidebar.background": null, + "sidebar.accent.background": null, + "sidebar.accent.foreground": null, + "sidebar.border": null, + "sidebar.foreground": null, + "sidebar.primary.background": null, + "sidebar.primary.foreground": null, + "skeleton.background": null, + "slider.background": null, + "slider.thumb.background": null, + "success.background": null, + "success.foreground": null, + "success.hover.background": null, + "success.active.background": null, + "switch.background": null, + "tab.background": null, + "tab.active.background": null, + "tab.active.foreground": null, + "tab_bar.background": null, + "tab_bar.segmented.background": null, + "tab.foreground": null, + "table.background": null, + "table.active.background": null, + "table.active.border": null, + "table.even.background": null, + "table.head.background": null, + "table.head.foreground": null, + "table.hover.background": null, + "table.row.border": null, + "title_bar.background": null, + "title_bar.border": null, + "tiles.background": null, + "warning.background": null, + "warning.active.background": null, + "warning.hover.background": null, + "warning.foreground": null, + "overlay": null, + "window.border": null, + "base.blue": null, + "base.blue.light": null, + "base.cyan": null, + "base.cyan.light": null, + "base.green": null, + "base.green.light": null, + "base.magenta": null, + "base.magenta.light": null, + "base.red": null, + "base.red.light": null, + "base.yellow": null, + "base.yellow.light": null + } + }, + "highlight": { + "description": "The highlight theme, this part is combilbility with `style` section in Zed theme.\n\nhttps://github.com/zed-industries/zed/blob/f50041779dcfd7a76c8aec293361c60c53f02d51/assets/themes/ayu/ayu.json#L9", + "anyOf": [ + { + "$ref": "#/$defs/HighlightThemeStyle" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "name", + "author", + "url", + "mode", + "font.size", + "colors", + "highlight" + ], + "$defs": { + "ThemeMode": { + "type": "string", + "enum": [ + "light", + "dark" + ] + }, + "ThemeConfigColors": { + "type": "object", + "properties": { + "accent.background": { + "description": "Used for accents such as hover background on MenuItem, ListItem, etc.", + "type": [ + "string", + "null" + ] + }, + "accent.foreground": { + "description": "Used for accent text color.", + "type": [ + "string", + "null" + ] + }, + "accordion.background": { + "description": "Accordion background color.", + "type": [ + "string", + "null" + ] + }, + "accordion.active.background": { + "description": "Accordion active background color.", + "type": [ + "string", + "null" + ] + }, + "accordion.hover.background": { + "description": "Accordion hover background color.", + "type": [ + "string", + "null" + ] + }, + "background": { + "description": "Default background color.", + "type": [ + "string", + "null" + ] + }, + "border": { + "description": "Default border color", + "type": [ + "string", + "null" + ] + }, + "card.background": { + "description": "Background color for Card.", + "type": [ + "string", + "null" + ] + }, + "card.foreground": { + "description": "Text color for Card.", + "type": [ + "string", + "null" + ] + }, + "caret": { + "description": "Input caret color (Blinking cursor).", + "type": [ + "string", + "null" + ] + }, + "chart.1": { + "description": "Chart 1 color.", + "type": [ + "string", + "null" + ] + }, + "chart.2": { + "description": "Chart 2 color.", + "type": [ + "string", + "null" + ] + }, + "chart.3": { + "description": "Chart 3 color.", + "type": [ + "string", + "null" + ] + }, + "chart.4": { + "description": "Chart 4 color.", + "type": [ + "string", + "null" + ] + }, + "chart.5": { + "description": "Chart 5 color.", + "type": [ + "string", + "null" + ] + }, + "danger.background": { + "description": "Danger background color.", + "type": [ + "string", + "null" + ] + }, + "danger.active.background": { + "description": "Danger active background color.", + "type": [ + "string", + "null" + ] + }, + "danger.foreground": { + "description": "Danger text color.", + "type": [ + "string", + "null" + ] + }, + "danger.hover.background": { + "description": "Danger hover background color.", + "type": [ + "string", + "null" + ] + }, + "description_list.label.background": { + "description": "Description List label background color.", + "type": [ + "string", + "null" + ] + }, + "description_list.label.foreground": { + "description": "Description List label foreground color.", + "type": [ + "string", + "null" + ] + }, + "drag.border": { + "description": "Drag border color.", + "type": [ + "string", + "null" + ] + }, + "drop_target.background": { + "description": "Drop target background color.", + "type": [ + "string", + "null" + ] + }, + "foreground": { + "description": "Default text color.", + "type": [ + "string", + "null" + ] + }, + "info.background": { + "description": "Info background color.", + "type": [ + "string", + "null" + ] + }, + "info.active.background": { + "description": "Info active background color.", + "type": [ + "string", + "null" + ] + }, + "info.foreground": { + "description": "Info text color.", + "type": [ + "string", + "null" + ] + }, + "info.hover.background": { + "description": "Info hover background color.", + "type": [ + "string", + "null" + ] + }, + "input.border": { + "description": "Border color for inputs such as Input, Dropdown, etc.", + "type": [ + "string", + "null" + ] + }, + "link": { + "description": "Link text color.", + "type": [ + "string", + "null" + ] + }, + "link.active": { + "description": "Active link text color.", + "type": [ + "string", + "null" + ] + }, + "link.hover": { + "description": "Hover link text color.", + "type": [ + "string", + "null" + ] + }, + "list.background": { + "description": "Background color for List and ListItem.", + "type": [ + "string", + "null" + ] + }, + "list.active.background": { + "description": "Background color for active ListItem.", + "type": [ + "string", + "null" + ] + }, + "list.active.border": { + "description": "Border color for active ListItem.", + "type": [ + "string", + "null" + ] + }, + "list.even.background": { + "description": "Stripe background color for even ListItem.", + "type": [ + "string", + "null" + ] + }, + "list.head.background": { + "description": "Background color for List header.", + "type": [ + "string", + "null" + ] + }, + "list.hover.background": { + "description": "Hover background color for ListItem.", + "type": [ + "string", + "null" + ] + }, + "muted.background": { + "description": "Muted backgrounds such as Skeleton and Switch.", + "type": [ + "string", + "null" + ] + }, + "muted.foreground": { + "description": "Muted text color, as used in disabled text.", + "type": [ + "string", + "null" + ] + }, + "popover.background": { + "description": "Background color for Popover.", + "type": [ + "string", + "null" + ] + }, + "popover.foreground": { + "description": "Text color for Popover.", + "type": [ + "string", + "null" + ] + }, + "primary.background": { + "description": "Primary background color.", + "type": [ + "string", + "null" + ] + }, + "primary.active.background": { + "description": "Active primary background color.", + "type": [ + "string", + "null" + ] + }, + "primary.foreground": { + "description": "Primary text color.", + "type": [ + "string", + "null" + ] + }, + "primary.hover.background": { + "description": "Hover primary background color.", + "type": [ + "string", + "null" + ] + }, + "progress.bar.background": { + "description": "Progress bar background color.", + "type": [ + "string", + "null" + ] + }, + "ring": { + "description": "Used for focus ring.", + "type": [ + "string", + "null" + ] + }, + "scrollbar.background": { + "description": "Scrollbar background color.", + "type": [ + "string", + "null" + ] + }, + "scrollbar.thumb.background": { + "description": "Scrollbar thumb background color.", + "type": [ + "string", + "null" + ] + }, + "scrollbar.thumb.hover.background": { + "description": "Scrollbar thumb hover background color.", + "type": [ + "string", + "null" + ] + }, + "secondary.background": { + "description": "Secondary background color.", + "type": [ + "string", + "null" + ] + }, + "secondary.active.background": { + "description": "Active secondary background color.", + "type": [ + "string", + "null" + ] + }, + "secondary.foreground": { + "description": "Secondary text color, used for secondary Button text color or secondary text.", + "type": [ + "string", + "null" + ] + }, + "secondary.hover.background": { + "description": "Hover secondary background color.", + "type": [ + "string", + "null" + ] + }, + "selection.background": { + "description": "Input selection background color.", + "type": [ + "string", + "null" + ] + }, + "sidebar.background": { + "description": "Sidebar background color.", + "type": [ + "string", + "null" + ] + }, + "sidebar.accent.background": { + "description": "Sidebar accent background color.", + "type": [ + "string", + "null" + ] + }, + "sidebar.accent.foreground": { + "description": "Sidebar accent text color.", + "type": [ + "string", + "null" + ] + }, + "sidebar.border": { + "description": "Sidebar border color.", + "type": [ + "string", + "null" + ] + }, + "sidebar.foreground": { + "description": "Sidebar text color.", + "type": [ + "string", + "null" + ] + }, + "sidebar.primary.background": { + "description": "Sidebar primary background color.", + "type": [ + "string", + "null" + ] + }, + "sidebar.primary.foreground": { + "description": "Sidebar primary text color.", + "type": [ + "string", + "null" + ] + }, + "skeleton.background": { + "description": "Skeleton background color.", + "type": [ + "string", + "null" + ] + }, + "slider.background": { + "description": "Slider bar background color.", + "type": [ + "string", + "null" + ] + }, + "slider.thumb.background": { + "description": "Slider thumb background color.", + "type": [ + "string", + "null" + ] + }, + "success.background": { + "description": "Success background color.", + "type": [ + "string", + "null" + ] + }, + "success.foreground": { + "description": "Success text color.", + "type": [ + "string", + "null" + ] + }, + "success.hover.background": { + "description": "Success hover background color.", + "type": [ + "string", + "null" + ] + }, + "success.active.background": { + "description": "Success active background color.", + "type": [ + "string", + "null" + ] + }, + "switch.background": { + "description": "Switch background color.", + "type": [ + "string", + "null" + ] + }, + "tab.background": { + "description": "Tab background color.", + "type": [ + "string", + "null" + ] + }, + "tab.active.background": { + "description": "Tab active background color.", + "type": [ + "string", + "null" + ] + }, + "tab.active.foreground": { + "description": "Tab active text color.", + "type": [ + "string", + "null" + ] + }, + "tab_bar.background": { + "description": "TabBar background color.", + "type": [ + "string", + "null" + ] + }, + "tab_bar.segmented.background": { + "description": "TabBar segmented background color.", + "type": [ + "string", + "null" + ] + }, + "tab.foreground": { + "description": "Tab text color.", + "type": [ + "string", + "null" + ] + }, + "table.background": { + "description": "Table background color.", + "type": [ + "string", + "null" + ] + }, + "table.active.background": { + "description": "Table active item background color.", + "type": [ + "string", + "null" + ] + }, + "table.active.border": { + "description": "Table active item border color.", + "type": [ + "string", + "null" + ] + }, + "table.even.background": { + "description": "Stripe background color for even TableRow.", + "type": [ + "string", + "null" + ] + }, + "table.head.background": { + "description": "Table head background color.", + "type": [ + "string", + "null" + ] + }, + "table.head.foreground": { + "description": "Table head text color.", + "type": [ + "string", + "null" + ] + }, + "table.hover.background": { + "description": "Table item hover background color.", + "type": [ + "string", + "null" + ] + }, + "table.row.border": { + "description": "Table row border color.", + "type": [ + "string", + "null" + ] + }, + "title_bar.background": { + "description": "TitleBar background color, use for Window title bar.", + "type": [ + "string", + "null" + ] + }, + "title_bar.border": { + "description": "TitleBar border color.", + "type": [ + "string", + "null" + ] + }, + "tiles.background": { + "description": "Background color for Tiles.", + "type": [ + "string", + "null" + ] + }, + "warning.background": { + "description": "Warning background color.", + "type": [ + "string", + "null" + ] + }, + "warning.active.background": { + "description": "Warning active background color.", + "type": [ + "string", + "null" + ] + }, + "warning.hover.background": { + "description": "Warning hover background color.", + "type": [ + "string", + "null" + ] + }, + "warning.foreground": { + "description": "Warning foreground color.", + "type": [ + "string", + "null" + ] + }, + "overlay": { + "description": "Overlay background color.", + "type": [ + "string", + "null" + ] + }, + "window.border": { + "description": "Window border color.\n\n# Platform specific:\n\nThis is only works on Linux, other platforms we can't change the window border color.", + "type": [ + "string", + "null" + ] + }, + "base.blue": { + "description": "Base blue color.", + "type": [ + "string", + "null" + ] + }, + "base.blue.light": { + "description": "Base light blue color.", + "type": [ + "string", + "null" + ] + }, + "base.cyan": { + "description": "Base cyan color.", + "type": [ + "string", + "null" + ] + }, + "base.cyan.light": { + "description": "Base light cyan color.", + "type": [ + "string", + "null" + ] + }, + "base.green": { + "description": "Base green color.", + "type": [ + "string", + "null" + ] + }, + "base.green.light": { + "description": "Base light green color.", + "type": [ + "string", + "null" + ] + }, + "base.magenta": { + "description": "Base magenta color.", + "type": [ + "string", + "null" + ] + }, + "base.magenta.light": { + "type": [ + "string", + "null" + ] + }, + "base.red": { + "description": "Base red color.", + "type": [ + "string", + "null" + ] + }, + "base.red.light": { + "description": "Base light red color.", + "type": [ + "string", + "null" + ] + }, + "base.yellow": { + "description": "Base yellow color.", + "type": [ + "string", + "null" + ] + }, + "base.yellow.light": { + "description": "Base light yellow color.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "accent.background", + "accent.foreground", + "accordion.background", + "accordion.active.background", + "accordion.hover.background", + "background", + "border", + "card.background", + "card.foreground", + "caret", + "chart.1", + "chart.2", + "chart.3", + "chart.4", + "chart.5", + "danger.background", + "danger.active.background", + "danger.foreground", + "danger.hover.background", + "description_list.label.background", + "description_list.label.foreground", + "drag.border", + "drop_target.background", + "foreground", + "info.background", + "info.active.background", + "info.foreground", + "info.hover.background", + "input.border", + "link", + "link.active", + "link.hover", + "list.background", + "list.active.background", + "list.active.border", + "list.even.background", + "list.head.background", + "list.hover.background", + "muted.background", + "muted.foreground", + "popover.background", + "popover.foreground", + "primary.background", + "primary.active.background", + "primary.foreground", + "primary.hover.background", + "progress.bar.background", + "ring", + "scrollbar.background", + "scrollbar.thumb.background", + "scrollbar.thumb.hover.background", + "secondary.background", + "secondary.active.background", + "secondary.foreground", + "secondary.hover.background", + "selection.background", + "sidebar.background", + "sidebar.accent.background", + "sidebar.accent.foreground", + "sidebar.border", + "sidebar.foreground", + "sidebar.primary.background", + "sidebar.primary.foreground", + "skeleton.background", + "slider.background", + "slider.thumb.background", + "success.background", + "success.foreground", + "success.hover.background", + "success.active.background", + "switch.background", + "tab.background", + "tab.active.background", + "tab.active.foreground", + "tab_bar.background", + "tab_bar.segmented.background", + "tab.foreground", + "table.background", + "table.active.background", + "table.active.border", + "table.even.background", + "table.head.background", + "table.head.foreground", + "table.hover.background", + "table.row.border", + "title_bar.background", + "title_bar.border", + "tiles.background", + "warning.background", + "warning.active.background", + "warning.hover.background", + "warning.foreground", + "overlay", + "window.border", + "base.blue", + "base.blue.light", + "base.cyan", + "base.cyan.light", + "base.green", + "base.green.light", + "base.magenta", + "base.magenta.light", + "base.red", + "base.red.light", + "base.yellow", + "base.yellow.light" + ] + }, + "HighlightThemeStyle": { + "type": "object", + "properties": { + "editor.background": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "editor.foreground": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "editor.active_line.background": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "editor.line_number": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "editor.active_line_number": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "error.background": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "error.border": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "warning": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "warning.background": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "warning.border": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "info": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "info.background": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "info.border": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "success": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "success.background": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "success.border": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "hint": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "hint.background": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "hint.border": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "syntax": { + "$ref": "#/$defs/SyntaxColors" + } + }, + "required": [ + "editor.background", + "editor.foreground", + "editor.active_line.background", + "editor.line_number", + "editor.active_line_number", + "error", + "error.background", + "error.border", + "warning", + "warning.background", + "warning.border", + "info", + "info.background", + "info.border", + "success", + "success.background", + "success.border", + "hint", + "hint.background", + "hint.border", + "syntax" + ] + }, + "Rgba": { + "type": "string", + "pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$" + }, + "SyntaxColors": { + "description": "Theme for Tree-sitter Highlight\n\nhttps://docs.rs/tree-sitter-highlight/0.25.4/tree_sitter_highlight/", + "type": "object", + "properties": { + "attribute": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "boolean": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "comment": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "comment_doc": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "constant": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "constructor": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "embedded": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "emphasis": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "emphasis.strong": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "enum": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "function": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "hint": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "keyword": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "label": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "link_text": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "link_uri": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "operator": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "predictive": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "preproc": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "primary": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "property": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "punctuation": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "punctuation.bracket": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "punctuation.delimiter": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "punctuation.list_marker": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "punctuation.special": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "string": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "string.escape": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "string.regex": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "string.special": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "string.special.symbol": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "tag": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "tag.doctype": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "text.literal": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "title": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "type": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "variable": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "variable.special": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + }, + "variant": { + "anyOf": [ + { + "$ref": "#/$defs/ThemeStyle" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "attribute", + "boolean", + "comment", + "comment_doc", + "constant", + "constructor", + "embedded", + "emphasis", + "emphasis.strong", + "enum", + "function", + "hint", + "keyword", + "label", + "link_text", + "link_uri", + "number", + "operator", + "predictive", + "preproc", + "primary", + "property", + "punctuation", + "punctuation.bracket", + "punctuation.delimiter", + "punctuation.list_marker", + "punctuation.special", + "string", + "string.escape", + "string.regex", + "string.special", + "string.special.symbol", + "tag", + "tag.doctype", + "text.literal", + "title", + "type", + "variable", + "variable.special", + "variant" + ] + }, + "ThemeStyle": { + "type": "object", + "properties": { + "color": { + "anyOf": [ + { + "$ref": "#/$defs/Rgba" + }, + { + "type": "null" + } + ] + }, + "font_style": { + "anyOf": [ + { + "$ref": "#/$defs/FontStyle" + }, + { + "type": "null" + } + ] + }, + "font_weight": { + "anyOf": [ + { + "$ref": "#/$defs/FontWeightContent" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "color", + "font_style", + "font_weight" + ] + }, + "FontStyle": { + "type": "string", + "enum": [ + "normal", + "italic", + "underline" + ] + }, + "FontWeightContent": { + "type": "string", + "enum": [ + "Thin", + "ExtraLight", + "Light", + "Normal", + "Medium", + "Semibold", + "Bold", + "ExtraBold", + "Black" + ] + } + } +}