From 7d75ae89e0580964573c55d29da8be33634e2457 Mon Sep 17 00:00:00 2001 From: ByteMaster <173349312+byt3m4st3r@users.noreply.github.com> Date: Wed, 10 Jul 2024 21:47:36 +0200 Subject: [PATCH] feat(extras): add zed editor theme * refactor(util): Add parse method for variant * feat(extras): Init Cyberdream theme for zed * chore: generate extras * refactor(extras): put variant logic inside zed template * docs(extras): update zed usage instructions * fix(extras): small changes for better theme parity * chore: generate extras --------- Co-authored-by: byt3m4st3r Co-authored-by: Scott McKendry <39483124+scottmckendry@users.noreply.github.com> Co-authored-by: scottmckendry --- README.md | 1 + extras/zed/README.md | 24 +++ extras/zed/cyberdream-light.json | 313 +++++++++++++++++++++++++++++ extras/zed/cyberdream.json | 313 +++++++++++++++++++++++++++++ lua/cyberdream/extra/init.lua | 1 + lua/cyberdream/extra/zed.lua | 330 +++++++++++++++++++++++++++++++ 6 files changed, 982 insertions(+) create mode 100644 extras/zed/README.md create mode 100644 extras/zed/cyberdream-light.json create mode 100644 extras/zed/cyberdream.json create mode 100644 lua/cyberdream/extra/zed.lua diff --git a/README.md b/README.md index f6d16dd..1b69b86 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,7 @@ We've cooked up some wonderful extras to enhance your cyberdream experience. Mos - **[Tmux](extras/tmux/)** - **[Wezterm](extras/wezterm/)** - **[Windows Terminal](extras/windowsterminal/)** +- **[Zed](extras/zed/)** - **[Zellij](extras/zellij/)** ## 🧑‍🍳 Recipes diff --git a/extras/zed/README.md b/extras/zed/README.md new file mode 100644 index 0000000..a1c388e --- /dev/null +++ b/extras/zed/README.md @@ -0,0 +1,24 @@ +## Usage + +Create a directory `~/.config/zed/themes` if it does not already exist. + +Copy `cyberdream.json` and/or `cyberdream-light.json` to the directory. + +Open [Zed](https://zed.dev) and select the theme under `Settings -> Select Theme -> Cyberdream (dark|light)`. + +Alternatively, put the following config into your `settings.json` under `~/.config/zed`. + +```json +// settings.json +{ + // --- + "theme": { + "mode": "system", + "light": "Cyberdream light", + "dark": "Cyberdream dark" + } + // --- +} +``` + +See also: [Zed - Docs - Themes](https://zed.dev/docs/themes) diff --git a/extras/zed/cyberdream-light.json b/extras/zed/cyberdream-light.json new file mode 100644 index 0000000..790fcff --- /dev/null +++ b/extras/zed/cyberdream-light.json @@ -0,0 +1,313 @@ +{ + "$schema": "https://zed.dev/schema/themes/v0.1.0.json", + "name": "Cyberdream", + "description": "High-contrast, Futuristic & Vibrant Coloursheme for Zed", + "author": "Byt3m4st3r", + "themes": [ + { + "name": "Cyberdream light", + "appearance": "light", + "style": { + "background.appearance": "opaque", + "accents": [], + "border": null, + "border.variant": null, + "border.focused": null, + "border.selected": null, + "border.transparent": null, + "border.disabled": null, + "elevated_surface.background": null, + "surface.background": null, + "background": "#ffffff", + "element.background": null, + "element.hover": null, + "element.active": null, + "element.selected": null, + "element.disabled": null, + "drop_target.background": null, + "ghost_element.background": null, + "ghost_element.hover": null, + "ghost_element.active": null, + "ghost_element.selected": null, + "ghost_element.disabled": null, + "text": "#16181a", + "text.muted": null, + "text.placeholder": null, + "text.disabled": null, + "text.accent": null, + "icon": null, + "icon.muted": null, + "icon.disabled": null, + "icon.placeholder": null, + "icon.accent": null, + "status_bar.background": null, + "title_bar.background": null, + "toolbar.background": "#ffffff", + "tab_bar.background": null, + "tab.inactive_background": null, + "tab.active_background": null, + "search.match_background": null, + "panel.background": null, + "panel.focused_border": null, + "pane.focused_border": null, + "pane_group.border": null, + "scrollbar.thumb.background": null, + "scrollbar.thumb.hover_background": null, + "scrollbar.thumb.border": null, + "scrollbar.track.background": "#ffffff", + "scrollbar.track.border": null, + "editor.foreground": "#16181a", + "editor.background": "#ffffff", + "editor.gutter.background": "#ffffff", + "editor.subheader.background": null, + "editor.active_line.background": "#acacac", + "editor.highlighted_line.background": null, + "editor.line_number": null, + "editor.active_line_number": "#16181a", + "editor.invisible": null, + "editor.wrap_guide": null, + "editor.active_wrap_guide": null, + "editor.indent_guide": null, + "editor.indent_guide_active": null, + "editor.document_highlight.read_background": null, + "editor.document_highlight.write_background": null, + "terminal.background": null, + "terminal.foreground": null, + "terminal.bright_foreground": null, + "terminal.dim_foreground": null, + "terminal.ansi.black": null, + "terminal.ansi.bright_black": null, + "terminal.ansi.dim_black": null, + "terminal.ansi.red": null, + "terminal.ansi.bright_red": null, + "terminal.ansi.dim_red": null, + "terminal.ansi.green": null, + "terminal.ansi.bright_green": null, + "terminal.ansi.dim_green": null, + "terminal.ansi.yellow": null, + "terminal.ansi.bright_yellow": null, + "terminal.ansi.dim_yellow": null, + "terminal.ansi.blue": null, + "terminal.ansi.bright_blue": null, + "terminal.ansi.dim_blue": null, + "terminal.ansi.magenta": null, + "terminal.ansi.bright_magenta": null, + "terminal.ansi.dim_magenta": null, + "terminal.ansi.cyan": null, + "terminal.ansi.bright_cyan": null, + "terminal.ansi.dim_cyan": null, + "terminal.ansi.white": null, + "terminal.ansi.bright_white": null, + "terminal.ansi.dim_white": null, + "link_text.hover": null, + "conflict": null, + "conflict.background": null, + "conflict.border": null, + "created": null, + "created.background": null, + "created.border": null, + "deleted": null, + "deleted.background": null, + "deleted.border": null, + "error": null, + "error.background": null, + "error.border": null, + "hidden": null, + "hidden.background": null, + "hidden.border": null, + "hint": "#7b8496", + "hint.background": null, + "hint.border": null, + "ignored": null, + "ignored.background": null, + "ignored.border": null, + "info": null, + "info.background": null, + "info.border": null, + "modified": null, + "modified.background": null, + "modified.border": null, + "predictive": null, + "predictive.background": null, + "predictive.border": null, + "renamed": null, + "renamed.background": null, + "renamed.border": null, + "success": null, + "success.background": null, + "success.border": null, + "unreachable": null, + "unreachable.background": null, + "unreachable.border": null, + "warning": null, + "warning.background": null, + "warning.border": null, + "players": [], + "syntax": { + "attribute": { + "color": "#008c99", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "boolean": { + "color": "#0057d1", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "comment": { + "color": "#7b8496", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "comment.doc": { + "color": "#7b8496", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant": { + "color": "#16181a", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constructor": { + "color": "#008c99", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "emphasis": { + "color": "#d17c00", + "background_color": null, + "font_style": "italic", + "font_weight": null + }, + "emphasis.strong": { + "color": "#d17c00", + "background_color": null, + "font_style": null, + "font_weight": 700 + }, + "function": { + "color": "#0057d1", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "keyword": { + "color": "#d17c00", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "number": { + "color": "#d17c00", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "operator": { + "color": "#a018ff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation": { + "color": "#f40064", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.bracket": { + "color": "#f40064", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.delimiter": { + "color": "#f40064", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.list_marker": { + "color": "#f40064", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.special": { + "color": "#f40064", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string": { + "color": "#008b0c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.escape": { + "color": "#16181a", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.regex": { + "color": "#008b0c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.special": { + "color": "#008b0c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.special.symbol": { + "color": "#008b0c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "tag": { + "color": "#008c99", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "text.literal": { + "color": "#008b0c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#a018ff", + "background_color": null, + "font_style": "italic", + "font_weight": null + }, + "variable": { + "color": "#16181a", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#a018ff", + "background_color": null, + "font_style": null, + "font_weight": null + } + } + } + } + ] +} diff --git a/extras/zed/cyberdream.json b/extras/zed/cyberdream.json new file mode 100644 index 0000000..a53e7e7 --- /dev/null +++ b/extras/zed/cyberdream.json @@ -0,0 +1,313 @@ +{ + "$schema": "https://zed.dev/schema/themes/v0.1.0.json", + "name": "Cyberdream", + "description": "High-contrast, Futuristic & Vibrant Coloursheme for Zed", + "author": "Byt3m4st3r", + "themes": [ + { + "name": "Cyberdream dark", + "appearance": "dark", + "style": { + "background.appearance": "opaque", + "accents": [], + "border": null, + "border.variant": null, + "border.focused": null, + "border.selected": null, + "border.transparent": null, + "border.disabled": null, + "elevated_surface.background": null, + "surface.background": null, + "background": "#16181a", + "element.background": null, + "element.hover": null, + "element.active": null, + "element.selected": null, + "element.disabled": null, + "drop_target.background": null, + "ghost_element.background": null, + "ghost_element.hover": null, + "ghost_element.active": null, + "ghost_element.selected": null, + "ghost_element.disabled": null, + "text": "#ffffff", + "text.muted": null, + "text.placeholder": null, + "text.disabled": null, + "text.accent": null, + "icon": null, + "icon.muted": null, + "icon.disabled": null, + "icon.placeholder": null, + "icon.accent": null, + "status_bar.background": null, + "title_bar.background": null, + "toolbar.background": "#16181a", + "tab_bar.background": null, + "tab.inactive_background": null, + "tab.active_background": null, + "search.match_background": null, + "panel.background": null, + "panel.focused_border": null, + "pane.focused_border": null, + "pane_group.border": null, + "scrollbar.thumb.background": null, + "scrollbar.thumb.hover_background": null, + "scrollbar.thumb.border": null, + "scrollbar.track.background": "#16181a", + "scrollbar.track.border": null, + "editor.foreground": "#ffffff", + "editor.background": "#16181a", + "editor.gutter.background": "#16181a", + "editor.subheader.background": null, + "editor.active_line.background": "#3c4048", + "editor.highlighted_line.background": null, + "editor.line_number": null, + "editor.active_line_number": "#ffffff", + "editor.invisible": null, + "editor.wrap_guide": null, + "editor.active_wrap_guide": null, + "editor.indent_guide": null, + "editor.indent_guide_active": null, + "editor.document_highlight.read_background": null, + "editor.document_highlight.write_background": null, + "terminal.background": null, + "terminal.foreground": null, + "terminal.bright_foreground": null, + "terminal.dim_foreground": null, + "terminal.ansi.black": null, + "terminal.ansi.bright_black": null, + "terminal.ansi.dim_black": null, + "terminal.ansi.red": null, + "terminal.ansi.bright_red": null, + "terminal.ansi.dim_red": null, + "terminal.ansi.green": null, + "terminal.ansi.bright_green": null, + "terminal.ansi.dim_green": null, + "terminal.ansi.yellow": null, + "terminal.ansi.bright_yellow": null, + "terminal.ansi.dim_yellow": null, + "terminal.ansi.blue": null, + "terminal.ansi.bright_blue": null, + "terminal.ansi.dim_blue": null, + "terminal.ansi.magenta": null, + "terminal.ansi.bright_magenta": null, + "terminal.ansi.dim_magenta": null, + "terminal.ansi.cyan": null, + "terminal.ansi.bright_cyan": null, + "terminal.ansi.dim_cyan": null, + "terminal.ansi.white": null, + "terminal.ansi.bright_white": null, + "terminal.ansi.dim_white": null, + "link_text.hover": null, + "conflict": null, + "conflict.background": null, + "conflict.border": null, + "created": null, + "created.background": null, + "created.border": null, + "deleted": null, + "deleted.background": null, + "deleted.border": null, + "error": null, + "error.background": null, + "error.border": null, + "hidden": null, + "hidden.background": null, + "hidden.border": null, + "hint": "#7b8496", + "hint.background": null, + "hint.border": null, + "ignored": null, + "ignored.background": null, + "ignored.border": null, + "info": null, + "info.background": null, + "info.border": null, + "modified": null, + "modified.background": null, + "modified.border": null, + "predictive": null, + "predictive.background": null, + "predictive.border": null, + "renamed": null, + "renamed.background": null, + "renamed.border": null, + "success": null, + "success.background": null, + "success.border": null, + "unreachable": null, + "unreachable.background": null, + "unreachable.border": null, + "warning": null, + "warning.background": null, + "warning.border": null, + "players": [], + "syntax": { + "attribute": { + "color": "#5ef1ff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "boolean": { + "color": "#5ea1ff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "comment": { + "color": "#7b8496", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "comment.doc": { + "color": "#7b8496", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant": { + "color": "#ffffff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constructor": { + "color": "#5ef1ff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "emphasis": { + "color": "#ffbd5e", + "background_color": null, + "font_style": "italic", + "font_weight": null + }, + "emphasis.strong": { + "color": "#ffbd5e", + "background_color": null, + "font_style": null, + "font_weight": 700 + }, + "function": { + "color": "#5ea1ff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "keyword": { + "color": "#ffbd5e", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "number": { + "color": "#ffbd5e", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "operator": { + "color": "#bd5eff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation": { + "color": "#ff5ea0", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.bracket": { + "color": "#ff5ea0", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.delimiter": { + "color": "#ff5ea0", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.list_marker": { + "color": "#ff5ea0", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.special": { + "color": "#ff5ea0", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string": { + "color": "#5eff6c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.escape": { + "color": "#ffffff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.regex": { + "color": "#5eff6c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.special": { + "color": "#5eff6c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.special.symbol": { + "color": "#5eff6c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "tag": { + "color": "#5ef1ff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "text.literal": { + "color": "#5eff6c", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#bd5eff", + "background_color": null, + "font_style": "italic", + "font_weight": null + }, + "variable": { + "color": "#ffffff", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#bd5eff", + "background_color": null, + "font_style": null, + "font_weight": null + } + } + } + } + ] +} diff --git a/lua/cyberdream/extra/init.lua b/lua/cyberdream/extra/init.lua index 3d45230..feb06af 100644 --- a/lua/cyberdream/extra/init.lua +++ b/lua/cyberdream/extra/init.lua @@ -20,6 +20,7 @@ M.extras = { wezterm = { extension = "lua", name = "wezterm" }, windowsterminal = { extension = "json", name = "windowsterminal" }, zellij = { extension = "kdl", name = "zellij" }, + zed = { extension = "json", name = "zed" }, } --- Create/overwrite a file in the extras directory. diff --git a/lua/cyberdream/extra/zed.lua b/lua/cyberdream/extra/zed.lua new file mode 100644 index 0000000..5d04e17 --- /dev/null +++ b/lua/cyberdream/extra/zed.lua @@ -0,0 +1,330 @@ +local colors = require("cyberdream.colors") +local util = require("cyberdream.util") + +local M = {} + +--- Generate cyberdream theme for https://zed.dev/ +--- @param variant string: Variation of the colorscheme to use. +function M.generate(variant) + local modified_colors = vim.fn.copy(colors[variant]) + modified_colors.variant = variant == "default" and "dark" or "light" + local template = [==[ +{ + "$schema": "https://zed.dev/schema/themes/v0.1.0.json", + "name": "Cyberdream", + "description": "High-contrast, Futuristic & Vibrant Coloursheme for Zed", + "author": "Byt3m4st3r", + "themes": [ + { + "name": "Cyberdream ${variant}", + "appearance": "${variant}", + "style": { + "background.appearance": "opaque", + "accents": [], + "border": null, + "border.variant": null, + "border.focused": null, + "border.selected": null, + "border.transparent": null, + "border.disabled": null, + "elevated_surface.background": null, + "surface.background": null, + "background": "${bg}", + "element.background": null, + "element.hover": null, + "element.active": null, + "element.selected": null, + "element.disabled": null, + "drop_target.background": null, + "ghost_element.background": null, + "ghost_element.hover": null, + "ghost_element.active": null, + "ghost_element.selected": null, + "ghost_element.disabled": null, + "text": "${fg}", + "text.muted": null, + "text.placeholder": null, + "text.disabled": null, + "text.accent": null, + "icon": null, + "icon.muted": null, + "icon.disabled": null, + "icon.placeholder": null, + "icon.accent": null, + "status_bar.background": null, + "title_bar.background": null, + "toolbar.background": "${bg}", + "tab_bar.background": null, + "tab.inactive_background": null, + "tab.active_background": null, + "search.match_background": null, + "panel.background": null, + "panel.focused_border": null, + "pane.focused_border": null, + "pane_group.border": null, + "scrollbar.thumb.background": null, + "scrollbar.thumb.hover_background": null, + "scrollbar.thumb.border": null, + "scrollbar.track.background": "${bg}", + "scrollbar.track.border": null, + "editor.foreground": "${fg}", + "editor.background": "${bg}", + "editor.gutter.background": "${bg}", + "editor.subheader.background": null, + "editor.active_line.background": "${bgHighlight}", + "editor.highlighted_line.background": null, + "editor.line_number": null, + "editor.active_line_number": "${fg}", + "editor.invisible": null, + "editor.wrap_guide": null, + "editor.active_wrap_guide": null, + "editor.indent_guide": null, + "editor.indent_guide_active": null, + "editor.document_highlight.read_background": null, + "editor.document_highlight.write_background": null, + "terminal.background": null, + "terminal.foreground": null, + "terminal.bright_foreground": null, + "terminal.dim_foreground": null, + "terminal.ansi.black": null, + "terminal.ansi.bright_black": null, + "terminal.ansi.dim_black": null, + "terminal.ansi.red": null, + "terminal.ansi.bright_red": null, + "terminal.ansi.dim_red": null, + "terminal.ansi.green": null, + "terminal.ansi.bright_green": null, + "terminal.ansi.dim_green": null, + "terminal.ansi.yellow": null, + "terminal.ansi.bright_yellow": null, + "terminal.ansi.dim_yellow": null, + "terminal.ansi.blue": null, + "terminal.ansi.bright_blue": null, + "terminal.ansi.dim_blue": null, + "terminal.ansi.magenta": null, + "terminal.ansi.bright_magenta": null, + "terminal.ansi.dim_magenta": null, + "terminal.ansi.cyan": null, + "terminal.ansi.bright_cyan": null, + "terminal.ansi.dim_cyan": null, + "terminal.ansi.white": null, + "terminal.ansi.bright_white": null, + "terminal.ansi.dim_white": null, + "link_text.hover": null, + "conflict": null, + "conflict.background": null, + "conflict.border": null, + "created": null, + "created.background": null, + "created.border": null, + "deleted": null, + "deleted.background": null, + "deleted.border": null, + "error": null, + "error.background": null, + "error.border": null, + "hidden": null, + "hidden.background": null, + "hidden.border": null, + "hint": "${grey}", + "hint.background": null, + "hint.border": null, + "ignored": null, + "ignored.background": null, + "ignored.border": null, + "info": null, + "info.background": null, + "info.border": null, + "modified": null, + "modified.background": null, + "modified.border": null, + "predictive": null, + "predictive.background": null, + "predictive.border": null, + "renamed": null, + "renamed.background": null, + "renamed.border": null, + "success": null, + "success.background": null, + "success.border": null, + "unreachable": null, + "unreachable.background": null, + "unreachable.border": null, + "warning": null, + "warning.background": null, + "warning.border": null, + "players": [], + "syntax": { + "attribute": { + "color": "${cyan}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "boolean": { + "color": "${blue}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "comment": { + "color": "${grey}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "comment.doc": { + "color": "${grey}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant": { + "color": "${fg}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constructor": { + "color": "${cyan}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "emphasis": { + "color": "${orange}", + "background_color": null, + "font_style": "italic", + "font_weight": null + }, + "emphasis.strong": { + "color": "${orange}", + "background_color": null, + "font_style": null, + "font_weight": 700 + }, + "function": { + "color": "${blue}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "keyword": { + "color": "${orange}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "number": { + "color": "${orange}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "operator": { + "color": "${purple}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation": { + "color": "${pink}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.bracket": { + "color": "${pink}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.delimiter": { + "color": "${pink}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.list_marker": { + "color": "${pink}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.special": { + "color": "${pink}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string": { + "color": "${green}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.escape": { + "color": "${fg}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.regex": { + "color": "${green}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.special": { + "color": "${green}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.special.symbol": { + "color": "${green}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "tag": { + "color": "${cyan}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "text.literal": { + "color": "${green}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "${purple}", + "background_color": null, + "font_style": "italic", + "font_weight": null + }, + "variable": { + "color": "${fg}", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "${purple}", + "background_color": null, + "font_style": null, + "font_weight": null + } + } + } + } + ] +} +]==] + + return util.parse_extra_template(template, modified_colors) +end + +return M