diff --git a/Cargo.lock b/Cargo.lock index df14ee485194a3051f794dc9fed49713e1923d40..a110aef25cb8bb2cee03ac0922bc6e699ae3d400 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1347,6 +1347,43 @@ dependencies = [ "uuid 1.4.1", ] +[[package]] +name = "channel2" +version = "0.1.0" +dependencies = [ + "anyhow", + "client2", + "clock", + "collections", + "db2", + "feature_flags2", + "futures 0.3.28", + "gpui2", + "image", + "language2", + "lazy_static", + "log", + "parking_lot 0.11.2", + "postage", + "rand 0.8.5", + "rpc2", + "schemars", + "serde", + "serde_derive", + "settings2", + "smallvec", + "smol", + "sum_tree", + "tempfile", + "text", + "thiserror", + "time", + "tiny_http", + "url", + "util", + "uuid 1.4.1", +] + [[package]] name = "chrono" version = "0.4.31" @@ -2422,8 +2459,10 @@ dependencies = [ "client", "collections", "editor", + "futures 0.3.28", "gpui", "language", + "log", "lsp", "postage", "project", @@ -8960,6 +8999,21 @@ dependencies = [ "util", ] +[[package]] +name = "theme_importer" +version = "0.1.0" +dependencies = [ + "anyhow", + "convert_case 0.6.0", + "gpui2", + "log", + "rust-embed", + "serde", + "simplelog", + "theme2", + "uuid 1.4.1", +] + [[package]] name = "theme_selector" version = "0.1.0" @@ -9690,7 +9744,7 @@ dependencies = [ [[package]] name = "tree-sitter-vue" version = "0.0.1" -source = "git+https://github.com/zed-industries/tree-sitter-vue?rev=95b2890#95b28908d90e928c308866f7631e73ef6e1d4b5f" +source = "git+https://github.com/zed-industries/tree-sitter-vue?rev=9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58#9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58" dependencies = [ "cc", "tree-sitter", diff --git a/Cargo.toml b/Cargo.toml index 998ea081a6adb1256113c62bbff498b13ce26e38..268399ad3f116282bf567b48f2bda5fffa512df5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ members = [ "crates/call", "crates/call2", "crates/channel", + "crates/channel2", "crates/cli", "crates/client", "crates/client2", @@ -93,6 +94,7 @@ members = [ "crates/text", "crates/theme", "crates/theme2", + "crates/theme_importer", "crates/theme_selector", "crates/ui2", "crates/util", @@ -175,7 +177,7 @@ tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", tree-sitter-lua = "0.0.14" tree-sitter-nix = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "66e3e9ce9180ae08fc57372061006ef83f0abde7" } tree-sitter-nu = { git = "https://github.com/nushell/tree-sitter-nu", rev = "786689b0562b9799ce53e824cb45a1a2a04dc673"} -tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "95b2890"} +tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58"} [patch.crates-io] tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "35a6052fbcafc5e5fc0f9415b8652be7dcaf7222" } async-task = { git = "https://github.com/zed-industries/async-task", rev = "341b57d6de98cdfd7b418567b8de2022ca993a6e" } diff --git a/assets/icons/dash.svg b/assets/icons/dash.svg new file mode 100644 index 0000000000000000000000000000000000000000..efff9eab5e82ac7dfbc9263081fc25fc1eae2551 --- /dev/null +++ b/assets/icons/dash.svg @@ -0,0 +1 @@ + diff --git a/assets/themes/src/vscode/andromeda/LICENSE b/assets/themes/src/vscode/andromeda/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..82d25d5061f32e908b6490862f76fb2aa8ead832 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2017 eliverlara@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/assets/themes/src/vscode/andromeda/andromeda-bordered.json b/assets/themes/src/vscode/andromeda/andromeda-bordered.json new file mode 100644 index 0000000000000000000000000000000000000000..c59ece1ee1fded14e79ad90f943ce03127ddc9a3 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/andromeda-bordered.json @@ -0,0 +1,369 @@ +{ + "name": "Andromeda Bordered", + "type": "dark", + "colors": { + "focusBorder": "#746f77", + "foreground": "#D5CED9", + "widget.shadow": "#14151A", + "selection.background": "#746f77", + "errorForeground": "#FC644D", + + "button.background": "#00e8c5cc", + "button.hoverBackground": "#07d4b6cc", + + "dropdown.background": "#2b303b", + "dropdown.border": "#363c49", + + "input.background": "#2b303b", + "input.placeholderForeground": "#746f77", + "inputOption.activeBorder": "#C668BA", + "inputValidation.errorBackground": "#D65343", + "inputValidation.errorBorder": "#D65343", + "inputValidation.infoBackground": "#3A6395", + "inputValidation.infoBorder": "#3A6395", + "inputValidation.warningBackground": "#DE9237", + "inputValidation.warningBorder": "#DE9237", + + "scrollbar.shadow": "#23262E", + "scrollbarSlider.activeBackground": "#3A3F4CCC", + "scrollbarSlider.background": "#3A3F4C77", + "scrollbarSlider.hoverBackground": "#3A3F4CAA", + + "badge.background": "#00b0ff", + "badge.foreground": "#20232B", + + "progressBar.background": "#C668BA", + + "list.activeSelectionBackground": "#23262E", + "list.activeSelectionForeground": "#00e8c6", + "list.dropBackground": "#3a404e", + "list.focusBackground": "#282b35", + "list.focusForeground": "#eee", + "list.hoverBackground": "#23262E", + "list.hoverForeground": "#eee", + "list.inactiveSelectionBackground": "#23262E", + "list.inactiveSelectionForeground": "#00e8c6", + + "activityBar.background": "#20232B", + "activityBar.dropBackground": "#3a404e", + "activityBar.foreground": "#BAAFC0", + "activityBarBadge.background": "#00b0ff", + "activityBarBadge.foreground": "#20232B", + "activityBar.border": "#1B1D23", + + "sideBar.background": "#23262E", + "sideBarSectionHeader.background": "#23262E", + "sideBarTitle.foreground": "#00e8c6", + "sideBar.foreground": "#999999", + "sideBar.border": "#1B1D23", + + "editorGroup.background": "#23262E", + "editorGroup.dropBackground": "#495061d7", + "editorGroupHeader.tabsBackground": "#23262E", + "tab.activeBackground": "#262A33", + "tab.inactiveBackground": "#23262E", + "tab.activeForeground": "#00e8c6", + "tab.inactiveForeground": "#746f77", + + "editor.background": "#262A33", + "editor.foreground": "#D5CED9", + "editorLineNumber.foreground": "#746f77", + "editorCursor.foreground": "#FFF", + "editor.selectionBackground": "#3D4352", + "editor.selectionHighlightBackground": "#4F435580", + "editor.wordHighlightBackground": "#4F4355", + "editor.wordHighlightStrongBackground": "#db45a280", + "editor.findMatchBackground": "#f39d1256", + "editor.findMatchHighlightBackground": "#59b8b377", + "editor.findMatchBorder": "#f39d12b6", + "editor.hoverHighlightBackground": "#373941", + "editor.lineHighlightBackground": "#2e323d", + "editor.lineHighlightBorder": "#2e323d", + "editorLink.activeForeground": "#3B79C7", + "editor.rangeHighlightBackground": "#372F3C", + "editorWhitespace.foreground": "#333844", + "editorIndentGuide.background": "#333844", + "editorIndentGuide.activeBackground": "#585C66", + "editorRuler.foreground": "#4F4355", + "editorCodeLens.foreground": "#746f77", + "editorBracketMatch.background": "#746f77", + "editorBracketMatch.border": "#746f77", + "editorOverviewRuler.border": "#1B1D23", + "editorError.foreground": "#FC644D", + "editorWarning.foreground": "#FF9F2E", + "editorGutter.modifiedBackground": "#5BC0EBBB", + "editorGutter.addedBackground": "#9BC53DBB", + "editorGutter.deletedBackground": "#FC644DBB", + + "diffEditor.insertedTextBackground": "#29BF1220", + "diffEditor.removedTextBackground": "#F21B3F20", + + "editorWidget.background": "#20232A", + "editorSuggestWidget.background": "#20232A", + "editorSuggestWidget.border": "#372F3C", + "editorSuggestWidget.selectedBackground": "#373941", + "editorHoverWidget.background": "#373941", + "editorHoverWidget.border": "#00e8c5cc", + "debugExceptionWidget.background": "#FF9F2E60", + "debugExceptionWidget.border": "#FF9F2E60", + + "minimapSlider.background": "#58607460", + "minimapSlider.hoverBackground": "#60698060", + "minimapSlider.activeBackground": "#60698060", + + "peekView.border": "#23262E", + "peekViewEditor.background": "#1A1C22", + "peekViewEditor.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.background": "#1A1C22", + "peekViewResult.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.selectionBackground": "#23262E", + "peekViewTitle.background": "#1A1C22", + "peekViewTitleDescription.foreground": "#746f77", + + "merge.currentHeaderBackground": "#F92672", + "merge.currentContentBackground": "#F9267240", + "merge.incomingHeaderBackground": "#3B79C7BB", + "merge.incomingContentBackground": "#3B79C740", + + "panel.background": "#23262E", + "panel.border": "#1B1D23", + "panelTitle.activeBorder": "#23262E", + "panelTitle.inactiveForeground": "#746f77", + + "statusBar.background": "#23262E", + "statusBar.debuggingBackground": "#FC644D", + "statusBar.noFolderBackground": "#23262E", + "statusBarItem.activeBackground": "#00e8c5cc", + "statusBarItem.hoverBackground": "#07d4b5b0", + "statusBarItem.prominentBackground": "#07d4b5b0", + "statusBarItem.prominentHoverBackground": "#00e8c5cc", + + "terminal.ansiRed":"#ee5d43", + "terminal.ansiGreen":"#96E072", + "terminal.ansiYellow":"#FFE66D", + "terminal.ansiBlue":"#7cb7ff", + "terminal.ansiMagenta":"#ff00aa", + "terminal.ansiCyan":"#00e8c6", + "terminal.ansiBrightRed":"#ee5d43", + "terminal.ansiBrightGreen":"#96E072", + "terminal.ansiBrightYellow":"#FFE66D", + "terminal.ansiBrightBlue":"#7cb7ff", + "terminal.ansiBrightMagenta":"#ff00aa", + "terminal.ansiBrightCyan":"#00e8c6", + "terminalCursor.background": "#23262E", + "terminalCursor.foreground": "#FFE66D", + + "titleBar.activeBackground": "#23262E", + + "notification.background": "#2d313b", + "notification.buttonBackground": "#00e8c5cc", + "notification.buttonHoverBackground": "#07d4b5b0", + "notification.infoBackground": "#00b0ff", + "notification.warningBackground": "#FF9F2E", + "notification.errorBackground": "#FC644D", + + "extensionButton.prominentBackground": "#07d4b6cc", + "extensionButton.prominentHoverBackground": "#07d4b5b0", + + "pickerGroup.border": "#4F4355", + "pickerGroup.foreground": "#746f77", + + "debugToolBar.background": "#20232A", + + "walkThrough.embeddedEditorBackground": "#23262E", + + "gitDecoration.ignoredResourceForeground": "#555555" + + }, + "tokenColors": [ + { + "settings": { + "foreground": "#D5CED9", + "background": "#23262E" + } + }, + { + "name": "Comment color", + "scope": [ + "comment", + "markup.quote.markdown", + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#A0A1A7cc" + } + }, + { + "name": "Text Color", + "scope": [ + "meta.template.expression.js", + "constant.name.attribute.tag.jade", + "punctuation.definition.metadata.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.string.begin.markdown" + ], + "settings": { + "foreground": "#D5CED9" + } + }, + { + "name": "Cyan", + "scope": [ + "variable", + "support.variable", + "entity.name.tag.yaml", + "constant.character.entity.html", + "source.css entity.name.tag.reference", + "beginning.punctuation.definition.list.markdown", + "source.css entity.other.attribute-name.parent-selector", + "meta.structure.dictionary.json support.type.property-name" + ], + "settings": { + "foreground": "#00e8c6" + } + }, + { + "name": "Orange", + "scope": [ + "markup.bold", + "constant.numeric", + "meta.group.regexp", + "constant.other.php", + "support.constant.ext.php", + "constant.other.class.php", + "support.constant.core.php", + "fenced_code.block.language", + "constant.other.caps.python", + "entity.other.attribute-name", + "support.type.exception.python", + "source.css keyword.other.unit", + "variable.other.object.property.js.jsx", "variable.other.object.js" + ], + "settings": { + "foreground": "#f39c12" + } + }, + { + "name": "Yellow", + "scope": [ + "markup.list", + "text.xml string", + "entity.name.type", + "support.function", + "entity.other.attribute-name", + "meta.at-rule.extend", + "entity.name.function", + "entity.other.inherited-class", + "entity.other.keyframe-offset.css", + "text.html.markdown string.quoted", + "meta.function-call.generic.python", + "meta.at-rule.extend support.constant", + "entity.other.attribute-name.class.jade", + "source.css entity.other.attribute-name", + "text.xml punctuation.definition.string" + + ], + "settings": { + "foreground": "#FFE66D" + } + }, + { + "name": "Pink", + "scope": [ + "markup.heading", + "variable.language.this.js", + "variable.language.special.self.python" + ], + "settings": { + "foreground": "#ff00aa" + } + }, + { + "name": "Hot Pink", + "scope": [ + "punctuation.definition.interpolation", + "punctuation.section.embedded.end.php", + "punctuation.section.embedded.end.ruby", + "punctuation.section.embedded.begin.php", + "punctuation.section.embedded.begin.ruby", + "punctuation.definition.template-expression", + "entity.name.tag" + ], + "settings": { + "foreground": "#f92672" + } + }, + { + "name": "Purple", + "scope": [ + "storage", + "keyword", + "meta.link", + "meta.image", + "markup.italic", + "source.js support.type" + + ], + "settings": { + "foreground": "#c74ded" + } + }, + { + "name": "Blue", + "scope": [ + "string.regexp", + "markup.changed" + ], + "settings": { + "foreground": "#7cb7ff" + } + }, + { + "name": "Red", + "scope": [ + "constant", + "support.class", + "keyword.operator", + "support.constant", + "text.html.markdown string", + "source.css support.function", + "source.php support.function", + "support.function.magic.python", + "entity.other.attribute-name.id", + "markup.deleted" + ], + "settings": { + "foreground": "#ee5d43" + } + }, + { + "name": "Green", + "scope": [ + "string", + "text.html.php string", + "markup.inline.raw", + "markup.inserted", + "punctuation.definition.string", + "punctuation.definition.markdown", + "text.html meta.embedded source.js string", + "text.html.php punctuation.definition.string", + "text.html meta.embedded source.js punctuation.definition.string", + "text.html punctuation.definition.string", + "text.html string" + ], + "settings": { + "foreground": "#96E072" + } + }, + { + "name": "Font Underline", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "fontStyle": "underline" + } + } + ] +} diff --git a/assets/themes/src/vscode/andromeda/andromeda.json b/assets/themes/src/vscode/andromeda/andromeda.json new file mode 100644 index 0000000000000000000000000000000000000000..235eb8f003fe7e2099ce1f2bf914c1a346ed6027 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/andromeda.json @@ -0,0 +1,367 @@ +{ + "name": "Andromeda", + "type": "dark", + "colors": { + "focusBorder": "#746f77", + "foreground": "#D5CED9", + "widget.shadow": "#14151A", + "selection.background": "#746f77", + "errorForeground": "#FC644D", + + "button.background": "#00e8c5cc", + "button.hoverBackground": "#07d4b6cc", + + "dropdown.background": "#2b303b", + "dropdown.border": "#363c49", + + "input.background": "#2b303b", + "input.placeholderForeground": "#746f77", + "inputOption.activeBorder": "#C668BA", + "inputValidation.errorBackground": "#D65343", + "inputValidation.errorBorder": "#D65343", + "inputValidation.infoBackground": "#3A6395", + "inputValidation.infoBorder": "#3A6395", + "inputValidation.warningBackground": "#DE9237", + "inputValidation.warningBorder": "#DE9237", + + "scrollbar.shadow": "#23262E", + "scrollbarSlider.activeBackground": "#3A3F4CCC", + "scrollbarSlider.background": "#3A3F4C77", + "scrollbarSlider.hoverBackground": "#3A3F4CAA", + + "badge.background": "#00b0ff", + "badge.foreground": "#20232B", + + "progressBar.background": "#C668BA", + + "list.activeSelectionBackground": "#23262E", + "list.activeSelectionForeground": "#00e8c6", + "list.dropBackground": "#3a404e", + "list.focusBackground": "#282b35", + "list.focusForeground": "#eee", + "list.hoverBackground": "#23262E", + "list.hoverForeground": "#eee", + "list.inactiveSelectionBackground": "#23262E", + "list.inactiveSelectionForeground": "#00e8c6", + + "activityBar.background": "#23262E", + "activityBar.dropBackground": "#3a404e", + "activityBar.foreground": "#BAAFC0", + "activityBarBadge.background": "#00b0ff", + "activityBarBadge.foreground": "#20232B", + + "sideBar.background": "#23262E", + "sideBarSectionHeader.background": "#23262E", + "sideBarTitle.foreground": "#00e8c6", + "sideBar.foreground": "#999999", + + "editorGroup.background": "#23262E", + "editorGroup.dropBackground": "#495061d7", + "editorGroupHeader.tabsBackground": "#23262E", + "tab.activeBackground": "#23262e", + "tab.inactiveBackground": "#23262E", + "tab.activeForeground": "#00e8c6", + "tab.inactiveForeground": "#746f77", + + "editor.background": "#23262E", + "editor.foreground": "#D5CED9", + "editorLineNumber.foreground": "#746f77", + "editorCursor.foreground": "#FFF", + "editor.selectionBackground": "#3D4352", + "editor.selectionHighlightBackground": "#4F435580", + "editor.wordHighlightBackground": "#4F4355", + "editor.wordHighlightStrongBackground": "#db45a280", + "editor.findMatchBackground": "#f39d1256", + "editor.findMatchHighlightBackground": "#59b8b377", + "editor.findMatchBorder": "#f39d12b6", + "editor.hoverHighlightBackground": "#373941", + "editor.lineHighlightBackground": "#2e323d", + "editor.lineHighlightBorder": "#2e323d", + "editorLink.activeForeground": "#3B79C7", + "editor.rangeHighlightBackground": "#372F3C", + "editorWhitespace.foreground": "#333844", + "editorIndentGuide.background": "#333844", + "editorIndentGuide.activeBackground": "#585C66", + "editorRuler.foreground": "#4F4355", + "editorCodeLens.foreground": "#746f77", + "editorBracketMatch.background": "#746f77", + "editorBracketMatch.border": "#746f77", + "editorOverviewRuler.border": "#1B1D23", + "editorError.foreground": "#FC644D", + "editorWarning.foreground": "#FF9F2E", + "editorGutter.modifiedBackground": "#5BC0EBBB", + "editorGutter.addedBackground": "#9BC53DBB", + "editorGutter.deletedBackground": "#FC644DBB", + + "diffEditor.insertedTextBackground": "#29BF1220", + "diffEditor.removedTextBackground": "#F21B3F20", + + "editorWidget.background": "#20232A", + "editorSuggestWidget.background": "#20232A", + "editorSuggestWidget.border": "#372F3C", + "editorSuggestWidget.selectedBackground": "#373941", + "editorHoverWidget.background": "#373941", + "editorHoverWidget.border": "#00e8c5cc", + "debugExceptionWidget.background": "#FF9F2E60", + "debugExceptionWidget.border": "#FF9F2E60", + + "minimapSlider.background": "#58607460", + "minimapSlider.hoverBackground": "#60698060", + "minimapSlider.activeBackground": "#60698060", + + "peekView.border": "#23262E", + "peekViewEditor.background": "#1A1C22", + "peekViewEditor.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.background": "#1A1C22", + "peekViewResult.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.selectionBackground": "#23262E", + "peekViewTitle.background": "#1A1C22", + "peekViewTitleDescription.foreground": "#746f77", + + "merge.currentHeaderBackground": "#F92672", + "merge.currentContentBackground": "#F9267240", + "merge.incomingHeaderBackground": "#3B79C7BB", + "merge.incomingContentBackground": "#3B79C740", + + "panel.background": "#23262E", + "panel.border": "#1B1D23", + "panelTitle.activeBorder": "#23262E", + "panelTitle.inactiveForeground": "#746f77", + + "statusBar.background": "#23262E", + "statusBar.debuggingBackground": "#FC644D", + "statusBar.noFolderBackground": "#23262E", + "statusBarItem.activeBackground": "#00e8c5cc", + "statusBarItem.hoverBackground": "#07d4b5b0", + "statusBarItem.prominentBackground": "#07d4b5b0", + "statusBarItem.prominentHoverBackground": "#00e8c5cc", + + "terminal.ansiRed":"#ee5d43", + "terminal.ansiGreen":"#96E072", + "terminal.ansiYellow":"#FFE66D", + "terminal.ansiBlue":"#7cb7ff", + "terminal.ansiMagenta":"#ff00aa", + "terminal.ansiCyan":"#00e8c6", + "terminal.ansiBrightRed":"#ee5d43", + "terminal.ansiBrightGreen":"#96E072", + "terminal.ansiBrightYellow":"#FFE66D", + "terminal.ansiBrightBlue":"#7cb7ff", + "terminal.ansiBrightMagenta":"#ff00aa", + "terminal.ansiBrightCyan":"#00e8c6", + "terminalCursor.background": "#23262E", + "terminalCursor.foreground": "#FFE66D", + + "titleBar.activeBackground": "#23262E", + + "notification.background": "#2d313b", + "notification.buttonBackground": "#00e8c5cc", + "notification.buttonHoverBackground": "#07d4b5b0", + "notification.infoBackground": "#00b0ff", + "notification.warningBackground": "#FF9F2E", + "notification.errorBackground": "#FC644D", + + "extensionButton.prominentBackground": "#07d4b6cc", + "extensionButton.prominentHoverBackground": "#07d4b5b0", + + "pickerGroup.border": "#4F4355", + "pickerGroup.foreground": "#746f77", + + "debugToolBar.background": "#20232A", + + "walkThrough.embeddedEditorBackground": "#23262E", + + "gitDecoration.ignoredResourceForeground": "#555555" + + }, + "tokenColors": [ + { + "settings": { + "foreground": "#D5CED9", + "background": "#23262E" + } + }, + { + "name": "Comment color", + "scope": [ + "comment", + "markup.quote.markdown", + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#A0A1A7cc" + } + }, + { + "name": "Text Color", + "scope": [ + "meta.template.expression.js", + "constant.name.attribute.tag.jade", + "punctuation.definition.metadata.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.string.begin.markdown" + ], + "settings": { + "foreground": "#D5CED9" + } + }, + { + "name": "Cyan", + "scope": [ + "variable", + "support.variable", + "entity.name.tag.yaml", + "constant.character.entity.html", + "source.css entity.name.tag.reference", + "beginning.punctuation.definition.list.markdown", + "source.css entity.other.attribute-name.parent-selector", + "meta.structure.dictionary.json support.type.property-name" + ], + "settings": { + "foreground": "#00e8c6" + } + }, + { + "name": "Orange", + "scope": [ + "markup.bold", + "constant.numeric", + "meta.group.regexp", + "constant.other.php", + "support.constant.ext.php", + "constant.other.class.php", + "support.constant.core.php", + "fenced_code.block.language", + "constant.other.caps.python", + "entity.other.attribute-name", + "support.type.exception.python", + "source.css keyword.other.unit", + "variable.other.object.property.js.jsx", "variable.other.object.js" + ], + "settings": { + "foreground": "#f39c12" + } + }, + { + "name": "Yellow", + "scope": [ + "markup.list", + "text.xml string", + "entity.name.type", + "support.function", + "entity.other.attribute-name", + "meta.at-rule.extend", + "entity.name.function", + "entity.other.inherited-class", + "entity.other.keyframe-offset.css", + "text.html.markdown string.quoted", + "meta.function-call.generic.python", + "meta.at-rule.extend support.constant", + "entity.other.attribute-name.class.jade", + "source.css entity.other.attribute-name", + "text.xml punctuation.definition.string" + + ], + "settings": { + "foreground": "#FFE66D" + } + }, + { + "name": "Pink", + "scope": [ + "markup.heading", + "variable.language.this.js", + "variable.language.special.self.python" + ], + "settings": { + "foreground": "#ff00aa" + } + }, + { + "name": "Hot Pink", + "scope": [ + "punctuation.definition.interpolation", + "punctuation.section.embedded.end.php", + "punctuation.section.embedded.end.ruby", + "punctuation.section.embedded.begin.php", + "punctuation.section.embedded.begin.ruby", + "punctuation.definition.template-expression", + "entity.name.tag" + ], + "settings": { + "foreground": "#f92672" + } + }, + { + "name": "Purple", + "scope": [ + "storage", + "keyword", + "meta.link", + "meta.image", + "markup.italic", + "source.js support.type" + + ], + "settings": { + "foreground": "#c74ded" + } + }, + { + "name": "Blue", + "scope": [ + "string.regexp", + "markup.changed" + ], + "settings": { + "foreground": "#7cb7ff" + } + }, + { + "name": "Red", + "scope": [ + "constant", + "support.class", + "keyword.operator", + "support.constant", + "text.html.markdown string", + "source.css support.function", + "source.php support.function", + "support.function.magic.python", + "entity.other.attribute-name.id", + "markup.deleted" + ], + "settings": { + "foreground": "#ee5d43" + } + }, + { + "name": "Green", + "scope": [ + "string", + "text.html.php string", + "markup.inline.raw", + "markup.inserted", + "punctuation.definition.string", + "punctuation.definition.markdown", + "text.html meta.embedded source.js string", + "text.html.php punctuation.definition.string", + "text.html meta.embedded source.js punctuation.definition.string", + "text.html punctuation.definition.string", + "text.html string" + ], + "settings": { + "foreground": "#96E072" + } + }, + { + "name": "Font Underline", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "fontStyle": "underline" + } + } + ] +} diff --git a/assets/themes/src/vscode/andromeda/family.json b/assets/themes/src/vscode/andromeda/family.json new file mode 100644 index 0000000000000000000000000000000000000000..cbdc038a55a153216738b1fdbf90247e7322e914 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/family.json @@ -0,0 +1,16 @@ +{ + "name": "Andromeda", + "author": "Eliver Lara (EliverLara)", + "themes": [ + { + "name": "Andromeda", + "file_name": "andromeda.json", + "appearance": "dark" + }, + { + "name": "Andromeda Bordered", + "file_name": "andromeda-bordered.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/ayu/LICENSE b/assets/themes/src/vscode/ayu/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..97c615481a04afd6dd88c7bd34c0260b0e2129b8 --- /dev/null +++ b/assets/themes/src/vscode/ayu/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Ike Ku + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/ayu/ayu-dark.json b/assets/themes/src/vscode/ayu/ayu-dark.json new file mode 100644 index 0000000000000000000000000000000000000000..71c1da3fa5fa64650d968440ee7e25a3adf3db4f --- /dev/null +++ b/assets/themes/src/vscode/ayu/ayu-dark.json @@ -0,0 +1,847 @@ +{ + "type": "dark", + "colors": { + "focusBorder": "#e6b450b3", + "foreground": "#565b66", + "widget.shadow": "#00000080", + "selection.background": "#409fff4d", + "icon.foreground": "#565b66", + "errorForeground": "#d95757", + "descriptionForeground": "#565b66", + "textBlockQuote.background": "#0f131a", + "textLink.foreground": "#e6b450", + "textLink.activeForeground": "#e6b450", + "textPreformat.foreground": "#bfbdb6", + "button.background": "#e6b450", + "button.foreground": "#734d00", + "button.hoverBackground": "#e1af4b", + "button.secondaryBackground": "#565b6633", + "button.secondaryForeground": "#bfbdb6", + "button.secondaryHoverBackground": "#565b6680", + "dropdown.background": "#0d1017", + "dropdown.foreground": "#565b66", + "dropdown.border": "#565b6645", + "input.background": "#0d1017", + "input.border": "#565b6645", + "input.foreground": "#bfbdb6", + "input.placeholderForeground": "#565b6680", + "inputOption.activeBorder": "#e6b4504d", + "inputOption.activeBackground": "#e6b45033", + "inputOption.activeForeground": "#e6b450", + "inputValidation.errorBackground": "#0d1017", + "inputValidation.errorBorder": "#d95757", + "inputValidation.infoBackground": "#0b0e14", + "inputValidation.infoBorder": "#39bae6", + "inputValidation.warningBackground": "#0b0e14", + "inputValidation.warningBorder": "#ffb454", + "scrollbar.shadow": "#1e232b00", + "scrollbarSlider.background": "#565b6666", + "scrollbarSlider.hoverBackground": "#565b6699", + "scrollbarSlider.activeBackground": "#565b66b3", + "badge.background": "#e6b45033", + "badge.foreground": "#e6b450", + "progressBar.background": "#e6b450", + "list.activeSelectionBackground": "#47526640", + "list.activeSelectionForeground": "#bfbdb6", + "list.focusBackground": "#47526640", + "list.focusForeground": "#bfbdb6", + "list.focusOutline": "#47526640", + "list.highlightForeground": "#e6b450", + "list.deemphasizedForeground": "#d95757", + "list.hoverBackground": "#47526640", + "list.inactiveSelectionBackground": "#47526633", + "list.inactiveSelectionForeground": "#565b66", + "list.invalidItemForeground": "#565b664d", + "list.errorForeground": "#d95757", + "tree.indentGuidesStroke": "#6c738080", + "listFilterWidget.background": "#0f131a", + "listFilterWidget.outline": "#e6b450", + "listFilterWidget.noMatchesOutline": "#d95757", + "list.filterMatchBackground": "#5f4c7266", + "list.filterMatchBorder": "#6c598066", + "activityBar.background": "#0b0e14", + "activityBar.foreground": "#565b66cc", + "activityBar.inactiveForeground": "#565b6699", + "activityBar.border": "#0b0e14", + "activityBar.activeBorder": "#e6b450", + "activityBarBadge.background": "#e6b450", + "activityBarBadge.foreground": "#734d00", + "sideBar.background": "#0b0e14", + "sideBar.border": "#0b0e14", + "sideBarTitle.foreground": "#565b66", + "sideBarSectionHeader.background": "#0b0e14", + "sideBarSectionHeader.foreground": "#565b66", + "sideBarSectionHeader.border": "#0b0e14", + "minimap.background": "#0b0e14", + "minimap.selectionHighlight": "#409fff4d", + "minimap.errorHighlight": "#d95757", + "minimap.findMatchHighlight": "#6c5980", + "minimapGutter.addedBackground": "#7fd962", + "minimapGutter.modifiedBackground": "#73b8ff", + "minimapGutter.deletedBackground": "#f26d78", + "editorGroup.border": "#1e232b", + "editorGroup.background": "#0f131a", + "editorGroupHeader.noTabsBackground": "#0b0e14", + "editorGroupHeader.tabsBackground": "#0b0e14", + "editorGroupHeader.tabsBorder": "#0b0e14", + "tab.activeBackground": "#0b0e14", + "tab.activeForeground": "#bfbdb6", + "tab.border": "#0b0e14", + "tab.activeBorder": "#e6b450", + "tab.unfocusedActiveBorder": "#565b66", + "tab.inactiveBackground": "#0b0e14", + "tab.inactiveForeground": "#565b66", + "tab.unfocusedActiveForeground": "#565b66", + "tab.unfocusedInactiveForeground": "#565b66", + "editor.background": "#0b0e14", + "editor.foreground": "#bfbdb6", + "editorLineNumber.foreground": "#6c738099", + "editorLineNumber.activeForeground": "#6c7380e6", + "editorCursor.foreground": "#e6b450", + "editor.inactiveSelectionBackground": "#409fff21", + "editor.selectionBackground": "#409fff4d", + "editor.selectionHighlightBackground": "#7fd96226", + "editor.selectionHighlightBorder": "#7fd96200", + "editor.wordHighlightBackground": "#73b8ff14", + "editor.wordHighlightStrongBackground": "#7fd96214", + "editor.wordHighlightBorder": "#73b8ff80", + "editor.wordHighlightStrongBorder": "#7fd96280", + "editor.findMatchBackground": "#6c5980", + "editor.findMatchBorder": "#6c5980", + "editor.findMatchHighlightBackground": "#6c598066", + "editor.findMatchHighlightBorder": "#5f4c7266", + "editor.findRangeHighlightBackground": "#6c598040", + "editor.rangeHighlightBackground": "#6c598033", + "editor.lineHighlightBackground": "#131721", + "editorLink.activeForeground": "#e6b450", + "editorWhitespace.foreground": "#6c738099", + "editorIndentGuide.background": "#6c738033", + "editorIndentGuide.activeBackground": "#6c738080", + "editorRuler.foreground": "#6c738033", + "editorCodeLens.foreground": "#acb6bf8c", + "editorBracketMatch.background": "#6c73804d", + "editorBracketMatch.border": "#6c73804d", + "editor.snippetTabstopHighlightBackground": "#7fd96233", + "editorOverviewRuler.border": "#1e232b", + "editorOverviewRuler.modifiedForeground": "#73b8ff", + "editorOverviewRuler.addedForeground": "#7fd962", + "editorOverviewRuler.deletedForeground": "#f26d78", + "editorOverviewRuler.errorForeground": "#d95757", + "editorOverviewRuler.warningForeground": "#e6b450", + "editorOverviewRuler.bracketMatchForeground": "#6c7380b3", + "editorOverviewRuler.wordHighlightForeground": "#73b8ff66", + "editorOverviewRuler.wordHighlightStrongForeground": "#7fd96266", + "editorOverviewRuler.findMatchForeground": "#6c5980", + "editorError.foreground": "#d95757", + "editorWarning.foreground": "#e6b450", + "editorGutter.modifiedBackground": "#73b8ffcc", + "editorGutter.addedBackground": "#7fd962cc", + "editorGutter.deletedBackground": "#f26d78cc", + "diffEditor.insertedTextBackground": "#7fd9621f", + "diffEditor.removedTextBackground": "#f26d781f", + "diffEditor.diagonalFill": "#1e232b", + "editorWidget.background": "#0f131a", + "editorWidget.border": "#1e232b", + "editorHoverWidget.background": "#0f131a", + "editorHoverWidget.border": "#1e232b", + "editorSuggestWidget.background": "#0f131a", + "editorSuggestWidget.border": "#1e232b", + "editorSuggestWidget.highlightForeground": "#e6b450", + "editorSuggestWidget.selectedBackground": "#47526640", + "debugExceptionWidget.border": "#1e232b", + "debugExceptionWidget.background": "#0f131a", + "editorMarkerNavigation.background": "#0f131a", + "peekView.border": "#47526640", + "peekViewTitle.background": "#47526640", + "peekViewTitleDescription.foreground": "#565b66", + "peekViewTitleLabel.foreground": "#bfbdb6", + "peekViewEditor.background": "#0f131a", + "peekViewEditor.matchHighlightBackground": "#6c598066", + "peekViewEditor.matchHighlightBorder": "#5f4c7266", + "peekViewResult.background": "#0f131a", + "peekViewResult.fileForeground": "#bfbdb6", + "peekViewResult.lineForeground": "#565b66", + "peekViewResult.matchHighlightBackground": "#6c598066", + "peekViewResult.selectionBackground": "#47526640", + "panel.background": "#0b0e14", + "panel.border": "#1e232b", + "panelTitle.activeBorder": "#e6b450", + "panelTitle.activeForeground": "#bfbdb6", + "panelTitle.inactiveForeground": "#565b66", + "statusBar.background": "#0b0e14", + "statusBar.foreground": "#565b66", + "statusBar.border": "#0b0e14", + "statusBar.debuggingBackground": "#f29668", + "statusBar.debuggingForeground": "#0d1017", + "statusBar.noFolderBackground": "#0f131a", + "statusBarItem.activeBackground": "#565b6633", + "statusBarItem.hoverBackground": "#565b6633", + "statusBarItem.prominentBackground": "#1e232b", + "statusBarItem.prominentHoverBackground": "#00000030", + "statusBarItem.remoteBackground": "#e6b450", + "statusBarItem.remoteForeground": "#734d00", + "titleBar.activeBackground": "#0b0e14", + "titleBar.activeForeground": "#bfbdb6", + "titleBar.inactiveBackground": "#0b0e14", + "titleBar.inactiveForeground": "#565b66", + "titleBar.border": "#0b0e14", + "extensionButton.prominentForeground": "#734d00", + "extensionButton.prominentBackground": "#e6b450", + "extensionButton.prominentHoverBackground": "#e1af4b", + "pickerGroup.border": "#1e232b", + "pickerGroup.foreground": "#565b6680", + "debugToolBar.background": "#0f131a", + "debugIcon.breakpointForeground": "#f29668", + "debugIcon.breakpointDisabledForeground": "#f2966880", + "debugConsoleInputIcon.foreground": "#e6b450", + "welcomePage.tileBackground": "#0b0e14", + "welcomePage.tileShadow": "#00000080", + "welcomePage.progress.background": "#131721", + "welcomePage.buttonBackground": "#e6b45066", + "walkThrough.embeddedEditorBackground": "#0f131a", + "gitDecoration.modifiedResourceForeground": "#73b8ffb3", + "gitDecoration.deletedResourceForeground": "#f26d78b3", + "gitDecoration.untrackedResourceForeground": "#7fd962b3", + "gitDecoration.ignoredResourceForeground": "#565b6680", + "gitDecoration.conflictingResourceForeground": "", + "gitDecoration.submoduleResourceForeground": "#d2a6ffb3", + "settings.headerForeground": "#bfbdb6", + "settings.modifiedItemIndicator": "#73b8ff", + "keybindingLabel.background": "#565b661a", + "keybindingLabel.foreground": "#bfbdb6", + "keybindingLabel.border": "#bfbdb61a", + "keybindingLabel.bottomBorder": "#bfbdb61a", + "terminal.background": "#0b0e14", + "terminal.foreground": "#bfbdb6", + "terminal.ansiBlack": "#1e232b", + "terminal.ansiRed": "#ea6c73", + "terminal.ansiGreen": "#7fd962", + "terminal.ansiYellow": "#f9af4f", + "terminal.ansiBlue": "#53bdfa", + "terminal.ansiMagenta": "#cda1fa", + "terminal.ansiCyan": "#90e1c6", + "terminal.ansiWhite": "#c7c7c7", + "terminal.ansiBrightBlack": "#686868", + "terminal.ansiBrightRed": "#f07178", + "terminal.ansiBrightGreen": "#aad94c", + "terminal.ansiBrightYellow": "#ffb454", + "terminal.ansiBrightBlue": "#59c2ff", + "terminal.ansiBrightMagenta": "#d2a6ff", + "terminal.ansiBrightCyan": "#95e6cb", + "terminal.ansiBrightWhite": "#ffffff" + }, + "tokenColors": [ + { + "settings": { + "background": "#0b0e14", + "foreground": "#bfbdb6" + } + }, + { + "name": "Comment", + "scope": [ + "comment" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#acb6bf8c" + } + }, + { + "name": "String", + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#aad94c" + } + }, + { + "name": "Regular Expressions and Escape Characters", + "scope": [ + "string.regexp", + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#95e6cb" + } + }, + { + "name": "Number", + "scope": [ + "constant.numeric" + ], + "settings": { + "foreground": "#d2a6ff" + } + }, + { + "name": "Built-in constants", + "scope": [ + "constant.language" + ], + "settings": { + "foreground": "#d2a6ff" + } + }, + { + "name": "Variable", + "scope": [ + "variable", + "variable.parameter.function-call" + ], + "settings": { + "foreground": "#bfbdb6" + } + }, + { + "name": "Member Variable", + "scope": [ + "variable.member" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Language variable", + "scope": [ + "variable.language" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#39bae6" + } + }, + { + "name": "Storage", + "scope": [ + "storage" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Keyword", + "scope": [ + "keyword" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Operators", + "scope": [ + "keyword.operator" + ], + "settings": { + "foreground": "#f29668" + } + }, + { + "name": "Separators like ; or ,", + "scope": [ + "punctuation.separator", + "punctuation.terminator" + ], + "settings": { + "foreground": "#bfbdb6b3" + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation.section" + ], + "settings": { + "foreground": "#bfbdb6" + } + }, + { + "name": "Accessor", + "scope": [ + "punctuation.accessor" + ], + "settings": { + "foreground": "#f29668" + } + }, + { + "name": "JavaScript/TypeScript interpolation punctuation", + "scope": [ + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Ruby interpolation punctuation", + "scope": [ + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Interpolation text", + "scope": [ + "meta.embedded" + ], + "settings": { + "foreground": "#bfbdb6" + } + }, + { + "name": "Types fixes", + "scope": [ + "source.java storage.type", + "source.haskell storage.type", + "source.c storage.type" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "Inherited class type", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Lambda arrow", + "scope": [ + "storage.type.function" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Java primitive variable types", + "scope": [ + "source.java storage.type.primitive" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Function name", + "scope": [ + "entity.name.function" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Function arguments", + "scope": [ + "variable.parameter", + "meta.parameter" + ], + "settings": { + "foreground": "#d2a6ff" + } + }, + { + "name": "Function call", + "scope": [ + "variable.function", + "variable.annotation", + "meta.function-call.generic", + "support.function.go" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Library function", + "scope": [ + "support.function", + "support.macro" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Imports and packages", + "scope": [ + "entity.name.import", + "entity.name.package" + ], + "settings": { + "foreground": "#aad94c" + } + }, + { + "name": "Entity name", + "scope": [ + "entity.name" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "Tag", + "scope": [ + "entity.name.tag", + "meta.tag.sgml" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "JSX Component", + "scope": [ + "support.class.component" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.end", + "punctuation.definition.tag.begin", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#39bae680" + } + }, + { + "name": "Tag attribute", + "scope": [ + "entity.other.attribute-name" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Library constant", + "scope": [ + "support.constant" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f29668" + } + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class", + "source.go storage.type" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Decorators/annotation", + "scope": [ + "meta.decorator variable.other", + "meta.decorator punctuation.decorator", + "storage.type.annotation" + ], + "settings": { + "foreground": "#e6b673" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid" + ], + "settings": { + "foreground": "#d95757" + } + }, + { + "name": "diff.header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#c594c5" + } + }, + { + "name": "Ruby class methods", + "scope": [ + "source.ruby variable.other.readwrite" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "CSS tag names", + "scope": [ + "source.css entity.name.tag", + "source.sass entity.name.tag", + "source.scss entity.name.tag", + "source.less entity.name.tag", + "source.stylus entity.name.tag" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "CSS browser prefix", + "scope": [ + "source.css support.type", + "source.sass support.type", + "source.scss support.type", + "source.less support.type", + "source.stylus support.type" + ], + "settings": { + "foreground": "#acb6bf8c" + } + }, + { + "name": "CSS Properties", + "scope": [ + "support.type.property-name" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#39bae6" + } + }, + { + "name": "Search Results Numbers", + "scope": [ + "constant.numeric.line-number.find-in-files - match" + ], + "settings": { + "foreground": "#acb6bf8c" + } + }, + { + "name": "Search Results Match Numbers", + "scope": [ + "constant.numeric.line-number.match" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Search Results Lines", + "scope": [ + "entity.name.filename.find-in-files" + ], + "settings": { + "foreground": "#aad94c" + } + }, + { + "scope": [ + "message.error" + ], + "settings": { + "foreground": "#d95757" + } + }, + { + "name": "Markup heading", + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#aad94c" + } + }, + { + "name": "Markup links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Markup Italic", + "scope": [ + "markup.italic" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f07178" + } + }, + { + "name": "Markup Bold", + "scope": [ + "markup.bold" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f07178" + } + }, + { + "name": "Markup Bold/italic", + "scope": [ + "markup.italic markup.bold", + "markup.bold markup.italic" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "Markup Code", + "scope": [ + "markup.raw" + ], + "settings": { + "background": "#bfbdb605" + } + }, + { + "name": "Markup Code Inline", + "scope": [ + "markup.raw.inline" + ], + "settings": { + "background": "#bfbdb60f" + } + }, + { + "name": "Markdown Separator", + "scope": [ + "meta.separator" + ], + "settings": { + "fontStyle": "bold", + "background": "#bfbdb60f", + "foreground": "#acb6bf8c" + } + }, + { + "name": "Markup Blockquote", + "scope": [ + "markup.quote" + ], + "settings": { + "foreground": "#95e6cb", + "fontStyle": "italic" + } + }, + { + "name": "Markup List Bullet", + "scope": [ + "markup.list punctuation.definition.list.begin" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Markup added", + "scope": [ + "markup.inserted" + ], + "settings": { + "foreground": "#7fd962" + } + }, + { + "name": "Markup modified", + "scope": [ + "markup.changed" + ], + "settings": { + "foreground": "#73b8ff" + } + }, + { + "name": "Markup removed", + "scope": [ + "markup.deleted" + ], + "settings": { + "foreground": "#f26d78" + } + }, + { + "name": "Markup Strike", + "scope": [ + "markup.strike" + ], + "settings": { + "foreground": "#e6b673" + } + }, + { + "name": "Markup Table", + "scope": [ + "markup.table" + ], + "settings": { + "background": "#bfbdb60f", + "foreground": "#39bae6" + } + }, + { + "name": "Markup Raw Inline", + "scope": [ + "text.html.markdown markup.inline.raw" + ], + "settings": { + "foreground": "#f29668" + } + }, + { + "name": "Markdown - Line Break", + "scope": [ + "text.html.markdown meta.dummy.line-break" + ], + "settings": { + "background": "#acb6bf8c", + "foreground": "#acb6bf8c" + } + }, + { + "name": "Markdown - Raw Block Fenced", + "scope": [ + "punctuation.definition.markdown" + ], + "settings": { + "background": "#bfbdb6", + "foreground": "#acb6bf8c" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "parameter.label": "#bfbdb6" + } +} \ No newline at end of file diff --git a/assets/themes/src/vscode/ayu/ayu-light.json b/assets/themes/src/vscode/ayu/ayu-light.json new file mode 100644 index 0000000000000000000000000000000000000000..782b04ac76f4b32938660d779c554d079b2b0337 --- /dev/null +++ b/assets/themes/src/vscode/ayu/ayu-light.json @@ -0,0 +1,847 @@ +{ + "type": "light", + "colors": { + "focusBorder": "#ffaa33b3", + "foreground": "#8a9199", + "widget.shadow": "#00000026", + "selection.background": "#035bd626", + "icon.foreground": "#8a9199", + "errorForeground": "#e65050", + "descriptionForeground": "#8a9199", + "textBlockQuote.background": "#f3f4f5", + "textLink.foreground": "#ffaa33", + "textLink.activeForeground": "#ffaa33", + "textPreformat.foreground": "#5c6166", + "button.background": "#ffaa33", + "button.foreground": "#804a00", + "button.hoverBackground": "#f9a52e", + "button.secondaryBackground": "#8a919933", + "button.secondaryForeground": "#5c6166", + "button.secondaryHoverBackground": "#8a919980", + "dropdown.background": "#fcfcfc", + "dropdown.foreground": "#8a9199", + "dropdown.border": "#8a919945", + "input.background": "#fcfcfc", + "input.border": "#8a919945", + "input.foreground": "#5c6166", + "input.placeholderForeground": "#8a919980", + "inputOption.activeBorder": "#f4a0284d", + "inputOption.activeBackground": "#ffaa3333", + "inputOption.activeForeground": "#f4a028", + "inputValidation.errorBackground": "#fcfcfc", + "inputValidation.errorBorder": "#e65050", + "inputValidation.infoBackground": "#f8f9fa", + "inputValidation.infoBorder": "#55b4d4", + "inputValidation.warningBackground": "#f8f9fa", + "inputValidation.warningBorder": "#f2ae49", + "scrollbar.shadow": "#6b7d8f00", + "scrollbarSlider.background": "#8a919966", + "scrollbarSlider.hoverBackground": "#8a919999", + "scrollbarSlider.activeBackground": "#8a9199b3", + "badge.background": "#ffaa3333", + "badge.foreground": "#f4a028", + "progressBar.background": "#ffaa33", + "list.activeSelectionBackground": "#56728f1f", + "list.activeSelectionForeground": "#5c6166", + "list.focusBackground": "#56728f1f", + "list.focusForeground": "#5c6166", + "list.focusOutline": "#56728f1f", + "list.highlightForeground": "#ffaa33", + "list.deemphasizedForeground": "#e65050", + "list.hoverBackground": "#56728f1f", + "list.inactiveSelectionBackground": "#6b7d8f1f", + "list.inactiveSelectionForeground": "#8a9199", + "list.invalidItemForeground": "#8a91994d", + "list.errorForeground": "#e65050", + "tree.indentGuidesStroke": "#8a919959", + "listFilterWidget.background": "#f3f4f5", + "listFilterWidget.outline": "#ffaa33", + "listFilterWidget.noMatchesOutline": "#e65050", + "list.filterMatchBackground": "#ddcaef73", + "list.filterMatchBorder": "#ecd9ff73", + "activityBar.background": "#f8f9fa", + "activityBar.foreground": "#8a9199cc", + "activityBar.inactiveForeground": "#8a919999", + "activityBar.border": "#f8f9fa", + "activityBar.activeBorder": "#ffaa33", + "activityBarBadge.background": "#ffaa33", + "activityBarBadge.foreground": "#f8f9fa", + "sideBar.background": "#f8f9fa", + "sideBar.border": "#f8f9fa", + "sideBarTitle.foreground": "#8a9199", + "sideBarSectionHeader.background": "#f8f9fa", + "sideBarSectionHeader.foreground": "#8a9199", + "sideBarSectionHeader.border": "#f8f9fa", + "minimap.background": "#f8f9fa", + "minimap.selectionHighlight": "#035bd626", + "minimap.errorHighlight": "#e65050", + "minimap.findMatchHighlight": "#ecd9ff", + "minimapGutter.addedBackground": "#6cbf43", + "minimapGutter.modifiedBackground": "#478acc", + "minimapGutter.deletedBackground": "#ff7383", + "editorGroup.border": "#6b7d8f1f", + "editorGroup.background": "#f3f4f5", + "editorGroupHeader.noTabsBackground": "#f8f9fa", + "editorGroupHeader.tabsBackground": "#f8f9fa", + "editorGroupHeader.tabsBorder": "#f8f9fa", + "tab.activeBackground": "#f8f9fa", + "tab.activeForeground": "#5c6166", + "tab.border": "#f8f9fa", + "tab.activeBorder": "#ffaa33", + "tab.unfocusedActiveBorder": "#8a9199", + "tab.inactiveBackground": "#f8f9fa", + "tab.inactiveForeground": "#8a9199", + "tab.unfocusedActiveForeground": "#8a9199", + "tab.unfocusedInactiveForeground": "#8a9199", + "editor.background": "#f8f9fa", + "editor.foreground": "#5c6166", + "editorLineNumber.foreground": "#8a919966", + "editorLineNumber.activeForeground": "#8a9199cc", + "editorCursor.foreground": "#ffaa33", + "editor.inactiveSelectionBackground": "#035bd612", + "editor.selectionBackground": "#035bd626", + "editor.selectionHighlightBackground": "#6cbf4326", + "editor.selectionHighlightBorder": "#6cbf4300", + "editor.wordHighlightBackground": "#478acc14", + "editor.wordHighlightStrongBackground": "#6cbf4314", + "editor.wordHighlightBorder": "#478acc80", + "editor.wordHighlightStrongBorder": "#6cbf4380", + "editor.findMatchBackground": "#ecd9ff", + "editor.findMatchBorder": "#ecd9ff", + "editor.findMatchHighlightBackground": "#ecd9ff73", + "editor.findMatchHighlightBorder": "#ddcaef73", + "editor.findRangeHighlightBackground": "#ecd9ff40", + "editor.rangeHighlightBackground": "#ecd9ff33", + "editor.lineHighlightBackground": "#8a91991a", + "editorLink.activeForeground": "#ffaa33", + "editorWhitespace.foreground": "#8a919966", + "editorIndentGuide.background": "#8a91992e", + "editorIndentGuide.activeBackground": "#8a919959", + "editorRuler.foreground": "#8a91992e", + "editorCodeLens.foreground": "#787b8099", + "editorBracketMatch.background": "#8a91994d", + "editorBracketMatch.border": "#8a91994d", + "editor.snippetTabstopHighlightBackground": "#6cbf4333", + "editorOverviewRuler.border": "#6b7d8f1f", + "editorOverviewRuler.modifiedForeground": "#478acc", + "editorOverviewRuler.addedForeground": "#6cbf43", + "editorOverviewRuler.deletedForeground": "#ff7383", + "editorOverviewRuler.errorForeground": "#e65050", + "editorOverviewRuler.warningForeground": "#ffaa33", + "editorOverviewRuler.bracketMatchForeground": "#8a9199b3", + "editorOverviewRuler.wordHighlightForeground": "#478acc66", + "editorOverviewRuler.wordHighlightStrongForeground": "#6cbf4366", + "editorOverviewRuler.findMatchForeground": "#ecd9ff", + "editorError.foreground": "#e65050", + "editorWarning.foreground": "#ffaa33", + "editorGutter.modifiedBackground": "#478acccc", + "editorGutter.addedBackground": "#6cbf43cc", + "editorGutter.deletedBackground": "#ff7383cc", + "diffEditor.insertedTextBackground": "#6cbf431f", + "diffEditor.removedTextBackground": "#ff73831f", + "diffEditor.diagonalFill": "#6b7d8f1f", + "editorWidget.background": "#f3f4f5", + "editorWidget.border": "#6b7d8f1f", + "editorHoverWidget.background": "#f3f4f5", + "editorHoverWidget.border": "#6b7d8f1f", + "editorSuggestWidget.background": "#f3f4f5", + "editorSuggestWidget.border": "#6b7d8f1f", + "editorSuggestWidget.highlightForeground": "#ffaa33", + "editorSuggestWidget.selectedBackground": "#56728f1f", + "debugExceptionWidget.border": "#6b7d8f1f", + "debugExceptionWidget.background": "#f3f4f5", + "editorMarkerNavigation.background": "#f3f4f5", + "peekView.border": "#56728f1f", + "peekViewTitle.background": "#56728f1f", + "peekViewTitleDescription.foreground": "#8a9199", + "peekViewTitleLabel.foreground": "#5c6166", + "peekViewEditor.background": "#f3f4f5", + "peekViewEditor.matchHighlightBackground": "#ecd9ff73", + "peekViewEditor.matchHighlightBorder": "#ddcaef73", + "peekViewResult.background": "#f3f4f5", + "peekViewResult.fileForeground": "#5c6166", + "peekViewResult.lineForeground": "#8a9199", + "peekViewResult.matchHighlightBackground": "#ecd9ff73", + "peekViewResult.selectionBackground": "#56728f1f", + "panel.background": "#f8f9fa", + "panel.border": "#6b7d8f1f", + "panelTitle.activeBorder": "#ffaa33", + "panelTitle.activeForeground": "#5c6166", + "panelTitle.inactiveForeground": "#8a9199", + "statusBar.background": "#f8f9fa", + "statusBar.foreground": "#8a9199", + "statusBar.border": "#f8f9fa", + "statusBar.debuggingBackground": "#ed9366", + "statusBar.debuggingForeground": "#fcfcfc", + "statusBar.noFolderBackground": "#f3f4f5", + "statusBarItem.activeBackground": "#8a919933", + "statusBarItem.hoverBackground": "#8a919933", + "statusBarItem.prominentBackground": "#6b7d8f1f", + "statusBarItem.prominentHoverBackground": "#00000030", + "statusBarItem.remoteBackground": "#ffaa33", + "statusBarItem.remoteForeground": "#804a00", + "titleBar.activeBackground": "#f8f9fa", + "titleBar.activeForeground": "#5c6166", + "titleBar.inactiveBackground": "#f8f9fa", + "titleBar.inactiveForeground": "#8a9199", + "titleBar.border": "#f8f9fa", + "extensionButton.prominentForeground": "#804a00", + "extensionButton.prominentBackground": "#ffaa33", + "extensionButton.prominentHoverBackground": "#f9a52e", + "pickerGroup.border": "#6b7d8f1f", + "pickerGroup.foreground": "#8a919980", + "debugToolBar.background": "#f3f4f5", + "debugIcon.breakpointForeground": "#ed9366", + "debugIcon.breakpointDisabledForeground": "#ed936680", + "debugConsoleInputIcon.foreground": "#ffaa33", + "welcomePage.tileBackground": "#f8f9fa", + "welcomePage.tileShadow": "#00000026", + "welcomePage.progress.background": "#8a91991a", + "welcomePage.buttonBackground": "#ffaa3366", + "walkThrough.embeddedEditorBackground": "#f3f4f5", + "gitDecoration.modifiedResourceForeground": "#478accb3", + "gitDecoration.deletedResourceForeground": "#ff7383b3", + "gitDecoration.untrackedResourceForeground": "#6cbf43b3", + "gitDecoration.ignoredResourceForeground": "#8a919980", + "gitDecoration.conflictingResourceForeground": "", + "gitDecoration.submoduleResourceForeground": "#a37accb3", + "settings.headerForeground": "#5c6166", + "settings.modifiedItemIndicator": "#478acc", + "keybindingLabel.background": "#8a91991a", + "keybindingLabel.foreground": "#5c6166", + "keybindingLabel.border": "#5c61661a", + "keybindingLabel.bottomBorder": "#5c61661a", + "terminal.background": "#f8f9fa", + "terminal.foreground": "#5c6166", + "terminal.ansiBlack": "#000000", + "terminal.ansiRed": "#ea6c6d", + "terminal.ansiGreen": "#6cbf43", + "terminal.ansiYellow": "#eca944", + "terminal.ansiBlue": "#3199e1", + "terminal.ansiMagenta": "#9e75c7", + "terminal.ansiCyan": "#46ba94", + "terminal.ansiWhite": "#c7c7c7", + "terminal.ansiBrightBlack": "#686868", + "terminal.ansiBrightRed": "#f07171", + "terminal.ansiBrightGreen": "#86b300", + "terminal.ansiBrightYellow": "#f2ae49", + "terminal.ansiBrightBlue": "#399ee6", + "terminal.ansiBrightMagenta": "#a37acc", + "terminal.ansiBrightCyan": "#4cbf99", + "terminal.ansiBrightWhite": "#d1d1d1" + }, + "tokenColors": [ + { + "settings": { + "background": "#f8f9fa", + "foreground": "#5c6166" + } + }, + { + "name": "Comment", + "scope": [ + "comment" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#787b8099" + } + }, + { + "name": "String", + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#86b300" + } + }, + { + "name": "Regular Expressions and Escape Characters", + "scope": [ + "string.regexp", + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#4cbf99" + } + }, + { + "name": "Number", + "scope": [ + "constant.numeric" + ], + "settings": { + "foreground": "#a37acc" + } + }, + { + "name": "Built-in constants", + "scope": [ + "constant.language" + ], + "settings": { + "foreground": "#a37acc" + } + }, + { + "name": "Variable", + "scope": [ + "variable", + "variable.parameter.function-call" + ], + "settings": { + "foreground": "#5c6166" + } + }, + { + "name": "Member Variable", + "scope": [ + "variable.member" + ], + "settings": { + "foreground": "#f07171" + } + }, + { + "name": "Language variable", + "scope": [ + "variable.language" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#55b4d4" + } + }, + { + "name": "Storage", + "scope": [ + "storage" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Keyword", + "scope": [ + "keyword" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Operators", + "scope": [ + "keyword.operator" + ], + "settings": { + "foreground": "#ed9366" + } + }, + { + "name": "Separators like ; or ,", + "scope": [ + "punctuation.separator", + "punctuation.terminator" + ], + "settings": { + "foreground": "#5c6166b3" + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation.section" + ], + "settings": { + "foreground": "#5c6166" + } + }, + { + "name": "Accessor", + "scope": [ + "punctuation.accessor" + ], + "settings": { + "foreground": "#ed9366" + } + }, + { + "name": "JavaScript/TypeScript interpolation punctuation", + "scope": [ + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Ruby interpolation punctuation", + "scope": [ + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Interpolation text", + "scope": [ + "meta.embedded" + ], + "settings": { + "foreground": "#5c6166" + } + }, + { + "name": "Types fixes", + "scope": [ + "source.java storage.type", + "source.haskell storage.type", + "source.c storage.type" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "Inherited class type", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Lambda arrow", + "scope": [ + "storage.type.function" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Java primitive variable types", + "scope": [ + "source.java storage.type.primitive" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Function name", + "scope": [ + "entity.name.function" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Function arguments", + "scope": [ + "variable.parameter", + "meta.parameter" + ], + "settings": { + "foreground": "#a37acc" + } + }, + { + "name": "Function call", + "scope": [ + "variable.function", + "variable.annotation", + "meta.function-call.generic", + "support.function.go" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Library function", + "scope": [ + "support.function", + "support.macro" + ], + "settings": { + "foreground": "#f07171" + } + }, + { + "name": "Imports and packages", + "scope": [ + "entity.name.import", + "entity.name.package" + ], + "settings": { + "foreground": "#86b300" + } + }, + { + "name": "Entity name", + "scope": [ + "entity.name" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "Tag", + "scope": [ + "entity.name.tag", + "meta.tag.sgml" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "JSX Component", + "scope": [ + "support.class.component" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.end", + "punctuation.definition.tag.begin", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#55b4d480" + } + }, + { + "name": "Tag attribute", + "scope": [ + "entity.other.attribute-name" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Library constant", + "scope": [ + "support.constant" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#ed9366" + } + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class", + "source.go storage.type" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Decorators/annotation", + "scope": [ + "meta.decorator variable.other", + "meta.decorator punctuation.decorator", + "storage.type.annotation" + ], + "settings": { + "foreground": "#e6ba7e" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid" + ], + "settings": { + "foreground": "#e65050" + } + }, + { + "name": "diff.header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#c594c5" + } + }, + { + "name": "Ruby class methods", + "scope": [ + "source.ruby variable.other.readwrite" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "CSS tag names", + "scope": [ + "source.css entity.name.tag", + "source.sass entity.name.tag", + "source.scss entity.name.tag", + "source.less entity.name.tag", + "source.stylus entity.name.tag" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "CSS browser prefix", + "scope": [ + "source.css support.type", + "source.sass support.type", + "source.scss support.type", + "source.less support.type", + "source.stylus support.type" + ], + "settings": { + "foreground": "#787b8099" + } + }, + { + "name": "CSS Properties", + "scope": [ + "support.type.property-name" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#55b4d4" + } + }, + { + "name": "Search Results Numbers", + "scope": [ + "constant.numeric.line-number.find-in-files - match" + ], + "settings": { + "foreground": "#787b8099" + } + }, + { + "name": "Search Results Match Numbers", + "scope": [ + "constant.numeric.line-number.match" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Search Results Lines", + "scope": [ + "entity.name.filename.find-in-files" + ], + "settings": { + "foreground": "#86b300" + } + }, + { + "scope": [ + "message.error" + ], + "settings": { + "foreground": "#e65050" + } + }, + { + "name": "Markup heading", + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#86b300" + } + }, + { + "name": "Markup links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Markup Italic", + "scope": [ + "markup.italic" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f07171" + } + }, + { + "name": "Markup Bold", + "scope": [ + "markup.bold" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f07171" + } + }, + { + "name": "Markup Bold/italic", + "scope": [ + "markup.italic markup.bold", + "markup.bold markup.italic" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "Markup Code", + "scope": [ + "markup.raw" + ], + "settings": { + "background": "#5c616605" + } + }, + { + "name": "Markup Code Inline", + "scope": [ + "markup.raw.inline" + ], + "settings": { + "background": "#5c61660f" + } + }, + { + "name": "Markdown Separator", + "scope": [ + "meta.separator" + ], + "settings": { + "fontStyle": "bold", + "background": "#5c61660f", + "foreground": "#787b8099" + } + }, + { + "name": "Markup Blockquote", + "scope": [ + "markup.quote" + ], + "settings": { + "foreground": "#4cbf99", + "fontStyle": "italic" + } + }, + { + "name": "Markup List Bullet", + "scope": [ + "markup.list punctuation.definition.list.begin" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Markup added", + "scope": [ + "markup.inserted" + ], + "settings": { + "foreground": "#6cbf43" + } + }, + { + "name": "Markup modified", + "scope": [ + "markup.changed" + ], + "settings": { + "foreground": "#478acc" + } + }, + { + "name": "Markup removed", + "scope": [ + "markup.deleted" + ], + "settings": { + "foreground": "#ff7383" + } + }, + { + "name": "Markup Strike", + "scope": [ + "markup.strike" + ], + "settings": { + "foreground": "#e6ba7e" + } + }, + { + "name": "Markup Table", + "scope": [ + "markup.table" + ], + "settings": { + "background": "#5c61660f", + "foreground": "#55b4d4" + } + }, + { + "name": "Markup Raw Inline", + "scope": [ + "text.html.markdown markup.inline.raw" + ], + "settings": { + "foreground": "#ed9366" + } + }, + { + "name": "Markdown - Line Break", + "scope": [ + "text.html.markdown meta.dummy.line-break" + ], + "settings": { + "background": "#787b8099", + "foreground": "#787b8099" + } + }, + { + "name": "Markdown - Raw Block Fenced", + "scope": [ + "punctuation.definition.markdown" + ], + "settings": { + "background": "#5c6166", + "foreground": "#787b8099" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "parameter.label": "#5c6166" + } +} \ No newline at end of file diff --git a/assets/themes/src/vscode/ayu/ayu-mirage.json b/assets/themes/src/vscode/ayu/ayu-mirage.json new file mode 100644 index 0000000000000000000000000000000000000000..770823682966b0342dde64444d03369bec6434e9 --- /dev/null +++ b/assets/themes/src/vscode/ayu/ayu-mirage.json @@ -0,0 +1,847 @@ +{ + "type": "dark", + "colors": { + "focusBorder": "#ffcc66b3", + "foreground": "#707a8c", + "widget.shadow": "#12151cb3", + "selection.background": "#409fff40", + "icon.foreground": "#707a8c", + "errorForeground": "#ff6666", + "descriptionForeground": "#707a8c", + "textBlockQuote.background": "#1c212b", + "textLink.foreground": "#ffcc66", + "textLink.activeForeground": "#ffcc66", + "textPreformat.foreground": "#cccac2", + "button.background": "#ffcc66", + "button.foreground": "#805500", + "button.hoverBackground": "#fac761", + "button.secondaryBackground": "#707a8c33", + "button.secondaryForeground": "#cccac2", + "button.secondaryHoverBackground": "#707a8c80", + "dropdown.background": "#242936", + "dropdown.foreground": "#707a8c", + "dropdown.border": "#707a8c45", + "input.background": "#242936", + "input.border": "#707a8c45", + "input.foreground": "#cccac2", + "input.placeholderForeground": "#707a8c80", + "inputOption.activeBorder": "#ffcc664d", + "inputOption.activeBackground": "#ffcc6633", + "inputOption.activeForeground": "#ffcc66", + "inputValidation.errorBackground": "#242936", + "inputValidation.errorBorder": "#ff6666", + "inputValidation.infoBackground": "#1f2430", + "inputValidation.infoBorder": "#5ccfe6", + "inputValidation.warningBackground": "#1f2430", + "inputValidation.warningBorder": "#ffd173", + "scrollbar.shadow": "#171b2400", + "scrollbarSlider.background": "#707a8c66", + "scrollbarSlider.hoverBackground": "#707a8c99", + "scrollbarSlider.activeBackground": "#707a8cb3", + "badge.background": "#ffcc6633", + "badge.foreground": "#ffcc66", + "progressBar.background": "#ffcc66", + "list.activeSelectionBackground": "#63759926", + "list.activeSelectionForeground": "#cccac2", + "list.focusBackground": "#63759926", + "list.focusForeground": "#cccac2", + "list.focusOutline": "#63759926", + "list.highlightForeground": "#ffcc66", + "list.deemphasizedForeground": "#ff6666", + "list.hoverBackground": "#63759926", + "list.inactiveSelectionBackground": "#69758c1f", + "list.inactiveSelectionForeground": "#707a8c", + "list.invalidItemForeground": "#707a8c4d", + "list.errorForeground": "#ff6666", + "tree.indentGuidesStroke": "#8a919959", + "listFilterWidget.background": "#1c212b", + "listFilterWidget.outline": "#ffcc66", + "listFilterWidget.noMatchesOutline": "#ff6666", + "list.filterMatchBackground": "#5c467266", + "list.filterMatchBorder": "#69538066", + "activityBar.background": "#1f2430", + "activityBar.foreground": "#707a8ccc", + "activityBar.inactiveForeground": "#707a8c99", + "activityBar.border": "#1f2430", + "activityBar.activeBorder": "#ffcc66", + "activityBarBadge.background": "#ffcc66", + "activityBarBadge.foreground": "#805500", + "sideBar.background": "#1f2430", + "sideBar.border": "#1f2430", + "sideBarTitle.foreground": "#707a8c", + "sideBarSectionHeader.background": "#1f2430", + "sideBarSectionHeader.foreground": "#707a8c", + "sideBarSectionHeader.border": "#1f2430", + "minimap.background": "#1f2430", + "minimap.selectionHighlight": "#409fff40", + "minimap.errorHighlight": "#ff6666", + "minimap.findMatchHighlight": "#695380", + "minimapGutter.addedBackground": "#87d96c", + "minimapGutter.modifiedBackground": "#80bfff", + "minimapGutter.deletedBackground": "#f27983", + "editorGroup.border": "#171b24", + "editorGroup.background": "#1c212b", + "editorGroupHeader.noTabsBackground": "#1f2430", + "editorGroupHeader.tabsBackground": "#1f2430", + "editorGroupHeader.tabsBorder": "#1f2430", + "tab.activeBackground": "#1f2430", + "tab.activeForeground": "#cccac2", + "tab.border": "#1f2430", + "tab.activeBorder": "#ffcc66", + "tab.unfocusedActiveBorder": "#707a8c", + "tab.inactiveBackground": "#1f2430", + "tab.inactiveForeground": "#707a8c", + "tab.unfocusedActiveForeground": "#707a8c", + "tab.unfocusedInactiveForeground": "#707a8c", + "editor.background": "#1f2430", + "editor.foreground": "#cccac2", + "editorLineNumber.foreground": "#8a919966", + "editorLineNumber.activeForeground": "#8a9199cc", + "editorCursor.foreground": "#ffcc66", + "editor.inactiveSelectionBackground": "#409fff21", + "editor.selectionBackground": "#409fff40", + "editor.selectionHighlightBackground": "#87d96c26", + "editor.selectionHighlightBorder": "#87d96c00", + "editor.wordHighlightBackground": "#80bfff14", + "editor.wordHighlightStrongBackground": "#87d96c14", + "editor.wordHighlightBorder": "#80bfff80", + "editor.wordHighlightStrongBorder": "#87d96c80", + "editor.findMatchBackground": "#695380", + "editor.findMatchBorder": "#695380", + "editor.findMatchHighlightBackground": "#69538066", + "editor.findMatchHighlightBorder": "#5c467266", + "editor.findRangeHighlightBackground": "#69538040", + "editor.rangeHighlightBackground": "#69538033", + "editor.lineHighlightBackground": "#1a1f29", + "editorLink.activeForeground": "#ffcc66", + "editorWhitespace.foreground": "#8a919966", + "editorIndentGuide.background": "#8a91992e", + "editorIndentGuide.activeBackground": "#8a919959", + "editorRuler.foreground": "#8a91992e", + "editorCodeLens.foreground": "#b8cfe680", + "editorBracketMatch.background": "#8a91994d", + "editorBracketMatch.border": "#8a91994d", + "editor.snippetTabstopHighlightBackground": "#87d96c33", + "editorOverviewRuler.border": "#171b24", + "editorOverviewRuler.modifiedForeground": "#80bfff", + "editorOverviewRuler.addedForeground": "#87d96c", + "editorOverviewRuler.deletedForeground": "#f27983", + "editorOverviewRuler.errorForeground": "#ff6666", + "editorOverviewRuler.warningForeground": "#ffcc66", + "editorOverviewRuler.bracketMatchForeground": "#8a9199b3", + "editorOverviewRuler.wordHighlightForeground": "#80bfff66", + "editorOverviewRuler.wordHighlightStrongForeground": "#87d96c66", + "editorOverviewRuler.findMatchForeground": "#695380", + "editorError.foreground": "#ff6666", + "editorWarning.foreground": "#ffcc66", + "editorGutter.modifiedBackground": "#80bfffcc", + "editorGutter.addedBackground": "#87d96ccc", + "editorGutter.deletedBackground": "#f27983cc", + "diffEditor.insertedTextBackground": "#87d96c1f", + "diffEditor.removedTextBackground": "#f279831f", + "diffEditor.diagonalFill": "#171b24", + "editorWidget.background": "#1c212b", + "editorWidget.border": "#171b24", + "editorHoverWidget.background": "#1c212b", + "editorHoverWidget.border": "#171b24", + "editorSuggestWidget.background": "#1c212b", + "editorSuggestWidget.border": "#171b24", + "editorSuggestWidget.highlightForeground": "#ffcc66", + "editorSuggestWidget.selectedBackground": "#63759926", + "debugExceptionWidget.border": "#171b24", + "debugExceptionWidget.background": "#1c212b", + "editorMarkerNavigation.background": "#1c212b", + "peekView.border": "#63759926", + "peekViewTitle.background": "#63759926", + "peekViewTitleDescription.foreground": "#707a8c", + "peekViewTitleLabel.foreground": "#cccac2", + "peekViewEditor.background": "#1c212b", + "peekViewEditor.matchHighlightBackground": "#69538066", + "peekViewEditor.matchHighlightBorder": "#5c467266", + "peekViewResult.background": "#1c212b", + "peekViewResult.fileForeground": "#cccac2", + "peekViewResult.lineForeground": "#707a8c", + "peekViewResult.matchHighlightBackground": "#69538066", + "peekViewResult.selectionBackground": "#63759926", + "panel.background": "#1f2430", + "panel.border": "#171b24", + "panelTitle.activeBorder": "#ffcc66", + "panelTitle.activeForeground": "#cccac2", + "panelTitle.inactiveForeground": "#707a8c", + "statusBar.background": "#1f2430", + "statusBar.foreground": "#707a8c", + "statusBar.border": "#1f2430", + "statusBar.debuggingBackground": "#f29e74", + "statusBar.debuggingForeground": "#242936", + "statusBar.noFolderBackground": "#1c212b", + "statusBarItem.activeBackground": "#707a8c33", + "statusBarItem.hoverBackground": "#707a8c33", + "statusBarItem.prominentBackground": "#171b24", + "statusBarItem.prominentHoverBackground": "#00000030", + "statusBarItem.remoteBackground": "#ffcc66", + "statusBarItem.remoteForeground": "#805500", + "titleBar.activeBackground": "#1f2430", + "titleBar.activeForeground": "#cccac2", + "titleBar.inactiveBackground": "#1f2430", + "titleBar.inactiveForeground": "#707a8c", + "titleBar.border": "#1f2430", + "extensionButton.prominentForeground": "#805500", + "extensionButton.prominentBackground": "#ffcc66", + "extensionButton.prominentHoverBackground": "#fac761", + "pickerGroup.border": "#171b24", + "pickerGroup.foreground": "#707a8c80", + "debugToolBar.background": "#1c212b", + "debugIcon.breakpointForeground": "#f29e74", + "debugIcon.breakpointDisabledForeground": "#f29e7480", + "debugConsoleInputIcon.foreground": "#ffcc66", + "welcomePage.tileBackground": "#1f2430", + "welcomePage.tileShadow": "#12151cb3", + "welcomePage.progress.background": "#1a1f29", + "welcomePage.buttonBackground": "#ffcc6666", + "walkThrough.embeddedEditorBackground": "#1c212b", + "gitDecoration.modifiedResourceForeground": "#80bfffb3", + "gitDecoration.deletedResourceForeground": "#f27983b3", + "gitDecoration.untrackedResourceForeground": "#87d96cb3", + "gitDecoration.ignoredResourceForeground": "#707a8c80", + "gitDecoration.conflictingResourceForeground": "", + "gitDecoration.submoduleResourceForeground": "#dfbfffb3", + "settings.headerForeground": "#cccac2", + "settings.modifiedItemIndicator": "#80bfff", + "keybindingLabel.background": "#707a8c1a", + "keybindingLabel.foreground": "#cccac2", + "keybindingLabel.border": "#cccac21a", + "keybindingLabel.bottomBorder": "#cccac21a", + "terminal.background": "#1f2430", + "terminal.foreground": "#cccac2", + "terminal.ansiBlack": "#171b24", + "terminal.ansiRed": "#ed8274", + "terminal.ansiGreen": "#87d96c", + "terminal.ansiYellow": "#facc6e", + "terminal.ansiBlue": "#6dcbfa", + "terminal.ansiMagenta": "#dabafa", + "terminal.ansiCyan": "#90e1c6", + "terminal.ansiWhite": "#c7c7c7", + "terminal.ansiBrightBlack": "#686868", + "terminal.ansiBrightRed": "#f28779", + "terminal.ansiBrightGreen": "#d5ff80", + "terminal.ansiBrightYellow": "#ffd173", + "terminal.ansiBrightBlue": "#73d0ff", + "terminal.ansiBrightMagenta": "#dfbfff", + "terminal.ansiBrightCyan": "#95e6cb", + "terminal.ansiBrightWhite": "#ffffff" + }, + "tokenColors": [ + { + "settings": { + "background": "#1f2430", + "foreground": "#cccac2" + } + }, + { + "name": "Comment", + "scope": [ + "comment" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#b8cfe680" + } + }, + { + "name": "String", + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#d5ff80" + } + }, + { + "name": "Regular Expressions and Escape Characters", + "scope": [ + "string.regexp", + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#95e6cb" + } + }, + { + "name": "Number", + "scope": [ + "constant.numeric" + ], + "settings": { + "foreground": "#dfbfff" + } + }, + { + "name": "Built-in constants", + "scope": [ + "constant.language" + ], + "settings": { + "foreground": "#dfbfff" + } + }, + { + "name": "Variable", + "scope": [ + "variable", + "variable.parameter.function-call" + ], + "settings": { + "foreground": "#cccac2" + } + }, + { + "name": "Member Variable", + "scope": [ + "variable.member" + ], + "settings": { + "foreground": "#f28779" + } + }, + { + "name": "Language variable", + "scope": [ + "variable.language" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#5ccfe6" + } + }, + { + "name": "Storage", + "scope": [ + "storage" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Keyword", + "scope": [ + "keyword" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Operators", + "scope": [ + "keyword.operator" + ], + "settings": { + "foreground": "#f29e74" + } + }, + { + "name": "Separators like ; or ,", + "scope": [ + "punctuation.separator", + "punctuation.terminator" + ], + "settings": { + "foreground": "#cccac2b3" + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation.section" + ], + "settings": { + "foreground": "#cccac2" + } + }, + { + "name": "Accessor", + "scope": [ + "punctuation.accessor" + ], + "settings": { + "foreground": "#f29e74" + } + }, + { + "name": "JavaScript/TypeScript interpolation punctuation", + "scope": [ + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Ruby interpolation punctuation", + "scope": [ + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Interpolation text", + "scope": [ + "meta.embedded" + ], + "settings": { + "foreground": "#cccac2" + } + }, + { + "name": "Types fixes", + "scope": [ + "source.java storage.type", + "source.haskell storage.type", + "source.c storage.type" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "Inherited class type", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Lambda arrow", + "scope": [ + "storage.type.function" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Java primitive variable types", + "scope": [ + "source.java storage.type.primitive" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Function name", + "scope": [ + "entity.name.function" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Function arguments", + "scope": [ + "variable.parameter", + "meta.parameter" + ], + "settings": { + "foreground": "#dfbfff" + } + }, + { + "name": "Function call", + "scope": [ + "variable.function", + "variable.annotation", + "meta.function-call.generic", + "support.function.go" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Library function", + "scope": [ + "support.function", + "support.macro" + ], + "settings": { + "foreground": "#f28779" + } + }, + { + "name": "Imports and packages", + "scope": [ + "entity.name.import", + "entity.name.package" + ], + "settings": { + "foreground": "#d5ff80" + } + }, + { + "name": "Entity name", + "scope": [ + "entity.name" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "Tag", + "scope": [ + "entity.name.tag", + "meta.tag.sgml" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "JSX Component", + "scope": [ + "support.class.component" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.end", + "punctuation.definition.tag.begin", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#5ccfe680" + } + }, + { + "name": "Tag attribute", + "scope": [ + "entity.other.attribute-name" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Library constant", + "scope": [ + "support.constant" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f29e74" + } + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class", + "source.go storage.type" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Decorators/annotation", + "scope": [ + "meta.decorator variable.other", + "meta.decorator punctuation.decorator", + "storage.type.annotation" + ], + "settings": { + "foreground": "#ffdfb3" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid" + ], + "settings": { + "foreground": "#ff6666" + } + }, + { + "name": "diff.header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#c594c5" + } + }, + { + "name": "Ruby class methods", + "scope": [ + "source.ruby variable.other.readwrite" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "CSS tag names", + "scope": [ + "source.css entity.name.tag", + "source.sass entity.name.tag", + "source.scss entity.name.tag", + "source.less entity.name.tag", + "source.stylus entity.name.tag" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "CSS browser prefix", + "scope": [ + "source.css support.type", + "source.sass support.type", + "source.scss support.type", + "source.less support.type", + "source.stylus support.type" + ], + "settings": { + "foreground": "#b8cfe680" + } + }, + { + "name": "CSS Properties", + "scope": [ + "support.type.property-name" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#5ccfe6" + } + }, + { + "name": "Search Results Numbers", + "scope": [ + "constant.numeric.line-number.find-in-files - match" + ], + "settings": { + "foreground": "#b8cfe680" + } + }, + { + "name": "Search Results Match Numbers", + "scope": [ + "constant.numeric.line-number.match" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Search Results Lines", + "scope": [ + "entity.name.filename.find-in-files" + ], + "settings": { + "foreground": "#d5ff80" + } + }, + { + "scope": [ + "message.error" + ], + "settings": { + "foreground": "#ff6666" + } + }, + { + "name": "Markup heading", + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#d5ff80" + } + }, + { + "name": "Markup links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Markup Italic", + "scope": [ + "markup.italic" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f28779" + } + }, + { + "name": "Markup Bold", + "scope": [ + "markup.bold" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f28779" + } + }, + { + "name": "Markup Bold/italic", + "scope": [ + "markup.italic markup.bold", + "markup.bold markup.italic" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "Markup Code", + "scope": [ + "markup.raw" + ], + "settings": { + "background": "#cccac205" + } + }, + { + "name": "Markup Code Inline", + "scope": [ + "markup.raw.inline" + ], + "settings": { + "background": "#cccac20f" + } + }, + { + "name": "Markdown Separator", + "scope": [ + "meta.separator" + ], + "settings": { + "fontStyle": "bold", + "background": "#cccac20f", + "foreground": "#b8cfe680" + } + }, + { + "name": "Markup Blockquote", + "scope": [ + "markup.quote" + ], + "settings": { + "foreground": "#95e6cb", + "fontStyle": "italic" + } + }, + { + "name": "Markup List Bullet", + "scope": [ + "markup.list punctuation.definition.list.begin" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Markup added", + "scope": [ + "markup.inserted" + ], + "settings": { + "foreground": "#87d96c" + } + }, + { + "name": "Markup modified", + "scope": [ + "markup.changed" + ], + "settings": { + "foreground": "#80bfff" + } + }, + { + "name": "Markup removed", + "scope": [ + "markup.deleted" + ], + "settings": { + "foreground": "#f27983" + } + }, + { + "name": "Markup Strike", + "scope": [ + "markup.strike" + ], + "settings": { + "foreground": "#ffdfb3" + } + }, + { + "name": "Markup Table", + "scope": [ + "markup.table" + ], + "settings": { + "background": "#cccac20f", + "foreground": "#5ccfe6" + } + }, + { + "name": "Markup Raw Inline", + "scope": [ + "text.html.markdown markup.inline.raw" + ], + "settings": { + "foreground": "#f29e74" + } + }, + { + "name": "Markdown - Line Break", + "scope": [ + "text.html.markdown meta.dummy.line-break" + ], + "settings": { + "background": "#b8cfe680", + "foreground": "#b8cfe680" + } + }, + { + "name": "Markdown - Raw Block Fenced", + "scope": [ + "punctuation.definition.markdown" + ], + "settings": { + "background": "#cccac2", + "foreground": "#b8cfe680" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "parameter.label": "#cccac2" + } +} \ No newline at end of file diff --git a/assets/themes/src/vscode/ayu/family.json b/assets/themes/src/vscode/ayu/family.json new file mode 100644 index 0000000000000000000000000000000000000000..05092a335d50e52b7a4c2db5771fa15d8b60e32f --- /dev/null +++ b/assets/themes/src/vscode/ayu/family.json @@ -0,0 +1,21 @@ +{ + "name": "Ayu", + "author": "dempfi (Ike Ku)", + "themes": [ + { + "name": "Ayu Light", + "file_name": "ayu-light.json", + "appearance": "light" + }, + { + "name": "Ayu Mirage", + "file_name": "ayu-mirage.json", + "appearance": "dark" + }, + { + "name": "Ayu Dark", + "file_name": "ayu-dark.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/dracula/LICENSE b/assets/themes/src/vscode/dracula/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..dcaf6d7f61eea6f51ad273171a53458f4be58f36 --- /dev/null +++ b/assets/themes/src/vscode/dracula/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Dracula Theme + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/dracula/dracula.json b/assets/themes/src/vscode/dracula/dracula.json new file mode 100644 index 0000000000000000000000000000000000000000..6604a094d5a194f74d378d25c38fb47a3f29c539 --- /dev/null +++ b/assets/themes/src/vscode/dracula/dracula.json @@ -0,0 +1,1067 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dracula", + "author": "Zeno Rocha", + "maintainers": ["Derek P Sifford "], + "semanticClass": "theme.dracula", + "semanticHighlighting": true, + "dracula": { + "base": [ + "#282A36", + "#F8F8F2", + "#44475A", + "#6272A4", + "#8BE9FD", + "#50FA7B", + "#FFB86C", + "#FF79C6", + "#BD93F9", + "#FF5555", + "#F1FA8C" + ], + "ansi": [ + "#21222C", + "#FF5555", + "#50FA7B", + "#F1FA8C", + "#BD93F9", + "#FF79C6", + "#8BE9FD", + "#F8F8F2", + "#6272A4", + "#FF6E6E", + "#69FF94", + "#FFFFA5", + "#D6ACFF", + "#FF92DF", + "#A4FFFF", + "#FFFFFF" + ], + "brightOther": ["#E9F284", "#8BE9FE"], + "other": [ + "#44475A75", + "#FFFFFF1A", + "#FFFFFF", + "#44475A70", + "#424450", + "#343746", + "#21222C", + "#191A21" + ] + }, + "colors": { + "terminal.background": "#282A36", + "terminal.foreground": "#F8F8F2", + "terminal.ansiBrightBlack": "#6272A4", + "terminal.ansiBrightRed": "#FF6E6E", + "terminal.ansiBrightGreen": "#69FF94", + "terminal.ansiBrightYellow": "#FFFFA5", + "terminal.ansiBrightBlue": "#D6ACFF", + "terminal.ansiBrightMagenta": "#FF92DF", + "terminal.ansiBrightCyan": "#A4FFFF", + "terminal.ansiBrightWhite": "#FFFFFF", + "terminal.ansiBlack": "#21222C", + "terminal.ansiRed": "#FF5555", + "terminal.ansiGreen": "#50FA7B", + "terminal.ansiYellow": "#F1FA8C", + "terminal.ansiBlue": "#BD93F9", + "terminal.ansiMagenta": "#FF79C6", + "terminal.ansiCyan": "#8BE9FD", + "terminal.ansiWhite": "#F8F8F2", + "focusBorder": "#6272A4", + "foreground": "#F8F8F2", + "selection.background": "#BD93F9", + "errorForeground": "#FF5555", + "button.background": "#44475A", + "button.foreground": "#F8F8F2", + "button.secondaryBackground": "#282A36", + "button.secondaryForeground": "#F8F8F2", + "button.secondaryHoverBackground": "#343746", + "dropdown.background": "#343746", + "dropdown.border": "#191A21", + "dropdown.foreground": "#F8F8F2", + "input.background": "#282A36", + "input.foreground": "#F8F8F2", + "input.border": "#191A21", + "input.placeholderForeground": "#6272A4", + "inputOption.activeBorder": "#BD93F9", + "inputValidation.infoBorder": "#FF79C6", + "inputValidation.warningBorder": "#FFB86C", + "inputValidation.errorBorder": "#FF5555", + "badge.foreground": "#F8F8F2", + "badge.background": "#44475A", + "progressBar.background": "#FF79C6", + "list.activeSelectionBackground": "#44475A", + "list.activeSelectionForeground": "#F8F8F2", + "list.dropBackground": "#44475A", + "list.focusBackground": "#44475A75", + "list.highlightForeground": "#8BE9FD", + "list.hoverBackground": "#44475A75", + "list.inactiveSelectionBackground": "#44475A75", + "list.warningForeground": "#FFB86C", + "list.errorForeground": "#FF5555", + "activityBar.background": "#343746", + "activityBar.inactiveForeground": "#6272A4", + "activityBar.foreground": "#F8F8F2", + "activityBar.activeBorder": "#FF79C680", + "activityBar.activeBackground": "#BD93F910", + "activityBarBadge.background": "#FF79C6", + "activityBarBadge.foreground": "#F8F8F2", + "sideBar.background": "#21222C", + "sideBarTitle.foreground": "#F8F8F2", + "sideBarSectionHeader.background": "#282A36", + "sideBarSectionHeader.border": "#191A21", + "editorGroup.border": "#BD93F9", + "editorGroup.dropBackground": "#44475A70", + "editorGroupHeader.tabsBackground": "#191A21", + "tab.activeBackground": "#282A36", + "tab.activeForeground": "#F8F8F2", + "tab.border": "#191A21", + "tab.activeBorderTop": "#FF79C680", + "tab.inactiveBackground": "#21222C", + "tab.inactiveForeground": "#6272A4", + "editor.foreground": "#F8F8F2", + "editor.background": "#282A36", + "editorLineNumber.foreground": "#6272A4", + "editor.selectionBackground": "#44475A", + "editor.selectionHighlightBackground": "#424450", + "editor.foldBackground": "#21222C80", + "editor.wordHighlightBackground": "#8BE9FD50", + "editor.wordHighlightStrongBackground": "#50FA7B50", + "editor.findMatchBackground": "#FFB86C80", + "editor.findMatchHighlightBackground": "#FFFFFF40", + "editor.findRangeHighlightBackground": "#44475A75", + "editor.hoverHighlightBackground": "#8BE9FD50", + "editor.lineHighlightBorder": "#44475A", + "editorLink.activeForeground": "#8BE9FD", + "editor.rangeHighlightBackground": "#BD93F915", + "editor.snippetTabstopHighlightBackground": "#282A36", + "editor.snippetTabstopHighlightBorder": "#6272A4", + "editor.snippetFinalTabstopHighlightBackground": "#282A36", + "editor.snippetFinalTabstopHighlightBorder": "#50FA7B", + "editorWhitespace.foreground": "#FFFFFF1A", + "editorIndentGuide.background": "#FFFFFF1A", + "editorIndentGuide.activeBackground": "#FFFFFF45", + "editorRuler.foreground": "#FFFFFF1A", + "editorCodeLens.foreground": "#6272A4", + "editorBracketHighlight.foreground1": "#F8F8F2", + "editorBracketHighlight.foreground2": "#FF79C6", + "editorBracketHighlight.foreground3": "#8BE9FD", + "editorBracketHighlight.foreground4": "#50FA7B", + "editorBracketHighlight.foreground5": "#BD93F9", + "editorBracketHighlight.foreground6": "#FFB86C", + "editorBracketHighlight.unexpectedBracket.foreground": "#FF5555", + "editorOverviewRuler.border": "#191A21", + "editorOverviewRuler.selectionHighlightForeground": "#FFB86C", + "editorOverviewRuler.wordHighlightForeground": "#8BE9FD", + "editorOverviewRuler.wordHighlightStrongForeground": "#50FA7B", + "editorOverviewRuler.modifiedForeground": "#8BE9FD80", + "editorOverviewRuler.addedForeground": "#50FA7B80", + "editorOverviewRuler.deletedForeground": "#FF555580", + "editorOverviewRuler.errorForeground": "#FF555580", + "editorOverviewRuler.warningForeground": "#FFB86C80", + "editorOverviewRuler.infoForeground": "#8BE9FD80", + "editorError.foreground": "#FF5555", + "editorWarning.foreground": "#8BE9FD", + "editorGutter.modifiedBackground": "#8BE9FD80", + "editorGutter.addedBackground": "#50FA7B80", + "editorGutter.deletedBackground": "#FF555580", + "gitDecoration.modifiedResourceForeground": "#8BE9FD", + "gitDecoration.deletedResourceForeground": "#FF5555", + "gitDecoration.untrackedResourceForeground": "#50FA7B", + "gitDecoration.ignoredResourceForeground": "#6272A4", + "gitDecoration.conflictingResourceForeground": "#FFB86C", + "diffEditor.insertedTextBackground": "#50FA7B20", + "diffEditor.removedTextBackground": "#FF555550", + "inlineChat.regionHighlight": "#343746", + "editorWidget.background": "#21222C", + "editorSuggestWidget.background": "#21222C", + "editorSuggestWidget.foreground": "#F8F8F2", + "editorSuggestWidget.selectedBackground": "#44475A", + "editorHoverWidget.background": "#282A36", + "editorHoverWidget.border": "#6272A4", + "editorMarkerNavigation.background": "#21222C", + "peekView.border": "#44475A", + "peekViewEditor.background": "#282A36", + "peekViewEditor.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.background": "#21222C", + "peekViewResult.fileForeground": "#F8F8F2", + "peekViewResult.lineForeground": "#F8F8F2", + "peekViewResult.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.selectionBackground": "#44475A", + "peekViewResult.selectionForeground": "#F8F8F2", + "peekViewTitle.background": "#191A21", + "peekViewTitleDescription.foreground": "#6272A4", + "peekViewTitleLabel.foreground": "#F8F8F2", + "merge.currentHeaderBackground": "#50FA7B90", + "merge.incomingHeaderBackground": "#BD93F990", + "editorOverviewRuler.currentContentForeground": "#50FA7B", + "editorOverviewRuler.incomingContentForeground": "#BD93F9", + "panel.background": "#282A36", + "panel.border": "#BD93F9", + "panelTitle.activeBorder": "#FF79C6", + "panelTitle.activeForeground": "#F8F8F2", + "panelTitle.inactiveForeground": "#6272A4", + "statusBar.background": "#191A21", + "statusBar.foreground": "#F8F8F2", + "statusBar.debuggingBackground": "#FF5555", + "statusBar.debuggingForeground": "#191A21", + "statusBar.noFolderBackground": "#191A21", + "statusBar.noFolderForeground": "#F8F8F2", + "statusBarItem.prominentBackground": "#FF5555", + "statusBarItem.prominentHoverBackground": "#FFB86C", + "statusBarItem.remoteForeground": "#282A36", + "statusBarItem.remoteBackground": "#BD93F9", + "titleBar.activeBackground": "#21222C", + "titleBar.activeForeground": "#F8F8F2", + "titleBar.inactiveBackground": "#191A21", + "titleBar.inactiveForeground": "#6272A4", + "extensionButton.prominentForeground": "#F8F8F2", + "extensionButton.prominentBackground": "#50FA7B90", + "extensionButton.prominentHoverBackground": "#50FA7B60", + "pickerGroup.border": "#BD93F9", + "pickerGroup.foreground": "#8BE9FD", + "debugToolBar.background": "#21222C", + "walkThrough.embeddedEditorBackground": "#21222C", + "settings.headerForeground": "#F8F8F2", + "settings.modifiedItemIndicator": "#FFB86C", + "settings.dropdownBackground": "#21222C", + "settings.dropdownForeground": "#F8F8F2", + "settings.dropdownBorder": "#191A21", + "settings.checkboxBackground": "#21222C", + "settings.checkboxForeground": "#F8F8F2", + "settings.checkboxBorder": "#191A21", + "settings.textInputBackground": "#21222C", + "settings.textInputForeground": "#F8F8F2", + "settings.textInputBorder": "#191A21", + "settings.numberInputBackground": "#21222C", + "settings.numberInputForeground": "#F8F8F2", + "settings.numberInputBorder": "#191A21", + "breadcrumb.foreground": "#6272A4", + "breadcrumb.background": "#282A36", + "breadcrumb.focusForeground": "#F8F8F2", + "breadcrumb.activeSelectionForeground": "#F8F8F2", + "breadcrumbPicker.background": "#191A21", + "listFilterWidget.background": "#343746", + "listFilterWidget.outline": "#424450", + "listFilterWidget.noMatchesOutline": "#FF5555" + }, + "tokenColors": [ + { + "scope": ["emphasis"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["strong"], + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": ["header"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "scope": ["markup.inserted"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "scope": ["markup.deleted"], + "settings": { + "foreground": "#FF5555" + } + }, + { + "scope": ["markup.changed"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#FF5555", + "fontStyle": "underline italic" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#F8F8F2", + "fontStyle": "underline italic" + } + }, + { + "scope": ["entity.name.filename"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "scope": ["markup.error"], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Underlined markup", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Bold markup", + "scope": ["markup.bold"], + "settings": { + "fontStyle": "bold", + "foreground": "#FFB86C" + } + }, + { + "name": "Markup headings", + "scope": ["markup.heading"], + "settings": { + "fontStyle": "bold", + "foreground": "#BD93F9" + } + }, + { + "name": "Markup italic", + "scope": ["markup.italic"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "italic" + } + }, + { + "name": "Bullets, lists (prose)", + "scope": [ + "beginning.punctuation.definition.list.markdown", + "beginning.punctuation.definition.quote.markdown", + "punctuation.definition.link.restructuredtext" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Inline code (prose)", + "scope": ["markup.inline.raw", "markup.raw.restructuredtext"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Links (prose)", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Link text, image alt text (prose)", + "scope": [ + "meta.link.reference.def.restructuredtext", + "punctuation.definition.directive.restructuredtext", + "string.other.link.description", + "string.other.link.title" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Blockquotes (prose)", + "scope": ["entity.name.directive.restructuredtext", "markup.quote"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "italic" + } + }, + { + "name": "Horizontal rule (prose)", + "scope": ["meta.separator.markdown"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Code blocks", + "scope": [ + "fenced_code.block.language", + "markup.raw.inner.restructuredtext", + "markup.fenced_code.block.markdown punctuation.definition.markdown" + ], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Prose constants", + "scope": ["punctuation.definition.constant.restructuredtext"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Braces in markdown headings", + "scope": [ + "markup.heading.markdown punctuation.definition.string.begin", + "markup.heading.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Braces in markdown paragraphs", + "scope": [ + "meta.paragraph.markdown punctuation.definition.string.begin", + "meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Braces in markdown blockquotes", + "scope": [ + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin", + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "User-defined class names", + "scope": ["entity.name.type.class", "entity.name.class"], + "settings": { + "foreground": "#8BE9FD", + "fontStyle": "normal" + } + }, + { + "name": "this, super, self, etc.", + "scope": [ + "keyword.expressions-and-types.swift", + "keyword.other.this", + "variable.language", + "variable.language punctuation.definition.variable.php", + "variable.other.readwrite.instance.ruby", + "variable.parameter.function.language.special" + ], + "settings": { + "foreground": "#BD93F9", + "fontStyle": "italic" + } + }, + { + "name": "Inherited classes", + "scope": ["entity.other.inherited-class"], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Comments", + "scope": [ + "comment", + "punctuation.definition.comment", + "unused.comment", + "wildcard.comment" + ], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "JSDoc-style keywords", + "scope": [ + "comment keyword.codetag.notation", + "comment.block.documentation keyword", + "comment.block.documentation storage.type.class" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "JSDoc-style types", + "scope": ["comment.block.documentation entity.name.type"], + "settings": { + "foreground": "#8BE9FD", + "fontStyle": "italic" + } + }, + { + "name": "JSDoc-style type brackets", + "scope": [ + "comment.block.documentation entity.name.type punctuation.definition.bracket" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "JSDoc-style comment parameters", + "scope": ["comment.block.documentation variable"], + "settings": { + "foreground": "#FFB86C", + "fontStyle": "italic" + } + }, + { + "name": "Constants", + "scope": ["constant", "variable.other.constant"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Constant escape sequences", + "scope": [ + "constant.character.escape", + "constant.character.string.escape", + "constant.regexp" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "HTML tags", + "scope": ["entity.name.tag"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "CSS attribute parent selectors ('&')", + "scope": ["entity.other.attribute-name.parent-selector"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "HTML/CSS attribute names", + "scope": ["entity.other.attribute-name"], + "settings": { + "foreground": "#50FA7B", + "fontStyle": "italic" + } + }, + { + "name": "Function names", + "scope": [ + "entity.name.function", + "meta.function-call.object", + "meta.function-call.php", + "meta.function-call.static", + "meta.method-call.java meta.method", + "meta.method.groovy", + "support.function.any-method.lua", + "keyword.operator.function.infix" + ], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Function parameters", + "scope": [ + "entity.name.variable.parameter", + "meta.at-rule.function variable", + "meta.at-rule.mixin variable", + "meta.function.arguments variable.other.php", + "meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql", + "variable.parameter" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Decorators", + "scope": [ + "meta.decorator variable.other.readwrite", + "meta.decorator variable.other.property" + ], + "settings": { + "foreground": "#50FA7B", + "fontStyle": "italic" + } + }, + { + "name": "Decorator Objects", + "scope": ["meta.decorator variable.other.object"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Keywords", + "scope": ["keyword", "punctuation.definition.keyword"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Keyword \"new\"", + "scope": ["keyword.control.new", "keyword.operator.new"], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Generic selectors (CSS/SCSS/Less/Stylus)", + "scope": ["meta.selector"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Language Built-ins", + "scope": ["support"], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Built-in magic functions and constants", + "scope": [ + "support.function.magic", + "support.variable", + "variable.other.predefined" + ], + "settings": { + "fontStyle": "regular", + "foreground": "#BD93F9" + } + }, + { + "name": "Built-in functions / properties", + "scope": ["support.function", "support.type.property-name"], + "settings": { + "fontStyle": "regular" + } + }, + { + "name": "Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)", + "scope": [ + "constant.other.symbol.hashkey punctuation.definition.constant.ruby", + "entity.other.attribute-name.placeholder punctuation", + "entity.other.attribute-name.pseudo-class punctuation", + "entity.other.attribute-name.pseudo-element punctuation", + "meta.group.double.toml", + "meta.group.toml", + "meta.object-binding-pattern-variable punctuation.destructuring", + "punctuation.colon.graphql", + "punctuation.definition.block.scalar.folded.yaml", + "punctuation.definition.block.scalar.literal.yaml", + "punctuation.definition.block.sequence.item.yaml", + "punctuation.definition.entity.other.inherited-class", + "punctuation.function.swift", + "punctuation.separator.dictionary.key-value", + "punctuation.separator.hash", + "punctuation.separator.inheritance", + "punctuation.separator.key-value", + "punctuation.separator.key-value.mapping.yaml", + "punctuation.separator.namespace", + "punctuation.separator.pointer-access", + "punctuation.separator.slice", + "string.unquoted.heredoc punctuation.definition.string", + "support.other.chomping-indicator.yaml", + "punctuation.separator.annotation" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Brackets, braces, parens, etc.", + "scope": [ + "keyword.operator.other.powershell", + "keyword.other.statement-separator.powershell", + "meta.brace.round", + "meta.function-call punctuation", + "punctuation.definition.arguments.begin", + "punctuation.definition.arguments.end", + "punctuation.definition.entity.begin", + "punctuation.definition.entity.end", + "punctuation.definition.tag.cs", + "punctuation.definition.type.begin", + "punctuation.definition.type.end", + "punctuation.section.scope.begin", + "punctuation.section.scope.end", + "punctuation.terminator.expression.php", + "storage.type.generic.java", + "string.template meta.brace", + "string.template punctuation.accessor" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Variable interpolation operators", + "scope": [ + "meta.string-contents.quoted.double punctuation.definition.variable", + "punctuation.definition.interpolation.begin", + "punctuation.definition.interpolation.end", + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded.begin", + "punctuation.section.embedded.coffee", + "punctuation.section.embedded.end", + "punctuation.section.embedded.end source.php", + "punctuation.section.embedded.end source.ruby", + "punctuation.definition.variable.makefile" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Keys (serializable languages)", + "scope": [ + "entity.name.function.target.makefile", + "entity.name.section.toml", + "entity.name.tag.yaml", + "variable.other.key.toml" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Dates / timestamps (serializable languages)", + "scope": ["constant.other.date", "constant.other.timestamp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "YAML aliases", + "scope": ["variable.other.alias.yaml"], + "settings": { + "fontStyle": "italic underline", + "foreground": "#50FA7B" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.implementation storage.type.objc", + "meta.interface-or-protocol storage.type.objc", + "source.groovy storage.type.def" + ], + "settings": { + "fontStyle": "regular", + "foreground": "#FF79C6" + } + }, + { + "name": "Types", + "scope": [ + "entity.name.type", + "keyword.primitive-datatypes.swift", + "keyword.type.cs", + "meta.protocol-list.objc", + "meta.return-type.objc", + "source.go storage.type", + "source.groovy storage.type", + "source.java storage.type", + "source.powershell entity.other.attribute-name", + "storage.class.std.rust", + "storage.type.attribute.swift", + "storage.type.c", + "storage.type.core.rust", + "storage.type.cs", + "storage.type.groovy", + "storage.type.objc", + "storage.type.php", + "storage.type.haskell", + "storage.type.ocaml" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Generics, templates, and mapped type declarations", + "scope": [ + "entity.name.type.type-parameter", + "meta.indexer.mappedtype.declaration entity.name.type", + "meta.type.parameters entity.name.type" + ], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Modifiers", + "scope": ["storage.modifier"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "RegExp string", + "scope": [ + "string.regexp", + "constant.other.character-class.set.regexp", + "constant.character.escape.backslash.regexp" + ], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "Non-capture operators", + "scope": ["punctuation.definition.group.capture.regexp"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "RegExp start and end characters", + "scope": [ + "string.regexp punctuation.definition.string.begin", + "string.regexp punctuation.definition.string.end" + ], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Character group", + "scope": ["punctuation.definition.character-class.regexp"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Capture groups", + "scope": ["punctuation.definition.group.regexp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Assertion operators", + "scope": [ + "punctuation.definition.group.assertion.regexp", + "keyword.operator.negation.regexp" + ], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Positive lookaheads", + "scope": ["meta.assertion.look-ahead.regexp"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Strings", + "scope": ["string"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "String quotes (temporary vscode fix)", + "scope": [ + "punctuation.definition.string.begin", + "punctuation.definition.string.end" + ], + "settings": { + "foreground": "#E9F284" + } + }, + { + "name": "Property quotes (temporary vscode fix)", + "scope": [ + "punctuation.support.type.property-name.begin", + "punctuation.support.type.property-name.end" + ], + "settings": { + "foreground": "#8BE9FE" + } + }, + { + "name": "Docstrings", + "scope": [ + "string.quoted.docstring.multi", + "string.quoted.docstring.multi.python punctuation.definition.string.begin", + "string.quoted.docstring.multi.python punctuation.definition.string.end", + "string.quoted.docstring.multi.python constant.character.escape" + ], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Variables and object properties", + "scope": [ + "variable", + "constant.other.key.perl", + "support.variable.property", + "variable.other.constant.js", + "variable.other.constant.ts", + "variable.other.constant.tsx" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Destructuring / aliasing reference name (LHS)", + "scope": [ + "meta.import variable.other.readwrite", + "meta.variable.assignment.destructured.object.coffee variable" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Destructuring / aliasing variable name (RHS)", + "scope": [ + "meta.import variable.other.readwrite.alias", + "meta.export variable.other.readwrite.alias", + "meta.variable.assignment.destructured.object.coffee variable variable" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#F8F8F2" + } + }, + { + "name": "GraphQL keys", + "scope": ["meta.selectionset.graphql variable"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "GraphQL function arguments", + "scope": ["meta.selectionset.graphql meta.arguments variable"], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "GraphQL fragment name (definition)", + "scope": ["entity.name.fragment.graphql", "variable.fragment.graphql"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Edge cases (foreground color resets)", + "scope": [ + "constant.other.symbol.hashkey.ruby", + "keyword.operator.dereference.java", + "keyword.operator.navigation.groovy", + "meta.scope.for-loop.shell punctuation.definition.string.begin", + "meta.scope.for-loop.shell punctuation.definition.string.end", + "meta.scope.for-loop.shell string", + "storage.modifier.import", + "punctuation.section.embedded.begin.tsx", + "punctuation.section.embedded.end.tsx", + "punctuation.section.embedded.begin.jsx", + "punctuation.section.embedded.end.jsx", + "punctuation.separator.list.comma.css", + "constant.language.empty-list.haskell" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Shell variables prefixed with \"$\" (edge case)", + "scope": ["source.shell variable.other"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)", + "scope": ["support.constant"], + "settings": { + "fontStyle": "normal", + "foreground": "#BD93F9" + } + }, + { + "name": "Makefile prerequisite names", + "scope": ["meta.scope.prerequisites.makefile"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "SCSS attibute selector strings", + "scope": ["meta.attribute-selector.scss"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "SCSS attribute selector brackets", + "scope": [ + "punctuation.definition.attribute-selector.end.bracket.square.scss", + "punctuation.definition.attribute-selector.begin.bracket.square.scss" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Haskell Pragmas", + "scope": ["meta.preprocessor.haskell"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Log file error", + "scope": ["log.error"], + "settings": { + "foreground": "#FF5555", + "fontStyle": "bold" + } + }, + { + "name": "Log file warning", + "scope": ["log.warning"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "bold" + } + } + ] +} diff --git a/assets/themes/src/vscode/dracula/family.json b/assets/themes/src/vscode/dracula/family.json new file mode 100644 index 0000000000000000000000000000000000000000..b3bf2cf04a3cfb981368f1187d7510c26a39e710 --- /dev/null +++ b/assets/themes/src/vscode/dracula/family.json @@ -0,0 +1,11 @@ +{ + "name": "Dracula", + "author": "Zeno Rocha", + "themes": [ + { + "name": "Dracula", + "file_name": "dracula.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/gruvbox/LICENSE b/assets/themes/src/vscode/gruvbox/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..01085fd81770123ea00a503084d0bfe8c8d565fb --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/LICENSE @@ -0,0 +1 @@ +MIT/X11 diff --git a/assets/themes/src/vscode/gruvbox/family.json b/assets/themes/src/vscode/gruvbox/family.json new file mode 100644 index 0000000000000000000000000000000000000000..7ff7589a8e1f3a05bd78aa14f3557ed07e00e7d6 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/family.json @@ -0,0 +1,36 @@ +{ + "name": "Gruvbox", + "author": "morhetz", + "themes": [ + { + "name": "Gruvbox Dark Hard", + "file_name": "gruvbox-dark-hard.json", + "appearance": "dark" + }, + { + "name": "Gruvbox Dark Medium", + "file_name": "gruvbox-dark-medium.json", + "appearance": "dark" + }, + { + "name": "Gruvbox Dark Soft", + "file_name": "gruvbox-dark-soft.json", + "appearance": "dark" + }, + { + "name": "Gruvbox Light Hard", + "file_name": "gruvbox-light-hard.json", + "appearance": "light" + }, + { + "name": "Gruvbox Light Medium", + "file_name": "gruvbox-light-medium.json", + "appearance": "light" + }, + { + "name": "Gruvbox Light Soft", + "file_name": "gruvbox-light-soft.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-dark-hard.json b/assets/themes/src/vscode/gruvbox/gruvbox-dark-hard.json new file mode 100644 index 0000000000000000000000000000000000000000..4c1a7c9e8aaa100b2fbbb37cad882e4f9a29caf7 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-dark-hard.json @@ -0,0 +1,1074 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Dark Hard", + "type": "dark", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#a89984" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#fabd2f", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#83a598", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#ebdbb2" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#d3869b" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#8ec07c", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#83a598" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#fe8019" + } + } + ], + "colors": { + "focusBorder": "#3c3836", + "foreground": "#ebdbb2", + "widget.shadow": "#1d202130", + "selection.background": "#689d6a80", + "errorForeground": "#fb4934", + + "button.background": "#45858880", + "button.foreground": "#ebdbb2", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#1d2021", + "dropdown.border": "#3c3836", + "dropdown.foreground": "#ebdbb2", + + "input.background": "#ebdbb205", + "input.border": "#3c3836", + "input.foreground": "#ebdbb2", + "input.placeholderForeground": "#ebdbb260", + "inputValidation.errorBorder": "#fb4934", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#83a598", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#fabd2f", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#ebdbb260", + + "scrollbar.shadow": "#1d2021", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#665c54", + "scrollbarSlider.background": "#50494599", + + "badge.background": "#d3869b", + "badge.foreground": "#1d2021", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#3c383680", + "list.activeSelectionForeground": "#8ec07c", + "list.hoverBackground": "#3c383680", + "list.hoverForeground": "#d5c4a1", + "list.focusBackground": "#3c3836", + "list.focusForeground": "#ebdbb2", + "list.inactiveSelectionForeground": "#689d6a", + "list.inactiveSelectionBackground": "#3c383680", + "list.dropBackground": "#3c3836", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#1d2021", + "sideBar.foreground": "#d5c4a1", + "sideBar.border": "#3c3836", + "sideBarTitle.foreground": "#ebdbb2", + "sideBarSectionHeader.background": "#1d202100", + "sideBarSectionHeader.foreground": "#ebdbb2", + + "activityBar.background": "#1d2021", + "activityBar.foreground": "#ebdbb2", + "activityBar.border": "#3c3836", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#3c3836", + "editorGroup.dropBackground": "#3c383660", + "editorGroupHeader.noTabsBackground": "#3c3836", + "editorGroupHeader.tabsBackground": "#1d2021", + "editorGroupHeader.tabsBorder": "#3c3836", + + "tab.border": "#1d202100", + "tab.activeBorder": "#689d6a", + "tab.activeBackground": "#32302f", + "tab.activeForeground": "#ebdbb2", + "tab.inactiveForeground": "#a89984", + "tab.inactiveBackground": "#1d2021", + "tab.unfocusedActiveForeground": "#a89984", + "tab.unfocusedActiveBorder": "#1d202100", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#1d2021", + "editor.foreground": "#ebdbb2", + "editorLineNumber.foreground": "#665c54", + "editorCursor.foreground": "#ebdbb2", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#fabd2f40", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#ebdbb2", + "editor.findMatchBackground": "#83a59870", + "editor.findMatchHighlightBackground": "#fe801930", + "editor.findRangeHighlightBackground": "#83a59870", + "editor.lineHighlightBackground": "#3c383660", + "editor.lineHighlightBorder": "#3c383600", + "editorWhitespace.foreground": "#a8998420", + "editorRuler.foreground": "#a8998440", + "editorCodeLens.foreground": "#a8998490", + "editorBracketMatch.border": "#1d202100", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#1d2021", + "editorHoverWidget.border": "#3c3836", + "editorOverviewRuler.border": "#1d202100", + "editorOverviewRuler.findMatchForeground": "#bdae93", + "editorOverviewRuler.rangeHighlightForeground": "#bdae93", + "editorOverviewRuler.selectionHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightStrongForeground": "#665c54", + "editorOverviewRuler.modifiedForeground": "#83a598", + "editorOverviewRuler.addedForeground": "#83a598", + "editorOverviewRuler.deletedForeground": "#83a598", + "editorOverviewRuler.errorForeground": "#fb4934", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#d3869b", + "editorGutter.background": "#1d202100", + "editorGutter.modifiedBackground": "#83a598", + "editorGutter.addedBackground": "#b8bb26", + "editorGutter.deletedBackground": "#fb4934", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#b8bb2630", + "diffEditor.removedTextBackground": "#fb493430", + + "editorWidget.background": "#1d2021", + "editorWidget.border": "#3c3836", + "editorSuggestWidget.background": "#1d2021", + "editorSuggestWidget.foreground": "#ebdbb2", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#3c383660", + "editorSuggestWidget.border": "#3c3836", + + "peekView.border": "#3c3836", + "peekViewEditor.background": "#3c383670", + "peekViewEditor.matchHighlightBackground": "#504945", + "peekViewEditorGutter.background": "#3c383670", + "peekViewResult.background": "#3c383670", + "peekViewResult.fileForeground": "#ebdbb2", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#ebdbb2", + "peekViewResult.lineForeground": "#ebdbb2", + "peekViewResult.matchHighlightBackground": "#504945", + "peekViewTitle.background": "#3c383670", + "peekViewTitleDescription.foreground": "#bdae93", + "peekViewTitleLabel.foreground": "#ebdbb2", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#1d202100", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#3c3836", + "panelTitle.activeForeground": "#ebdbb2", + + "statusBar.background": "#1d2021", + "statusBar.border": "#3c3836", + "statusBar.foreground": "#ebdbb2", + "statusBar.debuggingBackground": "#fe8019", + "statusBar.debuggingForeground": "#1d2021", + "statusBar.debuggingBorder": "#1d202100", + "statusBar.noFolderBackground": "#1d2021", + "statusBar.noFolderBorder": "#1d202100", + + "terminal.ansiBlack": "#3c3836", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#fb4934", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#b8bb26", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#fabd2f", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#83a598", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#d3869b", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#8ec07c", + "terminal.ansiWhite": "#a89984", + "terminal.ansiBrightWhite": "#ebdbb2", + "terminal.foreground": "#ebdbb2", + "terminal.background": "#1d2021", + + "titleBar.activeBackground": "#1d2021", + "titleBar.activeForeground": "#ebdbb2", + "titleBar.inactiveBackground": "#1d2021", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#7c6f64", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#3c3836", + "menu.separatorBackground": "#3c3836", + + "notebook.cellEditorBackground": "#282828", + "notebook.focusedCellBorder": "#a89984", + "notebook.cellBorderColor": "#3c3836", + "notebook.focusedEditorBorder": "#3c3836", + + "extensionButton.prominentBackground": "#b8bb2680", + "extensionButton.prominentHoverBackground": "#b8bb2630", + + "textLink.foreground": "#83a598", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#1d2021" + }, + "semanticTokenColors": { + "constant.builtin": "#d3869b", + "property": "#83a598", + "property:python": "#ebdbb2", + "parameter": "#83a598", + "variable": "#ebdbb2", + "function": "#8ec07c", + "function.builtin": "#fe8019", + "method": "#8ec07c" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-dark-medium.json b/assets/themes/src/vscode/gruvbox/gruvbox-dark-medium.json new file mode 100644 index 0000000000000000000000000000000000000000..e9ef916193b471785a17a461c7063a5325252ba7 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-dark-medium.json @@ -0,0 +1,1074 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Dark Medium", + "type": "dark", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#a89984" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#fabd2f", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#83a598", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#ebdbb2" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#d3869b" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#8ec07c", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#83a598" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#fe8019" + } + } + ], + "colors": { + "focusBorder": "#3c3836", + "foreground": "#ebdbb2", + "widget.shadow": "#28282830", + "selection.background": "#689d6a80", + "errorForeground": "#fb4934", + + "button.background": "#45858880", + "button.foreground": "#ebdbb2", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#282828", + "dropdown.border": "#3c3836", + "dropdown.foreground": "#ebdbb2", + + "input.background": "#ebdbb205", + "input.border": "#3c3836", + "input.foreground": "#ebdbb2", + "input.placeholderForeground": "#ebdbb260", + "inputValidation.errorBorder": "#fb4934", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#83a598", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#fabd2f", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#ebdbb260", + + "scrollbar.shadow": "#282828", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#665c54", + "scrollbarSlider.background": "#50494599", + + "badge.background": "#d3869b", + "badge.foreground": "#282828", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#3c383680", + "list.activeSelectionForeground": "#8ec07c", + "list.hoverBackground": "#3c383680", + "list.hoverForeground": "#d5c4a1", + "list.focusBackground": "#3c3836", + "list.focusForeground": "#ebdbb2", + "list.inactiveSelectionForeground": "#689d6a", + "list.inactiveSelectionBackground": "#3c383680", + "list.dropBackground": "#3c3836", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#282828", + "sideBar.foreground": "#d5c4a1", + "sideBar.border": "#3c3836", + "sideBarTitle.foreground": "#ebdbb2", + "sideBarSectionHeader.background": "#28282800", + "sideBarSectionHeader.foreground": "#ebdbb2", + + "activityBar.background": "#282828", + "activityBar.foreground": "#ebdbb2", + "activityBar.border": "#3c3836", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#3c3836", + "editorGroup.dropBackground": "#3c383660", + "editorGroupHeader.noTabsBackground": "#3c3836", + "editorGroupHeader.tabsBackground": "#282828", + "editorGroupHeader.tabsBorder": "#3c3836", + + "tab.border": "#28282800", + "tab.activeBorder": "#689d6a", + "tab.activeBackground": "#3c3836", + "tab.activeForeground": "#ebdbb2", + "tab.inactiveForeground": "#a89984", + "tab.inactiveBackground": "#282828", + "tab.unfocusedActiveForeground": "#a89984", + "tab.unfocusedActiveBorder": "#28282800", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#282828", + "editor.foreground": "#ebdbb2", + "editorLineNumber.foreground": "#665c54", + "editorCursor.foreground": "#ebdbb2", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#fabd2f40", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#ebdbb2", + "editor.findMatchBackground": "#83a59870", + "editor.findMatchHighlightBackground": "#fe801930", + "editor.findRangeHighlightBackground": "#83a59870", + "editor.lineHighlightBackground": "#3c383660", + "editor.lineHighlightBorder": "#3c383600", + "editorWhitespace.foreground": "#a8998420", + "editorRuler.foreground": "#a8998440", + "editorCodeLens.foreground": "#a8998490", + "editorBracketMatch.border": "#28282800", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#282828", + "editorHoverWidget.border": "#3c3836", + "editorOverviewRuler.border": "#28282800", + "editorOverviewRuler.findMatchForeground": "#bdae93", + "editorOverviewRuler.rangeHighlightForeground": "#bdae93", + "editorOverviewRuler.selectionHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightStrongForeground": "#665c54", + "editorOverviewRuler.modifiedForeground": "#83a598", + "editorOverviewRuler.addedForeground": "#83a598", + "editorOverviewRuler.deletedForeground": "#83a598", + "editorOverviewRuler.errorForeground": "#fb4934", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#d3869b", + "editorGutter.background": "#28282800", + "editorGutter.modifiedBackground": "#83a598", + "editorGutter.addedBackground": "#b8bb26", + "editorGutter.deletedBackground": "#fb4934", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#b8bb2630", + "diffEditor.removedTextBackground": "#fb493430", + + "editorWidget.background": "#282828", + "editorWidget.border": "#3c3836", + "editorSuggestWidget.background": "#282828", + "editorSuggestWidget.foreground": "#ebdbb2", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#3c383660", + "editorSuggestWidget.border": "#3c3836", + + "peekView.border": "#3c3836", + "peekViewEditor.background": "#3c383670", + "peekViewEditor.matchHighlightBackground": "#504945", + "peekViewEditorGutter.background": "#3c383670", + "peekViewResult.background": "#3c383670", + "peekViewResult.fileForeground": "#ebdbb2", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#ebdbb2", + "peekViewResult.lineForeground": "#ebdbb2", + "peekViewResult.matchHighlightBackground": "#504945", + "peekViewTitle.background": "#3c383670", + "peekViewTitleDescription.foreground": "#bdae93", + "peekViewTitleLabel.foreground": "#ebdbb2", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#28282800", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#3c3836", + "panelTitle.activeForeground": "#ebdbb2", + + "statusBar.background": "#282828", + "statusBar.border": "#3c3836", + "statusBar.foreground": "#ebdbb2", + "statusBar.debuggingBackground": "#fe8019", + "statusBar.debuggingForeground": "#282828", + "statusBar.debuggingBorder": "#28282800", + "statusBar.noFolderBackground": "#282828", + "statusBar.noFolderBorder": "#28282800", + + "terminal.ansiBlack": "#3c3836", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#fb4934", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#b8bb26", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#fabd2f", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#83a598", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#d3869b", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#8ec07c", + "terminal.ansiWhite": "#a89984", + "terminal.ansiBrightWhite": "#ebdbb2", + "terminal.foreground": "#ebdbb2", + "terminal.background": "#282828", + + "titleBar.activeBackground": "#282828", + "titleBar.activeForeground": "#ebdbb2", + "titleBar.inactiveBackground": "#282828", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#7c6f64", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#3c3836", + "menu.separatorBackground": "#3c3836", + + "notebook.cellEditorBackground": "#32302f", + "notebook.focusedCellBorder": "#a89984", + "notebook.cellBorderColor": "#504945", + "notebook.focusedEditorBorder": "#504945", + + "extensionButton.prominentBackground": "#b8bb2680", + "extensionButton.prominentHoverBackground": "#b8bb2630", + + "textLink.foreground": "#83a598", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#282828" + }, + "semanticTokenColors": { + "constant.builtin": "#d3869b", + "property": "#83a598", + "property:python": "#ebdbb2", + "parameter": "#83a598", + "variable": "#ebdbb2", + "function": "#8ec07c", + "function.builtin": "#fe8019", + "method": "#8ec07c" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-dark-soft.json b/assets/themes/src/vscode/gruvbox/gruvbox-dark-soft.json new file mode 100644 index 0000000000000000000000000000000000000000..8581447f498ad332d9ac74de6fb20ccaed76a1c3 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-dark-soft.json @@ -0,0 +1,1074 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Dark Soft", + "type": "dark", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#a89984" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#fabd2f", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#83a598", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#ebdbb2" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#d3869b" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#8ec07c", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#83a598" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#fe8019" + } + } + ], + "colors": { + "focusBorder": "#3c3836", + "foreground": "#ebdbb2", + "widget.shadow": "#32302f30", + "selection.background": "#689d6a80", + "errorForeground": "#fb4934", + + "button.background": "#45858880", + "button.foreground": "#ebdbb2", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#32302f", + "dropdown.border": "#3c3836", + "dropdown.foreground": "#ebdbb2", + + "input.background": "#ebdbb205", + "input.border": "#3c3836", + "input.foreground": "#ebdbb2", + "input.placeholderForeground": "#ebdbb260", + "inputValidation.errorBorder": "#fb4934", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#83a598", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#fabd2f", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#ebdbb260", + + "scrollbar.shadow": "#32302f", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#665c54", + "scrollbarSlider.background": "#50494599", + + "badge.background": "#d3869b", + "badge.foreground": "#32302f", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#3c383680", + "list.activeSelectionForeground": "#8ec07c", + "list.hoverBackground": "#3c383680", + "list.hoverForeground": "#d5c4a1", + "list.focusBackground": "#3c3836", + "list.focusForeground": "#ebdbb2", + "list.inactiveSelectionForeground": "#689d6a", + "list.inactiveSelectionBackground": "#3c383680", + "list.dropBackground": "#3c3836", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#32302f", + "sideBar.foreground": "#d5c4a1", + "sideBar.border": "#3c3836", + "sideBarTitle.foreground": "#ebdbb2", + "sideBarSectionHeader.background": "#32302f00", + "sideBarSectionHeader.foreground": "#ebdbb2", + + "activityBar.background": "#32302f", + "activityBar.foreground": "#ebdbb2", + "activityBar.border": "#3c3836", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#3c3836", + "editorGroup.dropBackground": "#3c383660", + "editorGroupHeader.noTabsBackground": "#3c3836", + "editorGroupHeader.tabsBackground": "#32302f", + "editorGroupHeader.tabsBorder": "#3c3836", + + "tab.border": "#32302f00", + "tab.activeBackground": "#504945", + "tab.activeBorder": "#689d6a", + "tab.activeForeground": "#ebdbb2", + "tab.inactiveForeground": "#a89984", + "tab.inactiveBackground": "#32302f", + "tab.unfocusedActiveForeground": "#a89984", + "tab.unfocusedActiveBorder": "#32302f00", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#32302f", + "editor.foreground": "#ebdbb2", + "editorLineNumber.foreground": "#665c54", + "editorCursor.foreground": "#ebdbb2", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#fabd2f40", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#ebdbb2", + "editor.findMatchBackground": "#83a59870", + "editor.findMatchHighlightBackground": "#fe801930", + "editor.findRangeHighlightBackground": "#83a59870", + "editor.lineHighlightBackground": "#3c383660", + "editor.lineHighlightBorder": "#3c383600", + "editorWhitespace.foreground": "#a8998420", + "editorRuler.foreground": "#a8998440", + "editorCodeLens.foreground": "#a8998490", + "editorBracketMatch.border": "#32302f00", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#32302f", + "editorHoverWidget.border": "#3c3836", + "editorOverviewRuler.border": "#32302f00", + "editorOverviewRuler.findMatchForeground": "#bdae93", + "editorOverviewRuler.rangeHighlightForeground": "#bdae93", + "editorOverviewRuler.selectionHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightStrongForeground": "#665c54", + "editorOverviewRuler.modifiedForeground": "#83a598", + "editorOverviewRuler.addedForeground": "#83a598", + "editorOverviewRuler.deletedForeground": "#83a598", + "editorOverviewRuler.errorForeground": "#fb4934", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#d3869b", + "editorGutter.background": "#32302f00", + "editorGutter.modifiedBackground": "#83a598", + "editorGutter.addedBackground": "#b8bb26", + "editorGutter.deletedBackground": "#fb4934", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#b8bb2630", + "diffEditor.removedTextBackground": "#fb493430", + + "editorWidget.background": "#32302f", + "editorWidget.border": "#3c3836", + "editorSuggestWidget.background": "#32302f", + "editorSuggestWidget.foreground": "#ebdbb2", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#3c383660", + "editorSuggestWidget.border": "#3c3836", + + "peekView.border": "#3c3836", + "peekViewEditor.background": "#3c383670", + "peekViewEditor.matchHighlightBackground": "#504945", + "peekViewEditorGutter.background": "#3c383670", + "peekViewResult.background": "#3c383670", + "peekViewResult.fileForeground": "#ebdbb2", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#ebdbb2", + "peekViewResult.lineForeground": "#ebdbb2", + "peekViewResult.matchHighlightBackground": "#504945", + "peekViewTitle.background": "#3c383670", + "peekViewTitleDescription.foreground": "#bdae93", + "peekViewTitleLabel.foreground": "#ebdbb2", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#32302f00", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#3c3836", + "panelTitle.activeForeground": "#ebdbb2", + + "statusBar.background": "#32302f", + "statusBar.border": "#3c3836", + "statusBar.foreground": "#ebdbb2", + "statusBar.debuggingBackground": "#fe8019", + "statusBar.debuggingForeground": "#32302f", + "statusBar.debuggingBorder": "#32302f00", + "statusBar.noFolderBackground": "#32302f", + "statusBar.noFolderBorder": "#32302f00", + + "terminal.ansiBlack": "#3c3836", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#fb4934", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#b8bb26", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#fabd2f", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#83a598", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#d3869b", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#8ec07c", + "terminal.ansiWhite": "#a89984", + "terminal.ansiBrightWhite": "#ebdbb2", + "terminal.foreground": "#ebdbb2", + "terminal.background": "#32302f", + + "titleBar.activeBackground": "#32302f", + "titleBar.activeForeground": "#ebdbb2", + "titleBar.inactiveBackground": "#32302f", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#7c6f64", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#3c3836", + "menu.separatorBackground": "#3c3836", + + "notebook.cellEditorBackground": "#282828", + "notebook.focusedCellBorder": "#a89984", + "notebook.cellBorderColor": "#665c54", + "notebook.focusedEditorBorder": "#665c54", + + "extensionButton.prominentBackground": "#b8bb2680", + "extensionButton.prominentHoverBackground": "#b8bb2630", + + "textLink.foreground": "#83a598", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#32302f" + }, + "semanticTokenColors": { + "constant.builtin": "#d3869b", + "property": "#83a598", + "property:python": "#ebdbb2", + "parameter": "#83a598", + "variable": "#ebdbb2", + "function": "#8ec07c", + "function.builtin": "#fe8019", + "method": "#8ec07c" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-light-hard.json b/assets/themes/src/vscode/gruvbox/gruvbox-light-hard.json new file mode 100644 index 0000000000000000000000000000000000000000..bd0f60eac99bb62216a58fb90932016741fb172f --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-light-hard.json @@ -0,0 +1,1073 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Light Hard", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#7c6f64" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#b57614", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#b57614" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#665c54" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#076678", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#3c3836" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#b57614" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#79740e" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#427b58", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#076678" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#076678" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#665c54" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#af3a03" + } + } + ], + "colors": { + "focusBorder": "#ebdbb2", + "foreground": "#3c3836", + "widget.shadow": "#f9f5d730", + "selection.background": "#689d6a80", + "errorForeground": "#9d0006", + + "button.background": "#45858880", + "button.foreground": "#3c3836", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#f9f5d7", + "dropdown.border": "#ebdbb2", + "dropdown.foreground": "#3c3836", + + "input.background": "#3c383605", + "input.border": "#ebdbb2", + "input.foreground": "#3c3836", + "input.placeholderForeground": "#3c383660", + "inputValidation.errorBorder": "#9d0006", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#076678", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#b57614", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#3c383660", + + "scrollbar.shadow": "#f9f5d7", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#bdae93", + "scrollbarSlider.background": "#d5c4a199", + + "badge.background": "#8f3f71", + "badge.foreground": "#f9f5d7", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#ebdbb280", + "list.activeSelectionForeground": "#af3a03", + "list.hoverBackground": "#ebdbb280", + "list.hoverForeground": "#504945", + "list.focusBackground": "#ebdbb2", + "list.focusForeground": "#3c3836", + "list.inactiveSelectionForeground": "#d65d0e", + "list.inactiveSelectionBackground": "#ebdbb280", + "list.dropBackground": "#ebdbb2", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#f9f5d7", + "sideBar.foreground": "#504945", + "sideBar.border": "#ebdbb2", + "sideBarTitle.foreground": "#3c3836", + "sideBarSectionHeader.background": "#f9f5d700", + "sideBarSectionHeader.foreground": "#3c3836", + + "activityBar.background": "#f9f5d7", + "activityBar.foreground": "#3c3836", + "activityBar.border": "#ebdbb2", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#ebdbb2", + "editorGroup.dropBackground": "#ebdbb260", + "editorGroupHeader.noTabsBackground": "#ebdbb2", + "editorGroupHeader.tabsBackground": "#f9f5d7", + "editorGroupHeader.tabsBorder": "#ebdbb2", + + "tab.border": "#f9f5d700", + "tab.activeBackground": "#f2e5bc", + "tab.activeBorder": "#d65d0e", + "tab.activeForeground": "#3c3836", + "tab.inactiveForeground": "#7c6f64", + "tab.inactiveBackground": "#f9f5d7", + "tab.unfocusedActiveForeground": "#7c6f64", + "tab.unfocusedActiveBorder": "#f9f5d700", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#f9f5d7", + "editor.foreground": "#3c3836", + "editorLineNumber.foreground": "#bdae93", + "editorCursor.foreground": "#3c3836", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#b5761440", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#3c3836", + "editor.findMatchBackground": "#07667870", + "editor.findMatchHighlightBackground": "#af3a0330", + "editor.findRangeHighlightBackground": "#07667870", + "editor.lineHighlightBackground": "#ebdbb260", + "editor.lineHighlightBorder": "#ebdbb200", + "editorWhitespace.foreground": "#7c6f6420", + "editorRuler.foreground": "#7c6f6440", + "editorCodeLens.foreground": "#7c6f6490", + "editorBracketMatch.border": "#f9f5d700", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#f9f5d7", + "editorHoverWidget.border": "#ebdbb2", + "editorOverviewRuler.border": "#f9f5d700", + "editorOverviewRuler.findMatchForeground": "#665c54", + "editorOverviewRuler.rangeHighlightForeground": "#665c54", + "editorOverviewRuler.selectionHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightStrongForeground": "#bdae93", + "editorOverviewRuler.modifiedForeground": "#076678", + "editorOverviewRuler.addedForeground": "#076678", + "editorOverviewRuler.deletedForeground": "#076678", + "editorOverviewRuler.errorForeground": "#9d0006", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#8f3f71", + "editorGutter.background": "#f9f5d700", + "editorGutter.modifiedBackground": "#076678", + "editorGutter.addedBackground": "#79740e", + "editorGutter.deletedBackground": "#9d0006", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#79740e30", + "diffEditor.removedTextBackground": "#9d000630", + + "editorWidget.background": "#f9f5d7", + "editorWidget.border": "#ebdbb2", + "editorSuggestWidget.background": "#f9f5d7", + "editorSuggestWidget.foreground": "#3c3836", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#ebdbb260", + "editorSuggestWidget.border": "#ebdbb2", + + "peekView.border": "#ebdbb2", + "peekViewEditor.background": "#ebdbb270", + "peekViewEditor.matchHighlightBackground": "#d5c4a1", + "peekViewEditorGutter.background": "#ebdbb270", + "peekViewResult.background": "#ebdbb270", + "peekViewResult.fileForeground": "#3c3836", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#3c3836", + "peekViewResult.lineForeground": "#3c3836", + "peekViewResult.matchHighlightBackground": "#d5c4a1", + "peekViewTitle.background": "#ebdbb270", + "peekViewTitleDescription.foreground": "#665c54", + "peekViewTitleLabel.foreground": "#3c3836", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#f9f5d700", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#ebdbb2", + "panelTitle.activeForeground": "#3c3836", + + "statusBar.background": "#f9f5d7", + "statusBar.border": "#ebdbb2", + "statusBar.foreground": "#3c3836", + "statusBar.debuggingBackground": "#af3a03", + "statusBar.debuggingForeground": "#f9f5d7", + "statusBar.debuggingBorder": "#f9f5d700", + "statusBar.noFolderBackground": "#f9f5d7", + "statusBar.noFolderBorder": "#f9f5d700", + + "terminal.ansiBlack": "#ebdbb2", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#9d0006", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#79740e", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#b57614", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#076678", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#8f3f71", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#427b58", + "terminal.ansiWhite": "#7c6f64", + "terminal.ansiBrightWhite": "#3c3836", + "terminal.foreground": "#3c3836", + "terminal.background": "#f9f5d7", + + "titleBar.activeBackground": "#f9f5d7", + "titleBar.activeForeground": "#3c3836", + "titleBar.inactiveBackground": "#f9f5d7", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#a89984", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#ebdbb2", + "menu.separatorBackground": "#ebdbb2", + + "notebook.cellEditorBackground": "#fbf1c7", + "notebook.focusedCellBorder": "#7c6f64", + "notebook.cellBorderColor": "#d5c4a1", + "notebook.focusedEditorBorder": "#d5c4a1", + + "extensionButton.prominentBackground": "#79740e80", + "extensionButton.prominentHoverBackground": "#79740e30", + + "textLink.foreground": "#076678", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#f9f5d7" + }, + "semanticTokenColors": { + "constant.builtin": "#8f3f71", + "property": "#076678", + "property:python": "#3c3836", + "parameter": "#076678", + "variable": "#3c3836", + "function": "#427b58", + "function.builtin": "#af3a03", + "method": "#427b58" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-light-medium.json b/assets/themes/src/vscode/gruvbox/gruvbox-light-medium.json new file mode 100644 index 0000000000000000000000000000000000000000..6cd742090e8bcfbb7daad2d87a063edec8775e93 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-light-medium.json @@ -0,0 +1,1073 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Light Medium", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#7c6f64" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#b57614", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#b57614" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#665c54" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#076678", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#3c3836" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#b57614" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#79740e" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#427b58", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#076678" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#076678" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#665c54" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#af3a03" + } + } + ], + "colors": { + "focusBorder": "#ebdbb2", + "foreground": "#3c3836", + "widget.shadow": "#fbf1c730", + "selection.background": "#689d6a80", + "errorForeground": "#9d0006", + + "button.background": "#45858880", + "button.foreground": "#3c3836", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#fbf1c7", + "dropdown.border": "#ebdbb2", + "dropdown.foreground": "#3c3836", + + "input.background": "#3c383605", + "input.border": "#ebdbb2", + "input.foreground": "#3c3836", + "input.placeholderForeground": "#3c383660", + "inputValidation.errorBorder": "#9d0006", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#076678", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#b57614", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#3c383660", + + "scrollbar.shadow": "#fbf1c7", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#bdae93", + "scrollbarSlider.background": "#d5c4a199", + + "badge.background": "#8f3f71", + "badge.foreground": "#fbf1c7", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#ebdbb280", + "list.activeSelectionForeground": "#af3a03", + "list.hoverBackground": "#ebdbb280", + "list.hoverForeground": "#504945", + "list.focusBackground": "#ebdbb2", + "list.focusForeground": "#3c3836", + "list.inactiveSelectionForeground": "#d65d0e", + "list.inactiveSelectionBackground": "#ebdbb280", + "list.dropBackground": "#ebdbb2", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#fbf1c7", + "sideBar.foreground": "#504945", + "sideBar.border": "#ebdbb2", + "sideBarTitle.foreground": "#3c3836", + "sideBarSectionHeader.background": "#fbf1c700", + "sideBarSectionHeader.foreground": "#3c3836", + + "activityBar.background": "#fbf1c7", + "activityBar.foreground": "#3c3836", + "activityBar.border": "#ebdbb2", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#ebdbb2", + "editorGroup.dropBackground": "#ebdbb260", + "editorGroupHeader.noTabsBackground": "#ebdbb2", + "editorGroupHeader.tabsBackground": "#fbf1c7", + "editorGroupHeader.tabsBorder": "#ebdbb2", + + "tab.border": "#fbf1c700", + "tab.activeBackground": "#ebdbb2", + "tab.activeBorder": "#d65d0e", + "tab.activeForeground": "#3c3836", + "tab.inactiveForeground": "#7c6f64", + "tab.inactiveBackground": "#fbf1c7", + "tab.unfocusedActiveForeground": "#7c6f64", + "tab.unfocusedActiveBorder": "#fbf1c700", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#fbf1c7", + "editor.foreground": "#3c3836", + "editorLineNumber.foreground": "#bdae93", + "editorCursor.foreground": "#3c3836", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#b5761440", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#3c3836", + "editor.findMatchBackground": "#07667870", + "editor.findMatchHighlightBackground": "#af3a0330", + "editor.findRangeHighlightBackground": "#07667870", + "editor.lineHighlightBackground": "#ebdbb260", + "editor.lineHighlightBorder": "#ebdbb200", + "editorWhitespace.foreground": "#7c6f6420", + "editorRuler.foreground": "#7c6f6440", + "editorCodeLens.foreground": "#7c6f6490", + "editorBracketMatch.border": "#fbf1c700", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#fbf1c7", + "editorHoverWidget.border": "#ebdbb2", + "editorOverviewRuler.border": "#fbf1c700", + "editorOverviewRuler.findMatchForeground": "#665c54", + "editorOverviewRuler.rangeHighlightForeground": "#665c54", + "editorOverviewRuler.selectionHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightStrongForeground": "#bdae93", + "editorOverviewRuler.modifiedForeground": "#076678", + "editorOverviewRuler.addedForeground": "#076678", + "editorOverviewRuler.deletedForeground": "#076678", + "editorOverviewRuler.errorForeground": "#9d0006", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#8f3f71", + "editorGutter.background": "#fbf1c700", + "editorGutter.modifiedBackground": "#076678", + "editorGutter.addedBackground": "#79740e", + "editorGutter.deletedBackground": "#9d0006", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#79740e30", + "diffEditor.removedTextBackground": "#9d000630", + + "editorWidget.background": "#fbf1c7", + "editorWidget.border": "#ebdbb2", + "editorSuggestWidget.background": "#fbf1c7", + "editorSuggestWidget.foreground": "#3c3836", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#ebdbb260", + "editorSuggestWidget.border": "#ebdbb2", + + "peekView.border": "#ebdbb2", + "peekViewEditor.background": "#ebdbb270", + "peekViewEditor.matchHighlightBackground": "#d5c4a1", + "peekViewEditorGutter.background": "#ebdbb270", + "peekViewResult.background": "#ebdbb270", + "peekViewResult.fileForeground": "#3c3836", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#3c3836", + "peekViewResult.lineForeground": "#3c3836", + "peekViewResult.matchHighlightBackground": "#d5c4a1", + "peekViewTitle.background": "#ebdbb270", + "peekViewTitleDescription.foreground": "#665c54", + "peekViewTitleLabel.foreground": "#3c3836", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#fbf1c700", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#ebdbb2", + "panelTitle.activeForeground": "#3c3836", + + "statusBar.background": "#fbf1c7", + "statusBar.border": "#ebdbb2", + "statusBar.foreground": "#3c3836", + "statusBar.debuggingBackground": "#af3a03", + "statusBar.debuggingForeground": "#fbf1c7", + "statusBar.debuggingBorder": "#fbf1c700", + "statusBar.noFolderBackground": "#fbf1c7", + "statusBar.noFolderBorder": "#fbf1c700", + + "terminal.ansiBlack": "#ebdbb2", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#9d0006", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#79740e", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#b57614", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#076678", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#8f3f71", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#427b58", + "terminal.ansiWhite": "#7c6f64", + "terminal.ansiBrightWhite": "#3c3836", + "terminal.foreground": "#3c3836", + "terminal.background": "#fbf1c7", + + "titleBar.activeBackground": "#fbf1c7", + "titleBar.activeForeground": "#3c3836", + "titleBar.inactiveBackground": "#fbf1c7", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#a89984", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#ebdbb2", + "menu.separatorBackground": "#ebdbb2", + + "notebook.cellEditorBackground": "#f2e5bc", + "notebook.focusedCellBorder": "#665c54", + "notebook.cellBorderColor": "#bdae93", + "notebook.focusedEditorBorder": "#bdae93", + + "extensionButton.prominentBackground": "#79740e80", + "extensionButton.prominentHoverBackground": "#79740e30", + + "textLink.foreground": "#076678", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#fbf1c7" + }, + "semanticTokenColors": { + "constant.builtin": "#8f3f71", + "property": "#076678", + "property:python": "#3c3836", + "parameter": "#076678", + "variable": "#3c3836", + "function": "#427b58", + "function.builtin": "#af3a03", + "method": "#427b58" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-light-soft.json b/assets/themes/src/vscode/gruvbox/gruvbox-light-soft.json new file mode 100644 index 0000000000000000000000000000000000000000..a101704eed4ed97a68ea33e59f051969d8b9c4a2 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-light-soft.json @@ -0,0 +1,1073 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Light Soft", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#7c6f64" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#b57614", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#b57614" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#665c54" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#076678", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#3c3836" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#b57614" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#79740e" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#427b58", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#076678" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#076678" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#665c54" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#af3a03" + } + } + ], + "colors": { + "focusBorder": "#ebdbb2", + "foreground": "#3c3836", + "widget.shadow": "#f2e5bc30", + "selection.background": "#689d6a80", + "errorForeground": "#9d0006", + + "button.background": "#45858880", + "button.foreground": "#3c3836", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#f2e5bc", + "dropdown.border": "#ebdbb2", + "dropdown.foreground": "#3c3836", + + "input.background": "#3c383605", + "input.border": "#ebdbb2", + "input.foreground": "#3c3836", + "input.placeholderForeground": "#3c383660", + "inputValidation.errorBorder": "#9d0006", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#076678", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#b57614", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#3c383660", + + "scrollbar.shadow": "#f2e5bc", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#bdae93", + "scrollbarSlider.background": "#d5c4a199", + + "badge.background": "#8f3f71", + "badge.foreground": "#f2e5bc", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#ebdbb280", + "list.activeSelectionForeground": "#af3a03", + "list.hoverBackground": "#ebdbb280", + "list.hoverForeground": "#504945", + "list.focusBackground": "#ebdbb2", + "list.focusForeground": "#3c3836", + "list.inactiveSelectionForeground": "#d65d0e", + "list.inactiveSelectionBackground": "#ebdbb280", + "list.dropBackground": "#ebdbb2", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#f2e5bc", + "sideBar.foreground": "#504945", + "sideBar.border": "#ebdbb2", + "sideBarTitle.foreground": "#3c3836", + "sideBarSectionHeader.background": "#f2e5bc00", + "sideBarSectionHeader.foreground": "#3c3836", + + "activityBar.background": "#f2e5bc", + "activityBar.foreground": "#3c3836", + "activityBar.border": "#ebdbb2", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#ebdbb2", + "editorGroup.dropBackground": "#ebdbb260", + "editorGroupHeader.noTabsBackground": "#ebdbb2", + "editorGroupHeader.tabsBackground": "#f2e5bc", + "editorGroupHeader.tabsBorder": "#ebdbb2", + + "tab.border": "#f2e5bc00", + "tab.activeBackground": "#d5c4a1", + "tab.activeBorder": "#d65d0e", + "tab.activeForeground": "#3c3836", + "tab.inactiveForeground": "#7c6f64", + "tab.inactiveBackground": "#f2e5bc", + "tab.unfocusedActiveForeground": "#7c6f64", + "tab.unfocusedActiveBorder": "#f2e5bc00", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#f2e5bc", + "editor.foreground": "#3c3836", + "editorLineNumber.foreground": "#bdae93", + "editorCursor.foreground": "#3c3836", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#b5761440", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#3c3836", + "editor.findMatchBackground": "#07667870", + "editor.findMatchHighlightBackground": "#af3a0330", + "editor.findRangeHighlightBackground": "#07667870", + "editor.lineHighlightBackground": "#ebdbb260", + "editor.lineHighlightBorder": "#ebdbb200", + "editorWhitespace.foreground": "#7c6f6420", + "editorRuler.foreground": "#7c6f6440", + "editorCodeLens.foreground": "#7c6f6490", + "editorBracketMatch.border": "#f2e5bc00", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#f2e5bc", + "editorHoverWidget.border": "#ebdbb2", + "editorOverviewRuler.border": "#f2e5bc00", + "editorOverviewRuler.findMatchForeground": "#665c54", + "editorOverviewRuler.rangeHighlightForeground": "#665c54", + "editorOverviewRuler.selectionHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightStrongForeground": "#bdae93", + "editorOverviewRuler.modifiedForeground": "#076678", + "editorOverviewRuler.addedForeground": "#076678", + "editorOverviewRuler.deletedForeground": "#076678", + "editorOverviewRuler.errorForeground": "#9d0006", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#8f3f71", + "editorGutter.background": "#f2e5bc00", + "editorGutter.modifiedBackground": "#076678", + "editorGutter.addedBackground": "#79740e", + "editorGutter.deletedBackground": "#9d0006", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#79740e30", + "diffEditor.removedTextBackground": "#9d000630", + + "editorWidget.background": "#f2e5bc", + "editorWidget.border": "#ebdbb2", + "editorSuggestWidget.background": "#f2e5bc", + "editorSuggestWidget.foreground": "#3c3836", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#ebdbb260", + "editorSuggestWidget.border": "#ebdbb2", + + "peekView.border": "#ebdbb2", + "peekViewEditor.background": "#ebdbb270", + "peekViewEditor.matchHighlightBackground": "#d5c4a1", + "peekViewEditorGutter.background": "#ebdbb270", + "peekViewResult.background": "#ebdbb270", + "peekViewResult.fileForeground": "#3c3836", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#3c3836", + "peekViewResult.lineForeground": "#3c3836", + "peekViewResult.matchHighlightBackground": "#d5c4a1", + "peekViewTitle.background": "#ebdbb270", + "peekViewTitleDescription.foreground": "#665c54", + "peekViewTitleLabel.foreground": "#3c3836", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#f2e5bc00", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#ebdbb2", + "panelTitle.activeForeground": "#3c3836", + + "statusBar.background": "#f2e5bc", + "statusBar.border": "#ebdbb2", + "statusBar.foreground": "#3c3836", + "statusBar.debuggingBackground": "#af3a03", + "statusBar.debuggingForeground": "#f2e5bc", + "statusBar.debuggingBorder": "#f2e5bc00", + "statusBar.noFolderBackground": "#f2e5bc", + "statusBar.noFolderBorder": "#f2e5bc00", + + "terminal.ansiBlack": "#ebdbb2", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#9d0006", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#79740e", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#b57614", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#076678", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#8f3f71", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#427b58", + "terminal.ansiWhite": "#7c6f64", + "terminal.ansiBrightWhite": "#3c3836", + "terminal.foreground": "#3c3836", + "terminal.background": "#f2e5bc", + + "titleBar.activeBackground": "#f2e5bc", + "titleBar.activeForeground": "#3c3836", + "titleBar.inactiveBackground": "#f2e5bc", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#a89984", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#ebdbb2", + "menu.separatorBackground": "#ebdbb2", + + "notebook.cellEditorBackground": "#ebdbb2", + "notebook.focusedCellBorder": "#665c54", + "notebook.cellBorderColor": "#a89984", + "notebook.focusedEditorBorder": "#a89984", + + "extensionButton.prominentBackground": "#79740e80", + "extensionButton.prominentHoverBackground": "#79740e30", + + "textLink.foreground": "#076678", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#f2e5bc" + }, + "semanticTokenColors": { + "constant.builtin": "#8f3f71", + "property": "#076678", + "property:python": "#3c3836", + "parameter": "#076678", + "variable": "#3c3836", + "function": "#427b58", + "function.builtin": "#af3a03", + "method": "#427b58" + } +} diff --git a/assets/themes/src/vscode/night-owl/LICENSE b/assets/themes/src/vscode/night-owl/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..e1de2ebbb6c9de263842a913f6e57e9905645708 --- /dev/null +++ b/assets/themes/src/vscode/night-owl/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Sarah Drasner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/night-owl/family.json b/assets/themes/src/vscode/night-owl/family.json new file mode 100644 index 0000000000000000000000000000000000000000..81c6ca7534ef045b6b4aeed60d926bb391663432 --- /dev/null +++ b/assets/themes/src/vscode/night-owl/family.json @@ -0,0 +1,16 @@ +{ + "name": "Night Owl", + "author": "Sarah Drasner (sdras)", + "themes": [ + { + "name": "Night Owl", + "file_name": "night-owl.json", + "appearance": "dark" + }, + { + "name": "Night Owl Light", + "file_name": "night-owl-light.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/night-owl/night-owl-light.json b/assets/themes/src/vscode/night-owl/night-owl-light.json new file mode 100644 index 0000000000000000000000000000000000000000..81e0fc0092279aec3298ff2f77a81137e0340a68 --- /dev/null +++ b/assets/themes/src/vscode/night-owl/night-owl-light.json @@ -0,0 +1,1723 @@ +{ + "name": "Night Owl Light", + "type": "light", + "semanticHighlighting": false, + "colors": { + "foreground": "#403f53", + "focusBorder": "#93A1A1", + "errorForeground": "#403f53", + "selection.background": "#7a8181ad", + "descriptionForeground": "#403f53", + "widget.shadow": "#d9d9d9", + "titleBar.activeBackground": "#F0F0F0", + + "notifications.background": "#F0F0F0", + "notifications.foreground": "#403f53", + "notificationLink.foreground": "#994cc3", + "notifications.border": "#CCCCCC", + "notificationCenter.border": "#CCCCCC", + "notificationToast.border": "#CCCCCC", + "notificationCenterHeader.foreground": "#403f53", + "notificationCenterHeader.background": "#F0F0F0", + + "button.background": "#2AA298", + "button.foreground": "#F0F0F0", + + "dropdown.background": "#F0F0F0", + "dropdown.foreground": "#403f53", + "dropdown.border": "#d9d9d9", + + "input.background": "#F0F0F0", + "input.foreground": "#403f53", + "input.border": "#d9d9d9", + "input.placeholderForeground": "#93A1A1", + "inputOption.activeBorder": "#2AA298", + "inputValidation.infoBorder": "#D0D0D0", + "inputValidation.infoBackground": "#F0F0F0", + "inputValidation.warningBackground": "#daaa01", + "inputValidation.warningBorder": "#E0AF02", + "inputValidation.errorBackground": "#f76e6e", + "inputValidation.errorBorder": "#de3d3b", + + "badge.background": "#2AA298", + "badge.foreground": "#F0F0F0", + + "progressBar.background": "#2AA298", + + "list.activeSelectionBackground": "#d3e8f8", + "list.activeSelectionForeground": "#403f53", + "list.inactiveSelectionBackground": "#E0E7EA", + "list.inactiveSelectionForeground": "#403f53", + "list.focusBackground": "#d3e8f8", + "list.hoverBackground": "#d3e8f8", + "list.focusForeground": "#403f53", + "list.hoverForeground": "#403f53", + "list.highlightForeground": "#403f53", + "list.errorForeground": "#E64D49", + "list.warningForeground": "#daaa01", + + "activityBar.background": "#F0F0F0", + "activityBar.foreground": "#403f53", + "activityBar.dropBackground": "#D0D0D0", + "activityBarBadge.background": "#403f53", + "activityBarBadge.foreground": "#F0F0F0", + "activityBar.border": "#F0F0F0", + + "sideBar.background": "#F0F0F0", + "sideBar.foreground": "#403f53", + "sideBarTitle.foreground": "#403f53", + "sideBar.border": "#F0F0F0", + + "scrollbar.shadow": "#CCCCCC", + + "tab.border": "#F0F0F0", + "tab.activeBackground": "#F6F6F6", + "tab.activeForeground": "#403f53", + "tab.inactiveForeground": "#403f53", + "tab.inactiveBackground": "#F0F0F0", + "editorGroup.border": "#F0F0F0", + "editorGroup.background": "#F6F6F6", + "editorGroupHeader.tabsBackground": "#F0F0F0", + "editorGroupHeader.tabsBorder": "#F0F0F0", + "editorGroupHeader.noTabsBackground": "#F0F0F0", + "tab.activeModifiedBorder": "#2AA298", + "tab.inactiveModifiedBorder": "#93A1A1", + "tab.unfocusedActiveModifiedBorder": "#93A1A1", + "tab.unfocusedInactiveModifiedBorder": "#93A1A1", + + "editor.background": "#FBFBFB", + "editor.foreground": "#403f53", + "editorCursor.foreground": "#90A7B2", + "editorLineNumber.foreground": "#90A7B2", + "editorLineNumber.activeForeground": "#403f53", + "editor.selectionBackground": "#E0E0E0", + "editor.selectionHighlightBackground": "#339cec33", + "editor.wordHighlightBackground": "#339cec33", + "editor.wordHighlightStrongBackground": "#007dd659", + "editor.findMatchBackground": "#93A1A16c", + "editor.findMatchHighlightBackground": "#93a1a16c", + "editor.findRangeHighlightBackground": "#7497a633", + "editor.hoverHighlightBackground": "#339cec33", + "editor.lineHighlightBackground": "#F0F0F0", + "editor.rangeHighlightBackground": "#7497a633", + "editorWhitespace.foreground": "#d9d9d9", + "editorIndentGuide.background": "#d9d9d9", + "editorCodeLens.foreground": "#403f53", + "editorBracketMatch.background": "#d3e8f8", + "editorBracketMatch.border": "#2AA298", + "editorError.foreground": "#E64D49", + "editorError.border": "#FBFBFB", + "editorWarning.foreground": "#daaa01", + "editorWarning.border": "#daaa01", + "editorGutter.addedBackground": "#49d0c5", + "editorGutter.modifiedBackground": "#6fbef6", + "editorGutter.deletedBackground": "#f76e6e", + "editorRuler.foreground": "#d9d9d9", + "editorOverviewRuler.errorForeground": "#E64D49", + "editorOverviewRuler.warningForeground": "#daaa01", + + "editorWidget.background": "#F0F0F0", + "editorWidget.border": "#d9d9d9", + "editorSuggestWidget.background": "#F0F0F0", + "editorSuggestWidget.foreground": "#403f53", + "editorSuggestWidget.highlightForeground": "#403f53", + "editorSuggestWidget.selectedBackground": "#d3e8f8", + "editorSuggestWidget.border": "#d9d9d9", + "editorHoverWidget.background": "#F0F0F0", + "editorHoverWidget.border": "#d9d9d9", + "debugExceptionWidget.background": "#F0F0F0", + "debugExceptionWidget.border": "#d9d9d9", + "editorMarkerNavigation.background": "#D0D0D0", + "editorMarkerNavigationError.background": "#f76e6e", + "editorMarkerNavigationWarning.background": "#daaa01", + + "debugToolBar.background": "#F0F0F0", + + "pickerGroup.border": "#d9d9d9", + "pickerGroup.foreground": "#403f53", + + "extensionButton.prominentBackground": "#2AA298", + "extensionButton.prominentForeground": "#F0F0F0", + + "statusBar.background": "#F0F0F0", + "statusBar.border": "#F0F0F0", + "statusBar.debuggingBackground": "#F0F0F0", + "statusBar.debuggingForeground": "#403f53", + "statusBar.foreground": "#403f53", + "statusBar.noFolderBackground": "#F0F0F0", + "statusBar.noFolderForeground": "#403f53", + + "panel.background": "#F0F0F0", + "panel.border": "#d9d9d9", + + "peekView.border": "#d9d9d9", + "peekViewEditor.background": "#F6F6F6", + "peekViewEditorGutter.background": "#F6F6F6", + "peekViewEditor.matchHighlightBackground": "#49d0c5", + "peekViewResult.background": "#F0F0F0", + "peekViewResult.fileForeground": "#403f53", + "peekViewResult.lineForeground": "#403f53", + "peekViewResult.matchHighlightBackground": "#49d0c5", + "peekViewResult.selectionBackground": "#E0E7EA", + "peekViewResult.selectionForeground": "#403f53", + "peekViewTitle.background": "#F0F0F0", + "peekViewTitleLabel.foreground": "#403f53", + "peekViewTitleDescription.foreground": "#403f53", + + "terminal.ansiBrightBlack": "#403f53", + "terminal.ansiBlack": "#403f53", + "terminal.ansiBrightBlue": "#288ed7", + "terminal.ansiBlue": "#288ed7", + "terminal.ansiBrightCyan": "#2AA298", + "terminal.ansiCyan": "#2AA298", + "terminal.ansiBrightGreen": "#08916a", + "terminal.ansiGreen": "#08916a", + "terminal.ansiBrightMagenta": "#d6438a", + "terminal.ansiMagenta": "#d6438a", + "terminal.ansiBrightRed": "#de3d3b", + "terminal.ansiRed": "#de3d3b", + "terminal.ansiBrightWhite": "#F0F0F0", + "terminal.ansiWhite": "#F0F0F0", + "terminal.ansiBrightYellow": "#daaa01", + "terminal.ansiYellow": "#E0AF02", + "terminal.background": "#F6F6F6", + "terminal.foreground": "#403f53" + }, + "tokenColors": [ + { + "name": "Changed", + "scope": [ + "markup.changed", + "meta.diff.header.git", + "meta.diff.header.from-file", + "meta.diff.header.to-file" + ], + "settings": { + "foreground": "#a2bffc", + "fontStyle": "italic" + } + }, + { + "name": "Deleted", + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#EF535090", + "fontStyle": "italic" + } + }, + { + "name": "Inserted", + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#4876d6ff", + "fontStyle": "italic" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#011627", + "foreground": "#403f53" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#989fb1", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "String Quoted", + "scope": ["string.quoted", "variable.other.readwrite.js"], + "settings": { + "foreground": "#c96765" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#aa0982", + "fontStyle": "" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#5ca7e4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.var.expr", + "meta.class meta.method.declaration meta.var.expr storage.type.js", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Storage type", + "scope": "storage.type", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Storage type", + "scope": "storage.type.function.arrow.js", + "settings": { + "fontStyle": "" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "fontStyle": "italic", + "foreground": "#4876d6" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "foreground": "#ff2c83" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#0c969b", + "fontStyle": "" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Arithmetic", + "scope": "keyword.operator.arithmetic", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Bitwise", + "scope": "keyword.operator.bitwise", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Increment", + "scope": "keyword.operator.increment", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Ternary", + "scope": "keyword.operator.ternary", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#939dbb" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Punctuation Definition String Markdown", + "scope": "punctuation.definition.string.begin.markdown", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#0c969b", + "fontStyle": "" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendor.property-name", + "support.constant.vendor.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#0c969b", + "fontStyle": "" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#57eaf1" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#994cc3", + "fontStyle": "" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.readwrite.instance", + "variable.other.readwrite.instance", + "variable.other.property" + ], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Variable Property Other object property", + "scope": ["variable.other.object.property"], + "settings": { + "foreground": "#111111", + "fontStyle": "italic" + } + }, + { + "name": "Variable Property Other object", + "scope": ["variable.other.object.js"], + "settings": { + "fontStyle": "" + } + }, + { + "name": "Entity Name Function", + "scope": ["entity.name.function"], + "settings": { + "foreground": "#4876d6", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby", + "scope": [ + "keyword.operator.comparison", + "keyword.control.flow.js", + "keyword.control.flow.ts", + "keyword.control.flow.tsx", + "keyword.control.ruby", + "keyword.control.module.ruby", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.control.loop.js", + "keyword.control.loop.ts", + "keyword.control.import.js", + "keyword.control.import.ts", + "keyword.control.import.tsx", + "keyword.control.from.js", + "keyword.control.from.ts", + "keyword.control.from.tsx", + "keyword.operator.instanceof.js", + "keyword.operator.expression.instanceof.ts", + "keyword.operator.expression.instanceof.tsx" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Control Conditional", + "scope": [ + "keyword.control.conditional.js", + "keyword.control.conditional.ts", + "keyword.control.switch.js", + "keyword.control.switch.ts" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new", + "keyword.other.debugger", + "keyword.control" + ], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#8BD649" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#c96765" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#4876d6", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#31e1eb" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css", + "support.constant.property-value.css" + ], + "settings": { + "foreground": "#c96765", + "fontStyle": "" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "CSS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Attribute Name for CSS", + "scope": [ + "meta.attribute-selector.css entity.other.attribute-name.attribute", + "variable.other.readwrite.js" + ], + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Closure Constant Keyword", + "scope": "constant.keyword.clojure", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Go Keywords", + "scope": [ + "source.go keyword.package.go", + "source.go keyword.import.go", + "source.go keyword.function.go", + "source.go keyword.type.go", + "source.go keyword.struct.go", + "source.go keyword.interface.go", + "source.go keyword.const.go", + "source.go keyword.var.go", + "source.go keyword.map.go", + "source.go keyword.channel.go", + "source.go keyword.control.go" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", + "scope": ["source.go constant.language.go", "source.go constant.other.placeholder.go"], + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "C++ Functions", + "scope": ["entity.name.function.preprocessor.cpp", "entity.scope.name.cpp"], + "settings": { + "foreground": "#0c969bff" + } + }, + { + "name": "C++ Meta Namespace", + "scope": ["meta.namespace-block.cpp"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "C++ Language Primitive Storage", + "scope": ["storage.type.language.primitive.cpp"], + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "C++ Preprocessor Macro", + "scope": ["meta.preprocessor.macro.cpp"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "C++ Variable Parameter", + "scope": ["variable.parameter"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Powershell Variables", + "scope": ["variable.other.readwrite.powershell"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Powershell Function", + "scope": ["support.function.powershell"], + "settings": { + "foreground": "#0c969bff" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": ["entity.name.type.instance.jsdoc", "entity.name.type.instance.phpdoc"], + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#111111", + "fontStyle": "" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#c789d6" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "JavaScript Other Variable", + "scope": "variable.other.object.js", + "settings": { + "foreground": "#0c969b", + "fontStyle": "italic" + } + }, + { + "name": "Ruby Variables", + "scope": ["variable.other.ruby"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Ruby Class", + "scope": ["entity.name.type.class.ruby"], + "settings": { + "foreground": "#c96765" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Ruby Symbols", + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "LESS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Markdown Headings", + "scope": [ + "markup.heading.markdown", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Markdown Italics", + "scope": "markup.italic.markdown", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Bold", + "scope": "markup.bold.markdown", + "settings": { + "foreground": "#4876d6", + "fontStyle": "bold" + } + }, + { + "name": "Markdown Quote + others", + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Raw Code + others", + "scope": "markup.inline.raw.markdown", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Markdown Links", + "scope": ["markup.underline.link.markdown", "markup.underline.link.image.markdown"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": ["string.other.link.title.markdown", "string.other.link.description.markdown"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Markdown Inline Raw String", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "PHP Variables", + "scope": ["variable.other.php", "variable.other.property.php"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": ["variable.parameter.function.python", "meta.function-call.arguments.python"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Python Function Call", + "scope": ["meta.function-call.python", "meta.function-call.generic.python"], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Python import control keyword", + "scope": "keyword.control", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "SASS Keyword Other Unit", + "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"], + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": ["variable.other.readwrite.js", "variable.parameter"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Support Class Component", + "scope": ["support.class.component.js", "support.class.component.tsx"], + "settings": { + "foreground": "#aa0982", + "fontStyle": "" + } + }, + { + "name": "Text nested in React tags", + "scope": ["meta.jsx.children", "meta.jsx.children.js", "meta.jsx.children.tsx"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "TypeScript Classes", + "scope": "meta.class entity.name.type.class.tsx", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "TypeScript Entity Name Type", + "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "TypeScript Class Variable Keyword", + "scope": [ + "meta.class.ts meta.var.expr.ts storage.type.ts", + "meta.class.tsx meta.var.expr.tsx storage.type.tsx" + ], + "settings": { + "foreground": "#994CC3" + } + }, + { + "name": "TypeScript Method Declaration e.g. `constructor`", + "scope": [ + "meta.method.declaration storage.type.ts", + "meta.method.declaration storage.type.tsx" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.property-list.css meta.property-value.css variable.other.less", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "meta.brace", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.relational", + "keyword.operator.assignment", + "keyword.operator.comparison", + "keyword.operator.type", + "keyword.operator", + "keyword", + "punctuation.definintion.string", + "punctuation", + "variable.other.readwrite.js", + "storage.type", + "source.css", + "string.quoted" + ], + "settings": { + "fontStyle": "" + } + } + ] +} diff --git a/assets/themes/src/vscode/night-owl/night-owl.json b/assets/themes/src/vscode/night-owl/night-owl.json new file mode 100644 index 0000000000000000000000000000000000000000..6d41b6299b4b911ff5d9952e56255a090c981704 --- /dev/null +++ b/assets/themes/src/vscode/night-owl/night-owl.json @@ -0,0 +1,1832 @@ +{ + "name": "Night Owl", + "type": "dark", + "semanticHighlighting": false, + "colors": { + "contrastBorder": "#122d42", + "focusBorder": "#122d42", + "foreground": "#d6deeb", + "widget.shadow": "#011627", + "selection.background": "#4373c2", + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#011627", + "dropdown.border": "#5f7e97", + "dropdown.foreground": "#ffffffcc", + "input.background": "#0b253a", + "input.border": "#5f7e97", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#5f7e97", + "inputOption.activeBorder": "#ffffffcc", + "punctuation.definition.generic.begin.html": "#ef5350f2", + "inputValidation.errorBackground": "#AB0300F2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#00589EF2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#675700F2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#010b14", + "scrollbarSlider.activeBackground": "#084d8180", + "scrollbarSlider.background": "#084d8180", + "scrollbarSlider.hoverBackground": "#084d8180", + "badge.background": "#5f7e97", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "breadcrumb.foreground": "#A599E9", + "breadcrumb.focusForeground": "#ffffff", + "breadcrumb.activeSelectionForeground": "#FFFFFF", + "breadcrumbPicker.background": "#001122", + "list.activeSelectionBackground": "#234d708c", + "list.activeSelectionForeground": "#ffffff", + "list.invalidItemForeground": "#975f94", + "list.dropBackground": "#011627", + "list.focusBackground": "#010d18", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#011627", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#0e293f", + "list.inactiveSelectionForeground": "#5f7e97", + "activityBar.background": "#011627", + "activityBar.dropBackground": "#5f7e97", + "activityBar.foreground": "#5f7e97", + "activityBar.border": "#011627", + "activityBarBadge.background": "#44596b", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#011627", + "sideBar.foreground": "#89a4bb", + "sideBar.border": "#011627", + "sideBarTitle.foreground": "#5f7e97", + "sideBarSectionHeader.background": "#011627", + "sideBarSectionHeader.foreground": "#5f7e97", + "editorGroup.emptyBackground": "#011627", + "editorGroup.border": "#011627", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#011627", + "editorGroupHeader.tabsBackground": "#011627", + "editorGroupHeader.tabsBorder": "#262A39", + "tab.activeBackground": "#0b2942", + "tab.activeForeground": "#d2dee7", + "tab.border": "#272B3B", + "tab.activeBorder": "#262A39", + "tab.unfocusedActiveBorder": "#262A39", + "tab.inactiveBackground": "#01111d", + "tab.inactiveForeground": "#5f7e97", + "tab.unfocusedActiveForeground": "#5f7e97", + "tab.unfocusedInactiveForeground": "#5f7e97", + "editor.background": "#011627", + "editor.foreground": "#d6deeb", + "editorLineNumber.foreground": "#4b6479", + "editorLineNumber.activeForeground": "#C5E4FD", + "editorCursor.foreground": "#80a4c2", + "editor.selectionBackground": "#1d3b53", + "editor.selectionHighlightBackground": "#5f7e9779", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#f6bbe533", + "editor.wordHighlightStrongBackground": "#e2a2f433", + "editor.findMatchBackground": "#5f7e9779", + "editor.findMatchHighlightBackground": "#1085bb5d", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#5e81ce52", + "editorIndentGuide.activeBackground": "#7E97AC", + "editorRuler.foreground": "#5e81ce52", + "editorCodeLens.foreground": "#5e82ceb4", + "editorBracketMatch.background": "#5f7e974d", + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#b39554", + "editorWarning.border": null, + "editorGutter.background": "#011627", + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.insertedTextBorder": "#c5e47833", + "diffEditor.removedTextBackground": "#ef535033", + "diffEditor.removedTextBorder": "#ef53504d", + "editorWidget.background": "#021320", + "editorWidget.border": "#5f7e97", + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#d6deeb", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#5f7e97", + "editorHoverWidget.background": "#011627", + "editorHoverWidget.border": "#5f7e97", + "debugExceptionWidget.background": "#011627", + "debugExceptionWidget.border": "#5f7e97", + "editorMarkerNavigation.background": "#0b2942", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#5f7e97", + "peekViewEditor.background": "#011627", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#011627", + "peekViewResult.fileForeground": "#5f7e97", + "peekViewResult.lineForeground": "#5f7e97", + "peekViewResult.matchHighlightBackground": "#ffffffcc", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#5f7e97", + "peekViewTitle.background": "#011627", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#5f7e97", + "merge.currentHeaderBackground": "#5f7e97", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#011627", + "panel.border": "#5f7e97", + "panelTitle.activeBorder": "#5f7e97", + "panelTitle.activeForeground": "#ffffffcc", + "panelTitle.inactiveForeground": "#d6deeb80", + "statusBar.background": "#011627", + "statusBar.foreground": "#5f7e97", + "statusBar.border": "#262A39", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#011627", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#011627", + "titleBar.activeForeground": "#eeefff", + "titleBar.inactiveBackground": "#010e1a", + "titleBar.inactiveForeground": null, + "notifications.background": "#01111d", + "notifications.border": "#262a39", + "notificationCenter.border": "#262a39", + "notificationToast.border": "#262a39", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#011627", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#011627", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#21c7a8", + "terminal.ansiGreen": "#22da6e", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#EF5350", + "terminal.ansiYellow": "#c5e478", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#575656", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#7fdbca", + "terminal.ansiBrightGreen": "#22da6e", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#EF5350", + "terminal.ansiBrightYellow": "#ffeb95", + "terminal.selectionBackground": "#1b90dd4d", + "terminalCursor.background": "#234d70", + "textCodeBlock.background": "#4f4f4f", + "debugToolBar.background": "#011627", + "welcomePage.buttonBackground": "#011627", + "welcomePage.buttonHoverBackground": "#011627", + "walkThrough.embeddedEditorBackground": "#011627", + "gitDecoration.modifiedResourceForeground": "#a2bffc", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#c5e478ff", + "gitDecoration.ignoredResourceForeground": "#395a75", + "gitDecoration.conflictingResourceForeground": "#ffeb95cc", + "source.elm": "#5f7e97", + "string.quoted.single.js": "#ffffff", + "meta.objectliteral.js": "#82AAFF" + }, + "tokenColors": [ + { + "name": "Changed", + "scope": [ + "markup.changed", + "meta.diff.header.git", + "meta.diff.header.from-file", + "meta.diff.header.to-file" + ], + "settings": { + "foreground": "#a2bffc", + "fontStyle": "italic" + } + }, + { + "name": "Deleted", + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#EF535090", + "fontStyle": "italic" + } + }, + { + "name": "Inserted", + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#c5e478ff", + "fontStyle": "italic" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#011627", + "foreground": "#d6deeb" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#637777", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#ecc48d" + } + }, + { + "name": "String Quoted", + "scope": ["string.quoted", "variable.other.readwrite.js"], + "settings": { + "foreground": "#ecc48d" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C", + "fontStyle": "" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#5ca7e4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.var.expr", + "meta.class meta.method.declaration meta.var.expr storage.type.js", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Storage type", + "scope": "storage.type", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage type", + "scope": "storage.type.function.arrow.js", + "settings": { + "fontStyle": "" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#caece6", + "fontStyle": "" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "fontStyle": "italic", + "foreground": "#c5e478" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#f78c6c" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#7fdbca", + "fontStyle": "" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Arithmetic", + "scope": "keyword.operator.arithmetic", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Bitwise", + "scope": "keyword.operator.bitwise", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Increment", + "scope": "keyword.operator.increment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Ternary", + "scope": "keyword.operator.ternary", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#637777" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Punctuation Definition String Markdown", + "scope": "punctuation.definition.string.begin.markdown", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#7fdbca", + "fontStyle": "" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendor.property-name", + "support.constant.vendor.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4", + "fontStyle": "" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#57eaf1" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea", + "fontStyle": "" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.readwrite.instance", + "variable.other.readwrite.instance", + "variable.other.property" + ], + "settings": { + "foreground": "#baebe2" + } + }, + { + "name": "Variable Property Other object property", + "scope": ["variable.other.object.property"], + "settings": { + "foreground": "#faf39f", + "fontStyle": "italic" + } + }, + { + "name": "Variable Property Other object", + "scope": ["variable.other.object.js"], + "settings": { + "fontStyle": "" + } + }, + { + "name": "Entity Name Function", + "scope": ["entity.name.function"], + "settings": { + "foreground": "#82AAFF", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby", + "scope": [ + "keyword.operator.comparison", + "keyword.control.flow.js", + "keyword.control.flow.ts", + "keyword.control.flow.tsx", + "keyword.control.ruby", + "keyword.control.module.ruby", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.control.loop.js", + "keyword.control.loop.ts", + "keyword.control.import.js", + "keyword.control.import.ts", + "keyword.control.import.tsx", + "keyword.control.from.js", + "keyword.control.from.ts", + "keyword.control.from.tsx", + "keyword.operator.instanceof.js", + "keyword.operator.expression.instanceof.ts", + "keyword.operator.expression.instanceof.tsx" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Control Conditional", + "scope": [ + "keyword.control.conditional.js", + "keyword.control.conditional.ts", + "keyword.control.switch.js", + "keyword.control.switch.ts" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new", + "keyword.other.debugger", + "keyword.control" + ], + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#c5e478", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#31e1eb" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "C# Unquoted String Zone", + "scope": "string.unquoted.preprocessor.message.cs", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "C# Region", + "scope": [ + "punctuation.separator.hash.cs", + "keyword.preprocessor.region.cs", + "keyword.preprocessor.endregion.cs" + ], + "settings": { + "foreground": "#ffcb8b", + "fontStyle": "bold" + } + }, + { + "name": "C# Other Variables", + "scope": "variable.other.object.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "C# Enum", + "scope": "entity.name.type.enum.cs", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Dart String", + "scope": [ + "string.interpolated.single.dart", + "string.interpolated.double.dart" + ], + "settings": { + "foreground": "#FFCB8B" + } + }, + { + "name": "Dart Class", + "scope": "support.class.dart", + "settings": { + "foreground": "#FFCB8B" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css", + "support.constant.property-value.css" + ], + "settings": { + "foreground": "#ff6363", + "fontStyle": "" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "CSS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": [ + "meta.attribute-selector.css entity.other.attribute-name.attribute", + "variable.other.readwrite.js" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Closure Constant Keyword", + "scope": "constant.keyword.clojure", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Go Keywords", + "scope": [ + "source.go keyword.package.go", + "source.go keyword.import.go", + "source.go keyword.function.go", + "source.go keyword.type.go", + "source.go keyword.struct.go", + "source.go keyword.interface.go", + "source.go keyword.const.go", + "source.go keyword.var.go", + "source.go keyword.map.go", + "source.go keyword.channel.go", + "source.go keyword.control.go" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", + "scope": [ + "source.go constant.language.go", + "source.go constant.other.placeholder.go" + ], + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "C++ Functions", + "scope": [ + "entity.name.function.preprocessor.cpp", + "entity.scope.name.cpp" + ], + "settings": { + "foreground": "#7fdbcaff" + } + }, + { + "name": "C++ Meta Namespace", + "scope": ["meta.namespace-block.cpp"], + "settings": { + "foreground": "#e0dec6" + } + }, + { + "name": "C++ Language Primitive Storage", + "scope": ["storage.type.language.primitive.cpp"], + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "C++ Preprocessor Macro", + "scope": ["meta.preprocessor.macro.cpp"], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "C++ Variable Parameter", + "scope": ["variable.parameter"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Powershell Variables", + "scope": ["variable.other.readwrite.powershell"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Powershell Function", + "scope": ["support.function.powershell"], + "settings": { + "foreground": "#7fdbcaff" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#6ae9f0" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b", + "fontStyle": "" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#c789d6" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "JavaScript Other Variable", + "scope": "variable.other.object.js", + "settings": { + "foreground": "#7fdbca", + "fontStyle": "italic" + } + }, + { + "name": "Ruby Variables", + "scope": ["variable.other.ruby"], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Ruby Class", + "scope": ["entity.name.type.class.ruby"], + "settings": { + "foreground": "#ecc48d" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Ruby Symbols", + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "LESS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markdown Headings", + "scope": [ + "markup.heading.markdown", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown Italics", + "scope": "markup.italic.markdown", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Bold", + "scope": "markup.bold.markdown", + "settings": { + "foreground": "#c5e478", + "fontStyle": "bold" + } + }, + { + "name": "Markdown Quote + others", + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Raw Code + others", + "scope": "markup.inline.raw.markdown", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markdown Links", + "scope": [ + "markup.underline.link.markdown", + "markup.underline.link.image.markdown" + ], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown Inline Raw String", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "PHP Variables", + "scope": ["variable.other.php", "variable.other.property.php"], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "Python import control keyword", + "scope": "keyword.control", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "SASS Keyword Other Unit", + "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": ["variable.other.readwrite.js", "variable.parameter"], + "settings": { + "foreground": "#d7dbe0" + } + }, + { + "name": "Support Class Component", + "scope": ["support.class.component.js", "support.class.component.tsx"], + "settings": { + "foreground": "#f78c6c", + "fontStyle": "" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "TypeScript Classes", + "scope": "meta.class entity.name.type.class.tsx", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "TypeScript Entity Name Type", + "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "TypeScript Class Variable Keyword", + "scope": [ + "meta.class.ts meta.var.expr.ts storage.type.ts", + "meta.class.tsx meta.var.expr.tsx storage.type.tsx" + ], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "TypeScript Method Declaration e.g. `constructor`", + "scope": [ + "meta.method.declaration storage.type.ts", + "meta.method.declaration storage.type.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.property-list.css meta.property-value.css variable.other.less", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "meta.brace", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.relational", + "keyword.operator.assignment", + "keyword.operator.comparison", + "keyword.operator.type", + "keyword.operator", + "keyword", + "punctuation.definintion.string", + "punctuation", + "variable.other.readwrite.js", + "storage.type", + "source.css", + "string.quoted" + ], + "settings": { + "fontStyle": "" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/LICENSE b/assets/themes/src/vscode/noctis/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..44dde44047f940872711c022cd2bc40e79482a8f --- /dev/null +++ b/assets/themes/src/vscode/noctis/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2018 Liviu Schera + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/assets/themes/src/vscode/noctis/azureus.json b/assets/themes/src/vscode/noctis/azureus.json new file mode 100644 index 0000000000000000000000000000000000000000..d550e74811b63e329f46142f6c5bff6e51584b61 --- /dev/null +++ b/assets/themes/src/vscode/noctis/azureus.json @@ -0,0 +1,1113 @@ +{ + "name": "Noctis Azureus", + "type": "dark", + "colors": { + "selection.background": "#1679b6cc", + "descriptionForeground": "#61a6d1", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#07273b", + "editor.foreground": "#becfda", + "editorLineNumber.foreground": "#4d6c80", + "editorLineNumber.activeForeground": "#61a6d1", + "editorCursor.foreground": "#b3e2ff", + "badge.background": "#49ace9", + "badge.foreground": "#0f1315", + "activityBar.background": "#07273b", + "activityBar.dropBackground": "#61a6d165", + "activityBar.border": "#0f1315", + "activityBar.foreground": "#1679b6", + "activityBar.inactiveForeground": "#1679b677", + "activityBarBadge.background": "#49ace9", + "activityBarBadge.foreground": "#0f1315", + "activityBar.activeBackground": "#49ace933", + "activityBar.activeBorder": "#49ace9", + "sideBar.background": "#062132", + "sideBar.dropBackground": "#062132", + "sideBar.border": "#0f1315", + "sideBar.foreground": "#9fb6c6", + "sideBarSectionHeader.background": "#09334e", + "sideBarSectionHeader.foreground": "#9fb6c6", + "sideBarTitle.foreground": "#9fb6c6", + "sideBarSectionHeader.border": "#0f1315", + "statusBar.foreground": "#1679b6", + "statusBar.background": "#07273b", + "statusBar.border": "#0f1315", + "statusBar.debuggingBackground": "#07273b", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#879dab", + "statusBar.noFolderBackground": "#07273b", + "statusBar.noFolderBorder": "#07273b", + "statusBarItem.activeBackground": "#007ecc59", + "statusBarItem.hoverBackground": "#0a3652", + "statusBarItem.prominentBackground": "#051e2e", + "statusBarItem.prominentHoverBackground": "#002f4d", + "button.background": "#007f99", + "button.foreground": "#ebf7ff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#09334e", + "dropdown.border": "#09334e", + "dropdown.foreground": "#61a6d1", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#07273b", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#07273b", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#07273b", + "editorInfo.foreground": "#49ace9", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#4d6c8033", + "editorGroup.border": "#0f1315", + "editorGroup.dropBackground": "#4d6c8033", + "editorGroupHeader.noTabsBackground": "#09334e", + "editorGroupHeader.tabsBackground": "#09334e", + "editorGroupHeader.tabsBorder": "#09334e", + "tab.activeBackground": "#07273b", + "tab.unfocusedActiveBackground": "#002c47", + "tab.activeForeground": "#49ace9", + "tab.border": "#0f1315", + "tab.inactiveBackground": "#09334e", + "tab.inactiveForeground": "#9fb6c6", + "tab.unfocusedActiveForeground": "#9fb6c6", + "tab.unfocusedInactiveForeground": "#9fb6c6", + "tab.activeBorderTop": "#49ace9", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#07273b", + "tab.unfocusedActiveBorder": "#07273b", + "tab.unfocusedHoverBackground": "#1679b621", + "textBlockQuote.background": "#07273b", + "textBlockQuote.border": "#1679b6", + "textCodeBlock.background": "#07273b", + "textLink.activeForeground": "#49ace9", + "textLink.foreground": "#49ace9", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#07273b", + "walkThrough.embeddedEditorBackground": "#07273b", + "welcomePage.buttonBackground": "#051b29", + "welcomePage.buttonHoverBackground": "#09334e", + "input.background": "#051b29", + "input.border": "#002f4d", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#879dab", + "inputOption.activeBorder": "#1679b6", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#09334e", + "editorWidget.border": "#0f1315", + "editorHoverWidget.background": "#002942", + "editorHoverWidget.border": "#0f1315", + "editorSuggestWidget.background": "#002942", + "editorSuggestWidget.border": "#0f1315", + "editorSuggestWidget.foreground": "#9fb6c6", + "editorSuggestWidget.highlightForeground": "#49ace9", + "editorSuggestWidget.selectedBackground": "#0c3f5f", + "editorGutter.background": "#07273b", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#1679b655", + "editor.selectionHighlightBackground": "#49ace933", + "editor.inactiveSelectionBackground": "#1679b633", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#1679b63f", + "editor.lineHighlightBackground": "#003c61ee", + "editor.lineHighlightBorder": "#003c61", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#183c53", + "editorIndentGuide.activeBackground": "#28658a", + "editorBracketMatch.background": "#1679b622", + "editorBracketMatch.border": "#1679b6", + "editorRuler.foreground": "#1a425b", + "editorCodeLens.foreground": "#5b858b", + "terminal.ansiBlack": "#28353e", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#aec3d0", + "terminal.ansiBrightBlack": "#475e6c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#becfda", + "terminal.background": "#051b29", + "terminal.foreground": "#becfda", + "terminalCursor.background": "#051b29", + "terminalCursor.foreground": "#becfda", + "merge.border": "#07273b00", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#07273b", + "notificationCenter.border": "#09334e", + "notificationCenterHeader.foreground": "#879dab", + "notificationCenterHeader.background": "#09334e", + "notificationToast.border": "#09334e", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#09334e", + "notifications.border": "#09334e", + "notificationLink.foreground": "#879dab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#07273b", + "debugExceptionWidget.background": "#07273b", + "debugExceptionWidget.border": "#1679b6", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#09334e", + "foreground": "#becfda", + "panel.background": "#051b29", + "panel.border": "#1679b6", + "panelTitle.activeBorder": "#1679b6", + "panelTitle.activeForeground": "#49ace9", + "panelTitle.inactiveForeground": "#507b95", + "peekView.border": "#1679b6", + "peekViewEditor.background": "#001f33", + "peekViewEditor.matchHighlightBackground": "#005b9433", + "peekViewEditor.matchHighlightBorder": "#007ecc", + "peekViewEditorGutter.background": "#001f33", + "peekViewResult.background": "#002338", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#879dab", + "peekViewResult.matchHighlightBackground": "#09334e", + "peekViewResult.selectionBackground": "#09334e", + "peekViewResult.selectionForeground": "#879dab", + "peekViewTitle.background": "#002338", + "peekViewTitleDescription.foreground": "#879dab", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#49ace9", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#008ee677", + "scrollbarSlider.background": "#008ee633", + "scrollbarSlider.hoverBackground": "#008ee655", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#1679b6", + "pickerGroup.foreground": "#49ace9", + "list.activeSelectionBackground": "#0c3f5f", + "list.activeSelectionForeground": "#ebf7ff", + "list.dropBackground": "#002a4d", + "list.focusBackground": "#0b3c5b", + "list.focusForeground": "#ebf7ff", + "list.highlightForeground": "#49ace9", + "list.hoverBackground": "#00558a65", + "list.hoverForeground": "#ebf7ff", + "list.inactiveFocusBackground": "#082d44", + "list.inactiveSelectionBackground": "#09334e", + "list.inactiveSelectionForeground": "#becfda", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#002a4d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#4d6c80", + "settings.headerForeground": "#becfda", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0051a877", + "settings.dropdownBackground": "#09334e", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#09334e", + "settings.checkboxBackground": "#09334e", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#09334e", + "settings.textInputBackground": "#09334e", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#09334e", + "settings.numberInputBackground": "#051b29", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#051b29", + "breadcrumb.foreground": "#9fb6c6", + "breadcrumb.background": "#07273b", + "breadcrumb.focusForeground": "#49ace9", + "breadcrumb.activeSelectionForeground": "#ebf7ff", + "breadcrumbPicker.background": "#09334e", + "titleBar.activeBackground": "#07273b", + "titleBar.activeForeground": "#becfda", + "titleBar.inactiveBackground": "#07273b", + "titleBar.inactiveForeground": "#9fb6c6", + "menu.background": "#09334e", + "menu.foreground": "#9fb6c6", + "menu.selectionBackground": "#0b3c5b", + "menu.selectionForeground": "#49ace9", + "menu.selectionBorder": "#0b3c5b", + "menu.separatorBackground": "#49ace9", + "menubar.selectionBackground": "#0b3c5b", + "menubar.selectionForeground": "#49ace9", + "menubar.selectionBorder": "#0b3c5b", + "editor.snippetTabstopHighlightBackground": "#051b29", + "editor.snippetTabstopHighlightBorder": "#062132", + "editor.snippetFinalTabstopHighlightBackground": "#051b29", + "editor.snippetFinalTabstopHighlightBorder": "#062132", + "minimap.findMatchHighlight": "#49ace9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#07273b99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5988a6" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#becfda" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/bordo.json b/assets/themes/src/vscode/noctis/bordo.json new file mode 100644 index 0000000000000000000000000000000000000000..a6c4853c3b078e7373f69ae1084ab7a9d5c47784 --- /dev/null +++ b/assets/themes/src/vscode/noctis/bordo.json @@ -0,0 +1,1112 @@ +{ + "name": "Noctis Bordo", + "type": "dark", + "colors": { + "selection.background": "#88445cbb", + "descriptionForeground": "#bb778f", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#322a2d", + "editor.foreground": "#cbbec2", + "editorLineNumber.foreground": "#715b63", + "editorLineNumber.activeForeground": "#bb778f", + "editorCursor.foreground": "#ffb3cd", + "badge.background": "#f18eb0", + "badge.foreground": "#1f191b", + "activityBar.background": "#322a2d", + "activityBar.dropBackground": "#bb778f65", + "activityBar.border": "#1f191b", + "activityBar.foreground": "#997582", + "activityBar.inactiveForeground": "#99758277", + "activityBarBadge.background": "#f18eb0", + "activityBarBadge.foreground": "#1f191b", + "activityBar.activeBackground": "#f18eb033", + "activityBar.activeBorder": "#f18eb0", + "sideBar.background": "#2c2528", + "sideBar.dropBackground": "#2c2528", + "sideBar.border": "#1f191b", + "sideBar.foreground": "#bbaab0", + "sideBarSectionHeader.background": "#413036", + "sideBarSectionHeader.foreground": "#bbaab0", + "sideBarTitle.foreground": "#bbaab0", + "sideBarSectionHeader.border": "#1f191b", + "statusBar.foreground": "#997582", + "statusBar.background": "#322a2d", + "statusBar.border": "#1f191b", + "statusBar.debuggingBackground": "#322a2d", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#a48e96", + "statusBar.noFolderBackground": "#322a2d", + "statusBar.noFolderBorder": "#322a2d", + "statusBarItem.activeBackground": "#8f566a77", + "statusBarItem.hoverBackground": "#8f566a33", + "statusBarItem.prominentBackground": "#272022", + "statusBarItem.prominentHoverBackground": "#43142488", + "button.background": "#007f99", + "button.foreground": "#edebff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#413036", + "dropdown.border": "#413036", + "dropdown.foreground": "#bb778f", + "editorMarkerNavigation.background": "#5f3a4729", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#322a2d", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#322a2d", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#322a2d", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#715b6333", + "editorGroup.border": "#1f191b", + "editorGroup.dropBackground": "#715b6333", + "editorGroupHeader.noTabsBackground": "#413036", + "editorGroupHeader.tabsBackground": "#413036", + "editorGroupHeader.tabsBorder": "#413036", + "tab.activeBackground": "#322a2d", + "tab.unfocusedActiveBackground": "#38232b", + "tab.activeForeground": "#f18eb0", + "tab.border": "#1f191b", + "tab.inactiveBackground": "#413036", + "tab.inactiveForeground": "#bbaab0", + "tab.unfocusedActiveForeground": "#bbaab0", + "tab.unfocusedInactiveForeground": "#bbaab0", + "tab.activeBorderTop": "#f18eb0", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#322a2d", + "tab.unfocusedActiveBorder": "#322a2d", + "tab.unfocusedHoverBackground": "#f18eb021", + "textBlockQuote.background": "#322a2d", + "textBlockQuote.border": "#997582", + "textCodeBlock.background": "#322a2d", + "textLink.activeForeground": "#f18eb0", + "textLink.foreground": "#f18eb0", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#322a2d", + "walkThrough.embeddedEditorBackground": "#322a2d", + "welcomePage.buttonBackground": "#272022", + "welcomePage.buttonHoverBackground": "#413036", + "input.background": "#272022", + "input.border": "#412a32", + "input.foreground": "#ddd5d7", + "input.placeholderForeground": "#a48e96", + "inputOption.activeBorder": "#997582", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#413036", + "editorWidget.border": "#1f191b", + "editorHoverWidget.background": "#3e2e33", + "editorHoverWidget.border": "#1f191b", + "editorSuggestWidget.background": "#3e2e33", + "editorSuggestWidget.border": "#1f191b", + "editorSuggestWidget.foreground": "#bbaab0", + "editorSuggestWidget.highlightForeground": "#f18eb0", + "editorSuggestWidget.selectedBackground": "#563440", + "editorGutter.background": "#322a2d", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#99758255", + "editor.selectionHighlightBackground": "#7f536299", + "editor.inactiveSelectionBackground": "#99758233", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#9975823f", + "editor.lineHighlightBackground": "#453138aa", + "editor.lineHighlightBorder": "#45313899", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffccde21", + "editorIndentGuide.background": "#48373d", + "editorIndentGuide.activeBackground": "#7f5362", + "editorBracketMatch.background": "#99758222", + "editorBracketMatch.border": "#997582", + "editorRuler.foreground": "#593a46", + "editorCodeLens.foreground": "#776284", + "terminal.ansiBlack": "#47393e", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b9acb0", + "terminal.ansiBrightBlack": "#69545b", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#cbbec2", + "terminal.background": "#272022", + "terminal.foreground": "#cbbec2", + "terminalCursor.background": "#272022", + "terminalCursor.foreground": "#cbbec2", + "merge.border": "#322a2d00", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#322a2d", + "notificationCenter.border": "#413036", + "notificationCenterHeader.foreground": "#a48e96", + "notificationCenterHeader.background": "#413036", + "notificationToast.border": "#413036", + "notifications.foreground": "#ddd5d7", + "notifications.background": "#413036", + "notifications.border": "#413036", + "notificationLink.foreground": "#a48e96", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#322a2d", + "debugExceptionWidget.background": "#322a2d", + "debugExceptionWidget.border": "#997582", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e4e2f9", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#413036", + "foreground": "#cbbec2", + "panel.background": "#272022", + "panel.border": "#997582", + "panelTitle.activeBorder": "#997582", + "panelTitle.activeForeground": "#f18eb0", + "panelTitle.inactiveForeground": "#936c7a", + "peekView.border": "#997582", + "peekViewEditor.background": "#2c2125", + "peekViewEditor.matchHighlightBackground": "#88445c55", + "peekViewEditorGutter.background": "#2c2125", + "peekViewResult.background": "#322529", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#a48e96", + "peekViewResult.matchHighlightBackground": "#47393e", + "peekViewResult.selectionBackground": "#47393e", + "peekViewResult.selectionForeground": "#a48e96", + "peekViewTitle.background": "#322529", + "peekViewTitleDescription.foreground": "#a48e96", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#f18eb0", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#eb609155", + "scrollbarSlider.background": "#eb609133", + "scrollbarSlider.hoverBackground": "#eb609144", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#997582", + "pickerGroup.foreground": "#f18eb0", + "list.activeSelectionBackground": "#5c2e3e99", + "list.activeSelectionForeground": "#edebff", + "list.dropBackground": "#38292e", + "list.focusBackground": "#824a5e66", + "list.focusForeground": "#edebff", + "list.highlightForeground": "#f18eb0", + "list.hoverBackground": "#533641", + "list.hoverForeground": "#edebff", + "list.inactiveFocusBackground": "#2c2528", + "list.inactiveSelectionBackground": "#3b2b31", + "list.inactiveSelectionForeground": "#cbbec2", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#202040", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#715b63", + "settings.headerForeground": "#cbbec2", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#824a5e77", + "settings.dropdownBackground": "#413036", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#413036", + "settings.checkboxBackground": "#413036", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#413036", + "settings.textInputBackground": "#413036", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#413036", + "settings.numberInputBackground": "#272022", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#272022", + "breadcrumb.foreground": "#bbaab0", + "breadcrumb.background": "#322a2d", + "breadcrumb.focusForeground": "#f18eb0", + "breadcrumb.activeSelectionForeground": "#edebff", + "breadcrumbPicker.background": "#413036", + "titleBar.activeBackground": "#322a2d", + "titleBar.activeForeground": "#cbbec2", + "titleBar.inactiveBackground": "#322a2d", + "titleBar.inactiveForeground": "#bbaab0", + "menu.background": "#413036", + "menu.foreground": "#bbaab0", + "menu.selectionBackground": "#824a5e66", + "menu.selectionForeground": "#f18eb0", + "menu.selectionBorder": "#824a5e66", + "menu.separatorBackground": "#f18eb0", + "menubar.selectionBackground": "#824a5e66", + "menubar.selectionForeground": "#f18eb0", + "menubar.selectionBorder": "#824a5e66", + "editor.snippetTabstopHighlightBackground": "#272022", + "editor.snippetTabstopHighlightBorder": "#2c2528", + "editor.snippetFinalTabstopHighlightBackground": "#272022", + "editor.snippetFinalTabstopHighlightBorder": "#2c2528", + "minimap.findMatchHighlight": "#f18eb0ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#322a2d99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#8b747c" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#cbbec2" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/family.json b/assets/themes/src/vscode/noctis/family.json new file mode 100644 index 0000000000000000000000000000000000000000..26aba7e21357fb566a46f5d3f4ed8d59ba1226a7 --- /dev/null +++ b/assets/themes/src/vscode/noctis/family.json @@ -0,0 +1,61 @@ +{ + "name": "Notctis", + "author": "Liviu Schera (liviuschera)", + "themes": [ + { + "name": "Noctis Azureus", + "file_name": "azureus.json", + "appearance": "dark" + }, + { + "name": "Noctis Bordo", + "file_name": "bordo.json", + "appearance": "dark" + }, + { + "name": "Noctus Hibernus", + "file_name": "hibernus.json", + "appearance": "light" + }, + { + "name": "Noctis Lilac", + "file_name": "lilac.json", + "appearance": "dark" + }, + { + "name": "Noctis Lux", + "file_name": "lux.json", + "appearance": "light" + }, + { + "name": "Noctis Minimus", + "file_name": "minimus.json", + "appearance": "dark" + }, + { + "name": "Noctis", + "file_name": "noctis.json", + "appearance": "dark" + }, + { + "name": "Noctis Obscuro", + "file_name": "obscuro.json", + "appearance": "dark" + }, + { + "name": "Noctis Sereno", + "file_name": "obscuro.json", + "appearance": "dark" + }, + { + "name": "Noctis Uva", + "file_name": "uva.json", + "appearance": "dark" + }, + { + "name": "Noctis Viola", + "file_name": "viola.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/noctis/hibernus.json b/assets/themes/src/vscode/noctis/hibernus.json new file mode 100644 index 0000000000000000000000000000000000000000..a20a19289ea539b675cb42b3480eb6ff57e90e53 --- /dev/null +++ b/assets/themes/src/vscode/noctis/hibernus.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Hibernus", + "type": "light", + "colors": { + "selection.background": "#169fb177", + "descriptionForeground": "#929ea0", + "errorForeground": "#ff4000", + "widget.shadow": "#00000055", + "editor.background": "#f4f6f6", + "editor.foreground": "#005661", + "editorLineNumber.foreground": "#a0abac", + "editorLineNumber.activeForeground": "#0099ad", + "editorCursor.foreground": "#0092a8", + "badge.background": "#0099ad", + "badge.foreground": "#f4f6f6", + "activityBar.background": "#f4f6f6", + "activityBar.dropBackground": "#0099ad65", + "activityBar.foreground": "#0099ad", + "activityBar.border": "#ece2c600", + "activityBarBadge.background": "#0099ad", + "activityBarBadge.foreground": "#f4f6f6", + "activityBar.activeBackground": "#0099ad33", + "activityBar.activeBorder": "#0099ad", + "sideBar.background": "#e7f2f3", + "sideBar.foreground": "#71838e", + "sideBar.border": "#ece2c600", + "sideBar.dropBackground": "#e7f2f3", + "sideBarTitle.foreground": "#71838e", + "sideBarSectionHeader.background": "#c1def0", + "sideBarSectionHeader.foreground": "#71838e", + "statusBar.background": "#caedf2", + "statusBar.foreground": "#0099ad", + "statusBar.border": "#ece2c600", + "statusBar.debuggingBackground": "#e7f2f3", + "statusBar.debuggingForeground": "#e9498150", + "statusBar.debuggingBorder": "#e94981af", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#e7f2f3", + "statusBar.noFolderBorder": "#e7f2f3", + "statusBarItem.activeBackground": "#dfeff1", + "statusBarItem.hoverBackground": "#d1e8eb", + "statusBarItem.prominentBackground": "#c1d4d7", + "statusBarItem.prominentHoverBackground": "#bfdee3", + "button.background": "#099099", + "button.foreground": "#f1f1f1", + "button.hoverBackground": "#0cc", + "dropdown.background": "#f4f6f6", + "dropdown.border": "#f4f6f6", + "dropdown.foreground": "#005661", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#ff4000", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#f4f6f6", + "editorError.foreground": "#ff4000", + "editorWarning.border": "#f4f6f6", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#f4f6f6", + "editorInfo.foreground": "#00c6e0", + "editorHint.border": "#58cc6d00", + "editorHint.foreground": "#58cc6d", + "editorGroup.emptyBackground": "#93b4b833", + "editorGroup.border": "#d0edf1", + "editorGroup.dropBackground": "#93b4b833", + "editorGroupHeader.noTabsBackground": "#caedf2", + "editorGroupHeader.tabsBackground": "#caedf2", + "editorGroupHeader.tabsBorder": "#caedf200", + "tab.activeBackground": "#f4f6f6", + "tab.unfocusedActiveBackground": "#e3f5f7", + "tab.activeForeground": "#0099ad", + "tab.border": "#b2d2e6", + "tab.inactiveBackground": "#caedf2", + "tab.inactiveForeground": "#71838e", + "tab.unfocusedActiveForeground": "#71838e", + "tab.unfocusedInactiveForeground": "#71838e", + "tab.activeBorderTop": "#00c6e0", + "tab.activeModifiedBorder": "#00b368", + "tab.activeBorder": "#f4f6f6", + "tab.unfocusedActiveBorder": "#f4f6f600", + "tab.unfocusedHoverBackground": "#0099ad21", + "textBlockQuote.background": "#e7f2f3", + "textBlockQuote.border": "#00899e", + "textCodeBlock.background": "#e7f2f3", + "textLink.activeForeground": "#00c6e0", + "textLink.foreground": "#00c6e0", + "textPreformat.foreground": "#e9a149", + "textSeparator.foreground": "#e7f2f3", + "walkThrough.embeddedEditorBackground": "#e7f2f3", + "welcomePage.buttonBackground": "#e7f2f3", + "welcomePage.buttonHoverBackground": "#caedf2", + "input.background": "#f4f6f6", + "input.border": "#e0eff1", + "input.foreground": "#6a7a7c", + "input.placeholderForeground": "#9fabad", + "inputOption.activeBorder": "#0099ad", + "inputValidation.errorBackground": "#ff400041", + "inputValidation.errorBorder": "#ff4000", + "inputValidation.infoBackground": "#00c6e0cc", + "inputValidation.infoBorder": "#00c6e0", + "inputValidation.warningBackground": "#ffa587cc", + "inputValidation.warningBorder": "#ffa487", + "editorWidget.background": "#e0eff1", + "editorWidget.border": "#ece2c600", + "editorHoverWidget.background": "#e0eff1", + "editorHoverWidget.border": "#ece2c600", + "editorSuggestWidget.background": "#e0eff1", + "editorSuggestWidget.border": "#ece2c600", + "editorSuggestWidget.foreground": "#6a7a7c", + "editorSuggestWidget.highlightForeground": "#0099ad", + "editorSuggestWidget.selectedBackground": "#bbe0f7", + "editorGutter.background": "#f4f6f6", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#ff4000", + "editorGutter.modifiedBackground": "#e9a149", + "editor.selectionBackground": "#ade2eb77", + "editor.selectionHighlightBackground": "#14a5ff33", + "editor.selectionHighlightBorder": "#14a5ff00", + "editor.inactiveSelectionBackground": "#ade2eb55", + "editor.wordHighlightStrongBackground": "#b5890027", + "editor.wordHighlightStrongBorder": "#b5890000", + "editor.wordHighlightBackground": "#e9a14922", + "editor.wordHighlightBorder": "#e9a14900", + "editor.findMatchBackground": "#8ce99a60", + "editor.findMatchBorder": "#8ce99a00", + "editor.findMatchHighlightBackground": "#148f9f33", + "editor.findMatchHighlightBorder": "#148f9f00", + "editor.findRangeHighlightBackground": "#99e62a55", + "editor.findRangeHighlightBorder": "#58CC6D00", + "editor.hoverHighlightBackground": "#0099ad3f", + "editor.lineHighlightBackground": "#d1ebefcc", + "editor.lineHighlightBorder": "#d1ebef00", + "editor.rangeHighlightBackground": "#f1e9d5a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#c1d4d7bb", + "editorIndentGuide.background": "#c1d4d7aa", + "editorIndentGuide.activeBackground": "#88bcc3", + "editorBracketMatch.background": "#0099ad20", + "editorBracketMatch.border": "#0099ad", + "editorRuler.foreground": "#d0edf1", + "editorCodeLens.foreground": "#77aaca", + "terminal.ansiBlack": "#003b42", + "terminal.ansiRed": "#e34e1c", + "terminal.ansiGreen": "#00b368", + "terminal.ansiYellow": "#f49725", + "terminal.ansiBlue": "#0094f0", + "terminal.ansiMagenta": "#ff5792", + "terminal.ansiCyan": "#00bdd6", + "terminal.ansiWhite": "#8ca6a6", + "terminal.ansiBrightBlack": "#004d57", + "terminal.ansiBrightRed": "#ff4000", + "terminal.ansiBrightGreen": "#00d17a", + "terminal.ansiBrightYellow": "#ff8c00", + "terminal.ansiBrightBlue": "#0fa3ff", + "terminal.ansiBrightMagenta": "#ff6b9f", + "terminal.ansiBrightCyan": "#00cbe6", + "terminal.ansiBrightWhite": "#bbc3c4", + "terminal.background": "#e1eeef", + "terminal.foreground": "#005661", + "terminalCursor.background": "#e1eeef", + "terminalCursor.foreground": "#005661", + "merge.border": "#f4f6f600", + "merge.currentContentBackground": "#33e7ff33", + "merge.currentHeaderBackground": "#33e7ff55", + "merge.incomingContentBackground": "#9d92f233", + "merge.incomingHeaderBackground": "#9d92f255", + "merge.commonContentBackground": "#ffc18033", + "merge.commonHeaderBackground": "#ffc18055", + "editorOverviewRuler.currentContentForeground": "#33e7ff55", + "editorOverviewRuler.incomingContentForeground": "#9d92f255", + "editorOverviewRuler.commonContentForeground": "#ffc18055", + "editorOverviewRuler.border": "#f4f6f6", + "notificationCenter.border": "#e0eff1", + "notificationCenterHeader.foreground": "#005661", + "notificationCenterHeader.background": "#e0eff1", + "notificationToast.border": "#e0eff1", + "notifications.foreground": "#005661", + "notifications.background": "#e0eff1", + "notifications.border": "#e0eff1", + "notificationLink.foreground": "#005661", + "diffEditor.insertedTextBackground": "#14b83230", + "diffEditor.removedTextBackground": "#BB1F0522", + "debugToolBar.background": "#e7f2f3", + "debugExceptionWidget.background": "#e7f2f3", + "debugExceptionWidget.border": "#00899e", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#e0eff1", + "foreground": "#005661", + "panel.background": "#e1eeef", + "panel.border": "#00c6e0", + "panelTitle.activeBorder": "#00c6e0", + "panelTitle.activeForeground": "#0099ad", + "panelTitle.inactiveForeground": "#71838e", + "peekView.border": "#0099ad", + "peekViewEditor.background": "#e5fcff", + "peekViewEditor.matchHighlightBackground": "#148f9f33", + "peekViewEditor.matchHighlightBorder": "#148f9f79", + "peekViewEditorGutter.background": "#e5fcff", + "peekViewResult.background": "#e7f2f3", + "peekViewResult.fileForeground": "#e9a149", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#e0eff1", + "peekViewResult.selectionBackground": "#e0eff1", + "peekViewResult.selectionForeground": "#6a7a7c", + "peekViewTitle.background": "#e7f2f3", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e9a149", + "progressBar.background": "#00c6e0", + "scrollbar.shadow": "#00000055", + "scrollbarSlider.activeBackground": "#0099adad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#0099ad62", + "gitDecoration.addedResourceForeground": "#009456", + "gitDecoration.modifiedResourceForeground": "#14b832", + "gitDecoration.deletedResourceForeground": "#ff4000", + "gitDecoration.untrackedResourceForeground": "#00c6e0", + "gitDecoration.ignoredResourceForeground": "#a8a28faa", + "gitDecoration.conflictingResourceForeground": "#e9a149", + "pickerGroup.border": "#00c6e0", + "pickerGroup.foreground": "#0099ad", + "list.activeSelectionBackground": "#b6e1e7", + "list.activeSelectionForeground": "#005661", + "list.dropBackground": "#b2cacd", + "list.focusBackground": "#bed9ea", + "list.focusForeground": "#005661", + "list.highlightForeground": "#0099ad", + "list.hoverBackground": "#d1eafa", + "list.hoverForeground": "#005661", + "list.inactiveFocusBackground": "#c9eaed", + "list.inactiveSelectionBackground": "#c6e7ec", + "list.inactiveSelectionForeground": "#949384", + "list.errorForeground": "#c9481d", + "list.warningForeground": "#e07a52", + "listFilterWidget.background": "#d5eef1", + "listFilterWidget.outline": "#14b832", + "listFilterWidget.noMatchesOutline": "#ff4000", + "tree.indentGuidesStroke": "#d3cec5", + "settings.headerForeground": "#004d57", + "settings.modifiedItemIndicator": "#00bd23", + "settings.dropdownListBorder": "#ade2eb88", + "settings.dropdownBackground": "#e0eff1", + "settings.dropdownForeground": "#0bb", + "settings.dropdownBorder": "#e0eff1", + "settings.checkboxBackground": "#e0eff1", + "settings.checkboxForeground": "#0bb", + "settings.checkboxBorder": "#e0eff1", + "settings.textInputBackground": "#e0eff1", + "settings.textInputForeground": "#0bb", + "settings.textInputBorder": "#e0eff1", + "settings.numberInputBackground": "#d0edf1", + "settings.numberInputForeground": "#5842ff", + "settings.numberInputBorder": "#d0edf1", + "breadcrumb.foreground": "#71838e", + "breadcrumb.background": "#f4f6f6", + "breadcrumb.focusForeground": "#0099ad", + "breadcrumb.activeSelectionForeground": "#005661", + "breadcrumbPicker.background": "#e0eff1", + "titleBar.activeBackground": "#e7f2f3", + "titleBar.activeForeground": "#005661", + "titleBar.inactiveBackground": "#e7f2f3", + "titleBar.inactiveForeground": "#71838e", + "menu.background": "#e0eff1", + "menu.foreground": "#71838e", + "menu.selectionBackground": "#d1eafa", + "menu.selectionForeground": "#0099ad", + "menu.selectionBorder": "#d1eafa", + "menubar.selectionBackground": "#d1eafa", + "menubar.selectionForeground": "#0099ad", + "menubar.selectionBorder": "#d1eafa", + "editor.snippetTabstopHighlightBackground": "#abe4ed77", + "editor.snippetTabstopHighlightBorder": "#d6f1f5", + "editor.snippetFinalTabstopHighlightBackground": "#abe4ed77", + "editor.snippetFinalTabstopHighlightBorder": "#d6f1f5", + "minimap.findMatchHighlight": "#0099adaa", + "minimap.errorHighlight": "#ff4000ee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#009456", + "minimapGutter.modifiedBackground": "#14b832", + "minimapGutter.deletedBackground": "#ff4000", + "minimap.background": "#f4f6f699" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#8ca6a6" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#004d57" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#ff5792" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#fa8900" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#b3694d" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e64100" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#00b368" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#009456" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#5842ff" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#0095a8" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#00bdd6" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#0094f0" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#ff530f" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/lilac.json b/assets/themes/src/vscode/noctis/lilac.json new file mode 100644 index 0000000000000000000000000000000000000000..26e0fe422376496a3a91cc7d191a7057dc986073 --- /dev/null +++ b/assets/themes/src/vscode/noctis/lilac.json @@ -0,0 +1,1113 @@ +{ + "name": "Noctis Lilac", + "type": "dark", + "colors": { + "selection.background": "#b4adebbb", + "descriptionForeground": "#908ea4", + "errorForeground": "#ff4000", + "widget.shadow": "#00000055", + "editor.background": "#f2f1f8", + "editor.foreground": "#0c006b", + "editorLineNumber.foreground": "#9d9ab1", + "editorLineNumber.activeForeground": "#7060eb", + "editorCursor.foreground": "#5c49e9", + "badge.background": "#7060eb", + "badge.foreground": "#f2f1f8", + "activityBar.background": "#f2f1f8", + "activityBar.dropBackground": "#7060eb65", + "activityBar.foreground": "#7060eb", + "activityBar.border": "#ece2c600", + "activityBarBadge.background": "#7060eb", + "activityBarBadge.foreground": "#f2f1f8", + "activityBar.activeBackground": "#7060eb33", + "activityBar.activeBorder": "#7060eb", + "sideBar.background": "#edecf8", + "sideBar.foreground": "#75718e", + "sideBar.border": "#ece2c600", + "sideBar.dropBackground": "#edecf8", + "sideBarTitle.foreground": "#75718e", + "sideBarSectionHeader.background": "#dedbf5", + "sideBarSectionHeader.foreground": "#75718e", + "statusBar.background": "#e2dff6", + "statusBar.foreground": "#7060eb", + "statusBar.border": "#ece2c600", + "statusBar.debuggingBackground": "#edecf8", + "statusBar.debuggingForeground": "#e9498150", + "statusBar.debuggingBorder": "#e94981af", + "statusBar.noFolderForeground": "#8b87ab", + "statusBar.noFolderBackground": "#edecf8", + "statusBar.noFolderBorder": "#edecf8", + "statusBarItem.activeBackground": "#c1bbec", + "statusBarItem.hoverBackground": "#c9c2f9", + "statusBarItem.prominentBackground": "#a9a4e544", + "statusBarItem.prominentHoverBackground": "#a9a4e599", + "button.background": "#8e80ff", + "button.foreground": "#f1f1f1", + "button.hoverBackground": "#a599ff", + "dropdown.background": "#f2f1f8", + "dropdown.border": "#f2f1f8", + "dropdown.foreground": "#0c006b", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#ff4000", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#f2f1f8", + "editorError.foreground": "#ff4000", + "editorWarning.border": "#f2f1f8", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#f2f1f8", + "editorInfo.foreground": "#00c6e0", + "editorHint.border": "#58cc6d00", + "editorHint.foreground": "#58cc6d", + "editorGroup.emptyBackground": "#958fbc33", + "editorGroup.border": "#d4d0f1", + "editorGroup.dropBackground": "#958fbc33", + "editorGroupHeader.noTabsBackground": "#e2dff6", + "editorGroupHeader.tabsBackground": "#e2dff6", + "editorGroupHeader.tabsBorder": "#e2dff600", + "tab.activeBackground": "#f2f1f8", + "tab.unfocusedActiveBackground": "#e9e7f3", + "tab.activeForeground": "#7060eb", + "tab.border": "#b5adeb", + "tab.inactiveBackground": "#e2dff6", + "tab.inactiveForeground": "#75718e", + "tab.unfocusedActiveForeground": "#75718e", + "tab.unfocusedInactiveForeground": "#75718e", + "tab.activeBorderTop": "#00c6e0", + "tab.activeModifiedBorder": "#00b368", + "tab.activeBorder": "#f2f1f8", + "tab.unfocusedActiveBorder": "#f2f1f800", + "tab.unfocusedHoverBackground": "#7060eb21", + "textBlockQuote.background": "#edecf8", + "textBlockQuote.border": "#00899e", + "textCodeBlock.background": "#edecf8", + "textLink.activeForeground": "#00c6e0", + "textLink.foreground": "#00c6e0", + "textPreformat.foreground": "#e9a149", + "textSeparator.foreground": "#edecf8", + "walkThrough.embeddedEditorBackground": "#edecf8", + "welcomePage.buttonBackground": "#edecf8", + "welcomePage.buttonHoverBackground": "#e2dff6", + "input.background": "#f2f1f8", + "input.border": "#dedbf5", + "input.foreground": "#666284", + "input.placeholderForeground": "#9391a6", + "inputOption.activeBorder": "#7060eb", + "inputValidation.errorBackground": "#ff400041", + "inputValidation.errorBorder": "#ff4000", + "inputValidation.infoBackground": "#00c6ea599ff", + "inputValidation.infoBorder": "#00c6e0", + "inputValidation.warningBackground": "#ffa587cc", + "inputValidation.warningBorder": "#ffa487", + "editorWidget.background": "#dedbf5", + "editorWidget.border": "#ece2c600", + "editorHoverWidget.background": "#dedbf5", + "editorHoverWidget.border": "#ece2c600", + "editorSuggestWidget.background": "#dedbf5", + "editorSuggestWidget.border": "#ece2c600", + "editorSuggestWidget.foreground": "#666284", + "editorSuggestWidget.highlightForeground": "#7060eb", + "editorSuggestWidget.selectedBackground": "#cac4f3", + "editorGutter.background": "#f2f1f8", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#ff4000", + "editorGutter.modifiedBackground": "#e9a149", + "editor.selectionBackground": "#b4adeb77", + "editor.selectionHighlightBackground": "#14a5ff33", + "editor.selectionHighlightBorder": "#14a5ff00", + "editor.inactiveSelectionBackground": "#b4adeb55", + "editor.wordHighlightStrongBackground": "#b5890027", + "editor.wordHighlightStrongBorder": "#b5890000", + "editor.wordHighlightBackground": "#e9a14922", + "editor.wordHighlightBorder": "#e9a14900", + "editor.findMatchBackground": "#8ce99a60", + "editor.findMatchBorder": "#8ce99a00", + "editor.findMatchHighlightBackground": "#148f9f33", + "editor.findMatchHighlightBorder": "#148f9f00", + "editor.findRangeHighlightBackground": "#99e62a55", + "editor.findRangeHighlightBorder": "#58CC6D00", + "editor.hoverHighlightBackground": "#7060eb3f", + "editor.lineHighlightBackground": "#d5d2ef99", + "editor.lineHighlightBorder": "#d5d2ef00", + "editor.rangeHighlightBackground": "#f1e9d5a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#c3c1d7bb", + "editorIndentGuide.background": "#c3c1d7aa", + "editorIndentGuide.activeBackground": "#9f99cc", + "editorBracketMatch.background": "#7060eb20", + "editorBracketMatch.border": "#7060eb", + "editorRuler.foreground": "#d4d0f1", + "editorCodeLens.foreground": "#77aaca", + "terminal.ansiBlack": "#0c006b", + "terminal.ansiRed": "#e34e1c", + "terminal.ansiGreen": "#00b368", + "terminal.ansiYellow": "#f49725", + "terminal.ansiBlue": "#0094f0", + "terminal.ansiMagenta": "#ff5792", + "terminal.ansiCyan": "#00bdd6", + "terminal.ansiWhite": "#8ca6a6", + "terminal.ansiBrightBlack": "#0f0080", + "terminal.ansiBrightRed": "#ff4000", + "terminal.ansiBrightGreen": "#00d17a", + "terminal.ansiBrightYellow": "#ff8c00", + "terminal.ansiBrightBlue": "#0fa3ff", + "terminal.ansiBrightMagenta": "#ff6b9f", + "terminal.ansiBrightCyan": "#00cbe6", + "terminal.ansiBrightWhite": "#bbc3c4", + "terminal.background": "#e9e7f3", + "terminal.foreground": "#0c006b", + "terminalCursor.background": "#e9e7f3", + "terminalCursor.foreground": "#0c006b", + "merge.border": "#f2f1f800", + "merge.currentContentBackground": "#33e7ff33", + "merge.currentHeaderBackground": "#33e7ff55", + "merge.incomingContentBackground": "#9d92f233", + "merge.incomingHeaderBackground": "#9d92f255", + "merge.commonContentBackground": "#ffc18033", + "merge.commonHeaderBackground": "#ffc18055", + "editorOverviewRuler.currentContentForeground": "#33e7ff55", + "editorOverviewRuler.incomingContentForeground": "#9d92f255", + "editorOverviewRuler.commonContentForeground": "#ffc18055", + "editorOverviewRuler.border": "#f2f1f8", + "notificationCenter.border": "#dedbf5", + "notificationCenterHeader.foreground": "#0c006b", + "notificationCenterHeader.background": "#dedbf5", + "notificationToast.border": "#dedbf5", + "notifications.foreground": "#0c006b", + "notifications.background": "#dedbf5", + "notifications.border": "#dedbf5", + "notificationLink.foreground": "#0c006b", + "diffEditor.insertedTextBackground": "#14b83230", + "diffEditor.removedTextBackground": "#BB1F0522", + "debugToolBar.background": "#edecf8", + "debugExceptionWidget.background": "#edecf8", + "debugExceptionWidget.border": "#00899e", + "extensionButton.prominentBackground": "#8e80ff", + "extensionButton.prominentForeground": "#e4e2f9", + "extensionButton.prominentHoverBackground": "#a599ff", + "focusBorder": "#dedbf5", + "foreground": "#0c006b", + "panel.background": "#e9e7f3", + "panel.border": "#aea4f4", + "panelTitle.activeBorder": "#aea4f4", + "panelTitle.activeForeground": "#7060eb", + "panelTitle.inactiveForeground": "#75718e", + "peekView.border": "#7060eb", + "peekViewEditor.background": "#eae7fd", + "peekViewEditor.matchHighlightBackground": "#148f9f33", + "peekViewEditor.matchHighlightBorder": "#148f9f79", + "peekViewEditorGutter.background": "#eae7fd", + "peekViewResult.background": "#edecf8", + "peekViewResult.fileForeground": "#e9a149", + "peekViewResult.lineForeground": "#8b87ab", + "peekViewResult.matchHighlightBackground": "#dedbf5", + "peekViewResult.selectionBackground": "#dedbf5", + "peekViewResult.selectionForeground": "#666284", + "peekViewTitle.background": "#edecf8", + "peekViewTitleDescription.foreground": "#8b87ab", + "peekViewTitleLabel.foreground": "#e9a149", + "progressBar.background": "#00c6e0", + "scrollbar.shadow": "#00000055", + "scrollbarSlider.activeBackground": "#7060ebad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#7060eb62", + "gitDecoration.addedResourceForeground": "#009456", + "gitDecoration.modifiedResourceForeground": "#14b832", + "gitDecoration.deletedResourceForeground": "#ff4000", + "gitDecoration.untrackedResourceForeground": "#00c6e0", + "gitDecoration.ignoredResourceForeground": "#a8a28faa", + "gitDecoration.conflictingResourceForeground": "#e9a149", + "pickerGroup.border": "#aea4f4", + "pickerGroup.foreground": "#7060eb", + "list.activeSelectionBackground": "#bcb6e7", + "list.activeSelectionForeground": "#0c006b", + "list.dropBackground": "#afaad4aa", + "list.focusBackground": "#c3beea", + "list.focusForeground": "#0c006b", + "list.highlightForeground": "#7060eb", + "list.hoverBackground": "#d2ccff", + "list.hoverForeground": "#0c006b", + "list.inactiveFocusBackground": "#cec9ed", + "list.inactiveSelectionBackground": "#d7d3f3", + "list.inactiveSelectionForeground": "#838099", + "list.errorForeground": "#c9481d", + "list.warningForeground": "#e07a52", + "listFilterWidget.background": "#d7d3f3", + "listFilterWidget.outline": "#14b832", + "listFilterWidget.noMatchesOutline": "#ff4000", + "tree.indentGuidesStroke": "#c3c1d7", + "settings.headerForeground": "#0c006b", + "settings.modifiedItemIndicator": "#00bd23", + "settings.dropdownListBorder": "#b4adeb88", + "settings.dropdownBackground": "#dedbf5", + "settings.dropdownForeground": "#0bb", + "settings.dropdownBorder": "#dedbf5", + "settings.checkboxBackground": "#dedbf5", + "settings.checkboxForeground": "#0bb", + "settings.checkboxBorder": "#dedbf5", + "settings.textInputBackground": "#dedbf5", + "settings.textInputForeground": "#0bb", + "settings.textInputBorder": "#dedbf5", + "settings.numberInputBackground": "#d4d0f1", + "settings.numberInputForeground": "#5842ff", + "settings.numberInputBorder": "#d4d0f1", + "breadcrumb.foreground": "#75718e", + "breadcrumb.background": "#f2f1f8", + "breadcrumb.focusForeground": "#7060eb", + "breadcrumb.activeSelectionForeground": "#0c006b", + "breadcrumbPicker.background": "#dedbf5", + "titleBar.activeBackground": "#edecf8", + "titleBar.activeForeground": "#0c006b", + "titleBar.inactiveBackground": "#edecf8", + "titleBar.inactiveForeground": "#75718e", + "menu.background": "#dedbf5", + "menu.foreground": "#75718e", + "menu.selectionBackground": "#d6d1fa", + "menu.selectionForeground": "#7060eb", + "menu.selectionBorder": "#d6d1fa", + "menubar.selectionBackground": "#d6d1fa", + "menubar.selectionForeground": "#7060eb", + "menubar.selectionBorder": "#d6d1fa", + "editor.snippetTabstopHighlightBackground": "#b3abed77", + "editor.snippetTabstopHighlightBorder": "#dad6f5", + "editor.snippetFinalTabstopHighlightBackground": "#b3abed77", + "editor.snippetFinalTabstopHighlightBorder": "#dad6f5", + "minimap.findMatchHighlight": "#7060ebaa", + "minimap.errorHighlight": "#ff4000ee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#009456", + "minimapGutter.modifiedBackground": "#14b832", + "minimapGutter.deletedBackground": "#ff4000", + "minimap.background": "#f2f1f899" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#9995b7" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#0c006b" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#ff5792" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#fa8900" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#b3694d" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e64100" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#00b368" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#009456" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#5842ff" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#0095a8" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#00bdd6" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#0094f0" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#ff530f" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/lux.json b/assets/themes/src/vscode/noctis/lux.json new file mode 100644 index 0000000000000000000000000000000000000000..1f72b0e59cab91cb2255ee1438ace7b0102dfbcf --- /dev/null +++ b/assets/themes/src/vscode/noctis/lux.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Lux", + "type": "light", + "colors": { + "selection.background": "#169fb155", + "descriptionForeground": "#929ea0", + "errorForeground": "#ff4000", + "widget.shadow": "#00000055", + "editor.background": "#fef8ec", + "editor.foreground": "#005661", + "editorLineNumber.foreground": "#a0abac", + "editorLineNumber.activeForeground": "#0099ad", + "editorCursor.foreground": "#0092a8", + "badge.background": "#0099ad", + "badge.foreground": "#fef8ec", + "activityBar.background": "#fef8ec", + "activityBar.dropBackground": "#0099ad65", + "activityBar.foreground": "#0099ad", + "activityBar.border": "#ece2c600", + "activityBarBadge.background": "#0099ad", + "activityBarBadge.foreground": "#fef8ec", + "activityBar.activeBackground": "#0099ad33", + "activityBar.activeBorder": "#0099ad", + "sideBar.background": "#f9f1e1", + "sideBar.foreground": "#888477", + "sideBar.border": "#ece2c600", + "sideBar.dropBackground": "#f9f1e1", + "sideBarTitle.foreground": "#888477", + "sideBarSectionHeader.background": "#f2e7ca", + "sideBarSectionHeader.foreground": "#888477", + "statusBar.background": "#f0e9d6", + "statusBar.foreground": "#0099ad", + "statusBar.border": "#ece2c600", + "statusBar.debuggingBackground": "#f9f1e1", + "statusBar.debuggingForeground": "#e9498150", + "statusBar.debuggingBorder": "#e94981af", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#f9f1e1", + "statusBar.noFolderBorder": "#f9f1e1", + "statusBarItem.activeBackground": "#dfeff1", + "statusBarItem.hoverBackground": "#d1e8eb", + "statusBarItem.prominentBackground": "#c1d4d7", + "statusBarItem.prominentHoverBackground": "#bfdee3", + "button.background": "#099099", + "button.foreground": "#f1f1f1", + "button.hoverBackground": "#0cc", + "dropdown.background": "#fef8ec", + "dropdown.border": "#fef8ec", + "dropdown.foreground": "#005661", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#ff4000", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#fef8ec", + "editorError.foreground": "#ff4000", + "editorWarning.border": "#fef8ec", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#fef8ec", + "editorInfo.foreground": "#00c6e0", + "editorHint.border": "#58cc6d00", + "editorHint.foreground": "#58cc6d", + "editorGroup.emptyBackground": "#b8ae9333", + "editorGroup.border": "#f0e7d1", + "editorGroup.dropBackground": "#b8ae9333", + "editorGroupHeader.noTabsBackground": "#f0e9d6", + "editorGroupHeader.tabsBackground": "#f0e9d6", + "editorGroupHeader.tabsBorder": "#f0e9d600", + "tab.activeBackground": "#fef8ec", + "tab.unfocusedActiveBackground": "#f7f2e3", + "tab.activeForeground": "#0099ad", + "tab.border": "#e6d7b2", + "tab.inactiveBackground": "#f0e9d6", + "tab.inactiveForeground": "#888477", + "tab.unfocusedActiveForeground": "#888477", + "tab.unfocusedInactiveForeground": "#888477", + "tab.activeBorderTop": "#00c6e0", + "tab.activeModifiedBorder": "#00b368", + "tab.activeBorder": "#fef8ec", + "tab.unfocusedActiveBorder": "#fef8ec00", + "tab.unfocusedHoverBackground": "#0099ad21", + "textBlockQuote.background": "#f9f1e1", + "textBlockQuote.border": "#00899e", + "textCodeBlock.background": "#f9f1e1", + "textLink.activeForeground": "#00c6e0", + "textLink.foreground": "#00c6e0", + "textPreformat.foreground": "#e9a149", + "textSeparator.foreground": "#f9f1e1", + "walkThrough.embeddedEditorBackground": "#f9f1e1", + "welcomePage.buttonBackground": "#f9f1e1", + "welcomePage.buttonHoverBackground": "#e1e0d0", + "input.background": "#fef8ec", + "input.border": "#f2edde", + "input.foreground": "#6a7a7c", + "input.placeholderForeground": "#9fabad", + "inputOption.activeBorder": "#0099ad", + "inputValidation.errorBackground": "#ff400041", + "inputValidation.errorBorder": "#ff4000", + "inputValidation.infoBackground": "#00c6e0cc", + "inputValidation.infoBorder": "#00c6e0", + "inputValidation.warningBackground": "#ffa587cc", + "inputValidation.warningBorder": "#ffa487", + "editorWidget.background": "#f2edde", + "editorWidget.border": "#ece2c600", + "editorHoverWidget.background": "#f2edde", + "editorHoverWidget.border": "#ece2c600", + "editorSuggestWidget.background": "#f2edde", + "editorSuggestWidget.border": "#ece2c600", + "editorSuggestWidget.foreground": "#6a7a7c", + "editorSuggestWidget.highlightForeground": "#0099ad", + "editorSuggestWidget.selectedBackground": "#dbfaff", + "editorGutter.background": "#fef8ec", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#ff4000", + "editorGutter.modifiedBackground": "#e9a149", + "editor.selectionBackground": "#ade2eb77", + "editor.selectionHighlightBackground": "#14a5ff33", + "editor.selectionHighlightBorder": "#14a5ff00", + "editor.inactiveSelectionBackground": "#ade2eb55", + "editor.wordHighlightStrongBackground": "#b5890027", + "editor.wordHighlightStrongBorder": "#b5890000", + "editor.wordHighlightBackground": "#e9a14922", + "editor.wordHighlightBorder": "#e9a14900", + "editor.findMatchBackground": "#8ce99a55", + "editor.findMatchBorder": "#8ce99a00", + "editor.findMatchHighlightBackground": "#148f9f33", + "editor.findMatchHighlightBorder": "#148f9f00", + "editor.findRangeHighlightBackground": "#99e62a55", + "editor.findRangeHighlightBorder": "#58CC6D00", + "editor.hoverHighlightBackground": "#0099ad3f", + "editor.lineHighlightBackground": "#d1ebefcc", + "editor.lineHighlightBorder": "#d1ebef00", + "editor.rangeHighlightBackground": "#f1e9d5a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#d3cec5bb", + "editorIndentGuide.background": "#d3cec5aa", + "editorIndentGuide.activeBackground": "#88adc3", + "editorBracketMatch.background": "#0099ad20", + "editorBracketMatch.border": "#0099ad", + "editorRuler.foreground": "#f1e6d0", + "editorCodeLens.foreground": "#77aaca", + "terminal.ansiBlack": "#003b42", + "terminal.ansiRed": "#e34e1c", + "terminal.ansiGreen": "#00b368", + "terminal.ansiYellow": "#f49725", + "terminal.ansiBlue": "#0094f0", + "terminal.ansiMagenta": "#ff5792", + "terminal.ansiCyan": "#00bdd6", + "terminal.ansiWhite": "#8ca6a6", + "terminal.ansiBrightBlack": "#004d57", + "terminal.ansiBrightRed": "#ff4000", + "terminal.ansiBrightGreen": "#00d17a", + "terminal.ansiBrightYellow": "#ff8c00", + "terminal.ansiBrightBlue": "#0fa3ff", + "terminal.ansiBrightMagenta": "#ff6b9f", + "terminal.ansiBrightCyan": "#00cbe6", + "terminal.ansiBrightWhite": "#bbc3c4", + "terminal.background": "#f6edda", + "terminal.foreground": "#005661", + "terminalCursor.background": "#f6edda", + "terminalCursor.foreground": "#005661", + "merge.border": "#fef8ec00", + "merge.currentContentBackground": "#33e7ff33", + "merge.currentHeaderBackground": "#33e7ff55", + "merge.incomingContentBackground": "#9d92f233", + "merge.incomingHeaderBackground": "#9d92f255", + "merge.commonContentBackground": "#ffc18033", + "merge.commonHeaderBackground": "#ffc18055", + "editorOverviewRuler.currentContentForeground": "#33e7ff55", + "editorOverviewRuler.incomingContentForeground": "#9d92f255", + "editorOverviewRuler.commonContentForeground": "#ffc18055", + "editorOverviewRuler.border": "#fef8ec", + "notificationCenter.border": "#f2edde", + "notificationCenterHeader.foreground": "#005661", + "notificationCenterHeader.background": "#f2edde", + "notificationToast.border": "#f2edde", + "notifications.foreground": "#005661", + "notifications.background": "#f2edde", + "notifications.border": "#f2edde", + "notificationLink.foreground": "#005661", + "diffEditor.insertedTextBackground": "#14b83230", + "diffEditor.removedTextBackground": "#BB1F0522", + "debugToolBar.background": "#f9f1e1", + "debugExceptionWidget.background": "#f9f1e1", + "debugExceptionWidget.border": "#00899e", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#f2edde", + "foreground": "#005661", + "panel.background": "#f6edda", + "panel.border": "#00c6e0", + "panelTitle.activeBorder": "#00c6e0", + "panelTitle.activeForeground": "#0099ad", + "panelTitle.inactiveForeground": "#888477", + "peekView.border": "#0099ad", + "peekViewEditor.background": "#fff7e5", + "peekViewEditor.matchHighlightBackground": "#148f9f33", + "peekViewEditor.matchHighlightBorder": "#148f9f79", + "peekViewEditorGutter.background": "#fff7e5", + "peekViewResult.background": "#f9f1e1", + "peekViewResult.fileForeground": "#e9a149", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#f2edde", + "peekViewResult.selectionBackground": "#f2edde", + "peekViewResult.selectionForeground": "#6a7a7c", + "peekViewTitle.background": "#f9f1e1", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e9a149", + "progressBar.background": "#00c6e0", + "scrollbar.shadow": "#00000055", + "scrollbarSlider.activeBackground": "#0099adad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#0099ad62", + "gitDecoration.addedResourceForeground": "#009456", + "gitDecoration.modifiedResourceForeground": "#14b832", + "gitDecoration.deletedResourceForeground": "#ff4000", + "gitDecoration.untrackedResourceForeground": "#00c6e0", + "gitDecoration.ignoredResourceForeground": "#a8a28faa", + "gitDecoration.conflictingResourceForeground": "#e9a149", + "pickerGroup.border": "#00c6e0", + "pickerGroup.foreground": "#0099ad", + "list.activeSelectionBackground": "#b6e1e7", + "list.activeSelectionForeground": "#005661", + "list.dropBackground": "#cdcbb2", + "list.focusBackground": "#bee3ea", + "list.focusForeground": "#005661", + "list.highlightForeground": "#0099ad", + "list.hoverBackground": "#d2f3f9", + "list.hoverForeground": "#005661", + "list.inactiveFocusBackground": "#c9eaed", + "list.inactiveSelectionBackground": "#d5eef1", + "list.inactiveSelectionForeground": "#949384", + "list.errorForeground": "#c9481d", + "list.warningForeground": "#e07a52", + "listFilterWidget.background": "#d5eef1", + "listFilterWidget.outline": "#14b832", + "listFilterWidget.noMatchesOutline": "#ff4000", + "tree.indentGuidesStroke": "#d3cec5", + "settings.headerForeground": "#004d57", + "settings.modifiedItemIndicator": "#00bd23", + "settings.dropdownListBorder": "#ade2eb88", + "settings.dropdownBackground": "#f2edde", + "settings.dropdownForeground": "#0bb", + "settings.dropdownBorder": "#f2edde", + "settings.checkboxBackground": "#f2edde", + "settings.checkboxForeground": "#0bb", + "settings.checkboxBorder": "#f2edde", + "settings.textInputBackground": "#f2edde", + "settings.textInputForeground": "#0bb", + "settings.textInputBorder": "#f2edde", + "settings.numberInputBackground": "#f0e7d1", + "settings.numberInputForeground": "#5842ff", + "settings.numberInputBorder": "#f0e7d1", + "breadcrumb.foreground": "#888477", + "breadcrumb.background": "#fef8ec", + "breadcrumb.focusForeground": "#0099ad", + "breadcrumb.activeSelectionForeground": "#005661", + "breadcrumbPicker.background": "#f2edde", + "titleBar.activeBackground": "#f9f1e1", + "titleBar.activeForeground": "#005661", + "titleBar.inactiveBackground": "#f9f1e1", + "titleBar.inactiveForeground": "#888477", + "menu.background": "#f2edde", + "menu.foreground": "#888477", + "menu.selectionBackground": "#d2f3f9", + "menu.selectionForeground": "#0099ad", + "menu.selectionBorder": "#d2f3f9", + "menubar.selectionBackground": "#d2f3f9", + "menubar.selectionForeground": "#0099ad", + "menubar.selectionBorder": "#d2f3f9", + "editor.snippetTabstopHighlightBackground": "#fdefd3", + "editor.snippetTabstopHighlightBorder": "#fdf3dd", + "editor.snippetFinalTabstopHighlightBackground": "#fdefd3", + "editor.snippetFinalTabstopHighlightBorder": "#fdf3dd", + "minimap.findMatchHighlight": "#0099adaa", + "minimap.errorHighlight": "#ff4000ee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#009456", + "minimapGutter.modifiedBackground": "#14b832", + "minimapGutter.deletedBackground": "#ff4000", + "minimap.background": "#fef8ec99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#8ca6a6" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#004d57" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#ff5792" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#fa8900" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#b3694d" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e64100" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#00b368" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#009456" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#5842ff" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#0095a8" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#00bdd6" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#0094f0" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#ff530f" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/minimus.json b/assets/themes/src/vscode/noctis/minimus.json new file mode 100644 index 0000000000000000000000000000000000000000..88493d99d5993b6d72ef9a1a81228b8a82fe54c3 --- /dev/null +++ b/assets/themes/src/vscode/noctis/minimus.json @@ -0,0 +1,1113 @@ +{ + "name": "Noctis Minimus", + "type": "dark", + "colors": { + "selection.background": "#5998c077", + "descriptionForeground": "#6496b4", + "errorForeground": "#b96346", + "widget.shadow": "#00000044", + "editor.background": "#1b2932", + "editor.foreground": "#c5cdd3", + "editorLineNumber.foreground": "#5d6e79", + "editorLineNumber.activeForeground": "#6496b4", + "editorCursor.foreground": "#b3d2e6", + "badge.background": "#5998c0", + "badge.foreground": "#101213", + "activityBar.background": "#1b2932", + "activityBar.dropBackground": "#6496b465", + "activityBar.border": "#101213", + "activityBar.foreground": "#496d83", + "activityBar.inactiveForeground": "#496d8377", + "activityBarBadge.background": "#5998c0", + "activityBarBadge.foreground": "#101213", + "activityBar.activeBackground": "#5998c033", + "activityBar.activeBorder": "#5998c0", + "sideBar.background": "#17232b", + "sideBar.dropBackground": "#17232b", + "sideBar.border": "#101213", + "sideBar.foreground": "#96a8b6", + "sideBarSectionHeader.background": "#202e37", + "sideBarSectionHeader.foreground": "#96a8b6", + "sideBarTitle.foreground": "#96a8b6", + "sideBarSectionHeader.border": "#101213", + "statusBar.foreground": "#496d83", + "statusBar.background": "#1b2932", + "statusBar.border": "#101213", + "statusBar.debuggingBackground": "#1b2932", + "statusBar.debuggingForeground": "#d2799850", + "statusBar.debuggingBorder": "#d27998af", + "statusBar.noFolderForeground": "#98a6ae", + "statusBar.noFolderBackground": "#1b2932", + "statusBar.noFolderBorder": "#1b2932", + "statusBarItem.activeBackground": "#3d708f66", + "statusBarItem.hoverBackground": "#243742", + "statusBarItem.prominentBackground": "#152128", + "statusBarItem.prominentHoverBackground": "#102837", + "button.background": "#2e616b", + "button.foreground": "#ebf7ff", + "button.hoverBackground": "#3d818f", + "dropdown.background": "#202e37", + "dropdown.border": "#202e37", + "dropdown.foreground": "#6496b4", + "editorMarkerNavigation.background": "#43435629", + "editorMarkerNavigationError.background": "#b96346", + "editorMarkerNavigationWarning.background": "#c09159", + "editorError.border": "#1b2932", + "editorError.foreground": "#b96346", + "editorWarning.border": "#1b2932", + "editorWarning.foreground": "#c09159", + "editorInfo.border": "#1b2932", + "editorInfo.foreground": "#5998c0", + "editorHint.border": "#72c09f00", + "editorHint.foreground": "#72c09f", + "editorGroup.emptyBackground": "#5d6e7933", + "editorGroup.border": "#101213", + "editorGroup.dropBackground": "#5d6e7933", + "editorGroupHeader.noTabsBackground": "#202e37", + "editorGroupHeader.tabsBackground": "#24333d", + "editorGroupHeader.tabsBorder": "#202e37", + "tab.activeBackground": "#1b2932", + "tab.unfocusedActiveBackground": "#1e2b33", + "tab.activeForeground": "#5998c0", + "tab.border": "#101213", + "tab.inactiveBackground": "#202e37", + "tab.inactiveForeground": "#96a8b6", + "tab.unfocusedActiveForeground": "#96a8b6", + "tab.unfocusedInactiveForeground": "#96a8b6", + "tab.activeBorderTop": "#5998c0", + "tab.activeModifiedBorder": "#72c09f", + "tab.activeBorder": "#1b2932", + "tab.unfocusedActiveBorder": "#1b2932", + "tab.unfocusedHoverBackground": "#5998c021", + "textBlockQuote.background": "#1b2932", + "textBlockQuote.border": "#496d83", + "textCodeBlock.background": "#1b2932", + "textLink.activeForeground": "#5998c0", + "textLink.foreground": "#5998c0", + "textPreformat.foreground": "#dfc09f", + "textSeparator.foreground": "#1b2932", + "walkThrough.embeddedEditorBackground": "#1b2932", + "welcomePage.buttonBackground": "#0e1920", + "welcomePage.buttonHoverBackground": "#202e37", + "input.background": "#0e1920", + "input.border": "#1a2f3d", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#98a6ae", + "inputOption.activeBorder": "#496d83", + "inputValidation.errorForeground": "#b96346", + "inputValidation.errorBackground": "#3b2016ee", + "inputValidation.errorBorder": "#4e291d", + "inputValidation.infoForeground": "#6fb0b8", + "inputValidation.infoBackground": "#2d575cee", + "inputValidation.infoBorder": "#3b7178", + "inputValidation.warningForeground": "#c09159", + "inputValidation.warningBackground": "#736759cc", + "inputValidation.warningBorder": "#94826b", + "editorWidget.background": "#202e37", + "editorWidget.border": "#101213", + "editorHoverWidget.background": "#14242e", + "editorHoverWidget.border": "#101213", + "editorSuggestWidget.background": "#14242e", + "editorSuggestWidget.border": "#101213", + "editorSuggestWidget.foreground": "#96a8b6", + "editorSuggestWidget.highlightForeground": "#5998c0", + "editorSuggestWidget.selectedBackground": "#2c414e", + "editorGutter.background": "#1b2932", + "editorGutter.addedBackground": "#a0d4a8", + "editorGutter.deletedBackground": "#b96346", + "editorGutter.modifiedBackground": "#dfc09f", + "editor.selectionBackground": "#496d8355", + "editor.selectionHighlightBackground": "#5998c033", + "editor.inactiveSelectionBackground": "#496d8333", + "editor.wordHighlightStrongBackground": "#b3994d33", + "editor.wordHighlightBackground": "#d3b69233", + "editor.findMatchBackground": "#72c09f25", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#72c09f22", + "editor.hoverHighlightBackground": "#496d833f", + "editor.lineHighlightBackground": "#1d3544ee", + "editor.lineHighlightBorder": "#1d3544", + "editor.rangeHighlightBackground": "#72b7c022", + "editorLink.activeForeground": "#649fc4", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#2f404b", + "editorIndentGuide.activeBackground": "#405f72", + "editorBracketMatch.background": "#496d8322", + "editorBracketMatch.border": "#496d83", + "editorRuler.foreground": "#334652", + "editorCodeLens.foreground": "#667c7f", + "terminal.ansiBlack": "#182a35", + "terminal.ansiRed": "#c08872", + "terminal.ansiGreen": "#72c09f", + "terminal.ansiYellow": "#c8a984", + "terminal.ansiBlue": "#6196b8", + "terminal.ansiMagenta": "#c28097", + "terminal.ansiCyan": "#72b7c0", + "terminal.ansiWhite": "#c5cdd3", + "terminal.ansiBrightBlack": "#425866", + "terminal.ansiBrightRed": "#ca8468", + "terminal.ansiBrightGreen": "#84c8ab", + "terminal.ansiBrightYellow": "#d1aa7b", + "terminal.ansiBrightBlue": "#68a4ca", + "terminal.ansiBrightMagenta": "#c88da2", + "terminal.ansiBrightCyan": "#84c0c8", + "terminal.ansiBrightWhite": "#c5d1d3", + "terminal.background": "#0e1920", + "terminal.foreground": "#c5cdd3", + "terminalCursor.background": "#0e1920", + "terminalCursor.foreground": "#c5cdd3", + "merge.border": "#1b293200", + "merge.currentContentBackground": "#a6d7dd22", + "merge.currentHeaderBackground": "#a6d7dd44", + "merge.incomingContentBackground": "#aea8dc22", + "merge.incomingHeaderBackground": "#aea8dc44", + "merge.commonContentBackground": "#dfc09f22", + "merge.commonHeaderBackground": "#dfc09f44", + "editorOverviewRuler.currentContentForeground": "#a6d7dd44", + "editorOverviewRuler.incomingContentForeground": "#cac4f544", + "editorOverviewRuler.commonContentForeground": "#dfc09f44", + "editorOverviewRuler.border": "#1b2932", + "notificationCenter.border": "#202e37", + "notificationCenterHeader.foreground": "#98a6ae", + "notificationCenterHeader.background": "#202e37", + "notificationToast.border": "#202e37", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#202e37", + "notifications.border": "#202e37", + "notificationLink.foreground": "#98a6ae", + "diffEditor.insertedTextBackground": "#72c09f25", + "diffEditor.removedTextBackground": "#c3745530", + "debugToolBar.background": "#1b2932", + "debugExceptionWidget.background": "#1b2932", + "debugExceptionWidget.border": "#496d83", + "extensionButton.prominentBackground": "#28828a", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#39bac6", + "focusBorder": "#202e37", + "foreground": "#c5cdd3", + "panel.background": "#0e1920", + "panel.border": "#496d83", + "panelTitle.activeBorder": "#496d83", + "panelTitle.activeForeground": "#5998c0", + "panelTitle.inactiveForeground": "#5e7887", + "peekView.border": "#496d83", + "peekViewEditor.background": "#0e1c25", + "peekViewEditor.matchHighlightBackground": "#26526d33", + "peekViewEditor.matchHighlightBorder": "#3d708f", + "peekViewEditorGutter.background": "#0e1c25", + "peekViewResult.background": "#0d202b", + "peekViewResult.fileForeground": "#dfc09f", + "peekViewResult.lineForeground": "#98a6ae", + "peekViewResult.matchHighlightBackground": "#202e37", + "peekViewResult.selectionBackground": "#202e37", + "peekViewResult.selectionForeground": "#98a6ae", + "peekViewTitle.background": "#0d202b", + "peekViewTitleDescription.foreground": "#98a6ae", + "peekViewTitleLabel.foreground": "#dfc09f", + "progressBar.background": "#5998c0", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#3f7fa677", + "scrollbarSlider.background": "#3f7fa633", + "scrollbarSlider.hoverBackground": "#3f7fa655", + "gitDecoration.addedResourceForeground": "#3f8d6c", + "gitDecoration.modifiedResourceForeground": "#72c09f", + "gitDecoration.deletedResourceForeground": "#b96346", + "gitDecoration.untrackedResourceForeground": "#6fb0b8", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#dfc09f", + "pickerGroup.border": "#496d83", + "pickerGroup.foreground": "#5998c0", + "list.activeSelectionBackground": "#2c414e", + "list.activeSelectionForeground": "#ebf7ff", + "list.dropBackground": "#152837", + "list.focusBackground": "#213745", + "list.focusForeground": "#ebf7ff", + "list.highlightForeground": "#5998c0", + "list.hoverBackground": "#00558a", + "list.hoverForeground": "#ebf7ff", + "list.inactiveFocusBackground": "#1e2b33", + "list.inactiveSelectionBackground": "#22313a", + "list.inactiveSelectionForeground": "#c5cdd3", + "list.errorForeground": "#b96346", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#152837", + "listFilterWidget.outline": "#72c09f", + "listFilterWidget.noMatchesOutline": "#b96346", + "tree.indentGuidesStroke": "#5d6e79", + "settings.headerForeground": "#c5cdd3", + "settings.modifiedItemIndicator": "#3f8d6c", + "settings.dropdownListBorder": "#2964a377", + "settings.dropdownBackground": "#202e37", + "settings.dropdownForeground": "#3d818f", + "settings.dropdownBorder": "#202e37", + "settings.checkboxBackground": "#202e37", + "settings.checkboxForeground": "#3d818f", + "settings.checkboxBorder": "#202e37", + "settings.textInputBackground": "#202e37", + "settings.textInputForeground": "#3d818f", + "settings.textInputBorder": "#202e37", + "settings.numberInputBackground": "#0e1920", + "settings.numberInputForeground": "#7068b1", + "settings.numberInputBorder": "#0e1920", + "breadcrumb.foreground": "#96a8b6", + "breadcrumb.background": "#1b2932", + "breadcrumb.focusForeground": "#5998c0", + "breadcrumb.activeSelectionForeground": "#ebf7ff", + "breadcrumbPicker.background": "#202e37", + "titleBar.activeBackground": "#1b2932", + "titleBar.activeForeground": "#c5cdd3", + "titleBar.inactiveBackground": "#1b2932", + "titleBar.inactiveForeground": "#96a8b6", + "menu.background": "#202e37", + "menu.foreground": "#96a8b6", + "menu.selectionBackground": "#213745", + "menu.selectionForeground": "#5998c0", + "menu.selectionBorder": "#213745", + "menu.separatorBackground": "#5998c0", + "menubar.selectionBackground": "#213745", + "menubar.selectionForeground": "#5998c0", + "menubar.selectionBorder": "#213745", + "editor.snippetTabstopHighlightBackground": "#0e1920", + "editor.snippetTabstopHighlightBorder": "#17232b", + "editor.snippetFinalTabstopHighlightBackground": "#0e1920", + "editor.snippetFinalTabstopHighlightBorder": "#17232b", + "minimap.findMatchHighlight": "#5998c0ee", + "minimap.errorHighlight": "#b96346ee", + "minimap.warningHighlight": "#c09159ee", + "minimapGutter.addedBackground": "#3f8d6c", + "minimapGutter.modifiedBackground": "#72c09f", + "minimapGutter.deletedBackground": "#b96346", + "minimap.background": "#1b293299" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5e7887" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#c5cdd3" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#c88da2" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#d3b692" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#be856f" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#c37455" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#72c09f" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#3f8d6c" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7068b1" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#3f848d" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#72b7c0" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#5998c0" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#b16a4e" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/noctis.json b/assets/themes/src/vscode/noctis/noctis.json new file mode 100644 index 0000000000000000000000000000000000000000..cc270fe526f10f3f1fea30464390f1d8d5a76c8e --- /dev/null +++ b/assets/themes/src/vscode/noctis/noctis.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis", + "type": "dark", + "colors": { + "selection.background": "#107684", + "descriptionForeground": "#929ea0", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#052529", + "editor.foreground": "#b2cacd", + "editorLineNumber.foreground": "#4e6b6e", + "editorLineNumber.activeForeground": "#169fb1", + "editorCursor.foreground": "#85efff", + "badge.background": "#40d4e7", + "badge.foreground": "#0f1415", + "activityBar.background": "#052529", + "activityBar.dropBackground": "#929ea065", + "activityBar.foreground": "#169fb1", + "activityBar.inactiveForeground": "#169fb177", + "activityBar.border": "#0f1415", + "activityBarBadge.background": "#40d4e7", + "activityBarBadge.foreground": "#0f1415", + "activityBar.activeBackground": "#40d4e733", + "activityBar.activeBorder": "#40d4e7", + "sideBar.background": "#041d20", + "sideBar.foreground": "#a5b5b5", + "sideBar.border": "#0f1415", + "sideBar.dropBackground": "#041d20", + "sideBarTitle.foreground": "#a5b5b5", + "sideBarSectionHeader.background": "#083d44", + "sideBarSectionHeader.foreground": "#a5b5b5", + "sideBarSectionHeader.border": "#0f1415", + "statusBar.background": "#041d20", + "statusBar.foreground": "#169fb1", + "statusBar.border": "#0f1415", + "statusBar.debuggingBackground": "#041d20", + "statusBar.debuggingForeground": "#df769b50", + "statusBar.debuggingBorder": "#df769baf", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#041d20", + "statusBar.noFolderBorder": "#041d20", + "statusBarItem.activeBackground": "#19bacc45", + "statusBarItem.hoverBackground": "#062e32", + "statusBarItem.prominentBackground": "#020c0e", + "statusBarItem.prominentHoverBackground": "#00292e", + "button.background": "#099099", + "button.foreground": "#ebfdff", + "button.hoverBackground": "#0cc", + "dropdown.background": "#073940", + "dropdown.border": "#073940", + "dropdown.foreground": "#87a7ab", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#052529", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#052529", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#052529", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5f6b6d33", + "editorGroup.border": "#0f1415", + "editorGroup.dropBackground": "#5f6b6d33", + "editorGroupHeader.noTabsBackground": "#062e32", + "editorGroupHeader.tabsBackground": "#062e32", + "editorGroupHeader.tabsBorder": "#062e32", + "tab.activeBackground": "#052529", + "tab.unfocusedActiveBackground": "#0e1e20", + "tab.activeForeground": "#40d4e7", + "tab.border": "#0f1415", + "tab.inactiveBackground": "#062e32", + "tab.inactiveForeground": "#87a7ab", + "tab.unfocusedActiveForeground": "#87a7ab", + "tab.unfocusedInactiveForeground": "#87a7ab", + "tab.activeBorderTop": "#40d4e7", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#052529", + "tab.unfocusedActiveBorder": "#052529", + "tab.unfocusedHoverBackground": "#169fb121", + "textBlockQuote.background": "#041d20", + "textBlockQuote.border": "#16a3b6", + "textCodeBlock.background": "#041d20", + "textLink.activeForeground": "#40d4e7", + "textLink.foreground": "#40d4e7", + "textPreformat.foreground": "#e4b781", + "textSeparator.foreground": "#041d20", + "walkThrough.embeddedEditorBackground": "#041d20", + "welcomePage.buttonBackground": "#041d20", + "welcomePage.buttonHoverBackground": "#003742", + "input.background": "#052529", + "input.border": "#073940", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#87a7ab", + "inputOption.activeBorder": "#169fb1", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#073940", + "editorWidget.border": "#0f1415", + "editorHoverWidget.background": "#073940", + "editorHoverWidget.border": "#0f1415", + "editorSuggestWidget.background": "#073940", + "editorSuggestWidget.border": "#0f1415", + "editorSuggestWidget.foreground": "#87a7ab", + "editorSuggestWidget.highlightForeground": "#40d4e7", + "editorSuggestWidget.selectedBackground": "#0e6671", + "editorGutter.background": "#052529", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#e0c184", + "editor.selectionBackground": "#169fb144", + "editor.selectionHighlightBackground": "#49ace944", + "editor.inactiveSelectionBackground": "#0e657155", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a633", + "editor.hoverHighlightBackground": "#169fb13f", + "editor.lineHighlightBackground": "#083d44ee", + "editor.lineHighlightBorder": "#083d44", + "editor.rangeHighlightBackground": "#083d44a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#223b3f", + "editorIndentGuide.activeBackground": "#3e6f74", + "editorBracketMatch.background": "#169fb122", + "editorBracketMatch.border": "#169fb1", + "editorRuler.foreground": "#29484c", + "editorCodeLens.foreground": "#507b95", + "terminal.ansiBlack": "#324a4d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b2cacd", + "terminal.ansiBrightBlack": "#47686c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c1d4d7", + "terminal.background": "#03191b", + "terminal.foreground": "#b2cacd", + "terminalCursor.background": "#03191b", + "terminalCursor.foreground": "#b2cacd", + "merge.border": "#05252900", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#052529", + "notificationCenter.border": "#073940", + "notificationCenterHeader.foreground": "#87a7ab", + "notificationCenterHeader.background": "#073940", + "notificationToast.border": "#073940", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#073940", + "notifications.border": "#073940", + "notificationLink.foreground": "#87a7ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#041d20", + "debugExceptionWidget.background": "#041d20", + "debugExceptionWidget.border": "#16a3b6", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#073940", + "foreground": "#b2cacd", + "panel.background": "#03191b", + "panel.border": "#0e6671", + "panelTitle.activeBorder": "#0e6671", + "panelTitle.activeForeground": "#40d4e7", + "panelTitle.inactiveForeground": "#87a7ab", + "peekView.border": "#169fb1", + "peekViewEditor.background": "#002124", + "peekViewEditor.matchHighlightBackground": "#00718079", + "peekViewEditor.matchHighlightBorder": "#007180cc", + "peekViewEditorGutter.background": "#002124", + "peekViewResult.background": "#041d20", + "peekViewResult.fileForeground": "#e4b781", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#073940", + "peekViewResult.selectionBackground": "#073940", + "peekViewResult.selectionForeground": "#87a7ab", + "peekViewTitle.background": "#041d20", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e4b781", + "progressBar.background": "#40d4e7", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#169fb1ad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#169fb162", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b858b", + "gitDecoration.conflictingResourceForeground": "#e4b781", + "pickerGroup.border": "#0e6671", + "pickerGroup.foreground": "#169fb1", + "list.activeSelectionBackground": "#0e6671", + "list.activeSelectionForeground": "#ebfdff", + "list.dropBackground": "#00404d", + "list.focusBackground": "#00404d", + "list.focusForeground": "#ebfdff", + "list.highlightForeground": "#40d4e7", + "list.hoverBackground": "#0b515b", + "list.hoverForeground": "#ebfdff", + "list.inactiveFocusBackground": "#062d32", + "list.inactiveSelectionBackground": "#07353b", + "list.inactiveSelectionForeground": "#b2cacd", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa487", + "listFilterWidget.background": "#00404d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#3e6f74", + "settings.headerForeground": "#b2cacd", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0e657188", + "settings.dropdownBackground": "#073940", + "settings.dropdownForeground": "#0cc", + "settings.dropdownBorder": "#073940", + "settings.checkboxBackground": "#073940", + "settings.checkboxForeground": "#0cc", + "settings.checkboxBorder": "#073940", + "settings.textInputBackground": "#073940", + "settings.textInputForeground": "#0cc", + "settings.textInputBorder": "#073940", + "settings.numberInputBackground": "#041d20", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#041d20", + "breadcrumb.foreground": "#87a7ab", + "breadcrumb.background": "#052529", + "breadcrumb.focusForeground": "#40d4e7", + "breadcrumb.activeSelectionForeground": "#ebfdff", + "breadcrumbPicker.background": "#073940", + "titleBar.activeBackground": "#041d20", + "titleBar.activeForeground": "#b2cacd", + "titleBar.inactiveBackground": "#041d20", + "titleBar.inactiveForeground": "#87a7ab", + "menu.background": "#073940", + "menu.foreground": "#87a7ab", + "menu.selectionBackground": "#0b515b", + "menu.selectionForeground": "#40d4e7", + "menu.selectionBorder": "#0b515b", + "menu.separatorBackground": "#40d4e7", + "menubar.selectionBackground": "#0b515b", + "menubar.selectionForeground": "#40d4e7", + "menubar.selectionBorder": "#0b515b", + "editor.snippetTabstopHighlightBackground": "#03181b", + "editor.snippetTabstopHighlightBorder": "#042124", + "editor.snippetFinalTabstopHighlightBackground": "#03181b", + "editor.snippetFinalTabstopHighlightBorder": "#042124", + "minimap.findMatchHighlight": "#49d6e9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#05252999" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5b858b" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#b2cacd" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/obscuro.json b/assets/themes/src/vscode/noctis/obscuro.json new file mode 100644 index 0000000000000000000000000000000000000000..26d1a02de84a4bad2056444302b5e9d83faa8312 --- /dev/null +++ b/assets/themes/src/vscode/noctis/obscuro.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Obscuro", + "type": "dark", + "colors": { + "selection.background": "#107684", + "descriptionForeground": "#929ea0", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#031417", + "editor.foreground": "#b2cacd", + "editorLineNumber.foreground": "#4e6b6e", + "editorLineNumber.activeForeground": "#169fb1", + "editorCursor.foreground": "#85efff", + "badge.background": "#169fb1", + "badge.foreground": "#0f1415", + "activityBar.background": "#031417", + "activityBar.dropBackground": "#929ea065", + "activityBar.border": "#0f1415", + "activityBar.foreground": "#169fb1", + "activityBar.inactiveForeground": "#169fb177", + "activityBarBadge.background": "#169fb1", + "activityBarBadge.foreground": "#0f1415", + "activityBar.activeBackground": "#40d4e733", + "activityBar.activeBorder": "#40d4e7", + "sideBar.background": "#021012", + "sideBar.dropBackground": "#042124", + "sideBar.border": "#0f1415", + "sideBar.foreground": "#a5b5b5", + "sideBarSectionHeader.background": "#083d44", + "sideBarSectionHeader.foreground": "#a5b5b5", + "sideBarTitle.foreground": "#a5b5b5", + "sideBarSectionHeader.border": "#0f1415", + "statusBar.foreground": "#169fb1", + "statusBar.background": "#031417", + "statusBar.border": "#0f1415", + "statusBar.debuggingBackground": "#031417", + "statusBar.debuggingForeground": "#df769b50", + "statusBar.debuggingBorder": "#df769baf", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#031417", + "statusBar.noFolderBorder": "#031417", + "statusBarItem.activeBackground": "#19bacc45", + "statusBarItem.hoverBackground": "#062e32", + "statusBarItem.prominentBackground": "#020c0e", + "statusBarItem.prominentHoverBackground": "#00292e", + "button.background": "#099099", + "button.foreground": "#ebfdff", + "button.hoverBackground": "#0cc", + "dropdown.background": "#031417", + "dropdown.border": "#031417", + "dropdown.foreground": "#87a7ab", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#031417", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#031417", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#031417", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5f6b6d33", + "editorGroup.border": "#0f1415", + "editorGroup.dropBackground": "#5f6b6d33", + "editorGroupHeader.noTabsBackground": "#062e32", + "editorGroupHeader.tabsBackground": "#062e32", + "editorGroupHeader.tabsBorder": "#062e32", + "tab.activeBackground": "#031417", + "tab.unfocusedActiveBackground": "#0b1819", + "tab.activeForeground": "#ebfdff", + "tab.border": "#0f1415", + "tab.inactiveBackground": "#062e32", + "tab.inactiveForeground": "#87a7ab", + "tab.unfocusedActiveForeground": "#87a7ab", + "tab.unfocusedInactiveForeground": "#87a7ab", + "tab.activeBorderTop": "#40d4e7", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#031417", + "tab.unfocusedActiveBorder": "#031417", + "tab.unfocusedHoverBackground": "#169fb121", + "textBlockQuote.background": "#031417", + "textBlockQuote.border": "#16a3b6", + "textCodeBlock.background": "#031417", + "textLink.activeForeground": "#40d4e7", + "textLink.foreground": "#40d4e7", + "textPreformat.foreground": "#e4b781", + "textSeparator.foreground": "#031417", + "walkThrough.embeddedEditorBackground": "#031417", + "welcomePage.buttonBackground": "#052529", + "welcomePage.buttonHoverBackground": "#062e32", + "input.background": "#052529", + "input.border": "#083f44", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#87a7ab", + "inputOption.activeBorder": "#169fb1", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#062e32", + "editorWidget.border": "#0f1415", + "editorHoverWidget.background": "#062e32", + "editorHoverWidget.border": "#0f1415", + "editorSuggestWidget.background": "#062e32", + "editorSuggestWidget.border": "#0f1415", + "editorSuggestWidget.foreground": "#87a7ab", + "editorSuggestWidget.highlightForeground": "#40d4e7", + "editorSuggestWidget.selectedBackground": "#0e6671", + "editorGutter.background": "#031417", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#e4b781", + "editor.selectionBackground": "#169fb144", + "editor.selectionHighlightBackground": "#49ace944", + "editor.inactiveSelectionBackground": "#0e657155", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a633", + "editor.hoverHighlightBackground": "#169fb13f", + "editor.lineHighlightBackground": "#083d44ee", + "editor.lineHighlightBorder": "#083d44", + "editor.rangeHighlightBackground": "#083d44a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#223b3f", + "editorIndentGuide.activeBackground": "#3e6f74", + "editorBracketMatch.background": "#169fb122", + "editorBracketMatch.border": "#169fb1", + "editorRuler.foreground": "#243f42", + "editorCodeLens.foreground": "#507b95", + "terminal.ansiBlack": "#324a4d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b2cacd", + "terminal.ansiBrightBlack": "#47686c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c1d4d7", + "terminal.background": "#020c0e", + "terminal.foreground": "#b2cacd", + "terminalCursor.background": "#020c0e", + "terminalCursor.foreground": "#b2cacd", + "merge.border": "#03141700", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#031417", + "notificationCenter.border": "#062e32", + "notificationCenterHeader.foreground": "#87a7ab", + "notificationCenterHeader.background": "#062e32", + "notificationToast.border": "#062e32", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#062e32", + "notifications.border": "#062e32", + "notificationLink.foreground": "#87a7ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#031417", + "debugExceptionWidget.background": "#031417", + "debugExceptionWidget.border": "#16a3b6", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#062e32", + "foreground": "#b2cacd", + "panel.background": "#020c0e", + "panel.border": "#0e6671", + "panelTitle.activeBorder": "#0e6671", + "panelTitle.activeForeground": "#40d4e7", + "panelTitle.inactiveForeground": "#87a7ab", + "peekView.border": "#169fb1", + "peekViewEditor.background": "#002124", + "peekViewEditor.matchHighlightBackground": "#00718079", + "peekViewEditor.matchHighlightBorder": "#007180cc", + "peekViewEditorGutter.background": "#002124", + "peekViewResult.background": "#031417", + "peekViewResult.fileForeground": "#e4b781", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#062e32", + "peekViewResult.selectionBackground": "#062e32", + "peekViewResult.selectionForeground": "#87a7ab", + "peekViewTitle.background": "#031417", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e4b781", + "progressBar.background": "#40d4e7", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#169fb1ad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#169fb162", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#647e82", + "gitDecoration.conflictingResourceForeground": "#e4b781", + "pickerGroup.border": "#0e6671", + "pickerGroup.foreground": "#169fb1", + "list.activeSelectionBackground": "#0e6671", + "list.activeSelectionForeground": "#ebfdff", + "list.dropBackground": "#00404d", + "list.focusBackground": "#00404d", + "list.focusForeground": "#ebfdff", + "list.highlightForeground": "#40d4e7", + "list.hoverBackground": "#0b515b", + "list.hoverForeground": "#ebfdff", + "list.inactiveFocusBackground": "#062d32", + "list.inactiveSelectionBackground": "#07353b", + "list.inactiveSelectionForeground": "#b2cacd", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa487", + "listFilterWidget.background": "#00404d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#3e6f74", + "settings.headerForeground": "#b2cacd", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0e657188", + "settings.dropdownBackground": "#073940", + "settings.dropdownForeground": "#0cc", + "settings.dropdownBorder": "#073940", + "settings.checkboxBackground": "#073940", + "settings.checkboxForeground": "#0cc", + "settings.checkboxBorder": "#073940", + "settings.textInputBackground": "#073940", + "settings.textInputForeground": "#0cc", + "settings.textInputBorder": "#073940", + "settings.numberInputBackground": "#062e32", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#062e32", + "breadcrumb.foreground": "#87a7ab", + "breadcrumb.background": "#031417", + "breadcrumb.focusForeground": "#40d4e7", + "breadcrumb.activeSelectionForeground": "#ebfdff", + "breadcrumbPicker.background": "#062e32", + "titleBar.activeBackground": "#031417", + "titleBar.activeForeground": "#b2cacd", + "titleBar.inactiveBackground": "#031417", + "titleBar.inactiveForeground": "#87a7ab", + "menu.background": "#062e32", + "menu.foreground": "#87a7ab", + "menu.selectionBackground": "#0b515b", + "menu.selectionForeground": "#40d4e7", + "menu.selectionBorder": "#0b515b", + "menu.separatorBackground": "#40d4e7", + "menubar.selectionBackground": "#0b515b", + "menubar.selectionForeground": "#40d4e7", + "menubar.selectionBorder": "#0b515b", + "editor.snippetTabstopHighlightBackground": "#06292d", + "editor.snippetTabstopHighlightBorder": "#073136", + "editor.snippetFinalTabstopHighlightBackground": "#06292d", + "editor.snippetFinalTabstopHighlightBorder": "#073136", + "minimap.findMatchHighlight": "#49d6e9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#03141799" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5b858b" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#b2cacd" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/sereno.json b/assets/themes/src/vscode/noctis/sereno.json new file mode 100644 index 0000000000000000000000000000000000000000..05768aff356e40078973f34650143e9089e1971d --- /dev/null +++ b/assets/themes/src/vscode/noctis/sereno.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Sereno", + "type": "dark", + "colors": { + "selection.background": "#107684", + "descriptionForeground": "#929ea0", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#062e32", + "editor.foreground": "#b2cacd", + "editorLineNumber.foreground": "#4e6b6e", + "editorLineNumber.activeForeground": "#169fb1", + "editorCursor.foreground": "#85efff", + "badge.background": "#40d4e7", + "badge.foreground": "#0f1415", + "activityBar.background": "#062e32", + "activityBar.dropBackground": "#929ea065", + "activityBar.border": "#0f1415", + "activityBar.foreground": "#169fb1", + "activityBar.inactiveForeground": "#169fb177", + "activityBarBadge.background": "#40d4e7", + "activityBarBadge.foreground": "#0f1415", + "activityBar.activeBackground": "#40d4e733", + "activityBar.activeBorder": "#40d4e7", + "sideBar.background": "#052629", + "sideBar.dropBackground": "#052629dd", + "sideBar.border": "#0f1415", + "sideBar.foreground": "#a5b5b5", + "sideBarSectionHeader.background": "#083d44", + "sideBarSectionHeader.foreground": "#a5b5b5", + "sideBarSectionHeader.border": "#0f1415", + "sideBarTitle.foreground": "#a5b5b5", + "statusBar.background": "#052629", + "statusBar.foreground": "#169fb1", + "statusBar.border": "#0f1415", + "statusBar.debuggingBackground": "#052629", + "statusBar.debuggingForeground": "#df769b50", + "statusBar.debuggingBorder": "#df769baf", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#052629", + "statusBar.noFolderBorder": "#052629", + "statusBarItem.activeBackground": "#19bacc45", + "statusBarItem.hoverBackground": "#07373b", + "statusBarItem.prominentBackground": "#03191b", + "statusBarItem.prominentHoverBackground": "#003338", + "button.background": "#099099", + "button.foreground": "#ebfdff", + "button.hoverBackground": "#0cc", + "dropdown.background": "#083f44", + "dropdown.border": "#083f44", + "dropdown.foreground": "#87a7ab", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#062e32", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#062e32", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#062e32", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5f6b6d33", + "editorGroup.border": "#0f1415", + "editorGroup.dropBackground": "#5f6b6d33", + "editorGroupHeader.noTabsBackground": "#062e32", + "editorGroupHeader.tabsBackground": "#062e32", + "editorGroupHeader.tabsBorder": "#062e32", + "tab.activeBackground": "#062e32", + "tab.unfocusedActiveBackground": "#112527", + "tab.activeForeground": "#40d4e7", + "tab.border": "#0f1415", + "tab.inactiveBackground": "#062e32", + "tab.inactiveForeground": "#87a7ab", + "tab.unfocusedActiveForeground": "#87a7ab", + "tab.unfocusedInactiveForeground": "#87a7ab", + "tab.activeBorderTop": "#40d4e7", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#062e32", + "tab.unfocusedActiveBorder": "#062e32", + "tab.unfocusedHoverBackground": "#169fb121", + "textBlockQuote.background": "#052629", + "textBlockQuote.border": "#16a3b6", + "textCodeBlock.background": "#052629", + "textLink.activeForeground": "#40d4e7", + "textLink.foreground": "#40d4e7", + "textPreformat.foreground": "#e4b781", + "textSeparator.foreground": "#052629", + "walkThrough.embeddedEditorBackground": "#052629", + "welcomePage.buttonBackground": "#052629", + "welcomePage.buttonHoverBackground": "#003742", + "input.background": "#062e32", + "input.border": "#083d44", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#87a7ab", + "inputOption.activeBorder": "#169fb1", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#083d44", + "editorWidget.border": "#0f1415", + "editorHoverWidget.background": "#083d44", + "editorHoverWidget.border": "#0f1415", + "editorSuggestWidget.background": "#083d44", + "editorSuggestWidget.border": "#0f1415", + "editorSuggestWidget.foreground": "#87a7ab", + "editorSuggestWidget.highlightForeground": "#40d4e7", + "editorSuggestWidget.selectedBackground": "#0e6671", + "editorGutter.background": "#062e32", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#e0c184", + "editor.selectionBackground": "#169fb144", + "editor.selectionHighlightBackground": "#49ace944", + "editor.inactiveSelectionBackground": "#0e657155", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a633", + "editor.hoverHighlightBackground": "#169fb13f", + "editor.lineHighlightBackground": "#083d44ee", + "editor.lineHighlightBorder": "#083d44", + "editor.rangeHighlightBackground": "#083d44a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#223b3f", + "editorIndentGuide.activeBackground": "#3e6f74", + "editorBracketMatch.background": "#169fb122", + "editorBracketMatch.border": "#169fb1", + "editorRuler.foreground": "#29484c", + "editorCodeLens.foreground": "#507b95", + "terminal.ansiBlack": "#324a4d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b2cacd", + "terminal.ansiBrightBlack": "#47686c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c1d4d7", + "terminal.background": "#041d20", + "terminal.foreground": "#b2cacd", + "terminalCursor.background": "#041d20", + "terminalCursor.foreground": "#b2cacd", + "merge.border": "#062e3200", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#062e32", + "notificationCenter.border": "#083d44", + "notificationCenterHeader.foreground": "#87a7ab", + "notificationCenterHeader.background": "#083d44", + "notificationToast.border": "#083d44", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#083d44", + "notifications.border": "#083d44", + "notificationLink.foreground": "#87a7ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#052629", + "debugExceptionWidget.background": "#052629", + "debugExceptionWidget.border": "#16a3b6", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#083d44", + "foreground": "#b2cacd", + "panel.background": "#041d20", + "panel.border": "#169fb1", + "panelTitle.activeBorder": "#169fb1", + "panelTitle.activeForeground": "#40d4e7", + "panelTitle.inactiveForeground": "#87a7ab", + "peekView.border": "#169fb1", + "peekViewEditor.background": "#002124", + "peekViewEditor.matchHighlightBackground": "#00718079", + "peekViewEditor.matchHighlightBorder": "#007180cc", + "peekViewEditorGutter.background": "#002124", + "peekViewResult.background": "#052629", + "peekViewResult.fileForeground": "#e4b781", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#083d44", + "peekViewResult.selectionBackground": "#083d44", + "peekViewResult.selectionForeground": "#87a7ab", + "peekViewTitle.background": "#052629", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e4b781", + "progressBar.background": "#40d4e7", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#169fb1ad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#169fb162", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#647e82", + "gitDecoration.conflictingResourceForeground": "#e4b781", + "pickerGroup.border": "#0e6671", + "pickerGroup.foreground": "#169fb1", + "list.activeSelectionBackground": "#0e6671", + "list.activeSelectionForeground": "#ebfdff", + "list.dropBackground": "#00404d", + "list.focusBackground": "#00404d", + "list.focusForeground": "#ebfdff", + "list.highlightForeground": "#40d4e7", + "list.hoverBackground": "#0b515b", + "list.hoverForeground": "#ebfdff", + "list.inactiveFocusBackground": "#062d32", + "list.inactiveSelectionBackground": "#07353b", + "list.inactiveSelectionForeground": "#b2cacd", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa487", + "listFilterWidget.background": "#00404d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#3e6f74", + "settings.headerForeground": "#b2cacd", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0e657188", + "settings.dropdownBackground": "#083d44", + "settings.dropdownForeground": "#0cc", + "settings.dropdownBorder": "#083d44", + "settings.checkboxBackground": "#083d44", + "settings.checkboxForeground": "#0cc", + "settings.checkboxBorder": "#083d44", + "settings.textInputBackground": "#083d44", + "settings.textInputForeground": "#0cc", + "settings.textInputBorder": "#083d44", + "settings.numberInputBackground": "#052629", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#052629", + "breadcrumb.foreground": "#87a7ab", + "breadcrumb.background": "#062e32", + "breadcrumb.focusForeground": "#40d4e7", + "breadcrumb.activeSelectionForeground": "#ebfdff", + "breadcrumbPicker.background": "#083d44", + "titleBar.activeBackground": "#052629", + "titleBar.activeForeground": "#b2cacd", + "titleBar.inactiveBackground": "#052629", + "titleBar.inactiveForeground": "#87a7ab", + "menu.background": "#083d44", + "menu.foreground": "#87a7ab", + "menu.selectionBackground": "#0b515b", + "menu.selectionForeground": "#40d4e7", + "menu.selectionBorder": "#0b515b", + "menu.separatorBackground": "#40d4e7", + "menubar.selectionBackground": "#0b515b", + "menubar.selectionForeground": "#40d4e7", + "menubar.selectionBorder": "#0b515b", + "editor.snippetTabstopHighlightBackground": "#052629", + "editor.snippetTabstopHighlightBorder": "#062f32", + "editor.snippetFinalTabstopHighlightBackground": "#052629", + "editor.snippetFinalTabstopHighlightBorder": "#062f32", + "minimap.findMatchHighlight": "#49d6e9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#062e3299" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5b858b" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#b2cacd" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/uva.json b/assets/themes/src/vscode/noctis/uva.json new file mode 100644 index 0000000000000000000000000000000000000000..6ccbff372b8a965d9451279380f07f069b8f8f67 --- /dev/null +++ b/assets/themes/src/vscode/noctis/uva.json @@ -0,0 +1,1112 @@ +{ + "name": "Noctis Uva", + "type": "dark", + "colors": { + "selection.background": "#7a70c277", + "descriptionForeground": "#7a70c2", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#292640", + "editor.foreground": "#c5c2d6", + "editorLineNumber.foreground": "#5c5973", + "editorLineNumber.activeForeground": "#7a70c2", + "editorCursor.foreground": "#bbb3ff", + "badge.background": "#998ef1", + "badge.foreground": "#171523", + "activityBar.background": "#292640", + "activityBar.dropBackground": "#7a70c265", + "activityBar.border": "#171523", + "activityBar.foreground": "#6e67a8", + "activityBar.inactiveForeground": "#6e67a877", + "activityBarBadge.background": "#998ef1", + "activityBarBadge.foreground": "#171523", + "activityBar.activeBackground": "#998ef133", + "activityBar.activeBorder": "#998ef1", + "sideBar.background": "#232136", + "sideBar.dropBackground": "#232136", + "sideBar.border": "#171523", + "sideBar.foreground": "#a9a5c0", + "sideBarSectionHeader.background": "#2f2c49", + "sideBarSectionHeader.foreground": "#a9a5c0", + "sideBarTitle.foreground": "#a9a5c0", + "sideBarSectionHeader.border": "#171523", + "statusBar.foreground": "#6e67a8", + "statusBar.background": "#292640", + "statusBar.border": "#171523", + "statusBar.debuggingBackground": "#292640", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#8787ab", + "statusBar.noFolderBackground": "#292640", + "statusBar.noFolderBorder": "#292640", + "statusBarItem.activeBackground": "#564d9977", + "statusBarItem.hoverBackground": "#363253", + "statusBarItem.prominentBackground": "#1f1d30", + "statusBarItem.prominentHoverBackground": "#1b1641", + "button.background": "#007f99", + "button.foreground": "#edebff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#2f2c49", + "dropdown.border": "#2f2c49", + "dropdown.foreground": "#7a70c2", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#292640", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#292640", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#292640", + "editorInfo.foreground": "#998ef1", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5c597333", + "editorGroup.border": "#171523", + "editorGroup.dropBackground": "#5c597333", + "editorGroupHeader.noTabsBackground": "#2f2c49", + "editorGroupHeader.tabsBackground": "#2f2c49", + "editorGroupHeader.tabsBorder": "#2f2c49", + "tab.activeBackground": "#292640", + "tab.unfocusedActiveBackground": "#2d2b3b", + "tab.activeForeground": "#998ef1", + "tab.border": "#171523", + "tab.inactiveBackground": "#2f2c49", + "tab.inactiveForeground": "#a9a5c0", + "tab.unfocusedActiveForeground": "#a9a5c0", + "tab.unfocusedInactiveForeground": "#a9a5c0", + "tab.activeBorderTop": "#998ef1", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#292640", + "tab.unfocusedActiveBorder": "#292640", + "tab.unfocusedHoverBackground": "#998ef121", + "textBlockQuote.background": "#292640", + "textBlockQuote.border": "#6e67a8", + "textCodeBlock.background": "#292640", + "textLink.activeForeground": "#998ef1", + "textLink.foreground": "#998ef1", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#292640", + "walkThrough.embeddedEditorBackground": "#292640", + "welcomePage.buttonBackground": "#1f1d30", + "welcomePage.buttonHoverBackground": "#2f2c49", + "input.background": "#1f1d30", + "input.border": "#27274e", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#8787ab", + "inputOption.activeBorder": "#6e67a8", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#2f2c49", + "editorWidget.border": "#171523", + "editorHoverWidget.background": "#322d52", + "editorHoverWidget.border": "#171523", + "editorSuggestWidget.background": "#322d52", + "editorSuggestWidget.border": "#171523", + "editorSuggestWidget.foreground": "#a9a5c0", + "editorSuggestWidget.highlightForeground": "#998ef1", + "editorSuggestWidget.selectedBackground": "#453f73", + "editorGutter.background": "#292640", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#6e67a855", + "editor.selectionHighlightBackground": "#49ace933", + "editor.inactiveSelectionBackground": "#6e67a833", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#6e67a83f", + "editor.lineHighlightBackground": "#35305aee", + "editor.lineHighlightBorder": "#35305a", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#383450", + "editorIndentGuide.activeBackground": "#595289", + "editorBracketMatch.background": "#6e67a822", + "editorBracketMatch.border": "#6e67a8", + "editorRuler.foreground": "#473856", + "editorCodeLens.foreground": "#776284", + "terminal.ansiBlack": "#302f3d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b6b3cc", + "terminal.ansiBrightBlack": "#504e65", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c5c2d6", + "terminal.background": "#1f1d30", + "terminal.foreground": "#c5c2d6", + "terminalCursor.background": "#1f1d30", + "terminalCursor.foreground": "#c5c2d6", + "merge.border": "#29264000", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#292640", + "notificationCenter.border": "#2f2c49", + "notificationCenterHeader.foreground": "#8787ab", + "notificationCenterHeader.background": "#2f2c49", + "notificationToast.border": "#2f2c49", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#2f2c49", + "notifications.border": "#2f2c49", + "notificationLink.foreground": "#8787ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#292640", + "debugExceptionWidget.background": "#292640", + "debugExceptionWidget.border": "#6e67a8", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#2f2c49", + "foreground": "#c5c2d6", + "panel.background": "#1f1d30", + "panel.border": "#6e67a8", + "panelTitle.activeBorder": "#6e67a8", + "panelTitle.activeForeground": "#998ef1", + "panelTitle.inactiveForeground": "#716c93", + "peekView.border": "#6e67a8", + "peekViewEditor.background": "#201d3a", + "peekViewEditor.matchHighlightBackground": "#4c448899", + "peekViewEditorGutter.background": "#201d3a", + "peekViewResult.background": "#221f3d", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#8787ab", + "peekViewResult.matchHighlightBackground": "#343050", + "peekViewResult.selectionBackground": "#343050", + "peekViewResult.selectionForeground": "#8787ab", + "peekViewTitle.background": "#221f3d", + "peekViewTitleDescription.foreground": "#8787ab", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#998ef1", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#7060eb77", + "scrollbarSlider.background": "#7060eb33", + "scrollbarSlider.hoverBackground": "#7060eb55", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#6e67a8", + "pickerGroup.foreground": "#998ef1", + "list.activeSelectionBackground": "#332e5c", + "list.activeSelectionForeground": "#edebff", + "list.dropBackground": "#202040", + "list.focusBackground": "#3a3a78", + "list.focusForeground": "#edebff", + "list.highlightForeground": "#998ef1", + "list.hoverBackground": "#383866", + "list.hoverForeground": "#edebff", + "list.inactiveFocusBackground": "#2b2843", + "list.inactiveSelectionBackground": "#2f2c49", + "list.inactiveSelectionForeground": "#c5c2d6", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#202040", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#5c5973", + "settings.headerForeground": "#c5c2d6", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#49408c77", + "settings.dropdownBackground": "#2f2c49", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#2f2c49", + "settings.checkboxBackground": "#2f2c49", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#2f2c49", + "settings.textInputBackground": "#2f2c49", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#2f2c49", + "settings.numberInputBackground": "#1f1d30", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#1f1d30", + "breadcrumb.foreground": "#a9a5c0", + "breadcrumb.background": "#292640", + "breadcrumb.focusForeground": "#998ef1", + "breadcrumb.activeSelectionForeground": "#edebff", + "breadcrumbPicker.background": "#2f2c49", + "titleBar.activeBackground": "#292640", + "titleBar.activeForeground": "#c5c2d6", + "titleBar.inactiveBackground": "#292640", + "titleBar.inactiveForeground": "#a9a5c0", + "menu.background": "#2f2c49", + "menu.foreground": "#a9a5c0", + "menu.selectionBackground": "#3a3a78", + "menu.selectionForeground": "#998ef1", + "menu.selectionBorder": "#3a3a78", + "menu.separatorBackground": "#998ef1", + "menubar.selectionBackground": "#3a3a78", + "menubar.selectionForeground": "#998ef1", + "menubar.selectionBorder": "#3a3a78", + "editor.snippetTabstopHighlightBackground": "#211f33", + "editor.snippetTabstopHighlightBorder": "#2b2843", + "editor.snippetFinalTabstopHighlightBackground": "#211f33", + "editor.snippetFinalTabstopHighlightBorder": "#2b2843", + "minimap.findMatchHighlight": "#998ef1ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#29264099" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#716c93" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#c5c2d6" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/viola.json b/assets/themes/src/vscode/noctis/viola.json new file mode 100644 index 0000000000000000000000000000000000000000..4d474ad31173c6e8e5888faa44e501cbc0e95aaa --- /dev/null +++ b/assets/themes/src/vscode/noctis/viola.json @@ -0,0 +1,1112 @@ +{ + "name": "Noctis Viola", + "type": "dark", + "colors": { + "selection.background": "#bf8ef166", + "descriptionForeground": "#996bc7", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#30243d", + "editor.foreground": "#ccbfd9", + "editorLineNumber.foreground": "#665973", + "editorLineNumber.activeForeground": "#996bc7", + "editorCursor.foreground": "#d9b3ff", + "badge.background": "#bf8ef1", + "badge.foreground": "#1c1226", + "activityBar.background": "#30243d", + "activityBar.dropBackground": "#996bc765", + "activityBar.border": "#1c1226", + "activityBar.foreground": "#8767a8", + "activityBar.inactiveForeground": "#8767a877", + "activityBarBadge.background": "#bf8ef1", + "activityBarBadge.foreground": "#1c1226", + "activityBar.activeBackground": "#bf8ef133", + "activityBar.activeBorder": "#bf8ef1", + "sideBar.background": "#2b2136", + "sideBar.dropBackground": "#2b2136", + "sideBar.border": "#1c1226", + "sideBar.foreground": "#b3a5c0", + "sideBarSectionHeader.background": "#3d2e4d", + "sideBarSectionHeader.foreground": "#b3a5c0", + "sideBarTitle.foreground": "#b3a5c0", + "sideBarSectionHeader.border": "#1c1226", + "statusBar.foreground": "#8767a8", + "statusBar.background": "#30243d", + "statusBar.border": "#1c1226", + "statusBar.debuggingBackground": "#30243d", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#9987ab", + "statusBar.noFolderBackground": "#30243d", + "statusBar.noFolderBorder": "#30243d", + "statusBarItem.activeBackground": "#734b9b88", + "statusBarItem.hoverBackground": "#422b5a", + "statusBarItem.prominentBackground": "#21162d", + "statusBarItem.prominentHoverBackground": "#2b1145", + "button.background": "#007f99", + "button.foreground": "#edebff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#3d2e4d", + "dropdown.border": "#3d2e4d", + "dropdown.foreground": "#996bc7", + "editorMarkerNavigation.background": "#4c326729", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#30243d", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#30243d", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#30243d", + "editorInfo.foreground": "#bf8ef1", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#66597333", + "editorGroup.border": "#1c1226", + "editorGroup.dropBackground": "#66597333", + "editorGroupHeader.noTabsBackground": "#3d2e4d", + "editorGroupHeader.tabsBackground": "#3d2e4d", + "editorGroupHeader.tabsBorder": "#3d2e4d", + "tab.activeBackground": "#30243d", + "tab.unfocusedActiveBackground": "#302b36", + "tab.activeForeground": "#bf8ef1", + "tab.border": "#1c1226", + "tab.inactiveBackground": "#3d2e4d", + "tab.inactiveForeground": "#b3a5c0", + "tab.unfocusedActiveForeground": "#b3a5c0", + "tab.unfocusedInactiveForeground": "#b3a5c0", + "tab.activeBorderTop": "#bf8ef1", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#30243d", + "tab.unfocusedActiveBorder": "#30243d", + "tab.unfocusedHoverBackground": "#996bc721", + "textBlockQuote.background": "#30243d", + "textBlockQuote.border": "#8767a8", + "textCodeBlock.background": "#30243d", + "textLink.activeForeground": "#bf8ef1", + "textLink.foreground": "#bf8ef1", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#30243d", + "walkThrough.embeddedEditorBackground": "#30243d", + "welcomePage.buttonBackground": "#291d35", + "welcomePage.buttonHoverBackground": "#3d2e4d", + "input.background": "#291d35", + "input.border": "#402956", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#9987ab", + "inputOption.activeBorder": "#8767a8", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#3d2e4d", + "editorWidget.border": "#1c1226", + "editorHoverWidget.background": "#462d5d", + "editorHoverWidget.border": "#1c1226", + "editorSuggestWidget.background": "#462d5d", + "editorSuggestWidget.border": "#1c1226", + "editorSuggestWidget.foreground": "#b3a5c0", + "editorSuggestWidget.highlightForeground": "#bf8ef1", + "editorSuggestWidget.selectedBackground": "#593a78", + "editorGutter.background": "#30243d", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#8767a855", + "editor.selectionHighlightBackground": "#49ace933", + "editor.inactiveSelectionBackground": "#8767a833", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#8767a83f", + "editor.lineHighlightBackground": "#402d53ee", + "editor.lineHighlightBorder": "#402d53", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#422e56", + "editorIndentGuide.activeBackground": "#595289", + "editorBracketMatch.background": "#8767a822", + "editorBracketMatch.border": "#8767a8", + "editorRuler.foreground": "#473856", + "editorCodeLens.foreground": "#776284", + "terminal.ansiBlack": "#362f3d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#bfafcf", + "terminal.ansiBrightBlack": "#594e65", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#ccbfd9", + "terminal.background": "#291d35", + "terminal.foreground": "#ccbfd9", + "terminalCursor.background": "#291d35", + "terminalCursor.foreground": "#ccbfd9", + "merge.border": "#30243d00", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#30243d", + "notificationCenter.border": "#3d2e4d", + "notificationCenterHeader.foreground": "#9987ab", + "notificationCenterHeader.background": "#3d2e4d", + "notificationToast.border": "#3d2e4d", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#3d2e4d", + "notifications.border": "#3d2e4d", + "notificationLink.foreground": "#9987ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#30243d", + "debugExceptionWidget.background": "#30243d", + "debugExceptionWidget.border": "#8767a8", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#3d2e4d", + "foreground": "#ccbfd9", + "panel.background": "#291d35", + "panel.border": "#8767a8", + "panelTitle.activeBorder": "#8767a8", + "panelTitle.activeForeground": "#bf8ef1", + "panelTitle.inactiveForeground": "#725b8b", + "peekView.border": "#8767a8", + "peekViewEditor.background": "#2b1d3a", + "peekViewEditor.matchHighlightBackground": "#63438499", + "peekViewEditorGutter.background": "#2b1d3a", + "peekViewResult.background": "#2e1f3d", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#9987ab", + "peekViewResult.matchHighlightBackground": "#343050", + "peekViewResult.selectionBackground": "#343050", + "peekViewResult.selectionForeground": "#9987ab", + "peekViewTitle.background": "#2e1f3d", + "peekViewTitleDescription.foreground": "#9987ab", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#bf8ef1", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#a660eb77", + "scrollbarSlider.background": "#a660eb33", + "scrollbarSlider.hoverBackground": "#a660eb55", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#8767a8", + "pickerGroup.foreground": "#bf8ef1", + "list.activeSelectionBackground": "#472e60", + "list.activeSelectionForeground": "#edebff", + "list.dropBackground": "#302040", + "list.focusBackground": "#593a78", + "list.focusForeground": "#edebff", + "list.highlightForeground": "#bf8ef1", + "list.hoverBackground": "#6a448d", + "list.hoverForeground": "#edebff", + "list.inactiveFocusBackground": "#362546", + "list.inactiveSelectionBackground": "#3d2e4d", + "list.inactiveSelectionForeground": "#ccbfd9", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#302040", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#665973", + "settings.headerForeground": "#ccbfd9", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#66408c77", + "settings.dropdownBackground": "#3d2e4d", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#3d2e4d", + "settings.checkboxBackground": "#3d2e4d", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#3d2e4d", + "settings.textInputBackground": "#3d2e4d", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#3d2e4d", + "settings.numberInputBackground": "#291d35", + "settings.numberInputForeground": "#a660eb", + "settings.numberInputBorder": "#291d35", + "breadcrumb.foreground": "#b3a5c0", + "breadcrumb.background": "#30243d", + "breadcrumb.focusForeground": "#bf8ef1", + "breadcrumb.activeSelectionForeground": "#edebff", + "breadcrumbPicker.background": "#3d2e4d", + "titleBar.activeBackground": "#30243d", + "titleBar.activeForeground": "#ccbfd9", + "titleBar.inactiveBackground": "#30243d", + "titleBar.inactiveForeground": "#b3a5c0", + "menu.background": "#3d2e4d", + "menu.foreground": "#b3a5c0", + "menu.selectionBackground": "#593a78", + "menu.selectionForeground": "#bf8ef1", + "menu.selectionBorder": "#593a78", + "menu.separatorBackground": "#bf8ef1", + "menubar.selectionBackground": "#593a78", + "menubar.selectionForeground": "#bf8ef1", + "menubar.selectionBorder": "#593a78", + "editor.snippetTabstopHighlightBackground": "#21162d", + "editor.snippetTabstopHighlightBorder": "#30243d", + "editor.snippetFinalTabstopHighlightBackground": "#21162d", + "editor.snippetFinalTabstopHighlightBorder": "#30243d", + "minimap.findMatchHighlight": "#bf8ef1aa", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#30243d99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#7f659a" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#ccbfd9" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/nord/LICENSE b/assets/themes/src/vscode/nord/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..996f8fb61226844c6bbd2167a8b1a118be10609f --- /dev/null +++ b/assets/themes/src/vscode/nord/LICENSE @@ -0,0 +1,21 @@ +MIT License (MIT) + +Copyright (c) 2016-present Sven Greb (https://www.svengreb.de) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/nord/family.json b/assets/themes/src/vscode/nord/family.json new file mode 100644 index 0000000000000000000000000000000000000000..eb0e94d202eefb58d95e20c933e230d40492bb30 --- /dev/null +++ b/assets/themes/src/vscode/nord/family.json @@ -0,0 +1,11 @@ +{ + "name": "Nord", + "author": "Sven Greb (svengreb)", + "themes": [ + { + "name": "Nord", + "file_name": "nord.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/nord/nord.json b/assets/themes/src/vscode/nord/nord.json new file mode 100644 index 0000000000000000000000000000000000000000..bb300297c1863bcfe765a0692c31e7e10051deda --- /dev/null +++ b/assets/themes/src/vscode/nord/nord.json @@ -0,0 +1,1368 @@ +{ + "name": "Nord", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "focusBorder": "#3b4252", + "foreground": "#d8dee9", + "activityBar.background": "#2e3440", + "activityBar.dropBackground": "#3b4252", + "activityBar.foreground": "#d8dee9", + "activityBar.activeBorder": "#88c0d0", + "activityBar.activeBackground": "#3b4252", + "activityBarBadge.background": "#88c0d0", + "activityBarBadge.foreground": "#2e3440", + "badge.foreground": "#2e3440", + "badge.background": "#88c0d0", + "button.background": "#88c0d0ee", + "button.foreground": "#2e3440", + "button.hoverBackground": "#88c0d0", + "button.secondaryBackground": "#434c5e", + "button.secondaryForeground": "#d8dee9", + "button.secondaryHoverBackground": "#4c566a", + "charts.red": "#bf616a", + "charts.blue": "#81a1c1", + "charts.yellow": "#ebcb8b", + "charts.orange": "#d08770", + "charts.green": "#a3be8c", + "charts.purple": "#b48ead", + "charts.foreground": "#d8dee9", + "charts.lines": "#88c0d0", + "debugConsole.infoForeground": "#88c0d0", + "debugConsole.warningForeground": "#ebcb8b", + "debugConsole.errorForeground": "#bf616a", + "debugConsole.sourceForeground": "#616e88", + "debugConsoleInputIcon.foreground": "#81a1c1", + "debugExceptionWidget.background": "#4c566a", + "debugExceptionWidget.border": "#2e3440", + "debugToolBar.background": "#3b4252", + "descriptionForeground": "#d8dee9e6", + "diffEditor.insertedTextBackground": "#81a1c133", + "diffEditor.removedTextBackground": "#bf616a4d", + "dropdown.background": "#3b4252", + "dropdown.border": "#3b4252", + "dropdown.foreground": "#d8dee9", + "editorActiveLineNumber.foreground": "#d8dee9cc", + "editorCursor.foreground": "#d8dee9", + "editorHint.border": "#ebcb8b00", + "editorHint.foreground": "#ebcb8b", + "editorIndentGuide.background": "#434c5eb3", + "editorIndentGuide.activeBackground": "#4c566a", + "editorInlayHint.background": "#434c5e", + "editorInlayHint.foreground": "#d8dee9", + "editorLineNumber.foreground": "#4c566a", + "editorLineNumber.activeForeground": "#d8dee9", + "editorWhitespace.foreground": "#4c566ab3", + "editorWidget.background": "#2e3440", + "editorWidget.border": "#3b4252", + "editor.background": "#2e3440", + "editor.foreground": "#d8dee9", + "editor.hoverHighlightBackground": "#3b4252", + "editor.findMatchBackground": "#88c0d066", + "editor.findMatchHighlightBackground": "#88c0d033", + "editor.findRangeHighlightBackground": "#88c0d033", + "editor.lineHighlightBackground": "#3b4252", + "editor.lineHighlightBorder": "#3b4252", + "editor.inactiveSelectionBackground": "#434c5ecc", + "editor.inlineValuesBackground": "#4c566a", + "editor.inlineValuesForeground": "#eceff4", + "editor.selectionBackground": "#434c5ecc", + "editor.selectionHighlightBackground": "#434c5ecc", + "editor.rangeHighlightBackground": "#434c5e52", + "editor.wordHighlightBackground": "#81a1c166", + "editor.wordHighlightStrongBackground": "#81a1c199", + "editor.stackFrameHighlightBackground": "#5e81ac", + "editor.focusedStackFrameHighlightBackground": "#5e81ac", + "editorError.foreground": "#bf616a", + "editorError.border": "#bf616a00", + "editorWarning.foreground": "#ebcb8b", + "editorWarning.border": "#ebcb8b00", + "editorBracketMatch.background": "#2e344000", + "editorBracketMatch.border": "#88c0d0", + "editorBracketHighlight.foreground1": "#8fbcbb", + "editorBracketHighlight.foreground2": "#88c0d0", + "editorBracketHighlight.foreground3": "#81a1c1", + "editorBracketHighlight.foreground4": "#5e81ac", + "editorBracketHighlight.foreground5": "#8fbcbb", + "editorBracketHighlight.foreground6": "#88c0d0", + "editorBracketHighlight.unexpectedBracket.foreground": "#bf616a", + "editorCodeLens.foreground": "#4c566a", + "editorGroup.background": "#2e3440", + "editorGroup.border": "#3b425201", + "editorGroup.dropBackground": "#3b425299", + "editorGroupHeader.border": "#3b425200", + "editorGroupHeader.noTabsBackground": "#2e3440", + "editorGroupHeader.tabsBackground": "#2e3440", + "editorGroupHeader.tabsBorder": "#3b425200", + "editorGutter.background": "#2e3440", + "editorGutter.modifiedBackground": "#ebcb8b", + "editorGutter.addedBackground": "#a3be8c", + "editorGutter.deletedBackground": "#bf616a", + "editorHoverWidget.background": "#3b4252", + "editorHoverWidget.border": "#3b4252", + "editorLink.activeForeground": "#88c0d0", + "editorMarkerNavigation.background": "#5e81acc0", + "editorMarkerNavigationError.background": "#bf616ac0", + "editorMarkerNavigationWarning.background": "#ebcb8bc0", + "editorOverviewRuler.border": "#3b4252", + "editorOverviewRuler.currentContentForeground": "#3b4252", + "editorOverviewRuler.incomingContentForeground": "#3b4252", + "editorOverviewRuler.findMatchForeground": "#88c0d066", + "editorOverviewRuler.rangeHighlightForeground": "#88c0d066", + "editorOverviewRuler.selectionHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightStrongForeground": "#88c0d066", + "editorOverviewRuler.modifiedForeground": "#ebcb8b", + "editorOverviewRuler.addedForeground": "#a3be8c", + "editorOverviewRuler.deletedForeground": "#bf616a", + "editorOverviewRuler.errorForeground": "#bf616a", + "editorOverviewRuler.warningForeground": "#ebcb8b", + "editorOverviewRuler.infoForeground": "#81a1c1", + "editorRuler.foreground": "#434c5e", + "editorSuggestWidget.background": "#2e3440", + "editorSuggestWidget.border": "#3b4252", + "editorSuggestWidget.foreground": "#d8dee9", + "editorSuggestWidget.focusHighlightForeground": "#88c0d0", + "editorSuggestWidget.highlightForeground": "#88c0d0", + "editorSuggestWidget.selectedBackground": "#434c5e", + "editorSuggestWidget.selectedForeground": "#d8dee9", + "extensionButton.prominentForeground": "#d8dee9", + "extensionButton.prominentBackground": "#434c5e", + "extensionButton.prominentHoverBackground": "#4c566a", + "errorForeground": "#bf616a", + "gitDecoration.modifiedResourceForeground": "#ebcb8b", + "gitDecoration.deletedResourceForeground": "#bf616a", + "gitDecoration.untrackedResourceForeground": "#a3be8c", + "gitDecoration.ignoredResourceForeground": "#d8dee966", + "gitDecoration.conflictingResourceForeground": "#5e81ac", + "gitDecoration.submoduleResourceForeground": "#8fbcbb", + "gitDecoration.stageDeletedResourceForeground": "#bf616a", + "gitDecoration.stageModifiedResourceForeground": "#ebcb8b", + "input.background": "#3b4252", + "input.foreground": "#d8dee9", + "input.placeholderForeground": "#d8dee999", + "input.border": "#3b4252", + "inputOption.activeBackground": "#5e81ac", + "inputOption.activeBorder": "#5e81ac", + "inputOption.activeForeground": "#eceff4", + "inputValidation.errorBackground": "#bf616a", + "inputValidation.errorBorder": "#bf616a", + "inputValidation.infoBackground": "#81a1c1", + "inputValidation.infoBorder": "#81a1c1", + "inputValidation.warningBackground": "#d08770", + "inputValidation.warningBorder": "#d08770", + "keybindingLabel.background": "#4c566a", + "keybindingLabel.border": "#4c566a", + "keybindingLabel.bottomBorder": "#4c566a", + "keybindingLabel.foreground": "#d8dee9", + "list.activeSelectionBackground": "#88c0d0", + "list.activeSelectionForeground": "#2e3440", + "list.inactiveSelectionBackground": "#434c5e", + "list.inactiveSelectionForeground": "#d8dee9", + "list.inactiveFocusBackground": "#434c5ecc", + "list.hoverForeground": "#eceff4", + "list.focusForeground": "#d8dee9", + "list.focusBackground": "#88c0d099", + "list.focusHighlightForeground": "#eceff4", + "list.hoverBackground": "#3b4252", + "list.dropBackground": "#88c0d099", + "list.highlightForeground": "#88c0d0", + "list.errorForeground": "#bf616a", + "list.warningForeground": "#ebcb8b", + "merge.currentHeaderBackground": "#81a1c166", + "merge.currentContentBackground": "#81a1c14d", + "merge.incomingHeaderBackground": "#8fbcbb66", + "merge.incomingContentBackground": "#8fbcbb4d", + "merge.border": "#3b425200", + "minimap.background": "#2e3440", + "minimap.errorHighlight": "#bf616acc", + "minimap.findMatchHighlight": "#88c0d0", + "minimap.selectionHighlight": "#88c0d0cc", + "minimap.warningHighlight": "#ebcb8bcc", + "minimapGutter.addedBackground": "#a3be8c", + "minimapGutter.deletedBackground": "#bf616a", + "minimapGutter.modifiedBackground": "#ebcb8b", + "minimapSlider.activeBackground": "#434c5eaa", + "minimapSlider.background": "#434c5e99", + "minimapSlider.hoverBackground": "#434c5eaa", + + "notification.background": "#3b4252", + "notification.buttonBackground": "#434c5e", + "notification.buttonForeground": "#d8dee9", + "notification.buttonHoverBackground": "#4c566a", + "notification.errorBackground": "#bf616a", + "notification.errorForeground": "#2e3440", + "notification.foreground": "#d8dee9", + "notification.infoBackground": "#88c0d0", + "notification.infoForeground": "#2e3440", + "notification.warningBackground": "#ebcb8b", + "notification.warningForeground": "#2e3440", + + "notificationCenter.border": "#3b425200", + "notificationCenterHeader.background": "#2e3440", + "notificationCenterHeader.foreground": "#88c0d0", + "notificationLink.foreground": "#88c0d0", + "notifications.background": "#3b4252", + "notifications.border": "#2e3440", + "notifications.foreground": "#d8dee9", + "notificationToast.border": "#3b425200", + + "panel.background": "#2e3440", + "panel.border": "#3b4252", + "panelTitle.activeBorder": "#88c0d000", + "panelTitle.activeForeground": "#88c0d0", + "panelTitle.inactiveForeground": "#d8dee9", + "peekView.border": "#4c566a", + "peekViewEditor.background": "#2e3440", + "peekViewEditorGutter.background": "#2e3440", + "peekViewEditor.matchHighlightBackground": "#88c0d04d", + "peekViewResult.background": "#2e3440", + "peekViewResult.fileForeground": "#88c0d0", + "peekViewResult.lineForeground": "#d8dee966", + "peekViewResult.matchHighlightBackground": "#88c0d0cc", + "peekViewResult.selectionBackground": "#434c5e", + "peekViewResult.selectionForeground": "#d8dee9", + "peekViewTitle.background": "#3b4252", + "peekViewTitleDescription.foreground": "#d8dee9", + "peekViewTitleLabel.foreground": "#88c0d0", + "pickerGroup.border": "#3b4252", + "pickerGroup.foreground": "#88c0d0", + "progressBar.background": "#88c0d0", + "quickInputList.focusBackground": "#88c0d0", + "quickInputList.focusForeground": "#2e3440", + "sash.hoverBorder": "#88c0d0", + "scrollbar.shadow": "#00000066", + "scrollbarSlider.activeBackground": "#434c5eaa", + "scrollbarSlider.background": "#434c5e99", + "scrollbarSlider.hoverBackground": "#434c5eaa", + "selection.background": "#88c0d099", + "sideBar.background": "#2e3440", + "sideBar.foreground": "#d8dee9", + "sideBar.border": "#3b4252", + "sideBarSectionHeader.background": "#3b4252", + "sideBarSectionHeader.foreground": "#d8dee9", + "sideBarTitle.foreground": "#d8dee9", + "statusBar.background": "#3b4252", + "statusBar.debuggingBackground": "#5e81ac", + "statusBar.debuggingForeground": "#d8dee9", + "statusBar.noFolderForeground": "#d8dee9", + "statusBar.noFolderBackground": "#3b4252", + "statusBar.foreground": "#d8dee9", + "statusBarItem.activeBackground": "#4c566a", + "statusBarItem.hoverBackground": "#434c5e", + "statusBarItem.prominentBackground": "#3b4252", + "statusBarItem.prominentHoverBackground": "#434c5e", + "statusBarItem.errorBackground": "#3b4252", + "statusBarItem.errorForeground": "#bf616a", + "statusBarItem.warningBackground": "#ebcb8b", + "statusBarItem.warningForeground": "#2e3440", + "statusBar.border": "#3b425200", + "tab.activeBackground": "#3b4252", + "tab.activeForeground": "#d8dee9", + "tab.border": "#3b425200", + "tab.activeBorder": "#88c0d000", + "tab.unfocusedActiveBorder": "#88c0d000", + "tab.inactiveBackground": "#2e3440", + "tab.inactiveForeground": "#d8dee966", + "tab.unfocusedActiveForeground": "#d8dee999", + "tab.unfocusedInactiveForeground": "#d8dee966", + "tab.hoverBackground": "#3b4252cc", + "tab.unfocusedHoverBackground": "#3b4252b3", + "tab.hoverBorder": "#88c0d000", + "tab.unfocusedHoverBorder": "#88c0d000", + "tab.activeBorderTop": "#88c0d000", + "tab.unfocusedActiveBorderTop": "#88c0d000", + "tab.lastPinnedBorder": "#4c566a", + "terminal.background": "#2e3440", + "terminal.foreground": "#d8dee9", + "terminal.ansiBlack": "#3b4252", + "terminal.ansiRed": "#bf616a", + "terminal.ansiGreen": "#a3be8c", + "terminal.ansiYellow": "#ebcb8b", + "terminal.ansiBlue": "#81a1c1", + "terminal.ansiMagenta": "#b48ead", + "terminal.ansiCyan": "#88c0d0", + "terminal.ansiWhite": "#e5e9f0", + "terminal.ansiBrightBlack": "#4c566a", + "terminal.ansiBrightRed": "#bf616a", + "terminal.ansiBrightGreen": "#a3be8c", + "terminal.ansiBrightYellow": "#ebcb8b", + "terminal.ansiBrightBlue": "#81a1c1", + "terminal.ansiBrightMagenta": "#b48ead", + "terminal.ansiBrightCyan": "#8fbcbb", + "terminal.ansiBrightWhite": "#eceff4", + "terminal.tab.activeBorder": "#88c0d0", + "textBlockQuote.background": "#3b4252", + "textBlockQuote.border": "#81a1c1", + "textCodeBlock.background": "#4c566a", + "textLink.activeForeground": "#88c0d0", + "textLink.foreground": "#88c0d0", + "textPreformat.foreground": "#8fbcbb", + "textSeparator.foreground": "#eceff4", + "titleBar.activeBackground": "#2e3440", + "titleBar.activeForeground": "#d8dee9", + "titleBar.border": "#2e344000", + "titleBar.inactiveBackground": "#2e3440", + "titleBar.inactiveForeground": "#d8dee966", + "tree.indentGuidesStroke": "#616e88", + "walkThrough.embeddedEditorBackground": "#2e3440", + "welcomePage.buttonBackground": "#434c5e", + "welcomePage.buttonHoverBackground": "#4c566a", + "widget.shadow": "#00000066" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#d8dee9ff", + "background": "#2e3440ff" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Constant Character", + "scope": "constant.character", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Language", + "scope": "constant.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Constant Numeric", + "scope": "constant.numeric", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "Constant Regexp", + "scope": "constant.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Entity Name Class/Type", + "scope": ["entity.name.class", "entity.name.type.class"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Entity Name Tag", + "scope": "entity.name.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Entity Other Attribute Name", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Other Inherited Class", + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "bold", + "foreground": "#8FBCBB" + } + }, + { + "name": "Invalid Deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#D8DEE9", + "background": "#EBCB8B" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#D8DEE9", + "background": "#BF616A" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Other New", + "scope": "keyword.other.new", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Changed", + "scope": "markup.changed", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Markup Deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#BF616A" + } + }, + { + "name": "Markup Inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "Meta Preprocessor", + "scope": "meta.preprocessor", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": [ + "punctuation.definition.method-parameters", + "punctuation.definition.function-parameters", + "punctuation.definition.parameters" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Tag", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Definition Comment", + "scope": [ + "punctuation.definition.comment", + "punctuation.end.definition.comment", + "punctuation.start.definition.comment" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Punctuation Section", + "scope": "punctuation.section", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Terminator", + "scope": "punctuation.terminator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Variable", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "String Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Support Class", + "scope": "support.class", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Constant", + "scope": "support.constant", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Support Function Construct", + "scope": "support.function.construct", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Type", + "scope": "support.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Type Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Token Debug", + "scope": "token.debug-token", + "settings": { + "foreground": "#b48ead" + } + }, + { + "name": "Token Error", + "scope": "token.error-token", + "settings": { + "foreground": "#bf616a" + } + }, + { + "name": "Token Info", + "scope": "token.info-token", + "settings": { + "foreground": "#88c0d0" + } + }, + { + "name": "Token Warning", + "scope": "token.warn-token", + "settings": { + "foreground": "#ebcb8b" + } + }, + { + "name": "Variable", + "scope": "variable.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "Variable Language", + "scope": "variable.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Variable Parameter", + "scope": "variable.parameter", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[C/CPP] Punctuation Separator Pointer-Access", + "scope": "punctuation.separator.pointer-access.c", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[C/CPP] Meta Preprocessor Include", + "scope": [ + "source.c meta.preprocessor.include", + "source.c string.quoted.other.lt-gt.include" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[C/CPP] Conditional Directive", + "scope": [ + "source.cpp keyword.control.directive.conditional", + "source.cpp punctuation.definition.directive", + "source.c keyword.control.directive.conditional", + "source.c punctuation.definition.directive" + ], + "settings": { + "foreground": "#5E81AC", + "fontStyle": "bold" + } + }, + { + "name": "[CSS] Constant Other Color RGB Value", + "scope": "source.css constant.other.color.rgb-value", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "[CSS](Function) Meta Property-Value", + "scope": "source.css meta.property-value", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[CSS] Media Queries", + "scope": [ + "source.css keyword.control.at-rule.media", + "source.css keyword.control.at-rule.media punctuation.definition.keyword" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[CSS] Punctuation Definition Keyword", + "scope": "source.css punctuation.definition.keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[CSS] Support Type Property Name", + "scope": "source.css support.type.property-name", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[diff] Meta Range Context", + "scope": "source.diff meta.diff.range.context", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Meta Header From-File", + "scope": "source.diff meta.diff.header.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition From-File", + "scope": "source.diff punctuation.definition.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Range", + "scope": "source.diff punctuation.definition.range", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Separator", + "scope": "source.diff punctuation.definition.separator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module names", + "scope": "entity.name.type.module.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module attributes", + "scope": "variable.other.readwrite.module.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) atoms", + "scope": "constant.other.symbol.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) modules", + "scope": "variable.other.constant.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Go] String Format Placeholder", + "scope": "source.go constant.other.placeholder.go", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[Java](JavaDoc) Comment Block Documentation HTML Entities", + "scope": "source.java comment.block.documentation.javadoc punctuation.definition.entity.html", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Java](JavaDoc) Constant Other", + "scope": "source.java constant.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation", + "scope": "source.java keyword.other.documentation", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Author", + "scope": "source.java keyword.other.documentation.author.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Directive/Custom", + "scope": [ + "source.java keyword.other.documentation.directive", + "source.java keyword.other.documentation.custom" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation See", + "scope": "source.java keyword.other.documentation.see.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Meta Method-Call", + "scope": "source.java meta.method-call meta.method", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Link", + "scope": [ + "source.java meta.tag.template.link.javadoc", + "source.java string.other.link.title.javadoc" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Value", + "scope": "source.java meta.tag.template.value.javadoc", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Keyword", + "scope": "source.java punctuation.definition.keyword.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Tag", + "scope": [ + "source.java punctuation.definition.tag.begin.javadoc", + "source.java punctuation.definition.tag.end.javadoc" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Java] Storage Modifier Import", + "scope": "source.java storage.modifier.import", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Modifier Package", + "scope": "source.java storage.modifier.package", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type", + "scope": "source.java storage.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Annotation", + "scope": "source.java storage.type.annotation", + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Java] Storage Type Generic", + "scope": "source.java storage.type.generic", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Primitive", + "scope": "source.java storage.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Decorator", + "scope": [ + "source.js punctuation.decorator", + "source.js meta.decorator variable.other.readwrite", + "source.js meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[JavaScript] Meta Object-Literal Key", + "scope": "source.js meta.object-literal.key", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[JavaScript](JSDoc) Storage Type Class", + "scope": "source.js storage.type.class.jsdoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] String Template Literals Punctuation", + "scope": [ + "source.js string.quoted.template punctuation.quasi.element.begin", + "source.js string.quoted.template punctuation.quasi.element.end", + "source.js string.template punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Interpolated String Template Punctuation Functions", + "scope": "source.js string.quoted.template meta.method-call.with-arguments", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[JavaScript] String Template Literal Variable", + "scope": [ + "source.js string.template meta.template.expression support.variable.property", + "source.js string.template meta.template.expression variable.other.object" + ], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Support Type Primitive", + "scope": "source.js support.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Variable Other Object", + "scope": "source.js variable.other.object", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Variable Other Read-Write Alias", + "scope": "source.js variable.other.readwrite.alias", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] Parentheses in Template Strings", + "scope": [ + "source.js meta.embedded.line meta.brace.square", + "source.js meta.embedded.line meta.brace.round", + "source.js string.quoted.template meta.brace.square", + "source.js string.quoted.template meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[HTML] Constant Character Entity", + "scope": "text.html.basic constant.character.entity.html", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[HTML] Constant Other Inline-Data", + "scope": "text.html.basic constant.other.inline-data", + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[HTML] Meta Tag SGML Doctype", + "scope": "text.html.basic meta.tag.sgml.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[HTML] Punctuation Definition Entity", + "scope": "text.html.basic punctuation.definition.entity", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[INI] Entity Name Section Group-Title", + "scope": "source.properties entity.name.section.group-title.ini", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[INI] Punctuation Separator Key-Value", + "scope": "source.properties punctuation.separator.key-value.ini", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Fenced Code Block", + "scope": [ + "text.html.markdown markup.fenced_code.block", + "text.html.markdown markup.fenced_code.block punctuation.definition" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Heading", + "scope": "markup.heading", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Inline", + "scope": [ + "text.html.markdown markup.inline.raw", + "text.html.markdown markup.inline.raw punctuation.definition.raw" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Italic", + "scope": "text.html.markdown markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "[Markdown] Markup Link", + "scope": "text.html.markdown markup.underline.link", + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "[Markdown] Markup List Numbered/Unnumbered", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown beginning.punctuation.definition.quote", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown markup.quote", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Markdown] Markup Math Constant", + "scope": "text.html.markdown constant.character.math.tex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Math Definition Marker", + "scope": [ + "text.html.markdown punctuation.definition.math.begin", + "text.html.markdown punctuation.definition.math.end" + ], + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[Markdown] Markup Math Function Definition Marker", + "scope": "text.html.markdown punctuation.definition.function.math.tex", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Math Operator", + "scope": "text.html.markdown punctuation.math.operator.latex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Heading", + "scope": "text.html.markdown punctuation.definition.heading", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Constant/String", + "scope": [ + "text.html.markdown punctuation.definition.constant", + "text.html.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] String Other Link Description/Title", + "scope": [ + "text.html.markdown constant.other.reference.link", + "text.html.markdown string.other.link.description", + "text.html.markdown string.other.link.title" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Perl] Perl Sigils", + "scope": "source.perl punctuation.definition.variable", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[PHP] Meta Function-Call Object", + "scope": ["source.php meta.function-call", "source.php meta.function-call.object"], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Decorator", + "scope": [ + "source.python entity.name.function.decorator", + "source.python meta.function.decorator support.type" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Python] Function Call", + "scope": "source.python meta.function-call.generic", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Support Type", + "scope": "source.python support.type", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Function Parameter", + "scope": ["source.python variable.parameter.function.language"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Python] Function Parameter Special", + "scope": [ + "source.python meta.function.parameters variable.parameter.function.language.special.self" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[SCSS] Punctuation Definition Interpolation Bracket Curly", + "scope": [ + "source.css.scss punctuation.definition.interpolation.begin.bracket.curly", + "source.css.scss punctuation.definition.interpolation.end.bracket.curly" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[SCSS] Variable Interpolation", + "scope": "source.css.scss variable.interpolation", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "italic" + } + }, + { + "name": "[TypeScript] Decorators", + "scope": [ + "source.ts punctuation.decorator", + "source.ts meta.decorator variable.other.readwrite", + "source.ts meta.decorator entity.name.function", + "source.tsx punctuation.decorator", + "source.tsx meta.decorator variable.other.readwrite", + "source.tsx meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[TypeScript] Object-literal keys", + "scope": ["source.ts meta.object-literal.key", "source.tsx meta.object-literal.key"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Object-literal functions", + "scope": [ + "source.ts meta.object-literal.key entity.name.function", + "source.tsx meta.object-literal.key entity.name.function" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[TypeScript] Type/Class", + "scope": [ + "source.ts support.class", + "source.ts support.type", + "source.ts entity.name.type", + "source.ts entity.name.class", + "source.tsx support.class", + "source.tsx support.type", + "source.tsx entity.name.type", + "source.tsx entity.name.class" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Static Class Support", + "scope": [ + "source.ts support.constant.math", + "source.ts support.constant.dom", + "source.ts support.constant.json", + "source.tsx support.constant.math", + "source.tsx support.constant.dom", + "source.tsx support.constant.json" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Variables", + "scope": ["source.ts support.variable", "source.tsx support.variable"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Parentheses in Template Strings", + "scope": [ + "source.ts meta.embedded.line meta.brace.square", + "source.ts meta.embedded.line meta.brace.round", + "source.tsx meta.embedded.line meta.brace.square", + "source.tsx meta.embedded.line meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": "text.xml entity.name.tag.namespace", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[XML] Keyword Other Doctype", + "scope": "text.xml keyword.other.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Meta Tag Preprocessor", + "scope": "text.xml meta.tag.preprocessor entity.name.tag", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": [ + "text.xml string.unquoted.cdata", + "text.xml string.unquoted.cdata punctuation.definition.string" + ], + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[YAML] Entity Name Tag", + "scope": "source.yaml entity.name.tag", + "settings": { + "foreground": "#8FBCBB" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/LICENSE b/assets/themes/src/vscode/palenight/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..139fba6d40385d8d49de862d570216308e663fd7 --- /dev/null +++ b/assets/themes/src/vscode/palenight/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2017-present Olaolu Olawuyi + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/assets/themes/src/vscode/palenight/family.json b/assets/themes/src/vscode/palenight/family.json new file mode 100644 index 0000000000000000000000000000000000000000..69379fafe27932049f6ece763522ea6f95e0a08a --- /dev/null +++ b/assets/themes/src/vscode/palenight/family.json @@ -0,0 +1,21 @@ +{ + "name": "Palenight", + "author": "Olaolu Olawuyi (whizkydee)", + "themes": [ + { + "name": "Palenight", + "file_name": "palenight.json", + "appearance": "dark" + }, + { + "name": "Palenight Operator", + "file_name": "palenight-operator.json", + "appearance": "dark" + }, + { + "name": "Palenight (Mild Contrast)", + "file_name": "palenight-mild-contrast.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight-mild-contrast.json b/assets/themes/src/vscode/palenight/palenight-mild-contrast.json new file mode 100644 index 0000000000000000000000000000000000000000..60164e29c72228a0acd6b56c3a76ac426da1a362 --- /dev/null +++ b/assets/themes/src/vscode/palenight/palenight-mild-contrast.json @@ -0,0 +1,1569 @@ +{ + "name": "Palenight (Mild Contrast)", + "author": "Olaolu Olawuyi", + "maintainers": ["Olaolu Olawuyi "], + "type": "dark", + "semanticClass": "palenight-mild-contrast", + "colors": { + "contrastActiveBorder": null, + "contrastBorder": "#2C2F40", + "focusBorder": "#2C2F40", + "foreground": "#ffffff", + "widget.shadow": "#232635", + "selection.background": "#7580B850", + "descriptionForeground": null, + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#292D3E", + "dropdown.border": "#7e57c2", + "dropdown.foreground": "#ffffffcc", + "input.background": "#313850", + "input.border": "#7e57c2", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#ffffffcc", + "inputOption.activeBorder": "#ffffffcc", + "inputValidation.errorBackground": "#ef5350f2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#64b5f6f2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#ffca28f2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#292D3E00", + "scrollbarSlider.activeBackground": "#694CA4cc", + "scrollbarSlider.background": "#694CA466", + "scrollbarSlider.hoverBackground": "#694CA4cc", + "badge.background": "#7e57c2", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "list.activeSelectionBackground": "#7e57c2", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#2E3245", + "list.focusBackground": "#0000002e", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#0000001a", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#929ac90d", + "list.inactiveSelectionForeground": "#929ac9", + "activityBar.background": "#242839", + "activityBar.dropBackground": "#7e57c2e3", + "activityBar.foreground": "#eeffff", + "activityBar.border": "#2E3243", + "activityBarBadge.background": "#7e57c2", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#25293A", + "sideBar.foreground": "#6C739A", + "sideBar.border": "#2C2F40", + "sideBarTitle.foreground": "#eeffff", + "sideBarSectionHeader.background": "#25293A", + "sideBarSectionHeader.foreground": "#eeffff", + "editorGroup.background": "#32374C", + "editorGroup.border": "#2E3245", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#32374C", + "editorGroupHeader.tabsBackground": "#31364a", + "editorGroupHeader.tabsBorder": "#2C3041", + "tab.activeBackground": "#25293A", + "tab.activeForeground": "#eeffff", + "tab.border": "#272B3B", + "tab.activeBorder": "#2C3041", + "tab.unfocusedActiveBorder": "#2C3041", + "tab.inactiveBackground": "#31364A", + "tab.inactiveForeground": "#929ac9", + "tab.unfocusedActiveForeground": null, + "tab.unfocusedInactiveForeground": null, + "editor.background": "#292D3E", + "editor.foreground": "#BFC7D5", + "editorLineNumber.foreground": "#4c5374", + "editorLineNumber.activeForeground": "#eeffff", + "editorCursor.foreground": "#7e57c2", + "editorCursor.background": null, + "editor.selectionBackground": "#7580B850", + "editor.selectionHighlightBackground": "#383D51", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#32374D", + "editor.wordHighlightStrongBackground": "#2E3250", + "editor.findMatchBackground": "#2e3248fc", + "editor.findMatchHighlightBackground": "#7e57c233", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#4E557980", + "editorRuler.foreground": "#4E557980", + "editorCodeLens.foreground": "#FFCA28", + "editorBracketMatch.background": null, + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#FFCA28", + "editorWarning.border": null, + "editorGutter.background": null, + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.removedTextBackground": "#ef535033", + "editorWidget.background": "#31364a", + "editorWidget.border": null, + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#bfc7d5", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#7e57c2", + "editorHoverWidget.background": "#292D3E", + "editorHoverWidget.border": "#7e57c2", + "debugExceptionWidget.background": "#292D3E", + "debugExceptionWidget.border": "#7e57c2", + "editorMarkerNavigation.background": "#31364a", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#7e57c2", + "peekViewEditor.background": "#232635", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#2E3245", + "peekViewResult.fileForeground": "#eeffff", + "peekViewResult.lineForeground": "#eeffff", + "peekViewResult.matchHighlightBackground": "#7e57c25a", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#eeffff", + "peekViewTitle.background": "#292D3E", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#eeffff", + "merge.currentHeaderBackground": "#7e57c25a", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#25293A", + "panel.border": "#2C2F40", + "panelTitle.activeBorder": "#7e57c2", + "panelTitle.activeForeground": "#eeffff", + "panelTitle.inactiveForeground": "#bfc7d580", + "statusBar.background": "#25293A", + "statusBar.foreground": "#676E95", + "statusBar.border": "#2C3041", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#292D3E", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#25293A", + "titleBar.activeForeground": "#eeefff", + "titleBar.border": "#2C3041", + "titleBar.inactiveBackground": "#30364c", + "titleBar.inactiveForeground": null, + "notifications.background": "#292D3E", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#2E3245", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#676E95", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#a9c77d", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#ff5572", + "terminal.ansiYellow": "#FFCB6B", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#ff5572", + "terminal.ansiBrightYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "welcomePage.buttonBackground": null, + "welcomePage.buttonHoverBackground": null, + "walkThrough.embeddedEditorBackground": "#232635", + "gitDecoration.modifiedResourceForeground": "#e2c08de6", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#a9c77dff", + "gitDecoration.ignoredResourceForeground": "#69709890", + "gitDecoration.conflictingResourceForeground": "#FFEB95CC", + "editorActiveLineNumber.foreground": "#eeffff", + "breadcrumb.foreground": "#6c739a", + "breadcrumb.focusForeground": "#bfc7d5", + "breadcrumb.activeSelectionForeground": "#eeffff", + "breadcrumbPicker.background": "#292D3E" + }, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#bfc7d5" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Quoted", + "scope": "string.quoted", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Unquoted", + "scope": "string.unquoted", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "storage.type", + "meta.var.expr storage.type", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx", + "meta.class meta.method.declaration meta.var.expr storage.type.js" + ], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Function Parameters", + "scope": "variable.parameter", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag support.class.component", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#697098" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendored.property-name", + "support.constant.vendored.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.reaedwrite.instance", + "variable.other.readwrite.instance" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Variable Property Other", + "scope": ["variable.other.property", "variable.other.object.property"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Keyword Operator Comparison", + "scope": "keyword.operator.comparison", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "(C|SC|SA|LE)SS property value unit", + "scope": [ + "keyword.other.unit.css", + "constant.length.units.css", + "keyword.other.unit.less", + "constant.length.units.less", + "keyword.other.unit.scss", + "constant.length.units.scss", + "keyword.other.unit.sass", + "constant.length.units.sass" + ], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "punctuations in styled components", + "scope": [ + "source.js source.css meta.property-list", + "source.js source.css punctuation.section", + "source.js source.css punctuation.terminator.rule", + "source.js source.css punctuation.definition.entity.end.bracket", + "source.js source.css punctuation.definition.entity.begin.bracket", + "source.js source.css punctuation.separator.key-value", + "source.js source.css punctuation.definition.attribute-selector", + "source.js source.css meta.property-list", + "source.js source.css meta.property-list punctuation.separator.comma", + "source.ts source.css punctuation.section", + "source.ts source.css punctuation.terminator.rule", + "source.ts source.css punctuation.definition.entity.end.bracket", + "source.ts source.css punctuation.definition.entity.begin.bracket", + "source.ts source.css punctuation.separator.key-value", + "source.ts source.css punctuation.definition.attribute-selector", + "source.ts source.css meta.property-list", + "source.ts source.css meta.property-list punctuation.separator.comma" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "GraphQL Variables", + "scope": "variable.qraphql", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF", + "fontStyle": "normal" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": "variable.other.readwrite.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "meta.object-literal.key.js", + "meta.object-literal.key.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#C3E88D", + "fontStyle": "normal" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Ruby Variables", + "scope": "variable.other.ruby", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markup Italics", + "scope": "markup.italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Markup Quote + others", + "scope": "markup.quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markup Raw Code + others", + "scope": "markup.inline.raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markup Links", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markup Attributes", + "scope": ["markup.meta.attribute-list"], + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Markup Admonitions", + "scope": "markup.admonition", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list.bullet", + "settings": { + "foreground": "#D9F5DD" + } + }, + { + "name": "Markup Superscript and Subscript", + "scope": ["markup.superscript", "markup.subscript"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Asciidoc Function", + "scope": "entity.name.function.asciidoc", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "PHP Variables", + "scope": "variable.other.php", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars variables", + "scope": "variable.parameter.handlebars", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "handlebars parameters", + "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "handlebars enitity attribute names", + "scope": "entity.other.attribute-name.handlebars", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars enitity attribute values", + "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", + "meta.property-list.css meta.property-value.css variable.other.less", + "punctuation.section.embedded.begin.js.jsx", + "punctuation.section.embedded.end.js.jsx", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "keyword.operator.bitwise", + "keyword.operator.increment", + "keyword.operator.ternary", + "keyword.operator.comparison", + "keyword.operator.assignment", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.type", + "punctuation.section.embedded.js", + "punctuation.definintion.string", + "punctuation" + ], + "settings": { + "fontStyle": "normal" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight-operator.json b/assets/themes/src/vscode/palenight/palenight-operator.json new file mode 100644 index 0000000000000000000000000000000000000000..92104cd9edf493785961407824aa5e372eb9d6e7 --- /dev/null +++ b/assets/themes/src/vscode/palenight/palenight-operator.json @@ -0,0 +1,1640 @@ +{ + "name": "Palenight Operator", + "author": "Olaolu Olawuyi", + "maintainers": ["Olaolu Olawuyi "], + "type": "dark", + "semanticClass": "palenight-operator", + "colors": { + "contrastActiveBorder": null, + "contrastBorder": "#282B3C", + "focusBorder": "#282B3C", + "foreground": "#ffffff", + "widget.shadow": "#232635", + "selection.background": "#7580B850", + "descriptionForeground": null, + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#292D3E", + "dropdown.border": "#7e57c2", + "dropdown.foreground": "#ffffffcc", + "input.background": "#313850", + "input.border": "#7e57c2", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#ffffffcc", + "inputOption.activeBorder": "#ffffffcc", + "inputValidation.errorBackground": "#ef5350f2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#64b5f6f2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#ffca28f2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#292D3E00", + "scrollbarSlider.activeBackground": "#694CA4cc", + "scrollbarSlider.background": "#694CA466", + "scrollbarSlider.hoverBackground": "#694CA4cc", + "badge.background": "#7e57c2", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "list.activeSelectionBackground": "#7e57c2", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#2E3245", + "list.focusBackground": "#0000002e", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#0000001a", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#929ac90d", + "list.inactiveSelectionForeground": "#929ac9", + "activityBar.background": "#282C3D", + "activityBar.dropBackground": "#7e57c2e3", + "activityBar.foreground": "#eeffff", + "activityBar.border": "#282C3D", + "activityBarBadge.background": "#7e57c2", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#292D3E", + "sideBar.foreground": "#6C739A", + "sideBar.border": "#282B3C", + "sideBarTitle.foreground": "#eeffff", + "sideBarSectionHeader.background": "#292D3E", + "sideBarSectionHeader.foreground": "#eeffff", + "editorGroup.background": "#32374C", + "editorGroup.border": "#2E3245", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#32374C", + "editorGroupHeader.tabsBackground": "#31364a", + "editorGroupHeader.tabsBorder": "#262A39", + "tab.activeBackground": "#292D3E", + "tab.activeForeground": "#eeffff", + "tab.border": "#272B3B", + "tab.activeBorder": "#262A39", + "tab.unfocusedActiveBorder": "#262A39", + "tab.inactiveBackground": "#31364A", + "tab.inactiveForeground": "#929ac9", + "tab.unfocusedActiveForeground": null, + "tab.unfocusedInactiveForeground": null, + "editor.background": "#292D3E", + "editor.foreground": "#BFC7D5", + "editorLineNumber.foreground": "#4c5374", + "editorLineNumber.activeForeground": "#eeffff", + "editorCursor.foreground": "#7e57c2", + "editorCursor.background": null, + "editor.selectionBackground": "#7580B850", + "editor.selectionHighlightBackground": "#383D51", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#32374D", + "editor.wordHighlightStrongBackground": "#2E3250", + "editor.findMatchBackground": "#2e3248fc", + "editor.findMatchHighlightBackground": "#7e57c233", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#4E557980", + "editorRuler.foreground": "#4E557980", + "editorCodeLens.foreground": "#FFCA28", + "editorBracketMatch.background": null, + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#FFCA28", + "editorWarning.border": null, + "editorGutter.background": null, + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.removedTextBackground": "#ef535033", + "editorWidget.background": "#31364a", + "editorWidget.border": null, + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#bfc7d5", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#7e57c2", + "editorHoverWidget.background": "#292D3E", + "editorHoverWidget.border": "#7e57c2", + "debugExceptionWidget.background": "#292D3E", + "debugExceptionWidget.border": "#7e57c2", + "editorMarkerNavigation.background": "#31364a", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#7e57c2", + "peekViewEditor.background": "#232635", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#2E3245", + "peekViewResult.fileForeground": "#eeffff", + "peekViewResult.lineForeground": "#eeffff", + "peekViewResult.matchHighlightBackground": "#7e57c25a", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#eeffff", + "peekViewTitle.background": "#292D3E", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#eeffff", + "merge.currentHeaderBackground": "#7e57c25a", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#292D3E", + "panel.border": "#282B3C", + "panelTitle.activeBorder": "#7e57c2", + "panelTitle.activeForeground": "#eeffff", + "panelTitle.inactiveForeground": "#bfc7d580", + "statusBar.background": "#282C3D", + "statusBar.foreground": "#676E95", + "statusBar.border": "#262A39", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#292D3E", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#292d3e", + "titleBar.activeForeground": "#eeefff", + "titleBar.border": "#30364c", + "titleBar.inactiveBackground": "#30364c", + "titleBar.inactiveForeground": null, + "notifications.background": "#292D3E", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#2E3245", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#676E95", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#a9c77d", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#ff5572", + "terminal.ansiYellow": "#FFCB6B", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#ff5572", + "terminal.ansiBrightYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "welcomePage.buttonBackground": null, + "welcomePage.buttonHoverBackground": null, + "walkThrough.embeddedEditorBackground": "#232635", + "gitDecoration.modifiedResourceForeground": "#e2c08de6", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#a9c77dff", + "gitDecoration.ignoredResourceForeground": "#69709890", + "gitDecoration.conflictingResourceForeground": "#FFEB95CC", + "editorActiveLineNumber.foreground": "#eeffff", + "breadcrumb.foreground": "#6c739a", + "breadcrumb.focusForeground": "#bfc7d5", + "breadcrumb.activeSelectionForeground": "#eeffff", + "breadcrumbPicker.background": "#292D3E" + }, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#bfc7d5" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Quoted", + "scope": "string.quoted", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Unquoted", + "scope": "string.unquoted", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "storage.type", + "meta.var.expr storage.type", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx", + "meta.class meta.method.declaration meta.var.expr storage.type.js" + ], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Function Parameters", + "scope": "variable.parameter", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag support.class.component", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#697098" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendored.property-name", + "support.constant.vendored.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.reaedwrite.instance", + "variable.other.readwrite.instance" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Variable Property Other", + "scope": ["variable.other.property", "variable.other.object.property"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Keyword Operator Comparison", + "scope": "keyword.operator.comparison", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "(C|SC|SA|LE)SS property value unit", + "scope": [ + "keyword.other.unit.css", + "constant.length.units.css", + "keyword.other.unit.less", + "constant.length.units.less", + "keyword.other.unit.scss", + "constant.length.units.scss", + "keyword.other.unit.sass", + "constant.length.units.sass" + ], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "punctuations in styled components", + "scope": [ + "source.js source.css meta.property-list", + "source.js source.css punctuation.section", + "source.js source.css punctuation.terminator.rule", + "source.js source.css punctuation.definition.entity.end.bracket", + "source.js source.css punctuation.definition.entity.begin.bracket", + "source.js source.css punctuation.separator.key-value", + "source.js source.css punctuation.definition.attribute-selector", + "source.js source.css meta.property-list", + "source.js source.css meta.property-list punctuation.separator.comma", + "source.ts source.css punctuation.section", + "source.ts source.css punctuation.terminator.rule", + "source.ts source.css punctuation.definition.entity.end.bracket", + "source.ts source.css punctuation.definition.entity.begin.bracket", + "source.ts source.css punctuation.separator.key-value", + "source.ts source.css punctuation.definition.attribute-selector", + "source.ts source.css meta.property-list", + "source.ts source.css meta.property-list punctuation.separator.comma" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "GraphQL Variables", + "scope": "variable.qraphql", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF", + "fontStyle": "normal" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": "variable.other.readwrite.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "meta.object-literal.key.js", + "meta.object-literal.key.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#C3E88D", + "fontStyle": "normal" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Ruby Variables", + "scope": "variable.other.ruby", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markup Italics", + "scope": "markup.italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Markup Quote + others", + "scope": "markup.quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markup Raw Code + others", + "scope": "markup.inline.raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markup Links", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markup Attributes", + "scope": ["markup.meta.attribute-list"], + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Markup Admonitions", + "scope": "markup.admonition", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list.bullet", + "settings": { + "foreground": "#D9F5DD" + } + }, + { + "name": "Markup Superscript and Subscript", + "scope": ["markup.superscript", "markup.subscript"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Asciidoc Function", + "scope": "entity.name.function.asciidoc", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "PHP Variables", + "scope": "variable.other.php", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars variables", + "scope": "variable.parameter.handlebars", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "handlebars parameters", + "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "handlebars enitity attribute names", + "scope": "entity.other.attribute-name.handlebars", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars enitity attribute values", + "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", + "meta.property-list.css meta.property-value.css variable.other.less", + "punctuation.section.embedded.begin.js.jsx", + "punctuation.section.embedded.end.js.jsx", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "keyword.operator.bitwise", + "keyword.operator.increment", + "keyword.operator.ternary", + "keyword.operator.comparison", + "keyword.operator.assignment", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.type", + "punctuation.section.embedded.js", + "punctuation.definintion.string", + "punctuation" + ], + "settings": { + "fontStyle": "normal" + } + }, + { + "name": "italicsify for operator mono", + "scope": [ + "keyword.other.unit", + "support.type.property-name.css", + "support.type.vendored.property-name.css", + "support.constant.vendored.property-value.css", + "meta.import.ts meta.block.ts variable.other.readwrite.alias.ts", + "meta.import.tsx meta.block.tsx variable.other.readwrite.alias.tsx", + "meta.import.js variable.other", + "meta.export.ts meta.block.ts variable.other.readwrite.alias.ts", + "meta.export.tsx meta.block.tsx variable.other.readwrite.alias.tsx", + "meta.export.js variable.other", + "entity.name.function.ts", + "entity.name.function.tsx", + "support.type.primitive", + "entity.name.tag.yaml", + "entity.other.attribute-name", + "meta.tag.sgml.doctype.html", + "entity.name.tag.doctype", + "meta.tag.sgml.doctype", + "entity.name.tag.custom", + "source.js.jsx keyword.control.flow.js", + "support.type.property.css", + "support.function.basic_functions", + "constant.other.color.rgb-value.hex.css", + "constant.other.rgb-value.css", + "variable.assignment.coffee", + "support.function.basic_functions", + "keyword.operator.expression.typeof", + "punctuation.section.embedded", + "keyword.operator.type.annotation", + "variable.object.property.ts", + "variable.object.property.js", + "variable.object.property.jsx", + "variable.object.property.tsx", + "assignment.coffee", + "entity.name.type.ts", + "support.constant.math", + "meta.object-literal.key", + "meta.var.expr storage.type", + "variable.scss", + "variable.sass", + "variable.other.less", + "variable.parameter.url.scss", + "variable.parameter.url.sass", + "parameter", + "string", + "italic", + "quote", + "keyword", + "storage", + "language", + "constant.language", + "variable.language", + "type .function", + "type.function", + "storage.type.class", + "type.var", + "meta.parameter", + "variable.parameter", + "meta.parameters", + "keyword.control", + "modifier", + "this", + "comment" + ], + "settings": { + "fontStyle": "italic" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight.json b/assets/themes/src/vscode/palenight/palenight.json new file mode 100644 index 0000000000000000000000000000000000000000..5351dc4f2312a54c3714ab14641d27cfc4b6988a --- /dev/null +++ b/assets/themes/src/vscode/palenight/palenight.json @@ -0,0 +1,1569 @@ +{ + "name": "Palenight Theme", + "author": "Olaolu Olawuyi", + "maintainers": ["Olaolu Olawuyi "], + "type": "dark", + "semanticClass": "palenight", + "colors": { + "contrastActiveBorder": null, + "contrastBorder": "#282B3C", + "focusBorder": "#282B3C", + "foreground": "#ffffff", + "widget.shadow": "#232635", + "selection.background": "#7580B850", + "descriptionForeground": null, + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#292D3E", + "dropdown.border": "#7e57c2", + "dropdown.foreground": "#ffffffcc", + "input.background": "#313850", + "input.border": "#7e57c2", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#ffffffcc", + "inputOption.activeBorder": "#ffffffcc", + "inputValidation.errorBackground": "#ef5350f2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#64b5f6f2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#ffca28f2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#292D3E00", + "scrollbarSlider.activeBackground": "#694CA4cc", + "scrollbarSlider.background": "#694CA466", + "scrollbarSlider.hoverBackground": "#694CA4cc", + "badge.background": "#7e57c2", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "list.activeSelectionBackground": "#7e57c2", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#2E3245", + "list.focusBackground": "#0000002e", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#0000001a", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#929ac90d", + "list.inactiveSelectionForeground": "#929ac9", + "activityBar.background": "#282C3D", + "activityBar.dropBackground": "#7e57c2e3", + "activityBar.foreground": "#eeffff", + "activityBar.border": "#282C3D", + "activityBarBadge.background": "#7e57c2", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#292D3E", + "sideBar.foreground": "#6C739A", + "sideBar.border": "#282B3C", + "sideBarTitle.foreground": "#eeffff", + "sideBarSectionHeader.background": "#292D3E", + "sideBarSectionHeader.foreground": "#eeffff", + "editorGroup.background": "#32374C", + "editorGroup.border": "#2E3245", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#32374C", + "editorGroupHeader.tabsBackground": "#31364a", + "editorGroupHeader.tabsBorder": "#262A39", + "tab.activeBackground": "#292D3E", + "tab.activeForeground": "#eeffff", + "tab.border": "#272B3B", + "tab.activeBorder": "#262A39", + "tab.unfocusedActiveBorder": "#262A39", + "tab.inactiveBackground": "#31364A", + "tab.inactiveForeground": "#929ac9", + "tab.unfocusedActiveForeground": null, + "tab.unfocusedInactiveForeground": null, + "editor.background": "#292D3E", + "editor.foreground": "#BFC7D5", + "editorLineNumber.foreground": "#4c5374", + "editorLineNumber.activeForeground": "#eeffff", + "editorCursor.foreground": "#7e57c2", + "editorCursor.background": null, + "editor.selectionBackground": "#7580B850", + "editor.selectionHighlightBackground": "#383D51", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#32374D", + "editor.wordHighlightStrongBackground": "#2E3250", + "editor.findMatchBackground": "#2e3248fc", + "editor.findMatchHighlightBackground": "#7e57c233", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#4E557980", + "editorRuler.foreground": "#4E557980", + "editorCodeLens.foreground": "#FFCA28", + "editorBracketMatch.background": null, + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#FFCA28", + "editorWarning.border": null, + "editorGutter.background": null, + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.removedTextBackground": "#ef535033", + "editorWidget.background": "#31364a", + "editorWidget.border": null, + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#bfc7d5", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#7e57c2", + "editorHoverWidget.background": "#292D3E", + "editorHoverWidget.border": "#7e57c2", + "debugExceptionWidget.background": "#292D3E", + "debugExceptionWidget.border": "#7e57c2", + "editorMarkerNavigation.background": "#31364a", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#7e57c2", + "peekViewEditor.background": "#232635", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#2E3245", + "peekViewResult.fileForeground": "#eeffff", + "peekViewResult.lineForeground": "#eeffff", + "peekViewResult.matchHighlightBackground": "#7e57c25a", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#eeffff", + "peekViewTitle.background": "#292D3E", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#eeffff", + "merge.currentHeaderBackground": "#7e57c25a", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#292D3E", + "panel.border": "#282B3C", + "panelTitle.activeBorder": "#7e57c2", + "panelTitle.activeForeground": "#eeffff", + "panelTitle.inactiveForeground": "#bfc7d580", + "statusBar.background": "#282C3D", + "statusBar.foreground": "#676E95", + "statusBar.border": "#262A39", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#292D3E", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#292d3e", + "titleBar.activeForeground": "#eeefff", + "titleBar.border": "#30364c", + "titleBar.inactiveBackground": "#30364c", + "titleBar.inactiveForeground": null, + "notifications.background": "#292D3E", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#2E3245", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#676E95", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#a9c77d", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#ff5572", + "terminal.ansiYellow": "#FFCB6B", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#ff5572", + "terminal.ansiBrightYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "welcomePage.buttonBackground": null, + "welcomePage.buttonHoverBackground": null, + "walkThrough.embeddedEditorBackground": "#232635", + "gitDecoration.modifiedResourceForeground": "#e2c08de6", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#a9c77dff", + "gitDecoration.ignoredResourceForeground": "#69709890", + "gitDecoration.conflictingResourceForeground": "#FFEB95CC", + "editorActiveLineNumber.foreground": "#eeffff", + "breadcrumb.foreground": "#6c739a", + "breadcrumb.focusForeground": "#bfc7d5", + "breadcrumb.activeSelectionForeground": "#eeffff", + "breadcrumbPicker.background": "#292D3E" + }, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#bfc7d5" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Quoted", + "scope": "string.quoted", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Unquoted", + "scope": "string.unquoted", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "storage.type", + "meta.var.expr storage.type", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx", + "meta.class meta.method.declaration meta.var.expr storage.type.js" + ], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Function Parameters", + "scope": "variable.parameter", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag support.class.component", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#697098" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendored.property-name", + "support.constant.vendored.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.reaedwrite.instance", + "variable.other.readwrite.instance" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Variable Property Other", + "scope": ["variable.other.property", "variable.other.object.property"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Keyword Operator Comparison", + "scope": "keyword.operator.comparison", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "(C|SC|SA|LE)SS property value unit", + "scope": [ + "keyword.other.unit.css", + "constant.length.units.css", + "keyword.other.unit.less", + "constant.length.units.less", + "keyword.other.unit.scss", + "constant.length.units.scss", + "keyword.other.unit.sass", + "constant.length.units.sass" + ], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "punctuations in styled components", + "scope": [ + "source.js source.css meta.property-list", + "source.js source.css punctuation.section", + "source.js source.css punctuation.terminator.rule", + "source.js source.css punctuation.definition.entity.end.bracket", + "source.js source.css punctuation.definition.entity.begin.bracket", + "source.js source.css punctuation.separator.key-value", + "source.js source.css punctuation.definition.attribute-selector", + "source.js source.css meta.property-list", + "source.js source.css meta.property-list punctuation.separator.comma", + "source.ts source.css punctuation.section", + "source.ts source.css punctuation.terminator.rule", + "source.ts source.css punctuation.definition.entity.end.bracket", + "source.ts source.css punctuation.definition.entity.begin.bracket", + "source.ts source.css punctuation.separator.key-value", + "source.ts source.css punctuation.definition.attribute-selector", + "source.ts source.css meta.property-list", + "source.ts source.css meta.property-list punctuation.separator.comma" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "GraphQL Variables", + "scope": "variable.qraphql", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF", + "fontStyle": "normal" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": "variable.other.readwrite.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "meta.object-literal.key.js", + "meta.object-literal.key.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#C3E88D", + "fontStyle": "normal" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Ruby Variables", + "scope": "variable.other.ruby", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markup Italics", + "scope": "markup.italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Markup Quote + others", + "scope": "markup.quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markup Raw Code + others", + "scope": "markup.inline.raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markup Links", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markup Attributes", + "scope": ["markup.meta.attribute-list"], + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Markup Admonitions", + "scope": "markup.admonition", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list.bullet", + "settings": { + "foreground": "#D9F5DD" + } + }, + { + "name": "Markup Superscript and Subscript", + "scope": ["markup.superscript", "markup.subscript"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Asciidoc Function", + "scope": "entity.name.function.asciidoc", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "PHP Variables", + "scope": "variable.other.php", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars variables", + "scope": "variable.parameter.handlebars", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "handlebars parameters", + "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "handlebars enitity attribute names", + "scope": "entity.other.attribute-name.handlebars", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars enitity attribute values", + "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", + "meta.property-list.css meta.property-value.css variable.other.less", + "punctuation.section.embedded.begin.js.jsx", + "punctuation.section.embedded.end.js.jsx", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "keyword.operator.bitwise", + "keyword.operator.increment", + "keyword.operator.ternary", + "keyword.operator.comparison", + "keyword.operator.assignment", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.type", + "punctuation.section.embedded.js", + "punctuation.definintion.string", + "punctuation" + ], + "settings": { + "fontStyle": "normal" + } + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/LICENSE b/assets/themes/src/vscode/rose-pine/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..158292b8df2daace3c0def82ef3331bbf0df387c --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Rosé Pine + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/rose-pine/family.json b/assets/themes/src/vscode/rose-pine/family.json new file mode 100644 index 0000000000000000000000000000000000000000..5b72edd300fe585f6c92121813c0baf61a5778e8 --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/family.json @@ -0,0 +1,21 @@ +{ + "name": "Rose Pine", + "author": "Rosé Pine", + "themes": [ + { + "name": "Rose Pine", + "file_name": "rose-pine.json", + "appearance": "dark" + }, + { + "name": "Rose Moon", + "file_name": "rose-pine-moon.json", + "appearance": "dark" + }, + { + "name": "Rose Pine Dawn", + "file_name": "rose-pine-dawn.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json b/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json new file mode 100644 index 0000000000000000000000000000000000000000..39cc251fe95a2828237f4154663ed610880f26a5 --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json @@ -0,0 +1,680 @@ +{ + "name": "Rosé Pine Dawn", + "type": "light", + "colors": { + "activityBar.activeBorder": "#575279", + "activityBar.background": "#faf4ed", + "activityBar.dropBorder": "#f2e9e1", + "activityBar.foreground": "#575279", + "activityBar.inactiveForeground": "#797593", + "activityBarBadge.background": "#d7827e", + "activityBarBadge.foreground": "#faf4ed", + "badge.background": "#d7827e", + "badge.foreground": "#faf4ed", + "banner.background": "#fffaf3", + "banner.foreground": "#575279", + "banner.iconForeground": "#797593", + "breadcrumb.activeSelectionForeground": "#d7827e", + "breadcrumb.background": "#faf4ed", + "breadcrumb.focusForeground": "#797593", + "breadcrumb.foreground": "#9893a5", + "breadcrumbPicker.background": "#fffaf3", + "button.background": "#d7827e", + "button.foreground": "#faf4ed", + "button.hoverBackground": "#d7827ee6", + "button.secondaryBackground": "#fffaf3", + "button.secondaryForeground": "#575279", + "button.secondaryHoverBackground": "#f2e9e1", + "charts.blue": "#56949f", + "charts.foreground": "#575279", + "charts.green": "#286983", + "charts.lines": "#797593", + "charts.orange": "#d7827e", + "charts.purple": "#907aa9", + "charts.red": "#b4637a", + "charts.yellow": "#ea9d34", + "checkbox.background": "#fffaf3", + "checkbox.border": "#6e6a8614", + "checkbox.foreground": "#575279", + "debugExceptionWidget.background": "#fffaf3", + "debugExceptionWidget.border": "#6e6a8614", + "debugIcon.breakpointCurrentStackframeForeground": "#797593", + "debugIcon.breakpointDisabledForeground": "#797593", + "debugIcon.breakpointForeground": "#797593", + "debugIcon.breakpointStackframeForeground": "#797593", + "debugIcon.breakpointUnverifiedForeground": "#797593", + "debugIcon.continueForeground": "#797593", + "debugIcon.disconnectForeground": "#797593", + "debugIcon.pauseForeground": "#797593", + "debugIcon.restartForeground": "#797593", + "debugIcon.startForeground": "#797593", + "debugIcon.stepBackForeground": "#797593", + "debugIcon.stepIntoForeground": "#797593", + "debugIcon.stepOutForeground": "#797593", + "debugIcon.stepOverForeground": "#797593", + "debugIcon.stopForeground": "#b4637a", + "debugToolBar.background": "#fffaf3", + "debugToolBar.border": "#f2e9e1", + "descriptionForeground": "#797593", + "diffEditor.border": "#f2e9e1", + "diffEditor.diagonalFill": "#6e6a8626", + "diffEditor.insertedLineBackground": "#56949f26", + "diffEditor.insertedTextBackground": "#56949f26", + "diffEditor.removedLineBackground": "#b4637a26", + "diffEditor.removedTextBackground": "#b4637a26", + "diffEditorOverview.insertedForeground": "#56949f80", + "diffEditorOverview.removedForeground": "#b4637a80", + "dropdown.background": "#fffaf3", + "dropdown.border": "#6e6a8614", + "dropdown.foreground": "#575279", + "dropdown.listBackground": "#fffaf3", + "editor.background": "#faf4ed", + "editor.findMatchBackground": "#6e6a8626", + "editor.findMatchHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBorder": "#000000", + "editor.focusedStackFrameHighlightBackground": "#6e6a8614", + "editor.foldBackground": "#fffaf3", + "editor.foreground": "#575279", + "editor.hoverHighlightBackground": "#000000", + "editor.inactiveSelectionBackground": "#6e6a860d", + "editor.inlineValuesBackground": "#000000", + "editor.inlineValuesForeground": "#797593", + "editor.lineHighlightBackground": "#6e6a860d", + "editor.lineHighlightBorder": "#000000", + "editor.linkedEditingBackground": "#fffaf3", + "editor.rangeHighlightBackground": "#6e6a860d", + "editor.selectionBackground": "#6e6a8614", + "editor.selectionForeground": "#575279", + "editor.selectionHighlightBackground": "#6e6a8614", + "editor.selectionHighlightBorder": "#faf4ed", + "editor.snippetFinalTabstopHighlightBackground": "#6e6a8614", + "editor.snippetFinalTabstopHighlightBorder": "#fffaf3", + "editor.snippetTabstopHighlightBackground": "#6e6a8614", + "editor.snippetTabstopHighlightBorder": "#fffaf3", + "editor.stackFrameHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBorder": "#000000", + "editor.wordHighlightBackground": "#6e6a8614", + "editor.wordHighlightBorder": "#000000", + "editor.wordHighlightStrongBackground": "#6e6a8614", + "editor.wordHighlightStrongBorder": "#6e6a8614", + "editorBracketHighlight.foreground1": "#b4637a80", + "editorBracketHighlight.foreground2": "#28698380", + "editorBracketHighlight.foreground3": "#ea9d3480", + "editorBracketHighlight.foreground4": "#56949f80", + "editorBracketHighlight.foreground5": "#d7827e80", + "editorBracketHighlight.foreground6": "#907aa980", + "editorBracketMatch.background": "#000000", + "editorBracketMatch.border": "#797593", + "editorBracketPairGuide.activeBackground1": "#286983", + "editorBracketPairGuide.activeBackground2": "#d7827e", + "editorBracketPairGuide.activeBackground3": "#907aa9", + "editorBracketPairGuide.activeBackground4": "#56949f", + "editorBracketPairGuide.activeBackground5": "#ea9d34", + "editorBracketPairGuide.activeBackground6": "#b4637a", + "editorBracketPairGuide.background1": "#28698380", + "editorBracketPairGuide.background2": "#d7827e80", + "editorBracketPairGuide.background3": "#907aa980", + "editorBracketPairGuide.background4": "#56949f80", + "editorBracketPairGuide.background5": "#ea9d3480", + "editorBracketPairGuide.background6": "#b4637a80", + "editorCodeLens.foreground": "#d7827e", + "editorCursor.background": "#575279", + "editorCursor.foreground": "#9893a5", + "editorError.border": "#000000", + "editorError.foreground": "#b4637a", + "editorGhostText.foreground": "#797593", + "editorGroup.border": "#000000", + "editorGroup.dropBackground": "#fffaf3", + "editorGroup.emptyBackground": "#000000", + "editorGroup.focusedEmptyBorder": "#000000", + "editorGroupHeader.noTabsBackground": "#000000", + "editorGroupHeader.tabsBackground": "#000000", + "editorGroupHeader.tabsBorder": "#000000", + "editorGutter.addedBackground": "#56949f", + "editorGutter.background": "#faf4ed", + "editorGutter.commentRangeForeground": "#797593", + "editorGutter.deletedBackground": "#b4637a", + "editorGutter.foldingControlForeground": "#907aa9", + "editorGutter.modifiedBackground": "#d7827e", + "editorHint.border": "#000000", + "editorHint.foreground": "#797593", + "editorHoverWidget.background": "#fffaf3", + "editorHoverWidget.border": "#9893a580", + "editorHoverWidget.foreground": "#797593", + "editorHoverWidget.highlightForeground": "#575279", + "editorHoverWidget.statusBarBackground": "#000000", + "editorIndentGuide.activeBackground": "#9893a5", + "editorIndentGuide.background": "#6e6a8626", + "editorInfo.border": "#f2e9e1", + "editorInfo.foreground": "#56949f", + "editorInlayHint.background": "#f2e9e1", + "editorInlayHint.foreground": "#797593", + "editorInlayHint.parameterBackground": "#f2e9e1", + "editorInlayHint.parameterForeground": "#907aa9", + "editorInlayHint.typeBackground": "#f2e9e1", + "editorInlayHint.typeForeground": "#56949f", + "editorLightBulb.foreground": "#286983", + "editorLightBulbAutoFix.foreground": "#d7827e", + "editorLineNumber.activeForeground": "#575279", + "editorLineNumber.foreground": "#797593", + "editorLink.activeForeground": "#d7827e", + "editorMarkerNavigation.background": "#fffaf3", + "editorMarkerNavigationError.background": "#fffaf3", + "editorMarkerNavigationInfo.background": "#fffaf3", + "editorMarkerNavigationWarning.background": "#fffaf3", + "editorOverviewRuler.addedForeground": "#56949f80", + "editorOverviewRuler.background": "#faf4ed", + "editorOverviewRuler.border": "#6e6a8626", + "editorOverviewRuler.bracketMatchForeground": "#797593", + "editorOverviewRuler.commonContentForeground": "#6e6a860d", + "editorOverviewRuler.currentContentForeground": "#6e6a8614", + "editorOverviewRuler.deletedForeground": "#b4637a80", + "editorOverviewRuler.errorForeground": "#b4637a80", + "editorOverviewRuler.findMatchForeground": "#6e6a8626", + "editorOverviewRuler.incomingContentForeground": "#907aa980", + "editorOverviewRuler.infoForeground": "#56949f80", + "editorOverviewRuler.modifiedForeground": "#d7827e80", + "editorOverviewRuler.rangeHighlightForeground": "#6e6a8626", + "editorOverviewRuler.selectionHighlightForeground": "#6e6a8626", + "editorOverviewRuler.warningForeground": "#ea9d3480", + "editorOverviewRuler.wordHighlightForeground": "#6e6a8614", + "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8626", + "editorPane.background": "#000000", + "editorRuler.foreground": "#6e6a8626", + "editorSuggestWidget.background": "#fffaf3", + "editorSuggestWidget.border": "#000000", + "editorSuggestWidget.focusHighlightForeground": "#d7827e", + "editorSuggestWidget.foreground": "#797593", + "editorSuggestWidget.highlightForeground": "#d7827e", + "editorSuggestWidget.selectedBackground": "#6e6a8614", + "editorSuggestWidget.selectedForeground": "#575279", + "editorSuggestWidget.selectedIconForeground": "#575279", + "editorUnnecessaryCode.border": "#000000", + "editorUnnecessaryCode.opacity": "#57527980", + "editorWarning.border": "#000000", + "editorWarning.foreground": "#ea9d34", + "editorWhitespace.foreground": "#9893a5", + "editorWidget.background": "#fffaf3", + "editorWidget.border": "#f2e9e1", + "editorWidget.foreground": "#797593", + "editorWidget.resizeBorder": "#9893a5", + "errorForeground": "#b4637a", + "extensionBadge.remoteBackground": "#907aa9", + "extensionBadge.remoteForeground": "#faf4ed", + "extensionButton.prominentBackground": "#d7827e", + "extensionButton.prominentForeground": "#faf4ed", + "extensionButton.prominentHoverBackground": "#d7827ee6", + "extensionIcon.preReleaseForeground": "#286983", + "extensionIcon.starForeground": "#d7827e", + "extensionIcon.verifiedForeground": "#907aa9", + "focusBorder": "#6e6a8614", + "foreground": "#575279", + "gitDecoration.addedResourceForeground": "#56949f", + "gitDecoration.conflictingResourceForeground": "#b4637a", + "gitDecoration.deletedResourceForeground": "#797593", + "gitDecoration.ignoredResourceForeground": "#9893a5", + "gitDecoration.modifiedResourceForeground": "#d7827e", + "gitDecoration.renamedResourceForeground": "#286983", + "gitDecoration.stageDeletedResourceForeground": "#b4637a", + "gitDecoration.stageModifiedResourceForeground": "#907aa9", + "gitDecoration.submoduleResourceForeground": "#ea9d34", + "gitDecoration.untrackedResourceForeground": "#ea9d34", + "icon.foreground": "#797593", + "input.background": "#f2e9e180", + "input.border": "#6e6a8614", + "input.foreground": "#575279", + "input.placeholderForeground": "#797593", + "inputOption.activeBackground": "#d7827e26", + "inputOption.activeForeground": "#d7827e", + "inputValidation.errorBackground": "#fffaf3", + "inputValidation.errorBorder": "#6e6a8626", + "inputValidation.errorForeground": "#b4637a", + "inputValidation.infoBackground": "#fffaf3", + "inputValidation.infoBorder": "#6e6a8626", + "inputValidation.infoForeground": "#56949f", + "inputValidation.warningBackground": "#fffaf3", + "inputValidation.warningBorder": "#6e6a8626", + "inputValidation.warningForeground": "#56949f80", + "keybindingLabel.background": "#f2e9e1", + "keybindingLabel.border": "#6e6a8626", + "keybindingLabel.bottomBorder": "#6e6a8626", + "keybindingLabel.foreground": "#907aa9", + "keybindingTable.headerBackground": "#f2e9e1", + "keybindingTable.rowsBackground": "#fffaf3", + "list.activeSelectionBackground": "#6e6a8614", + "list.activeSelectionForeground": "#575279", + "list.deemphasizedForeground": "#797593", + "list.dropBackground": "#fffaf3", + "list.errorForeground": "#b4637a", + "list.filterMatchBackground": "#fffaf3", + "list.filterMatchBorder": "#d7827e", + "list.focusBackground": "#6e6a8626", + "list.focusForeground": "#575279", + "list.focusOutline": "#6e6a8614", + "list.highlightForeground": "#d7827e", + "list.hoverBackground": "#6e6a860d", + "list.hoverForeground": "#575279", + "list.inactiveFocusBackground": "#6e6a860d", + "list.inactiveSelectionBackground": "#fffaf3", + "list.inactiveSelectionForeground": "#575279", + "list.invalidItemForeground": "#b4637a", + "list.warningForeground": "#ea9d34", + "listFilterWidget.background": "#fffaf3", + "listFilterWidget.noMatchesOutline": "#b4637a", + "listFilterWidget.outline": "#f2e9e1", + "menu.background": "#fffaf3", + "menu.border": "#6e6a860d", + "menu.foreground": "#575279", + "menu.selectionBackground": "#6e6a8614", + "menu.selectionBorder": "#f2e9e1", + "menu.selectionForeground": "#575279", + "menu.separatorBackground": "#6e6a8626", + "menubar.selectionBackground": "#6e6a8614", + "menubar.selectionBorder": "#6e6a860d", + "menubar.selectionForeground": "#575279", + "merge.border": "#f2e9e1", + "merge.commonContentBackground": "#6e6a8614", + "merge.commonHeaderBackground": "#6e6a8614", + "merge.currentContentBackground": "#ea9d3480", + "merge.currentHeaderBackground": "#ea9d3480", + "merge.incomingContentBackground": "#56949f80", + "merge.incomingHeaderBackground": "#56949f80", + "minimap.background": "#fffaf3", + "minimap.errorHighlight": "#b4637a80", + "minimap.findMatchHighlight": "#6e6a8614", + "minimap.selectionHighlight": "#6e6a8614", + "minimap.warningHighlight": "#ea9d3480", + "minimapGutter.addedBackground": "#56949f", + "minimapGutter.deletedBackground": "#b4637a", + "minimapGutter.modifiedBackground": "#d7827e", + "minimapSlider.activeBackground": "#6e6a8626", + "minimapSlider.background": "#6e6a8614", + "minimapSlider.hoverBackground": "#6e6a8614", + "notebook.cellBorderColor": "#56949f80", + "notebook.cellEditorBackground": "#fffaf3", + "notebook.cellHoverBackground": "#f2e9e180", + "notebook.focusedCellBackground": "#6e6a860d", + "notebook.focusedCellBorder": "#56949f", + "notebook.outputContainerBackgroundColor": "#6e6a860d", + "notificationCenter.border": "#6e6a8614", + "notificationCenterHeader.background": "#fffaf3", + "notificationCenterHeader.foreground": "#797593", + "notificationLink.foreground": "#907aa9", + "notifications.background": "#fffaf3", + "notifications.border": "#6e6a8614", + "notifications.foreground": "#575279", + "notificationsErrorIcon.foreground": "#b4637a", + "notificationsInfoIcon.foreground": "#56949f", + "notificationsWarningIcon.foreground": "#ea9d34", + "notificationToast.border": "#6e6a8614", + "panel.background": "#fffaf3", + "panel.border": "#000000", + "panel.dropBorder": "#f2e9e1", + "panelInput.border": "#fffaf3", + "panelSection.dropBackground": "#6e6a8614", + "panelSectionHeader.background": "#fffaf3", + "panelSectionHeader.foreground": "#575279", + "panelTitle.activeBorder": "#6e6a8626", + "panelTitle.activeForeground": "#575279", + "panelTitle.inactiveForeground": "#797593", + "peekView.border": "#f2e9e1", + "peekViewEditor.background": "#fffaf3", + "peekViewEditor.matchHighlightBackground": "#6e6a8626", + "peekViewResult.background": "#fffaf3", + "peekViewResult.fileForeground": "#797593", + "peekViewResult.lineForeground": "#797593", + "peekViewResult.matchHighlightBackground": "#6e6a8626", + "peekViewResult.selectionBackground": "#6e6a8614", + "peekViewResult.selectionForeground": "#575279", + "peekViewTitle.background": "#f2e9e1", + "peekViewTitleDescription.foreground": "#797593", + "pickerGroup.border": "#6e6a8626", + "pickerGroup.foreground": "#907aa9", + "ports.iconRunningProcessForeground": "#d7827e", + "problemsErrorIcon.foreground": "#b4637a", + "problemsInfoIcon.foreground": "#56949f", + "problemsWarningIcon.foreground": "#ea9d34", + "progressBar.background": "#d7827e", + "quickInput.background": "#fffaf3", + "quickInput.foreground": "#797593", + "quickInputList.focusBackground": "#6e6a8614", + "quickInputList.focusForeground": "#575279", + "quickInputList.focusIconForeground": "#575279", + "scrollbar.shadow": "#fffaf34d", + "scrollbarSlider.activeBackground": "#28698380", + "scrollbarSlider.background": "#6e6a8614", + "scrollbarSlider.hoverBackground": "#6e6a8626", + "searchEditor.findMatchBackground": "#6e6a8614", + "selection.background": "#6e6a8626", + "settings.focusedRowBackground": "#fffaf3", + "settings.headerForeground": "#575279", + "settings.modifiedItemIndicator": "#d7827e", + "settings.focusedRowBorder": "#6e6a8614", + "settings.rowHoverBackground": "#fffaf3", + "sideBar.background": "#faf4ed", + "sideBar.dropBackground": "#fffaf3", + "sideBar.foreground": "#797593", + "sideBarSectionHeader.background": "#000000", + "sideBarSectionHeader.border": "#6e6a8614", + "statusBar.background": "#faf4ed", + "statusBar.debuggingBackground": "#907aa9", + "statusBar.debuggingForeground": "#faf4ed", + "statusBar.foreground": "#797593", + "statusBar.noFolderBackground": "#faf4ed", + "statusBar.noFolderForeground": "#797593", + "statusBarItem.activeBackground": "#6e6a8626", + "statusBarItem.hoverBackground": "#6e6a8614", + "statusBarItem.prominentBackground": "#f2e9e1", + "statusBarItem.prominentForeground": "#575279", + "statusBarItem.prominentHoverBackground": "#6e6a8614", + "statusBarItem.remoteBackground": "#faf4ed", + "statusBarItem.remoteForeground": "#ea9d34", + "statusBarItem.errorBackground": "#faf4ed", + "statusBarItem.errorForeground": "#b4637a", + "symbolIcon.arrayForeground": "#797593", + "symbolIcon.classForeground": "#797593", + "symbolIcon.colorForeground": "#797593", + "symbolIcon.constantForeground": "#797593", + "symbolIcon.constructorForeground": "#797593", + "symbolIcon.enumeratorForeground": "#797593", + "symbolIcon.enumeratorMemberForeground": "#797593", + "symbolIcon.eventForeground": "#797593", + "symbolIcon.fieldForeground": "#797593", + "symbolIcon.fileForeground": "#797593", + "symbolIcon.folderForeground": "#797593", + "symbolIcon.functionForeground": "#797593", + "symbolIcon.interfaceForeground": "#797593", + "symbolIcon.keyForeground": "#797593", + "symbolIcon.keywordForeground": "#797593", + "symbolIcon.methodForeground": "#797593", + "symbolIcon.moduleForeground": "#797593", + "symbolIcon.namespaceForeground": "#797593", + "symbolIcon.nullForeground": "#797593", + "symbolIcon.numberForeground": "#797593", + "symbolIcon.objectForeground": "#797593", + "symbolIcon.operatorForeground": "#797593", + "symbolIcon.packageForeground": "#797593", + "symbolIcon.propertyForeground": "#797593", + "symbolIcon.referenceForeground": "#797593", + "symbolIcon.snippetForeground": "#797593", + "symbolIcon.stringForeground": "#797593", + "symbolIcon.structForeground": "#797593", + "symbolIcon.textForeground": "#797593", + "symbolIcon.typeParameterForeground": "#797593", + "symbolIcon.unitForeground": "#797593", + "symbolIcon.variableForeground": "#797593", + "tab.activeBackground": "#6e6a860d", + "tab.activeForeground": "#575279", + "tab.activeModifiedBorder": "#56949f", + "tab.border": "#000000", + "tab.hoverBackground": "#6e6a8614", + "tab.inactiveBackground": "#000000", + "tab.inactiveForeground": "#797593", + "tab.inactiveModifiedBorder": "#56949f80", + "tab.lastPinnedBorder": "#9893a5", + "tab.unfocusedActiveBackground": "#000000", + "tab.unfocusedHoverBackground": "#000000", + "tab.unfocusedInactiveBackground": "#000000", + "tab.unfocusedInactiveModifiedBorder": "#56949f80", + "terminal.ansiBlack": "#f2e9e1", + "terminal.ansiBlue": "#56949f", + "terminal.ansiBrightBlack": "#797593", + "terminal.ansiBrightBlue": "#56949f", + "terminal.ansiBrightCyan": "#d7827e", + "terminal.ansiBrightGreen": "#286983", + "terminal.ansiBrightMagenta": "#907aa9", + "terminal.ansiBrightRed": "#b4637a", + "terminal.ansiBrightWhite": "#575279", + "terminal.ansiBrightYellow": "#ea9d34", + "terminal.ansiCyan": "#d7827e", + "terminal.ansiGreen": "#286983", + "terminal.ansiMagenta": "#907aa9", + "terminal.ansiRed": "#b4637a", + "terminal.ansiWhite": "#575279", + "terminal.ansiYellow": "#ea9d34", + "terminal.dropBackground": "#6e6a8614", + "terminal.foreground": "#575279", + "terminal.selectionBackground": "#6e6a8614", + "terminal.tab.activeBorder": "#575279", + "terminalCursor.background": "#575279", + "terminalCursor.foreground": "#9893a5", + "textBlockQuote.background": "#fffaf3", + "textBlockQuote.border": "#6e6a8614", + "textCodeBlock.background": "#fffaf3", + "textLink.activeForeground": "#907aa9e6", + "textLink.foreground": "#907aa9", + "textPreformat.foreground": "#ea9d34", + "textSeparator.foreground": "#797593", + "titleBar.activeBackground": "#faf4ed", + "titleBar.activeForeground": "#797593", + "titleBar.inactiveBackground": "#fffaf3", + "titleBar.inactiveForeground": "#797593", + "toolbar.activeBackground": "#6e6a8626", + "toolbar.hoverBackground": "#6e6a8614", + "tree.indentGuidesStroke": "#797593", + "walkThrough.embeddedEditorBackground": "#faf4ed", + "welcomePage.background": "#faf4ed", + "welcomePage.buttonBackground": "#fffaf3", + "welcomePage.buttonHoverBackground": "#f2e9e1", + "widget.shadow": "#fffaf34d", + "window.activeBorder": "#fffaf3", + "window.inactiveBorder": "#fffaf3" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#9893a5", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#907aa9" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#9893a5" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#b4637a", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#d7827e", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other", + "variable.language", + "variable.function", + "variable.argument" + ], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#907aa9" + } + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/rose-pine-moon.json b/assets/themes/src/vscode/rose-pine/rose-pine-moon.json new file mode 100644 index 0000000000000000000000000000000000000000..dbbb757335f26eea1acb0ea7e7cfc4bfd3d9dc6a --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/rose-pine-moon.json @@ -0,0 +1,680 @@ +{ + "name": "Rosé Pine Moon", + "type": "dark", + "colors": { + "activityBar.activeBorder": "#e0def4", + "activityBar.background": "#232136", + "activityBar.dropBorder": "#393552", + "activityBar.foreground": "#e0def4", + "activityBar.inactiveForeground": "#908caa", + "activityBarBadge.background": "#ea9a97", + "activityBarBadge.foreground": "#232136", + "badge.background": "#ea9a97", + "badge.foreground": "#232136", + "banner.background": "#2a273f", + "banner.foreground": "#e0def4", + "banner.iconForeground": "#908caa", + "breadcrumb.activeSelectionForeground": "#ea9a97", + "breadcrumb.background": "#232136", + "breadcrumb.focusForeground": "#908caa", + "breadcrumb.foreground": "#6e6a86", + "breadcrumbPicker.background": "#2a273f", + "button.background": "#ea9a97", + "button.foreground": "#232136", + "button.hoverBackground": "#ea9a97e6", + "button.secondaryBackground": "#2a273f", + "button.secondaryForeground": "#e0def4", + "button.secondaryHoverBackground": "#393552", + "charts.blue": "#9ccfd8", + "charts.foreground": "#e0def4", + "charts.green": "#3e8fb0", + "charts.lines": "#908caa", + "charts.orange": "#ea9a97", + "charts.purple": "#c4a7e7", + "charts.red": "#eb6f92", + "charts.yellow": "#f6c177", + "checkbox.background": "#2a273f", + "checkbox.border": "#817c9c26", + "checkbox.foreground": "#e0def4", + "debugExceptionWidget.background": "#2a273f", + "debugExceptionWidget.border": "#817c9c26", + "debugIcon.breakpointCurrentStackframeForeground": "#908caa", + "debugIcon.breakpointDisabledForeground": "#908caa", + "debugIcon.breakpointForeground": "#908caa", + "debugIcon.breakpointStackframeForeground": "#908caa", + "debugIcon.breakpointUnverifiedForeground": "#908caa", + "debugIcon.continueForeground": "#908caa", + "debugIcon.disconnectForeground": "#908caa", + "debugIcon.pauseForeground": "#908caa", + "debugIcon.restartForeground": "#908caa", + "debugIcon.startForeground": "#908caa", + "debugIcon.stepBackForeground": "#908caa", + "debugIcon.stepIntoForeground": "#908caa", + "debugIcon.stepOutForeground": "#908caa", + "debugIcon.stepOverForeground": "#908caa", + "debugIcon.stopForeground": "#eb6f92", + "debugToolBar.background": "#2a273f", + "debugToolBar.border": "#393552", + "descriptionForeground": "#908caa", + "diffEditor.border": "#393552", + "diffEditor.diagonalFill": "#817c9c4d", + "diffEditor.insertedLineBackground": "#9ccfd826", + "diffEditor.insertedTextBackground": "#9ccfd826", + "diffEditor.removedLineBackground": "#eb6f9226", + "diffEditor.removedTextBackground": "#eb6f9226", + "diffEditorOverview.insertedForeground": "#9ccfd880", + "diffEditorOverview.removedForeground": "#eb6f9280", + "dropdown.background": "#2a273f", + "dropdown.border": "#817c9c26", + "dropdown.foreground": "#e0def4", + "dropdown.listBackground": "#2a273f", + "editor.background": "#232136", + "editor.findMatchBackground": "#817c9c4d", + "editor.findMatchHighlightBackground": "#817c9c4d", + "editor.findRangeHighlightBackground": "#817c9c4d", + "editor.findRangeHighlightBorder": "#000000", + "editor.focusedStackFrameHighlightBackground": "#817c9c26", + "editor.foldBackground": "#2a273f", + "editor.foreground": "#e0def4", + "editor.hoverHighlightBackground": "#000000", + "editor.inactiveSelectionBackground": "#817c9c14", + "editor.inlineValuesBackground": "#000000", + "editor.inlineValuesForeground": "#908caa", + "editor.lineHighlightBackground": "#817c9c14", + "editor.lineHighlightBorder": "#000000", + "editor.linkedEditingBackground": "#2a273f", + "editor.rangeHighlightBackground": "#817c9c14", + "editor.selectionBackground": "#817c9c26", + "editor.selectionForeground": "#e0def4", + "editor.selectionHighlightBackground": "#817c9c26", + "editor.selectionHighlightBorder": "#232136", + "editor.snippetFinalTabstopHighlightBackground": "#817c9c26", + "editor.snippetFinalTabstopHighlightBorder": "#2a273f", + "editor.snippetTabstopHighlightBackground": "#817c9c26", + "editor.snippetTabstopHighlightBorder": "#2a273f", + "editor.stackFrameHighlightBackground": "#817c9c26", + "editor.symbolHighlightBackground": "#817c9c26", + "editor.symbolHighlightBorder": "#000000", + "editor.wordHighlightBackground": "#817c9c26", + "editor.wordHighlightBorder": "#000000", + "editor.wordHighlightStrongBackground": "#817c9c26", + "editor.wordHighlightStrongBorder": "#817c9c26", + "editorBracketHighlight.foreground1": "#eb6f9280", + "editorBracketHighlight.foreground2": "#3e8fb080", + "editorBracketHighlight.foreground3": "#f6c17780", + "editorBracketHighlight.foreground4": "#9ccfd880", + "editorBracketHighlight.foreground5": "#ea9a9780", + "editorBracketHighlight.foreground6": "#c4a7e780", + "editorBracketMatch.background": "#000000", + "editorBracketMatch.border": "#908caa", + "editorBracketPairGuide.activeBackground1": "#3e8fb0", + "editorBracketPairGuide.activeBackground2": "#ea9a97", + "editorBracketPairGuide.activeBackground3": "#c4a7e7", + "editorBracketPairGuide.activeBackground4": "#9ccfd8", + "editorBracketPairGuide.activeBackground5": "#f6c177", + "editorBracketPairGuide.activeBackground6": "#eb6f92", + "editorBracketPairGuide.background1": "#3e8fb080", + "editorBracketPairGuide.background2": "#ea9a9780", + "editorBracketPairGuide.background3": "#c4a7e780", + "editorBracketPairGuide.background4": "#9ccfd880", + "editorBracketPairGuide.background5": "#f6c17780", + "editorBracketPairGuide.background6": "#eb6f9280", + "editorCodeLens.foreground": "#ea9a97", + "editorCursor.background": "#e0def4", + "editorCursor.foreground": "#6e6a86", + "editorError.border": "#000000", + "editorError.foreground": "#eb6f92", + "editorGhostText.foreground": "#908caa", + "editorGroup.border": "#000000", + "editorGroup.dropBackground": "#2a273f", + "editorGroup.emptyBackground": "#000000", + "editorGroup.focusedEmptyBorder": "#000000", + "editorGroupHeader.noTabsBackground": "#000000", + "editorGroupHeader.tabsBackground": "#000000", + "editorGroupHeader.tabsBorder": "#000000", + "editorGutter.addedBackground": "#9ccfd8", + "editorGutter.background": "#232136", + "editorGutter.commentRangeForeground": "#908caa", + "editorGutter.deletedBackground": "#eb6f92", + "editorGutter.foldingControlForeground": "#c4a7e7", + "editorGutter.modifiedBackground": "#ea9a97", + "editorHint.border": "#000000", + "editorHint.foreground": "#908caa", + "editorHoverWidget.background": "#2a273f", + "editorHoverWidget.border": "#6e6a8680", + "editorHoverWidget.foreground": "#908caa", + "editorHoverWidget.highlightForeground": "#e0def4", + "editorHoverWidget.statusBarBackground": "#000000", + "editorIndentGuide.activeBackground": "#6e6a86", + "editorIndentGuide.background": "#817c9c4d", + "editorInfo.border": "#393552", + "editorInfo.foreground": "#9ccfd8", + "editorInlayHint.background": "#393552", + "editorInlayHint.foreground": "#908caa", + "editorInlayHint.parameterBackground": "#393552", + "editorInlayHint.parameterForeground": "#c4a7e7", + "editorInlayHint.typeBackground": "#393552", + "editorInlayHint.typeForeground": "#9ccfd8", + "editorLightBulb.foreground": "#3e8fb0", + "editorLightBulbAutoFix.foreground": "#ea9a97", + "editorLineNumber.activeForeground": "#e0def4", + "editorLineNumber.foreground": "#908caa", + "editorLink.activeForeground": "#ea9a97", + "editorMarkerNavigation.background": "#2a273f", + "editorMarkerNavigationError.background": "#2a273f", + "editorMarkerNavigationInfo.background": "#2a273f", + "editorMarkerNavigationWarning.background": "#2a273f", + "editorOverviewRuler.addedForeground": "#9ccfd880", + "editorOverviewRuler.background": "#232136", + "editorOverviewRuler.border": "#817c9c4d", + "editorOverviewRuler.bracketMatchForeground": "#908caa", + "editorOverviewRuler.commonContentForeground": "#817c9c14", + "editorOverviewRuler.currentContentForeground": "#817c9c26", + "editorOverviewRuler.deletedForeground": "#eb6f9280", + "editorOverviewRuler.errorForeground": "#eb6f9280", + "editorOverviewRuler.findMatchForeground": "#817c9c4d", + "editorOverviewRuler.incomingContentForeground": "#c4a7e780", + "editorOverviewRuler.infoForeground": "#9ccfd880", + "editorOverviewRuler.modifiedForeground": "#ea9a9780", + "editorOverviewRuler.rangeHighlightForeground": "#817c9c4d", + "editorOverviewRuler.selectionHighlightForeground": "#817c9c4d", + "editorOverviewRuler.warningForeground": "#f6c17780", + "editorOverviewRuler.wordHighlightForeground": "#817c9c26", + "editorOverviewRuler.wordHighlightStrongForeground": "#817c9c4d", + "editorPane.background": "#000000", + "editorRuler.foreground": "#817c9c4d", + "editorSuggestWidget.background": "#2a273f", + "editorSuggestWidget.border": "#000000", + "editorSuggestWidget.focusHighlightForeground": "#ea9a97", + "editorSuggestWidget.foreground": "#908caa", + "editorSuggestWidget.highlightForeground": "#ea9a97", + "editorSuggestWidget.selectedBackground": "#817c9c26", + "editorSuggestWidget.selectedForeground": "#e0def4", + "editorSuggestWidget.selectedIconForeground": "#e0def4", + "editorUnnecessaryCode.border": "#000000", + "editorUnnecessaryCode.opacity": "#e0def480", + "editorWarning.border": "#000000", + "editorWarning.foreground": "#f6c177", + "editorWhitespace.foreground": "#6e6a86", + "editorWidget.background": "#2a273f", + "editorWidget.border": "#393552", + "editorWidget.foreground": "#908caa", + "editorWidget.resizeBorder": "#6e6a86", + "errorForeground": "#eb6f92", + "extensionBadge.remoteBackground": "#c4a7e7", + "extensionBadge.remoteForeground": "#232136", + "extensionButton.prominentBackground": "#ea9a97", + "extensionButton.prominentForeground": "#232136", + "extensionButton.prominentHoverBackground": "#ea9a97e6", + "extensionIcon.preReleaseForeground": "#3e8fb0", + "extensionIcon.starForeground": "#ea9a97", + "extensionIcon.verifiedForeground": "#c4a7e7", + "focusBorder": "#817c9c26", + "foreground": "#e0def4", + "gitDecoration.addedResourceForeground": "#9ccfd8", + "gitDecoration.conflictingResourceForeground": "#eb6f92", + "gitDecoration.deletedResourceForeground": "#908caa", + "gitDecoration.ignoredResourceForeground": "#6e6a86", + "gitDecoration.modifiedResourceForeground": "#ea9a97", + "gitDecoration.renamedResourceForeground": "#3e8fb0", + "gitDecoration.stageDeletedResourceForeground": "#eb6f92", + "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", + "gitDecoration.submoduleResourceForeground": "#f6c177", + "gitDecoration.untrackedResourceForeground": "#f6c177", + "icon.foreground": "#908caa", + "input.background": "#39355280", + "input.border": "#817c9c26", + "input.foreground": "#e0def4", + "input.placeholderForeground": "#908caa", + "inputOption.activeBackground": "#ea9a9726", + "inputOption.activeForeground": "#ea9a97", + "inputValidation.errorBackground": "#2a273f", + "inputValidation.errorBorder": "#817c9c4d", + "inputValidation.errorForeground": "#eb6f92", + "inputValidation.infoBackground": "#2a273f", + "inputValidation.infoBorder": "#817c9c4d", + "inputValidation.infoForeground": "#9ccfd8", + "inputValidation.warningBackground": "#2a273f", + "inputValidation.warningBorder": "#817c9c4d", + "inputValidation.warningForeground": "#9ccfd880", + "keybindingLabel.background": "#393552", + "keybindingLabel.border": "#817c9c4d", + "keybindingLabel.bottomBorder": "#817c9c4d", + "keybindingLabel.foreground": "#c4a7e7", + "keybindingTable.headerBackground": "#393552", + "keybindingTable.rowsBackground": "#2a273f", + "list.activeSelectionBackground": "#817c9c26", + "list.activeSelectionForeground": "#e0def4", + "list.deemphasizedForeground": "#908caa", + "list.dropBackground": "#2a273f", + "list.errorForeground": "#eb6f92", + "list.filterMatchBackground": "#2a273f", + "list.filterMatchBorder": "#ea9a97", + "list.focusBackground": "#817c9c4d", + "list.focusForeground": "#e0def4", + "list.focusOutline": "#817c9c26", + "list.highlightForeground": "#ea9a97", + "list.hoverBackground": "#817c9c14", + "list.hoverForeground": "#e0def4", + "list.inactiveFocusBackground": "#817c9c14", + "list.inactiveSelectionBackground": "#2a273f", + "list.inactiveSelectionForeground": "#e0def4", + "list.invalidItemForeground": "#eb6f92", + "list.warningForeground": "#f6c177", + "listFilterWidget.background": "#2a273f", + "listFilterWidget.noMatchesOutline": "#eb6f92", + "listFilterWidget.outline": "#393552", + "menu.background": "#2a273f", + "menu.border": "#817c9c14", + "menu.foreground": "#e0def4", + "menu.selectionBackground": "#817c9c26", + "menu.selectionBorder": "#393552", + "menu.selectionForeground": "#e0def4", + "menu.separatorBackground": "#817c9c4d", + "menubar.selectionBackground": "#817c9c26", + "menubar.selectionBorder": "#817c9c14", + "menubar.selectionForeground": "#e0def4", + "merge.border": "#393552", + "merge.commonContentBackground": "#817c9c26", + "merge.commonHeaderBackground": "#817c9c26", + "merge.currentContentBackground": "#f6c17780", + "merge.currentHeaderBackground": "#f6c17780", + "merge.incomingContentBackground": "#9ccfd880", + "merge.incomingHeaderBackground": "#9ccfd880", + "minimap.background": "#2a273f", + "minimap.errorHighlight": "#eb6f9280", + "minimap.findMatchHighlight": "#817c9c26", + "minimap.selectionHighlight": "#817c9c26", + "minimap.warningHighlight": "#f6c17780", + "minimapGutter.addedBackground": "#9ccfd8", + "minimapGutter.deletedBackground": "#eb6f92", + "minimapGutter.modifiedBackground": "#ea9a97", + "minimapSlider.activeBackground": "#817c9c4d", + "minimapSlider.background": "#817c9c26", + "minimapSlider.hoverBackground": "#817c9c26", + "notebook.cellBorderColor": "#9ccfd880", + "notebook.cellEditorBackground": "#2a273f", + "notebook.cellHoverBackground": "#39355280", + "notebook.focusedCellBackground": "#817c9c14", + "notebook.focusedCellBorder": "#9ccfd8", + "notebook.outputContainerBackgroundColor": "#817c9c14", + "notificationCenter.border": "#817c9c26", + "notificationCenterHeader.background": "#2a273f", + "notificationCenterHeader.foreground": "#908caa", + "notificationLink.foreground": "#c4a7e7", + "notifications.background": "#2a273f", + "notifications.border": "#817c9c26", + "notifications.foreground": "#e0def4", + "notificationsErrorIcon.foreground": "#eb6f92", + "notificationsInfoIcon.foreground": "#9ccfd8", + "notificationsWarningIcon.foreground": "#f6c177", + "notificationToast.border": "#817c9c26", + "panel.background": "#2a273f", + "panel.border": "#000000", + "panel.dropBorder": "#393552", + "panelInput.border": "#2a273f", + "panelSection.dropBackground": "#817c9c26", + "panelSectionHeader.background": "#2a273f", + "panelSectionHeader.foreground": "#e0def4", + "panelTitle.activeBorder": "#817c9c4d", + "panelTitle.activeForeground": "#e0def4", + "panelTitle.inactiveForeground": "#908caa", + "peekView.border": "#393552", + "peekViewEditor.background": "#2a273f", + "peekViewEditor.matchHighlightBackground": "#817c9c4d", + "peekViewResult.background": "#2a273f", + "peekViewResult.fileForeground": "#908caa", + "peekViewResult.lineForeground": "#908caa", + "peekViewResult.matchHighlightBackground": "#817c9c4d", + "peekViewResult.selectionBackground": "#817c9c26", + "peekViewResult.selectionForeground": "#e0def4", + "peekViewTitle.background": "#393552", + "peekViewTitleDescription.foreground": "#908caa", + "pickerGroup.border": "#817c9c4d", + "pickerGroup.foreground": "#c4a7e7", + "ports.iconRunningProcessForeground": "#ea9a97", + "problemsErrorIcon.foreground": "#eb6f92", + "problemsInfoIcon.foreground": "#9ccfd8", + "problemsWarningIcon.foreground": "#f6c177", + "progressBar.background": "#ea9a97", + "quickInput.background": "#2a273f", + "quickInput.foreground": "#908caa", + "quickInputList.focusBackground": "#817c9c26", + "quickInputList.focusForeground": "#e0def4", + "quickInputList.focusIconForeground": "#e0def4", + "scrollbar.shadow": "#2a273f4d", + "scrollbarSlider.activeBackground": "#3e8fb080", + "scrollbarSlider.background": "#817c9c26", + "scrollbarSlider.hoverBackground": "#817c9c4d", + "searchEditor.findMatchBackground": "#817c9c26", + "selection.background": "#817c9c4d", + "settings.focusedRowBackground": "#2a273f", + "settings.headerForeground": "#e0def4", + "settings.modifiedItemIndicator": "#ea9a97", + "settings.focusedRowBorder": "#817c9c26", + "settings.rowHoverBackground": "#2a273f", + "sideBar.background": "#232136", + "sideBar.dropBackground": "#2a273f", + "sideBar.foreground": "#908caa", + "sideBarSectionHeader.background": "#000000", + "sideBarSectionHeader.border": "#817c9c26", + "statusBar.background": "#232136", + "statusBar.debuggingBackground": "#c4a7e7", + "statusBar.debuggingForeground": "#232136", + "statusBar.foreground": "#908caa", + "statusBar.noFolderBackground": "#232136", + "statusBar.noFolderForeground": "#908caa", + "statusBarItem.activeBackground": "#817c9c4d", + "statusBarItem.hoverBackground": "#817c9c26", + "statusBarItem.prominentBackground": "#393552", + "statusBarItem.prominentForeground": "#e0def4", + "statusBarItem.prominentHoverBackground": "#817c9c26", + "statusBarItem.remoteBackground": "#232136", + "statusBarItem.remoteForeground": "#f6c177", + "statusBarItem.errorBackground": "#232136", + "statusBarItem.errorForeground": "#eb6f92", + "symbolIcon.arrayForeground": "#908caa", + "symbolIcon.classForeground": "#908caa", + "symbolIcon.colorForeground": "#908caa", + "symbolIcon.constantForeground": "#908caa", + "symbolIcon.constructorForeground": "#908caa", + "symbolIcon.enumeratorForeground": "#908caa", + "symbolIcon.enumeratorMemberForeground": "#908caa", + "symbolIcon.eventForeground": "#908caa", + "symbolIcon.fieldForeground": "#908caa", + "symbolIcon.fileForeground": "#908caa", + "symbolIcon.folderForeground": "#908caa", + "symbolIcon.functionForeground": "#908caa", + "symbolIcon.interfaceForeground": "#908caa", + "symbolIcon.keyForeground": "#908caa", + "symbolIcon.keywordForeground": "#908caa", + "symbolIcon.methodForeground": "#908caa", + "symbolIcon.moduleForeground": "#908caa", + "symbolIcon.namespaceForeground": "#908caa", + "symbolIcon.nullForeground": "#908caa", + "symbolIcon.numberForeground": "#908caa", + "symbolIcon.objectForeground": "#908caa", + "symbolIcon.operatorForeground": "#908caa", + "symbolIcon.packageForeground": "#908caa", + "symbolIcon.propertyForeground": "#908caa", + "symbolIcon.referenceForeground": "#908caa", + "symbolIcon.snippetForeground": "#908caa", + "symbolIcon.stringForeground": "#908caa", + "symbolIcon.structForeground": "#908caa", + "symbolIcon.textForeground": "#908caa", + "symbolIcon.typeParameterForeground": "#908caa", + "symbolIcon.unitForeground": "#908caa", + "symbolIcon.variableForeground": "#908caa", + "tab.activeBackground": "#817c9c14", + "tab.activeForeground": "#e0def4", + "tab.activeModifiedBorder": "#9ccfd8", + "tab.border": "#000000", + "tab.hoverBackground": "#817c9c26", + "tab.inactiveBackground": "#000000", + "tab.inactiveForeground": "#908caa", + "tab.inactiveModifiedBorder": "#9ccfd880", + "tab.lastPinnedBorder": "#6e6a86", + "tab.unfocusedActiveBackground": "#000000", + "tab.unfocusedHoverBackground": "#000000", + "tab.unfocusedInactiveBackground": "#000000", + "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", + "terminal.ansiBlack": "#393552", + "terminal.ansiBlue": "#9ccfd8", + "terminal.ansiBrightBlack": "#908caa", + "terminal.ansiBrightBlue": "#9ccfd8", + "terminal.ansiBrightCyan": "#ea9a97", + "terminal.ansiBrightGreen": "#3e8fb0", + "terminal.ansiBrightMagenta": "#c4a7e7", + "terminal.ansiBrightRed": "#eb6f92", + "terminal.ansiBrightWhite": "#e0def4", + "terminal.ansiBrightYellow": "#f6c177", + "terminal.ansiCyan": "#ea9a97", + "terminal.ansiGreen": "#3e8fb0", + "terminal.ansiMagenta": "#c4a7e7", + "terminal.ansiRed": "#eb6f92", + "terminal.ansiWhite": "#e0def4", + "terminal.ansiYellow": "#f6c177", + "terminal.dropBackground": "#817c9c26", + "terminal.foreground": "#e0def4", + "terminal.selectionBackground": "#817c9c26", + "terminal.tab.activeBorder": "#e0def4", + "terminalCursor.background": "#e0def4", + "terminalCursor.foreground": "#6e6a86", + "textBlockQuote.background": "#2a273f", + "textBlockQuote.border": "#817c9c26", + "textCodeBlock.background": "#2a273f", + "textLink.activeForeground": "#c4a7e7e6", + "textLink.foreground": "#c4a7e7", + "textPreformat.foreground": "#f6c177", + "textSeparator.foreground": "#908caa", + "titleBar.activeBackground": "#232136", + "titleBar.activeForeground": "#908caa", + "titleBar.inactiveBackground": "#2a273f", + "titleBar.inactiveForeground": "#908caa", + "toolbar.activeBackground": "#817c9c4d", + "toolbar.hoverBackground": "#817c9c26", + "tree.indentGuidesStroke": "#908caa", + "walkThrough.embeddedEditorBackground": "#232136", + "welcomePage.background": "#232136", + "welcomePage.buttonBackground": "#2a273f", + "welcomePage.buttonHoverBackground": "#393552", + "widget.shadow": "#2a273f4d", + "window.activeBorder": "#2a273f", + "window.inactiveBorder": "#2a273f" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#6e6a86", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#ea9a97" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#ea9a97" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#c4a7e7" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#6e6a86" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#eb6f92", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#ea9a97", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other", + "variable.language", + "variable.function", + "variable.argument" + ], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#c4a7e7" + } + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/rose-pine.json b/assets/themes/src/vscode/rose-pine/rose-pine.json new file mode 100644 index 0000000000000000000000000000000000000000..c2a0d23efc59b8cb1da9b9a74e31ca3064df8cf4 --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/rose-pine.json @@ -0,0 +1,680 @@ +{ + "name": "Rosé Pine", + "type": "dark", + "colors": { + "activityBar.activeBorder": "#e0def4", + "activityBar.background": "#191724", + "activityBar.dropBorder": "#26233a", + "activityBar.foreground": "#e0def4", + "activityBar.inactiveForeground": "#908caa", + "activityBarBadge.background": "#ebbcba", + "activityBarBadge.foreground": "#191724", + "badge.background": "#ebbcba", + "badge.foreground": "#191724", + "banner.background": "#1f1d2e", + "banner.foreground": "#e0def4", + "banner.iconForeground": "#908caa", + "breadcrumb.activeSelectionForeground": "#ebbcba", + "breadcrumb.background": "#191724", + "breadcrumb.focusForeground": "#908caa", + "breadcrumb.foreground": "#6e6a86", + "breadcrumbPicker.background": "#1f1d2e", + "button.background": "#ebbcba", + "button.foreground": "#191724", + "button.hoverBackground": "#ebbcbae6", + "button.secondaryBackground": "#1f1d2e", + "button.secondaryForeground": "#e0def4", + "button.secondaryHoverBackground": "#26233a", + "charts.blue": "#9ccfd8", + "charts.foreground": "#e0def4", + "charts.green": "#31748f", + "charts.lines": "#908caa", + "charts.orange": "#ebbcba", + "charts.purple": "#c4a7e7", + "charts.red": "#eb6f92", + "charts.yellow": "#f6c177", + "checkbox.background": "#1f1d2e", + "checkbox.border": "#6e6a8633", + "checkbox.foreground": "#e0def4", + "debugExceptionWidget.background": "#1f1d2e", + "debugExceptionWidget.border": "#6e6a8633", + "debugIcon.breakpointCurrentStackframeForeground": "#908caa", + "debugIcon.breakpointDisabledForeground": "#908caa", + "debugIcon.breakpointForeground": "#908caa", + "debugIcon.breakpointStackframeForeground": "#908caa", + "debugIcon.breakpointUnverifiedForeground": "#908caa", + "debugIcon.continueForeground": "#908caa", + "debugIcon.disconnectForeground": "#908caa", + "debugIcon.pauseForeground": "#908caa", + "debugIcon.restartForeground": "#908caa", + "debugIcon.startForeground": "#908caa", + "debugIcon.stepBackForeground": "#908caa", + "debugIcon.stepIntoForeground": "#908caa", + "debugIcon.stepOutForeground": "#908caa", + "debugIcon.stepOverForeground": "#908caa", + "debugIcon.stopForeground": "#eb6f92", + "debugToolBar.background": "#1f1d2e", + "debugToolBar.border": "#26233a", + "descriptionForeground": "#908caa", + "diffEditor.border": "#26233a", + "diffEditor.diagonalFill": "#6e6a8666", + "diffEditor.insertedLineBackground": "#9ccfd826", + "diffEditor.insertedTextBackground": "#9ccfd826", + "diffEditor.removedLineBackground": "#eb6f9226", + "diffEditor.removedTextBackground": "#eb6f9226", + "diffEditorOverview.insertedForeground": "#9ccfd880", + "diffEditorOverview.removedForeground": "#eb6f9280", + "dropdown.background": "#1f1d2e", + "dropdown.border": "#6e6a8633", + "dropdown.foreground": "#e0def4", + "dropdown.listBackground": "#1f1d2e", + "editor.background": "#191724", + "editor.findMatchBackground": "#6e6a8666", + "editor.findMatchHighlightBackground": "#6e6a8666", + "editor.findRangeHighlightBackground": "#6e6a8666", + "editor.findRangeHighlightBorder": "#000000", + "editor.focusedStackFrameHighlightBackground": "#6e6a8633", + "editor.foldBackground": "#1f1d2e", + "editor.foreground": "#e0def4", + "editor.hoverHighlightBackground": "#000000", + "editor.inactiveSelectionBackground": "#6e6a861a", + "editor.inlineValuesBackground": "#000000", + "editor.inlineValuesForeground": "#908caa", + "editor.lineHighlightBackground": "#6e6a861a", + "editor.lineHighlightBorder": "#000000", + "editor.linkedEditingBackground": "#1f1d2e", + "editor.rangeHighlightBackground": "#6e6a861a", + "editor.selectionBackground": "#6e6a8633", + "editor.selectionForeground": "#e0def4", + "editor.selectionHighlightBackground": "#6e6a8633", + "editor.selectionHighlightBorder": "#191724", + "editor.snippetFinalTabstopHighlightBackground": "#6e6a8633", + "editor.snippetFinalTabstopHighlightBorder": "#1f1d2e", + "editor.snippetTabstopHighlightBackground": "#6e6a8633", + "editor.snippetTabstopHighlightBorder": "#1f1d2e", + "editor.stackFrameHighlightBackground": "#6e6a8633", + "editor.symbolHighlightBackground": "#6e6a8633", + "editor.symbolHighlightBorder": "#000000", + "editor.wordHighlightBackground": "#6e6a8633", + "editor.wordHighlightBorder": "#000000", + "editor.wordHighlightStrongBackground": "#6e6a8633", + "editor.wordHighlightStrongBorder": "#6e6a8633", + "editorBracketHighlight.foreground1": "#eb6f9280", + "editorBracketHighlight.foreground2": "#31748f80", + "editorBracketHighlight.foreground3": "#f6c17780", + "editorBracketHighlight.foreground4": "#9ccfd880", + "editorBracketHighlight.foreground5": "#ebbcba80", + "editorBracketHighlight.foreground6": "#c4a7e780", + "editorBracketMatch.background": "#000000", + "editorBracketMatch.border": "#908caa", + "editorBracketPairGuide.activeBackground1": "#31748f", + "editorBracketPairGuide.activeBackground2": "#ebbcba", + "editorBracketPairGuide.activeBackground3": "#c4a7e7", + "editorBracketPairGuide.activeBackground4": "#9ccfd8", + "editorBracketPairGuide.activeBackground5": "#f6c177", + "editorBracketPairGuide.activeBackground6": "#eb6f92", + "editorBracketPairGuide.background1": "#31748f80", + "editorBracketPairGuide.background2": "#ebbcba80", + "editorBracketPairGuide.background3": "#c4a7e780", + "editorBracketPairGuide.background4": "#9ccfd880", + "editorBracketPairGuide.background5": "#f6c17780", + "editorBracketPairGuide.background6": "#eb6f9280", + "editorCodeLens.foreground": "#ebbcba", + "editorCursor.background": "#e0def4", + "editorCursor.foreground": "#6e6a86", + "editorError.border": "#000000", + "editorError.foreground": "#eb6f92", + "editorGhostText.foreground": "#908caa", + "editorGroup.border": "#000000", + "editorGroup.dropBackground": "#1f1d2e", + "editorGroup.emptyBackground": "#000000", + "editorGroup.focusedEmptyBorder": "#000000", + "editorGroupHeader.noTabsBackground": "#000000", + "editorGroupHeader.tabsBackground": "#000000", + "editorGroupHeader.tabsBorder": "#000000", + "editorGutter.addedBackground": "#9ccfd8", + "editorGutter.background": "#191724", + "editorGutter.commentRangeForeground": "#908caa", + "editorGutter.deletedBackground": "#eb6f92", + "editorGutter.foldingControlForeground": "#c4a7e7", + "editorGutter.modifiedBackground": "#ebbcba", + "editorHint.border": "#000000", + "editorHint.foreground": "#908caa", + "editorHoverWidget.background": "#1f1d2e", + "editorHoverWidget.border": "#6e6a8680", + "editorHoverWidget.foreground": "#908caa", + "editorHoverWidget.highlightForeground": "#e0def4", + "editorHoverWidget.statusBarBackground": "#000000", + "editorIndentGuide.activeBackground": "#6e6a86", + "editorIndentGuide.background": "#6e6a8666", + "editorInfo.border": "#26233a", + "editorInfo.foreground": "#9ccfd8", + "editorInlayHint.background": "#26233a", + "editorInlayHint.foreground": "#908caa", + "editorInlayHint.parameterBackground": "#26233a", + "editorInlayHint.parameterForeground": "#c4a7e7", + "editorInlayHint.typeBackground": "#26233a", + "editorInlayHint.typeForeground": "#9ccfd8", + "editorLightBulb.foreground": "#31748f", + "editorLightBulbAutoFix.foreground": "#ebbcba", + "editorLineNumber.activeForeground": "#e0def4", + "editorLineNumber.foreground": "#908caa", + "editorLink.activeForeground": "#ebbcba", + "editorMarkerNavigation.background": "#1f1d2e", + "editorMarkerNavigationError.background": "#1f1d2e", + "editorMarkerNavigationInfo.background": "#1f1d2e", + "editorMarkerNavigationWarning.background": "#1f1d2e", + "editorOverviewRuler.addedForeground": "#9ccfd880", + "editorOverviewRuler.background": "#191724", + "editorOverviewRuler.border": "#6e6a8666", + "editorOverviewRuler.bracketMatchForeground": "#908caa", + "editorOverviewRuler.commonContentForeground": "#6e6a861a", + "editorOverviewRuler.currentContentForeground": "#6e6a8633", + "editorOverviewRuler.deletedForeground": "#eb6f9280", + "editorOverviewRuler.errorForeground": "#eb6f9280", + "editorOverviewRuler.findMatchForeground": "#6e6a8666", + "editorOverviewRuler.incomingContentForeground": "#c4a7e780", + "editorOverviewRuler.infoForeground": "#9ccfd880", + "editorOverviewRuler.modifiedForeground": "#ebbcba80", + "editorOverviewRuler.rangeHighlightForeground": "#6e6a8666", + "editorOverviewRuler.selectionHighlightForeground": "#6e6a8666", + "editorOverviewRuler.warningForeground": "#f6c17780", + "editorOverviewRuler.wordHighlightForeground": "#6e6a8633", + "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8666", + "editorPane.background": "#000000", + "editorRuler.foreground": "#6e6a8666", + "editorSuggestWidget.background": "#1f1d2e", + "editorSuggestWidget.border": "#000000", + "editorSuggestWidget.focusHighlightForeground": "#ebbcba", + "editorSuggestWidget.foreground": "#908caa", + "editorSuggestWidget.highlightForeground": "#ebbcba", + "editorSuggestWidget.selectedBackground": "#6e6a8633", + "editorSuggestWidget.selectedForeground": "#e0def4", + "editorSuggestWidget.selectedIconForeground": "#e0def4", + "editorUnnecessaryCode.border": "#000000", + "editorUnnecessaryCode.opacity": "#e0def480", + "editorWarning.border": "#000000", + "editorWarning.foreground": "#f6c177", + "editorWhitespace.foreground": "#6e6a86", + "editorWidget.background": "#1f1d2e", + "editorWidget.border": "#26233a", + "editorWidget.foreground": "#908caa", + "editorWidget.resizeBorder": "#6e6a86", + "errorForeground": "#eb6f92", + "extensionBadge.remoteBackground": "#c4a7e7", + "extensionBadge.remoteForeground": "#191724", + "extensionButton.prominentBackground": "#ebbcba", + "extensionButton.prominentForeground": "#191724", + "extensionButton.prominentHoverBackground": "#ebbcbae6", + "extensionIcon.preReleaseForeground": "#31748f", + "extensionIcon.starForeground": "#ebbcba", + "extensionIcon.verifiedForeground": "#c4a7e7", + "focusBorder": "#6e6a8633", + "foreground": "#e0def4", + "gitDecoration.addedResourceForeground": "#9ccfd8", + "gitDecoration.conflictingResourceForeground": "#eb6f92", + "gitDecoration.deletedResourceForeground": "#908caa", + "gitDecoration.ignoredResourceForeground": "#6e6a86", + "gitDecoration.modifiedResourceForeground": "#ebbcba", + "gitDecoration.renamedResourceForeground": "#31748f", + "gitDecoration.stageDeletedResourceForeground": "#eb6f92", + "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", + "gitDecoration.submoduleResourceForeground": "#f6c177", + "gitDecoration.untrackedResourceForeground": "#f6c177", + "icon.foreground": "#908caa", + "input.background": "#26233a80", + "input.border": "#6e6a8633", + "input.foreground": "#e0def4", + "input.placeholderForeground": "#908caa", + "inputOption.activeBackground": "#ebbcba26", + "inputOption.activeForeground": "#ebbcba", + "inputValidation.errorBackground": "#1f1d2e", + "inputValidation.errorBorder": "#6e6a8666", + "inputValidation.errorForeground": "#eb6f92", + "inputValidation.infoBackground": "#1f1d2e", + "inputValidation.infoBorder": "#6e6a8666", + "inputValidation.infoForeground": "#9ccfd8", + "inputValidation.warningBackground": "#1f1d2e", + "inputValidation.warningBorder": "#6e6a8666", + "inputValidation.warningForeground": "#9ccfd880", + "keybindingLabel.background": "#26233a", + "keybindingLabel.border": "#6e6a8666", + "keybindingLabel.bottomBorder": "#6e6a8666", + "keybindingLabel.foreground": "#c4a7e7", + "keybindingTable.headerBackground": "#26233a", + "keybindingTable.rowsBackground": "#1f1d2e", + "list.activeSelectionBackground": "#6e6a8633", + "list.activeSelectionForeground": "#e0def4", + "list.deemphasizedForeground": "#908caa", + "list.dropBackground": "#1f1d2e", + "list.errorForeground": "#eb6f92", + "list.filterMatchBackground": "#1f1d2e", + "list.filterMatchBorder": "#ebbcba", + "list.focusBackground": "#6e6a8666", + "list.focusForeground": "#e0def4", + "list.focusOutline": "#6e6a8633", + "list.highlightForeground": "#ebbcba", + "list.hoverBackground": "#6e6a861a", + "list.hoverForeground": "#e0def4", + "list.inactiveFocusBackground": "#6e6a861a", + "list.inactiveSelectionBackground": "#1f1d2e", + "list.inactiveSelectionForeground": "#e0def4", + "list.invalidItemForeground": "#eb6f92", + "list.warningForeground": "#f6c177", + "listFilterWidget.background": "#1f1d2e", + "listFilterWidget.noMatchesOutline": "#eb6f92", + "listFilterWidget.outline": "#26233a", + "menu.background": "#1f1d2e", + "menu.border": "#6e6a861a", + "menu.foreground": "#e0def4", + "menu.selectionBackground": "#6e6a8633", + "menu.selectionBorder": "#26233a", + "menu.selectionForeground": "#e0def4", + "menu.separatorBackground": "#6e6a8666", + "menubar.selectionBackground": "#6e6a8633", + "menubar.selectionBorder": "#6e6a861a", + "menubar.selectionForeground": "#e0def4", + "merge.border": "#26233a", + "merge.commonContentBackground": "#6e6a8633", + "merge.commonHeaderBackground": "#6e6a8633", + "merge.currentContentBackground": "#f6c17780", + "merge.currentHeaderBackground": "#f6c17780", + "merge.incomingContentBackground": "#9ccfd880", + "merge.incomingHeaderBackground": "#9ccfd880", + "minimap.background": "#1f1d2e", + "minimap.errorHighlight": "#eb6f9280", + "minimap.findMatchHighlight": "#6e6a8633", + "minimap.selectionHighlight": "#6e6a8633", + "minimap.warningHighlight": "#f6c17780", + "minimapGutter.addedBackground": "#9ccfd8", + "minimapGutter.deletedBackground": "#eb6f92", + "minimapGutter.modifiedBackground": "#ebbcba", + "minimapSlider.activeBackground": "#6e6a8666", + "minimapSlider.background": "#6e6a8633", + "minimapSlider.hoverBackground": "#6e6a8633", + "notebook.cellBorderColor": "#9ccfd880", + "notebook.cellEditorBackground": "#1f1d2e", + "notebook.cellHoverBackground": "#26233a80", + "notebook.focusedCellBackground": "#6e6a861a", + "notebook.focusedCellBorder": "#9ccfd8", + "notebook.outputContainerBackgroundColor": "#6e6a861a", + "notificationCenter.border": "#6e6a8633", + "notificationCenterHeader.background": "#1f1d2e", + "notificationCenterHeader.foreground": "#908caa", + "notificationLink.foreground": "#c4a7e7", + "notifications.background": "#1f1d2e", + "notifications.border": "#6e6a8633", + "notifications.foreground": "#e0def4", + "notificationsErrorIcon.foreground": "#eb6f92", + "notificationsInfoIcon.foreground": "#9ccfd8", + "notificationsWarningIcon.foreground": "#f6c177", + "notificationToast.border": "#6e6a8633", + "panel.background": "#1f1d2e", + "panel.border": "#000000", + "panel.dropBorder": "#26233a", + "panelInput.border": "#1f1d2e", + "panelSection.dropBackground": "#6e6a8633", + "panelSectionHeader.background": "#1f1d2e", + "panelSectionHeader.foreground": "#e0def4", + "panelTitle.activeBorder": "#6e6a8666", + "panelTitle.activeForeground": "#e0def4", + "panelTitle.inactiveForeground": "#908caa", + "peekView.border": "#26233a", + "peekViewEditor.background": "#1f1d2e", + "peekViewEditor.matchHighlightBackground": "#6e6a8666", + "peekViewResult.background": "#1f1d2e", + "peekViewResult.fileForeground": "#908caa", + "peekViewResult.lineForeground": "#908caa", + "peekViewResult.matchHighlightBackground": "#6e6a8666", + "peekViewResult.selectionBackground": "#6e6a8633", + "peekViewResult.selectionForeground": "#e0def4", + "peekViewTitle.background": "#26233a", + "peekViewTitleDescription.foreground": "#908caa", + "pickerGroup.border": "#6e6a8666", + "pickerGroup.foreground": "#c4a7e7", + "ports.iconRunningProcessForeground": "#ebbcba", + "problemsErrorIcon.foreground": "#eb6f92", + "problemsInfoIcon.foreground": "#9ccfd8", + "problemsWarningIcon.foreground": "#f6c177", + "progressBar.background": "#ebbcba", + "quickInput.background": "#1f1d2e", + "quickInput.foreground": "#908caa", + "quickInputList.focusBackground": "#6e6a8633", + "quickInputList.focusForeground": "#e0def4", + "quickInputList.focusIconForeground": "#e0def4", + "scrollbar.shadow": "#1f1d2e4d", + "scrollbarSlider.activeBackground": "#31748f80", + "scrollbarSlider.background": "#6e6a8633", + "scrollbarSlider.hoverBackground": "#6e6a8666", + "searchEditor.findMatchBackground": "#6e6a8633", + "selection.background": "#6e6a8666", + "settings.focusedRowBackground": "#1f1d2e", + "settings.headerForeground": "#e0def4", + "settings.modifiedItemIndicator": "#ebbcba", + "settings.focusedRowBorder": "#6e6a8633", + "settings.rowHoverBackground": "#1f1d2e", + "sideBar.background": "#191724", + "sideBar.dropBackground": "#1f1d2e", + "sideBar.foreground": "#908caa", + "sideBarSectionHeader.background": "#000000", + "sideBarSectionHeader.border": "#6e6a8633", + "statusBar.background": "#191724", + "statusBar.debuggingBackground": "#c4a7e7", + "statusBar.debuggingForeground": "#191724", + "statusBar.foreground": "#908caa", + "statusBar.noFolderBackground": "#191724", + "statusBar.noFolderForeground": "#908caa", + "statusBarItem.activeBackground": "#6e6a8666", + "statusBarItem.hoverBackground": "#6e6a8633", + "statusBarItem.prominentBackground": "#26233a", + "statusBarItem.prominentForeground": "#e0def4", + "statusBarItem.prominentHoverBackground": "#6e6a8633", + "statusBarItem.remoteBackground": "#191724", + "statusBarItem.remoteForeground": "#f6c177", + "statusBarItem.errorBackground": "#191724", + "statusBarItem.errorForeground": "#eb6f92", + "symbolIcon.arrayForeground": "#908caa", + "symbolIcon.classForeground": "#908caa", + "symbolIcon.colorForeground": "#908caa", + "symbolIcon.constantForeground": "#908caa", + "symbolIcon.constructorForeground": "#908caa", + "symbolIcon.enumeratorForeground": "#908caa", + "symbolIcon.enumeratorMemberForeground": "#908caa", + "symbolIcon.eventForeground": "#908caa", + "symbolIcon.fieldForeground": "#908caa", + "symbolIcon.fileForeground": "#908caa", + "symbolIcon.folderForeground": "#908caa", + "symbolIcon.functionForeground": "#908caa", + "symbolIcon.interfaceForeground": "#908caa", + "symbolIcon.keyForeground": "#908caa", + "symbolIcon.keywordForeground": "#908caa", + "symbolIcon.methodForeground": "#908caa", + "symbolIcon.moduleForeground": "#908caa", + "symbolIcon.namespaceForeground": "#908caa", + "symbolIcon.nullForeground": "#908caa", + "symbolIcon.numberForeground": "#908caa", + "symbolIcon.objectForeground": "#908caa", + "symbolIcon.operatorForeground": "#908caa", + "symbolIcon.packageForeground": "#908caa", + "symbolIcon.propertyForeground": "#908caa", + "symbolIcon.referenceForeground": "#908caa", + "symbolIcon.snippetForeground": "#908caa", + "symbolIcon.stringForeground": "#908caa", + "symbolIcon.structForeground": "#908caa", + "symbolIcon.textForeground": "#908caa", + "symbolIcon.typeParameterForeground": "#908caa", + "symbolIcon.unitForeground": "#908caa", + "symbolIcon.variableForeground": "#908caa", + "tab.activeBackground": "#6e6a861a", + "tab.activeForeground": "#e0def4", + "tab.activeModifiedBorder": "#9ccfd8", + "tab.border": "#000000", + "tab.hoverBackground": "#6e6a8633", + "tab.inactiveBackground": "#000000", + "tab.inactiveForeground": "#908caa", + "tab.inactiveModifiedBorder": "#9ccfd880", + "tab.lastPinnedBorder": "#6e6a86", + "tab.unfocusedActiveBackground": "#000000", + "tab.unfocusedHoverBackground": "#000000", + "tab.unfocusedInactiveBackground": "#000000", + "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", + "terminal.ansiBlack": "#26233a", + "terminal.ansiBlue": "#9ccfd8", + "terminal.ansiBrightBlack": "#908caa", + "terminal.ansiBrightBlue": "#9ccfd8", + "terminal.ansiBrightCyan": "#ebbcba", + "terminal.ansiBrightGreen": "#31748f", + "terminal.ansiBrightMagenta": "#c4a7e7", + "terminal.ansiBrightRed": "#eb6f92", + "terminal.ansiBrightWhite": "#e0def4", + "terminal.ansiBrightYellow": "#f6c177", + "terminal.ansiCyan": "#ebbcba", + "terminal.ansiGreen": "#31748f", + "terminal.ansiMagenta": "#c4a7e7", + "terminal.ansiRed": "#eb6f92", + "terminal.ansiWhite": "#e0def4", + "terminal.ansiYellow": "#f6c177", + "terminal.dropBackground": "#6e6a8633", + "terminal.foreground": "#e0def4", + "terminal.selectionBackground": "#6e6a8633", + "terminal.tab.activeBorder": "#e0def4", + "terminalCursor.background": "#e0def4", + "terminalCursor.foreground": "#6e6a86", + "textBlockQuote.background": "#1f1d2e", + "textBlockQuote.border": "#6e6a8633", + "textCodeBlock.background": "#1f1d2e", + "textLink.activeForeground": "#c4a7e7e6", + "textLink.foreground": "#c4a7e7", + "textPreformat.foreground": "#f6c177", + "textSeparator.foreground": "#908caa", + "titleBar.activeBackground": "#191724", + "titleBar.activeForeground": "#908caa", + "titleBar.inactiveBackground": "#1f1d2e", + "titleBar.inactiveForeground": "#908caa", + "toolbar.activeBackground": "#6e6a8666", + "toolbar.hoverBackground": "#6e6a8633", + "tree.indentGuidesStroke": "#908caa", + "walkThrough.embeddedEditorBackground": "#191724", + "welcomePage.background": "#191724", + "welcomePage.buttonBackground": "#1f1d2e", + "welcomePage.buttonHoverBackground": "#26233a", + "widget.shadow": "#1f1d2e4d", + "window.activeBorder": "#1f1d2e", + "window.inactiveBorder": "#1f1d2e" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#6e6a86", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#ebbcba" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#ebbcba" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#c4a7e7" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#6e6a86" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#eb6f92", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#ebbcba", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other", + "variable.language", + "variable.function", + "variable.argument" + ], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#c4a7e7" + } + } + ] +} diff --git a/assets/themes/src/vscode/solarized/LICENSE b/assets/themes/src/vscode/solarized/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a6777a993513e838d5dc82fc66ff6b9733bd07d6 --- /dev/null +++ b/assets/themes/src/vscode/solarized/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2011 Ethan Schoonover + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/assets/themes/src/vscode/solarized/dark.json b/assets/themes/src/vscode/solarized/dark.json new file mode 100644 index 0000000000000000000000000000000000000000..b7ea4f2b27e5160ca3550358b6a9c02431291d14 --- /dev/null +++ b/assets/themes/src/vscode/solarized/dark.json @@ -0,0 +1,558 @@ +{ + "type": "dark", + "colors": { + "errorForeground": "#ffeaea", + "focusBorder": "#2aa19899", + "selection.background": "#2aa19899", + "input.background": "#003847", + "input.foreground": "#93a1a1", + "inputOption.activeBorder": "#2aa19899", + "input.placeholderForeground": "#93a1a1aa", + "inputValidation.infoBackground": "#052730", + "inputValidation.infoBorder": "#363b5f", + "inputValidation.warningBackground": "#5d5938", + "inputValidation.warningBorder": "#9d8a5e", + "inputValidation.errorBackground": "#571b26", + "inputValidation.errorBorder": "#a92049", + "dropdown.background": "#00212b", + "dropdown.border": "#2aa19899", + "list.focusBackground": "#005a6f", + "list.activeSelectionBackground": "#005a6f", + "list.inactiveSelectionBackground": "#00445488", + "list.hoverBackground": "#004454aa", + "list.dropBackground": "#00445488", + "list.highlightForeground": "#1ebcc5", + "pickerGroup.foreground": "#2aa19899", + "pickerGroup.border": "#2aa19899", + "button.background": "#2aa19899", + "badge.background": "#047aa6", + "progressBar.background": "#047aa6", + "editor.background": "#002b36", + "editorWidget.background": "#00212b", + "editor.selectionBackground": "#073642", + "editor.selectionHighlightBackground": "#005a6faa", + "editorHoverWidget.background": "#004052", + "editor.lineHighlightBackground": "#073642", + "editorCursor.foreground": "#839496", + "editorWhitespace.foreground": "#93a1a180", + "editorLineNumber.foreground": "#566c74", + "editorLineNumber.activeForeground": "#6e8a93", + "editorGutter.background": "#073642", + "editorMarkerNavigationError.background": "#ab395b", + "editorMarkerNavigationWarning.background": "#5b7e7a", + "editor.wordHighlightBackground": "#004454aa", + "editor.wordHighlightStrongBackground": "#005a6faa", + "peekViewTitle.background": "#00212b", + "peekView.border": "#003847", + "peekViewResult.background": "#00212b", + "peekViewEditor.background": "#10192c", + "peekViewEditorGutter.background": "#073642", + "peekViewEditor.matchHighlightBackground": "#7744aa40", + "tab.activeBackground": "#002b37", + "tab.inactiveBackground": "#004052", + "tab.border": "#003847", + "tab.activeForeground": "#d6dbdb", + "tab.inactiveForeground": "#93a1a1", + "editorGroup.background": "#011b23", + "editorGroupHeader.tabsBackground": "#004052", + "editorGroup.border": "#00212b", + "editorGroup.dropBackground": "#2aa19844", + "panel.border": "#003847", + "statusBar.foreground": "#93a1a1", + "statusBar.background": "#00212b", + "statusBar.noFolderBackground": "#00212b", + "statusBarItem.prominentBackground": "#003847", + "statusBarItem.prominentHoverBackground": "#003847", + "activityBar.background": "#003847", + "sideBar.background": "#00212b", + "sideBarTitle.foreground": "#93a1a1", + "titleBar.activeBackground": "#002c39", + "terminal.foreground": "#839496", + "statusBar.debuggingBackground": "#00212b", + "debugExceptionWidget.border": "#ab395b", + "debugExceptionWidget.background": "#00212b", + "debugToolBar.background": "#00212b", + "terminal.ansiBlack": "#073642", + "terminal.ansiRed": "#dc322f", + "terminal.ansiGreen": "#859900", + "terminal.ansiYellow": "#b58900", + "terminal.ansiBlue": "#268bd2", + "terminal.ansiMagenta": "#d33682", + "terminal.ansiCyan": "#2aa198", + "terminal.ansiWhite": "#839496", + "terminal.ansiBrightBlack": "#586e75", + "terminal.ansiBrightRed": "#cb4b16", + "terminal.ansiBrightGreen": "#859900", + "terminal.ansiBrightYellow": "#657b83", + "terminal.ansiBrightBlue": "#839496", + "terminal.ansiBrightMagenta": "#6c71c4", + "terminal.ansiBrightCyan": "#93a1a1", + "terminal.ansiBrightWhite": "#839496", + "editorBracketHighlight.foreground1": "#268bd2", + "editorBracketHighlight.foreground2": "#b58900", + "editorBracketHighlight.foreground3": "#d33682" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#bbbbbbff", + "background": "#002b36ff" + } + }, + { + "scope": ["meta.embedded", "source.groovy.embedded"], + "settings": { + "background": "#002B36", + "foreground": "#93A1A1" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "fontStyle": "italic", + "foreground": "#657B83" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#2AA198" + } + }, + { + "name": "Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Variable", + "scope": ["variable.language", "variable.other"], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "bold", + "foreground": "#93A1A1" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "entity.name.type"], + "settings": { + "fontStyle": "", + "foreground": "#CB4B16" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Variable start", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Embedded code markers", + "scope": [ + "punctuation.section.embedded.begin", + "punctuation.section.embedded.end" + ], + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Built-in constant", + "scope": ["constant.language", "meta.preprocessor"], + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Support.construct", + "scope": ["support.function.construct", "keyword.other.new"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#6C71C4" + } + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": {} + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Tag start/end", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#657B83" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Continuation", + "scope": "punctuation.separator.continuation", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Library constant", + "scope": "support.constant", + "settings": {} + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Library Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": {} + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": {} + }, + { + "name": "diff: header", + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "background": "#b58900", + "fontStyle": "italic", + "foreground": "#E0EDDD" + } + }, + { + "name": "diff: deleted", + "scope": "markup.deleted", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#dc322f" + } + }, + { + "name": "diff: changed", + "scope": "markup.changed", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#cb4b16" + } + }, + { + "name": "diff: inserted", + "scope": "markup.inserted", + "settings": { + "background": "#eee8d5", + "foreground": "#219186" + } + }, + { + "name": "Markup Quote", + "scope": "markup.quote", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list", + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Markup Styling", + "scope": ["markup.bold", "markup.italic"], + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Markup Inline", + "scope": "markup.inline.raw", + "settings": { + "fontStyle": "", + "foreground": "#2AA198" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Markup Setext Header", + "scope": "markup.heading.setext", + "settings": { + "fontStyle": "", + "foreground": "#268BD2" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#b267e6" + } + }, + { + "scope": "variable.object.property", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "variable.parameter", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "support.type", + "settings": { + "fontStyle": "" + } + }, + { + "scope": "storage.type.function", + "settings": { + "fontStyle": "" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "storage.modifier", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#D33682" + } + }, + { + "scope": "storage.modifier.async", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "meta.import", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "source.ts", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "meta.function-call", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "storage.modifier.tsx", + "settings": { + "foreground": "#859900" + } + }, + { + "scope": "entity.name.type.class.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "support.type.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "source.python", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "keyword.control.from", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "constant.language.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "entity.name.function.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "punctuation.separator.dictionary.key-value.json, punctuation.separator.array.json, punctuation.separator.dictionary.pair.json", + "settings": { + "foreground": "#657B83" + } + }, + { + "scope": "storage.type.ts", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "support.type.primitive", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json, punctuation.definition.array.begin.json, punctuation.definition.array.end.json", + "settings": { + "foreground": "#DC3272" + } + } + ] +} diff --git a/assets/themes/src/vscode/solarized/family.json b/assets/themes/src/vscode/solarized/family.json new file mode 100644 index 0000000000000000000000000000000000000000..6c21ce8dcbb73e11ff3bf82318fb04c1ebbe33f8 --- /dev/null +++ b/assets/themes/src/vscode/solarized/family.json @@ -0,0 +1,16 @@ +{ + "name": "Solarized", + "author": "Ethan Schoonover (altercation)", + "themes": [ + { + "name": "Solarized Dark", + "file_name": "dark.json", + "appearance": "dark" + }, + { + "name": "Solarized Light", + "file_name": "light.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/solarized/light.json b/assets/themes/src/vscode/solarized/light.json new file mode 100644 index 0000000000000000000000000000000000000000..74f0ce47e395ca36da849f3d1ceca4d50cd24699 --- /dev/null +++ b/assets/themes/src/vscode/solarized/light.json @@ -0,0 +1,591 @@ +{ + "type": "light", + "colors": { + "focusBorder": "#d3af86", + "selection.background": "#ccc4b0", + "input.background": "#ddd6c1", + "input.foreground": "#586e75", + "inputOption.activeBorder": "#d3af86", + "input.placeholderForeground": "#586e75aa", + "dropdown.background": "#eee8d5", + "dropdown.border": "#d3af86", + "list.focusBackground": "#dfca8866", + "list.activeSelectionBackground": "#dfca88", + "list.activeSelectionForeground": "#6c6c6c", + "list.inactiveSelectionBackground": "#d1cbb8", + "list.hoverBackground": "#dfca8844", + "list.highlightForeground": "#b58900", + "pickerGroup.foreground": "#2aa19899", + "pickerGroup.border": "#2aa19899", + "button.background": "#ac9d57", + "badge.background": "#b58900aa", + "progressBar.background": "#b58900", + "editor.background": "#fdf6e3", + "editorWidget.background": "#eee8d5", + "editor.selectionBackground": "#eee8d5", + "editorHoverWidget.background": "#ccc4b0", + "editor.lineHighlightBackground": "#eee8d5", + "editorCursor.foreground": "#657b83", + "editorWhitespace.foreground": "#586e7580", + "editorLineNumber.foreground": "#9ca8a6", + "editorLineNumber.activeForeground": "#6f7776", + "editorGutter.background": "#eee8d5", + "peekViewTitle.background": "#eee8d5", + "peekView.border": "#b58900", + "peekViewResult.background": "#eee8d5", + "peekViewEditor.background": "#fffbf2", + "peekViewEditor.matchHighlightBackground": "#7744aa40", + "tab.activeBackground": "#fdf6e3", + "tab.inactiveBackground": "#d3cbb7", + "tab.border": "#ddd6c1", + "tab.inactiveForeground": "#586e75", + "editorGroup.background": "#fffbf2", + "editorGroupHeader.tabsBackground": "#d9d2c2", + "editorGroup.border": "#ddd6c1", + "editorGroup.dropBackground": "#ddd6c1aa", + "panel.border": "#ddd6c1", + "statusBar.foreground": "#586e75", + "statusBar.background": "#eee8d5", + "statusBar.noFolderBackground": "#eee8d5", + "statusBarItem.prominentBackground": "#ddd6c1", + "statusBarItem.prominentHoverBackground": "#ddd6c199", + "activityBar.background": "#ddd6c1", + "activityBar.foreground": "#584c27", + "activityBar.dropBackground": "#eee8d5", + "activityBarBadge.background": "#b58900", + "sideBar.background": "#eee8d5", + "sideBarTitle.foreground": "#586e75", + "titleBar.activeBackground": "#eee8d5", + "terminal.foreground": "#657b83", + "statusBar.debuggingBackground": "#eee8d5", + "debugExceptionWidget.border": "#ab395b", + "debugExceptionWidget.background": "#ddd6c1", + "debugToolBar.background": "#ddd6c1", + "extensionButton.prominentBackground": "#b58900", + "extensionButton.prominentHoverBackground": "#584c27aa", + "terminal.ansiBlack": "#657b83", + "terminal.ansiRed": "#dc322f", + "terminal.ansiGreen": "#859900", + "terminal.ansiYellow": "#b58900", + "terminal.ansiBlue": "#268bd2", + "terminal.ansiMagenta": "#d33682", + "terminal.ansiCyan": "#2aa198", + "terminal.ansiWhite": "#eee8d5", + "terminal.ansiBrightBlack": "#657b83", + "terminal.ansiBrightRed": "#cb4b16", + "terminal.ansiBrightGreen": "#859900", + "terminal.ansiBrightYellow": "#657b83", + "terminal.ansiBrightBlue": "#839496", + "terminal.ansiBrightMagenta": "#6c71c4", + "terminal.ansiBrightCyan": "#93a1a1", + "terminal.ansiBrightWhite": "#eee8d5", + "editorBracketHighlight.foreground1": "#268bd2", + "editorBracketHighlight.foreground2": "#b58900", + "editorBracketHighlight.foreground3": "#d33682" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#333333ff", + "background": "#fdf6e3ff" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded" + ], + "settings": { + "background": "#FDF6E3", + "foreground": "#657B83" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "fontStyle": "italic", + "foreground": "#93A1A1" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#2AA198" + } + }, + { + "name": "Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Variable", + "scope": [ + "variable.language", + "variable.other" + ], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "bold", + "foreground": "#073642" + } + }, + { + "name": "Class name", + "scope": [ + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Variable start", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Embedded code markers", + "scope": [ + "punctuation.section.embedded.begin", + "punctuation.section.embedded.end" + ], + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "meta.preprocessor" + ], + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Support.construct", + "scope": [ + "support.function.construct", + "keyword.other.new" + ], + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "User-defined constant", + "scope": [ + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": {} + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": {} + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.begin", + "punctuation.definition.tag.end" + ], + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Continuation", + "scope": "punctuation.separator.continuation", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Library constant", + "scope": "support.constant", + "settings": {} + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class" + ], + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Library Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": {} + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": {} + }, + { + "name": "diff: header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "background": "#b58900", + "fontStyle": "italic", + "foreground": "#E0EDDD" + } + }, + { + "name": "diff: deleted", + "scope": "markup.deleted", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#dc322f" + } + }, + { + "name": "diff: changed", + "scope": "markup.changed", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#cb4b16" + } + }, + { + "name": "diff: inserted", + "scope": "markup.inserted", + "settings": { + "background": "#eee8d5", + "foreground": "#219186" + } + }, + { + "name": "Markup Quote", + "scope": "markup.quote", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list", + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Markup Styling", + "scope": [ + "markup.bold", + "markup.italic" + ], + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Markup Inline", + "scope": "markup.inline.raw", + "settings": { + "fontStyle": "", + "foreground": "#2AA198" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Markup Setext Header", + "scope": "markup.heading.setext", + "settings": { + "fontStyle": "", + "foreground": "#268BD2" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#316bcd" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#cd3131" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#800080" + } + }, + { + "scope": "storage.modifier", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#D33682" + } + }, + { + "scope": "storage.modifier.async", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "meta.import", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "source.ts", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "meta.function-call", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "storage.modifier.tsx", + "settings": { + "foreground": "#859900" + } + }, + { + "scope": "storage.modifier", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#D33682" + } + }, + { + "scope": "storage.modifier.async", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "meta.import", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "source.ts", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "meta.function-call", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "storage.modifier.tsx", + "settings": { + "foreground": "#859900" + } + }, + { + "scope": "punctuation.separator.dictionary.key-value.json, punctuation.separator.array.json, punctuation.separator.dictionary.pair.json", + "settings": { + "foreground": "#657B83" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json, punctuation.definition.array.begin.json, punctuation.definition.array.end.json", + "settings": { + "foreground": "#DC3272" + } + }, + { + "scope": "support.type.primitive", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "keyword.control.from", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "source", + "settings": { + "foreground": "#657b83" + } + } + ] +} diff --git a/assets/themes/src/vscode/synthwave-84/LICENSE b/assets/themes/src/vscode/synthwave-84/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..c3388dbb508151082a741664d00a3729cedb376b --- /dev/null +++ b/assets/themes/src/vscode/synthwave-84/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Robb Owen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/synthwave-84/family.json b/assets/themes/src/vscode/synthwave-84/family.json new file mode 100644 index 0000000000000000000000000000000000000000..f8e0f5d9e6dfe4b10717d35490171c7f9b1f66e1 --- /dev/null +++ b/assets/themes/src/vscode/synthwave-84/family.json @@ -0,0 +1,11 @@ +{ + "name": "Synthwave 84", + "author": "Robb Owen (robb0wen)", + "themes": [ + { + "name": "Synthwave 84", + "file_name": "synthwave.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/synthwave-84/synthwave.json b/assets/themes/src/vscode/synthwave-84/synthwave.json new file mode 100644 index 0000000000000000000000000000000000000000..5b38ef46fa70a932b94933b61c176c6842104a9c --- /dev/null +++ b/assets/themes/src/vscode/synthwave-84/synthwave.json @@ -0,0 +1,822 @@ +{ + "name": "SynthWave 84", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "focusBorder": "#1f212b", + "foreground": "#ffffff", + "widget.shadow": "#2a2139", + "selection.background": "#ffffff20", + "errorForeground": "#fe4450", + "textLink.activeForeground": "#ff7edb", + "textLink.foreground": "#f97e72", + "button.background": "#614D85", + "dropdown.background": "#232530", + "dropdown.listBackground": "#2a2139", + "input.background": "#2a2139", + "inputOption.activeBorder": "#ff7edb99", + "inputValidation.errorBackground": "#fe445080", + "inputValidation.errorBorder": "#fe445000", + "scrollbar.shadow": "#2a2139", + "scrollbarSlider.activeBackground": "#9d8bca20", + "scrollbarSlider.background": "#9d8bca30", + "scrollbarSlider.hoverBackground": "#9d8bca50", + "badge.foreground": "#ffffff", + "badge.background": "#2a2139", + "progressBar.background": "#f97e72", + "list.activeSelectionBackground": "#ffffff20", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#34294f66", + "list.focusBackground": "#ffffff20", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#f97e72", + "list.hoverBackground": "#37294d99", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#ffffff20", + "list.inactiveSelectionForeground": "#ffffff", + "list.inactiveFocusBackground": "#2a213999", + "list.errorForeground": "#fe4450E6", + "list.warningForeground": "#72f1b8bb", + "activityBar.background": "#171520", + "activityBar.dropBackground": "#34294f66", + "activityBar.foreground": "#ffffffCC", + "activityBarBadge.background": "#f97e72", + "activityBarBadge.foreground": "#2a2139", + "sideBar.background": "#241b2f", + "sideBar.foreground": "#ffffff99", + "sideBar.dropBackground": "#34294f4c", + "sideBarSectionHeader.background": "#241b2f", + "sideBarSectionHeader.foreground": "#ffffffca", + "menu.background": "#463465", + "editorGroup.border": "#495495", + "editorGroup.dropBackground": "#4954954a", + "editorGroupHeader.tabsBackground": "#241b2f", + "tab.border": "#241b2f00", + "tab.activeBorder": "#880088", + "tab.inactiveBackground": "#262335", + "editor.background": "#262335", + "editorLineNumber.foreground": "#ffffff73", + "editorLineNumber.activeForeground": "#ffffffcc", + "editorCursor.background": "#241b2f", + "editorCursor.foreground": "#f97e72", + "editor.selectionBackground": "#ffffff20", + "editor.selectionHighlightBackground": "#ffffff20", + "editor.wordHighlightBackground": "#34294f88", + "editor.wordHighlightStrongBackground": "#34294f88", + "editor.findMatchBackground": "#D18616bb", + "editor.findMatchHighlightBackground": "#D1861655", + "editor.findRangeHighlightBackground": "#34294f1a", + "editor.hoverHighlightBackground": "#463564", + "editor.lineHighlightBorder": "#7059AB66", + "editor.rangeHighlightBackground": "#49549539", + "editorIndentGuide.background": "#444251", + "editorIndentGuide.activeBackground": "#A148AB80", + "editorRuler.foreground": "#A148AB80", + "editorCodeLens.foreground": "#ffffff7c", + "editorBracketMatch.background": "#34294f66", + "editorBracketMatch.border": "#495495", + "editorOverviewRuler.border": "#34294fb3", + "editorOverviewRuler.findMatchForeground": "#D1861699", + "editorOverviewRuler.modifiedForeground": "#b893ce99", + "editorOverviewRuler.addedForeground": "#09f7a099", + "editorOverviewRuler.deletedForeground": "#fe445099", + "editorOverviewRuler.errorForeground": "#fe4450dd", + "editorOverviewRuler.warningForeground": "#72f1b8cc", + "editorError.foreground": "#fe4450", + "editorWarning.foreground": "#72f1b8cc", + "editorGutter.modifiedBackground": "#b893ce8f", + "editorGutter.addedBackground": "#206d4bd6", + "editorGutter.deletedBackground": "#fa2e46a4", + "diffEditor.insertedTextBackground": "#0beb9935", + "diffEditor.removedTextBackground": "#fe445035", + "editorWidget.background": "#171520DC", + "editorWidget.border": "#ffffff22", + "editorWidget.resizeBorder": "#ffffff44", + "editorSuggestWidget.highlightForeground": "#f97e72", + "editorSuggestWidget.selectedBackground": "#ffffff36", + "peekView.border": "#495495", + "peekViewEditor.background": "#232530", + "peekViewEditor.matchHighlightBackground": "#D18616bb", + "peekViewResult.background": "#232530", + "peekViewResult.matchHighlightBackground": "#D1861655", + "peekViewResult.selectionBackground": "#2a213980", + "peekViewTitle.background": "#232530", + "panelTitle.activeBorder": "#f97e72", + "statusBar.background": "#241b2f", + "statusBar.foreground": "#ffffff80", + "statusBar.debuggingBackground": "#f97e72", + "statusBar.debuggingForeground": "#08080f", + "statusBar.noFolderBackground": "#241b2f", + "statusBarItem.prominentBackground": "#2a2139", + "statusBarItem.prominentHoverBackground": "#34294f", + "titleBar.activeBackground": "#241b2f", + "titleBar.inactiveBackground": "#241b2f", + "extensionButton.prominentBackground": "#f97e72", + "extensionButton.prominentHoverBackground": "#ff7edb", + "pickerGroup.foreground": "#f97e72ea", + "terminal.foreground": "#ffffff", + "terminal.ansiBlue": "#03edf9", + "terminal.ansiBrightBlue": "#03edf9", + "terminal.ansiBrightCyan": "#03edf9", + "terminal.ansiBrightGreen": "#72f1b8", + "terminal.ansiBrightMagenta": "#ff7edb", + "terminal.ansiBrightRed": "#fe4450", + "terminal.ansiBrightYellow": "#fede5d", + "terminal.ansiCyan": "#03edf9", + "terminal.ansiGreen": "#72f1b8", + "terminal.ansiMagenta": "#ff7edb", + "terminal.ansiRed": "#fe4450", + "terminal.ansiYellow": "#f3e70f", + "terminal.selectionBackground": "#ffffff20", + "terminalCursor.background": "#ffffff", + "terminalCursor.foreground": "#03edf9", + "debugToolBar.background": "#463465", + "walkThrough.embeddedEditorBackground": "#232530", + "gitDecoration.modifiedResourceForeground": "#b893ceee", + "gitDecoration.deletedResourceForeground": "#fe4450", + "gitDecoration.addedResourceForeground": "#72f1b8cc", + "gitDecoration.untrackedResourceForeground": "#72f1b8", + "gitDecoration.ignoredResourceForeground": "#ffffff59", + "minimapGutter.addedBackground": "#09f7a099", + "minimapGutter.modifiedBackground": "#b893ce", + "minimapGutter.deletedBackground": "#fe4450", + "breadcrumbPicker.background": "#232530" + }, + "tokenColors": [ + { + "name": "Comment", + "scope": [ + "comment", + "string.quoted.docstring.multi.python", + "string.quoted.docstring.multi.python punctuation.definition.string.begin.python", + "string.quoted.docstring.multi.python punctuation.definition.string.end.python" + ], + "settings": { + "foreground": "#848bbd", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": ["string.quoted", "string.template", "punctuation.definition.string"], + "settings": { + "foreground": "#ff8b39" + } + }, + { + "name": "Punctuation within templates", + "scope": "string.template meta.embedded.line", + "settings": { + "foreground": "#b6b1b1" + } + }, + { + "name": "Variable", + "scope": ["variable", "entity.name.variable"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Language variable", + "scope": "variable.language", + "settings": { + "foreground": "#fe4450", + "fontStyle": "bold" + } + }, + { + "name": "Parameter", + "scope": "variable.parameter", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Storage (declaration or modifier keyword)", + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Constant", + "scope": "constant", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Regex", + "scope": "string.regexp", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Language constant (boolean, null)", + "scope": "constant.language", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Character escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Entity", + "scope": "entity.name", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "HTML or XML tag", + "scope": "entity.name.tag", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "HTML or XML tag brackets", + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Tag attribute HTML", + "scope": "entity.other.attribute-name.html", + "settings": { + "foreground": "#fede5d", + "fontStyle": "italic" + } + }, + { + "name": "Class", + "scope": ["entity.name.type", "meta.attribute.class.html"], + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#D50" + } + }, + { + "name": "Function", + "scope": ["entity.name.function", "variable.function"], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "JS Export", + "scope": ["keyword.control.export.js", "keyword.control.import.js"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "JS Numerics", + "scope": ["constant.numeric.decimal.js"], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Control keyword", + "scope": "keyword.control", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Special operator", + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.logical" + ], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Support", + "scope": "support", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Support function", + "scope": "support.function", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Support variable", + "scope": "support.variable", + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Object literal key / property", + "scope": ["meta.object-literal.key", "support.type.property-name"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Key-value separator", + "scope": "punctuation.separator.key-value", + "settings": { + "foreground": "#b6b1b1" + } + }, + { + "name": "Embedded punctuation", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Template expression", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "CSS property", + "scope": ["support.type.property-name.css", "support.type.property-name.json"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "JS Switch control", + "scope": "switch-block.expr.js", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "JS object path", + "scope": "variable.other.constant.property.js, variable.other.property.js", + "settings": { + "foreground": "#2ee2fa" + } + }, + { + "name": "Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Font names", + "scope": "support.constant.font-name", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "CSS #id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Pseudo CSS", + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { + "foreground": "#D50" + } + }, + { + "name": "CSS support functions (rgb)", + "scope": "support.function.misc.css", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Markup heading", + "scope": ["markup.heading", "entity.name.section"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Markup text", + "scope": ["text.html", "keyword.operator.assignment"], + "settings": { + "foreground": "#ffffffee" + } + }, + { + "name": "Markup quote", + "scope": "markup.quote", + "settings": { + "foreground": "#b6b1b1cc", + "fontStyle": "italic" + } + }, + { + "name": "Markup list", + "scope": "beginning.punctuation.definition.list", + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Markup link", + "scope": "markup.underline.link", + "settings": { + "foreground": "#D50" + } + }, + { + "name": "Markup link description", + "scope": "string.other.link.description", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Python function call", + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Python variable params", + "scope": "variable.parameter.function-call.python", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "C# storage type", + "scope": "storage.type.cs", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "C# local variable", + "scope": "entity.name.variable.local.cs", + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "C# properties and fields", + "scope": ["entity.name.variable.field.cs", "entity.name.variable.property.cs"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "C placeholder", + "scope": "constant.other.placeholder.c", + "settings": { + "foreground": "#72f1b8", + "fontStyle": "italic" + } + }, + { + "name": "C preprocessors", + "scope": ["keyword.control.directive.include.c", "keyword.control.directive.define.c"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "C storage modifier", + "scope": "storage.modifier.c", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "C++ operators", + "scope": "source.cpp keyword.operator", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "C++ placeholder", + "scope": "constant.other.placeholder.cpp", + "settings": { + "foreground": "#72f1b8", + "fontStyle": "italic" + } + }, + { + "name": "C++ include", + "scope": [ + "keyword.control.directive.include.cpp", + "keyword.control.directive.define.cpp" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "C++ constant modifier", + "scope": "storage.modifier.specifier.const.cpp", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Elixir String Punctuation", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Elixir Binary Punctuation", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#ff7edb", + "fontStyle": "italic" + } + }, + { + "name": "Clojure Globals", + "scope": ["entity.global.clojure"], + "settings": { + "foreground": "#36f9f6", + "fontStyle": "bold" + } + }, + { + "name": "Clojure Storage", + "scope": ["storage.control.clojure"], + "settings": { + "foreground": "#36f9f6", + "fontStyle": "italic" + } + }, + { + "name": "Clojure Metadata", + "scope": ["meta.metadata.simple.clojure", "meta.metadata.map.clojure"], + "settings": { + "foreground": "#fe4450", + "fontStyle": "italic" + } + }, + { + "name": "Clojure Macros, Quoted", + "scope": ["meta.quoted-expression.clojure"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Clojure Symbols", + "scope": ["meta.symbol.clojure"], + "settings": { + "foreground": "#ff7edbff" + } + }, + { + "name": "Go basic", + "scope": "source.go", + "settings": { + "foreground": "#ff7edbff" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Go Keywords", + "scope": [ + "source.go keyword.package.go", + "source.go keyword.import.go", + "source.go keyword.function.go", + "source.go keyword.type.go", + "source.go keyword.const.go", + "source.go keyword.var.go", + "source.go keyword.map.go", + "source.go keyword.channel.go", + "source.go keyword.control.go" + ], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Go interfaces", + "scope": [ + "source.go storage.type", + "source.go keyword.struct.go", + "source.go keyword.interface.go" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", + "scope": [ + "source.go constant.language.go", + "source.go constant.other.placeholder.go", + "source.go variable" + ], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Markdown links and image paths", + "scope": ["markup.underline.link.markdown", "markup.inline.raw.string.markdown"], + "settings": { + "foreground": "#72f1b8", + "fontStyle": "italic" + } + }, + { + "name": "Markdown links and image paths", + "scope": ["string.other.link.title.markdown"], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Markdown headings", + "scope": ["markup.heading.markdown", "entity.name.section.markdown"], + "settings": { + "foreground": "#ff7edb", + "fontStyle": "bold" + } + }, + { + "name": "Markdown italic", + "scope": ["markup.italic.markdown"], + "settings": { + "foreground": "#2EE2FA", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": ["markup.bold.markdown"], + "settings": { + "foreground": "#2EE2FA", + "fontStyle": "bold" + } + }, + { + "name": "Markdown quotes", + "scope": ["punctuation.definition.quote.begin.markdown", "markup.quote.markdown"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Basic source colours", + "scope": ["source.dart", "source.python", "source.scala"], + "settings": { + "foreground": "#ff7edbff" + } + }, + { + "name": "Dart strings", + "scope": ["string.interpolated.single.dart"], + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Dart variable params", + "scope": ["variable.parameter.dart"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Dart numerics", + "scope": ["constant.numeric.dart"], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Scala variable params", + "scope": ["variable.parameter.scala"], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Scala", + "scope": ["meta.template.expression.scala"], + "settings": { + "foreground": "#72f1b8" + } + } + ] +} diff --git a/crates/channel2/Cargo.toml b/crates/channel2/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..c292d4e8ddbe50d0fe58c882d690181d58345b75 --- /dev/null +++ b/crates/channel2/Cargo.toml @@ -0,0 +1,54 @@ +[package] +name = "channel2" +version = "0.1.0" +edition = "2021" +publish = false + +[lib] +path = "src/channel2.rs" +doctest = false + +[features] +test-support = ["collections/test-support", "gpui/test-support", "rpc/test-support"] + +[dependencies] +client = { package = "client2", path = "../client2" } +collections = { path = "../collections" } +db = { package = "db2", path = "../db2" } +gpui = { package = "gpui2", path = "../gpui2" } +util = { path = "../util" } +rpc = { package = "rpc2", path = "../rpc2" } +text = { path = "../text" } +language = { package = "language2", path = "../language2" } +settings = { package = "settings2", path = "../settings2" } +feature_flags = { package = "feature_flags2", path = "../feature_flags2" } +sum_tree = { path = "../sum_tree" } +clock = { path = "../clock" } + +anyhow.workspace = true +futures.workspace = true +image = "0.23" +lazy_static.workspace = true +smallvec.workspace = true +log.workspace = true +parking_lot.workspace = true +postage.workspace = true +rand.workspace = true +schemars.workspace = true +smol.workspace = true +thiserror.workspace = true +time.workspace = true +tiny_http = "0.8" +uuid.workspace = true +url = "2.2" +serde.workspace = true +serde_derive.workspace = true +tempfile = "3" + +[dev-dependencies] +collections = { path = "../collections", features = ["test-support"] } +gpui = { package = "gpui2", path = "../gpui2", features = ["test-support"] } +rpc = { package = "rpc2", path = "../rpc2", features = ["test-support"] } +client = { package = "client2", path = "../client2", features = ["test-support"] } +settings = { package = "settings2", path = "../settings2", features = ["test-support"] } +util = { path = "../util", features = ["test-support"] } diff --git a/crates/channel2/src/channel2.rs b/crates/channel2/src/channel2.rs new file mode 100644 index 0000000000000000000000000000000000000000..f38ae4078a5563ba14a8bbf3b59503aaee915fd0 --- /dev/null +++ b/crates/channel2/src/channel2.rs @@ -0,0 +1,23 @@ +mod channel_buffer; +mod channel_chat; +mod channel_store; + +use client::{Client, UserStore}; +use gpui::{AppContext, Model}; +use std::sync::Arc; + +pub use channel_buffer::{ChannelBuffer, ChannelBufferEvent, ACKNOWLEDGE_DEBOUNCE_INTERVAL}; +pub use channel_chat::{ + mentions_to_proto, ChannelChat, ChannelChatEvent, ChannelMessage, ChannelMessageId, + MessageParams, +}; +pub use channel_store::{Channel, ChannelEvent, ChannelId, ChannelMembership, ChannelStore}; + +#[cfg(test)] +mod channel_store_tests; + +pub fn init(client: &Arc, user_store: Model, cx: &mut AppContext) { + channel_store::init(client, user_store, cx); + channel_buffer::init(client); + channel_chat::init(client); +} diff --git a/crates/channel2/src/channel_buffer.rs b/crates/channel2/src/channel_buffer.rs new file mode 100644 index 0000000000000000000000000000000000000000..4c321a8fbcde454d4a4b21c1104e1af8d85b5d7d --- /dev/null +++ b/crates/channel2/src/channel_buffer.rs @@ -0,0 +1,259 @@ +use crate::{Channel, ChannelId, ChannelStore}; +use anyhow::Result; +use client::{Client, Collaborator, UserStore}; +use collections::HashMap; +use gpui::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; +use language::proto::serialize_version; +use rpc::{ + proto::{self, PeerId}, + TypedEnvelope, +}; +use std::{sync::Arc, time::Duration}; +use util::ResultExt; + +pub const ACKNOWLEDGE_DEBOUNCE_INTERVAL: Duration = Duration::from_millis(250); + +pub(crate) fn init(client: &Arc) { + client.add_model_message_handler(ChannelBuffer::handle_update_channel_buffer); + client.add_model_message_handler(ChannelBuffer::handle_update_channel_buffer_collaborators); +} + +pub struct ChannelBuffer { + pub channel_id: ChannelId, + connected: bool, + collaborators: HashMap, + user_store: Model, + channel_store: Model, + buffer: Model, + buffer_epoch: u64, + client: Arc, + subscription: Option, + acknowledge_task: Option>>, +} + +pub enum ChannelBufferEvent { + CollaboratorsChanged, + Disconnected, + BufferEdited, + ChannelChanged, +} + +impl EventEmitter for ChannelBuffer { + type Event = ChannelBufferEvent; +} + +impl ChannelBuffer { + pub(crate) async fn new( + channel: Arc, + client: Arc, + user_store: Model, + channel_store: Model, + mut cx: AsyncAppContext, + ) -> Result> { + let response = client + .request(proto::JoinChannelBuffer { + channel_id: channel.id, + }) + .await?; + + let base_text = response.base_text; + let operations = response + .operations + .into_iter() + .map(language::proto::deserialize_operation) + .collect::, _>>()?; + + let buffer = cx.build_model(|_| { + language::Buffer::remote(response.buffer_id, response.replica_id as u16, base_text) + })?; + buffer.update(&mut cx, |buffer, cx| buffer.apply_ops(operations, cx))??; + + let subscription = client.subscribe_to_entity(channel.id)?; + + anyhow::Ok(cx.build_model(|cx| { + cx.subscribe(&buffer, Self::on_buffer_update).detach(); + cx.on_release(Self::release).detach(); + let mut this = Self { + buffer, + buffer_epoch: response.epoch, + client, + connected: true, + collaborators: Default::default(), + acknowledge_task: None, + channel_id: channel.id, + subscription: Some(subscription.set_model(&cx.handle(), &mut cx.to_async())), + user_store, + channel_store, + }; + this.replace_collaborators(response.collaborators, cx); + this + })?) + } + + fn release(&mut self, _: &mut AppContext) { + if self.connected { + if let Some(task) = self.acknowledge_task.take() { + task.detach(); + } + self.client + .send(proto::LeaveChannelBuffer { + channel_id: self.channel_id, + }) + .log_err(); + } + } + + pub fn remote_id(&self, cx: &AppContext) -> u64 { + self.buffer.read(cx).remote_id() + } + + pub fn user_store(&self) -> &Model { + &self.user_store + } + + pub(crate) fn replace_collaborators( + &mut self, + collaborators: Vec, + cx: &mut ModelContext, + ) { + let mut new_collaborators = HashMap::default(); + for collaborator in collaborators { + if let Ok(collaborator) = Collaborator::from_proto(collaborator) { + new_collaborators.insert(collaborator.peer_id, collaborator); + } + } + + for (_, old_collaborator) in &self.collaborators { + if !new_collaborators.contains_key(&old_collaborator.peer_id) { + self.buffer.update(cx, |buffer, cx| { + buffer.remove_peer(old_collaborator.replica_id as u16, cx) + }); + } + } + self.collaborators = new_collaborators; + cx.emit(ChannelBufferEvent::CollaboratorsChanged); + cx.notify(); + } + + async fn handle_update_channel_buffer( + this: Model, + update_channel_buffer: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + let ops = update_channel_buffer + .payload + .operations + .into_iter() + .map(language::proto::deserialize_operation) + .collect::, _>>()?; + + this.update(&mut cx, |this, cx| { + cx.notify(); + this.buffer + .update(cx, |buffer, cx| buffer.apply_ops(ops, cx)) + })??; + + Ok(()) + } + + async fn handle_update_channel_buffer_collaborators( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + this.update(&mut cx, |this, cx| { + this.replace_collaborators(message.payload.collaborators, cx); + cx.emit(ChannelBufferEvent::CollaboratorsChanged); + cx.notify(); + }) + } + + fn on_buffer_update( + &mut self, + _: Model, + event: &language::Event, + cx: &mut ModelContext, + ) { + match event { + language::Event::Operation(operation) => { + let operation = language::proto::serialize_operation(operation); + self.client + .send(proto::UpdateChannelBuffer { + channel_id: self.channel_id, + operations: vec![operation], + }) + .log_err(); + } + language::Event::Edited => { + cx.emit(ChannelBufferEvent::BufferEdited); + } + _ => {} + } + } + + pub fn acknowledge_buffer_version(&mut self, cx: &mut ModelContext<'_, ChannelBuffer>) { + let buffer = self.buffer.read(cx); + let version = buffer.version(); + let buffer_id = buffer.remote_id(); + let client = self.client.clone(); + let epoch = self.epoch(); + + self.acknowledge_task = Some(cx.spawn(move |_, cx| async move { + cx.background_executor() + .timer(ACKNOWLEDGE_DEBOUNCE_INTERVAL) + .await; + client + .send(proto::AckBufferOperation { + buffer_id, + epoch, + version: serialize_version(&version), + }) + .ok(); + Ok(()) + })); + } + + pub fn epoch(&self) -> u64 { + self.buffer_epoch + } + + pub fn buffer(&self) -> Model { + self.buffer.clone() + } + + pub fn collaborators(&self) -> &HashMap { + &self.collaborators + } + + pub fn channel(&self, cx: &AppContext) -> Option> { + self.channel_store + .read(cx) + .channel_for_id(self.channel_id) + .cloned() + } + + pub(crate) fn disconnect(&mut self, cx: &mut ModelContext) { + log::info!("channel buffer {} disconnected", self.channel_id); + if self.connected { + self.connected = false; + self.subscription.take(); + cx.emit(ChannelBufferEvent::Disconnected); + cx.notify() + } + } + + pub(crate) fn channel_changed(&mut self, cx: &mut ModelContext) { + cx.emit(ChannelBufferEvent::ChannelChanged); + cx.notify() + } + + pub fn is_connected(&self) -> bool { + self.connected + } + + pub fn replica_id(&self, cx: &AppContext) -> u16 { + self.buffer.read(cx).replica_id() + } +} diff --git a/crates/channel2/src/channel_chat.rs b/crates/channel2/src/channel_chat.rs new file mode 100644 index 0000000000000000000000000000000000000000..a5b5249853a4d4bf7a9ffb46bb379f065e9e07f2 --- /dev/null +++ b/crates/channel2/src/channel_chat.rs @@ -0,0 +1,647 @@ +use crate::{Channel, ChannelId, ChannelStore}; +use anyhow::{anyhow, Result}; +use client::{ + proto, + user::{User, UserStore}, + Client, Subscription, TypedEnvelope, UserId, +}; +use futures::lock::Mutex; +use gpui::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; +use rand::prelude::*; +use std::{ + collections::HashSet, + mem, + ops::{ControlFlow, Range}, + sync::Arc, +}; +use sum_tree::{Bias, SumTree}; +use time::OffsetDateTime; +use util::{post_inc, ResultExt as _, TryFutureExt}; + +pub struct ChannelChat { + pub channel_id: ChannelId, + messages: SumTree, + acknowledged_message_ids: HashSet, + channel_store: Model, + loaded_all_messages: bool, + last_acknowledged_id: Option, + next_pending_message_id: usize, + user_store: Model, + rpc: Arc, + outgoing_messages_lock: Arc>, + rng: StdRng, + _subscription: Subscription, +} + +#[derive(Debug, PartialEq, Eq)] +pub struct MessageParams { + pub text: String, + pub mentions: Vec<(Range, UserId)>, +} + +#[derive(Clone, Debug)] +pub struct ChannelMessage { + pub id: ChannelMessageId, + pub body: String, + pub timestamp: OffsetDateTime, + pub sender: Arc, + pub nonce: u128, + pub mentions: Vec<(Range, UserId)>, +} + +#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum ChannelMessageId { + Saved(u64), + Pending(usize), +} + +#[derive(Clone, Debug, Default)] +pub struct ChannelMessageSummary { + max_id: ChannelMessageId, + count: usize, +} + +#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord)] +struct Count(usize); + +#[derive(Clone, Debug, PartialEq)] +pub enum ChannelChatEvent { + MessagesUpdated { + old_range: Range, + new_count: usize, + }, + NewMessage { + channel_id: ChannelId, + message_id: u64, + }, +} + +impl EventEmitter for ChannelChat { + type Event = ChannelChatEvent; +} +pub fn init(client: &Arc) { + client.add_model_message_handler(ChannelChat::handle_message_sent); + client.add_model_message_handler(ChannelChat::handle_message_removed); +} + +impl ChannelChat { + pub async fn new( + channel: Arc, + channel_store: Model, + user_store: Model, + client: Arc, + mut cx: AsyncAppContext, + ) -> Result> { + let channel_id = channel.id; + let subscription = client.subscribe_to_entity(channel_id).unwrap(); + + let response = client + .request(proto::JoinChannelChat { channel_id }) + .await?; + let messages = messages_from_proto(response.messages, &user_store, &mut cx).await?; + let loaded_all_messages = response.done; + + Ok(cx.build_model(|cx| { + cx.on_release(Self::release).detach(); + let mut this = Self { + channel_id: channel.id, + user_store, + channel_store, + rpc: client, + outgoing_messages_lock: Default::default(), + messages: Default::default(), + acknowledged_message_ids: Default::default(), + loaded_all_messages, + next_pending_message_id: 0, + last_acknowledged_id: None, + rng: StdRng::from_entropy(), + _subscription: subscription.set_model(&cx.handle(), &mut cx.to_async()), + }; + this.insert_messages(messages, cx); + this + })?) + } + + fn release(&mut self, _: &mut AppContext) { + self.rpc + .send(proto::LeaveChannelChat { + channel_id: self.channel_id, + }) + .log_err(); + } + + pub fn channel(&self, cx: &AppContext) -> Option> { + self.channel_store + .read(cx) + .channel_for_id(self.channel_id) + .cloned() + } + + pub fn client(&self) -> &Arc { + &self.rpc + } + + pub fn send_message( + &mut self, + message: MessageParams, + cx: &mut ModelContext, + ) -> Result>> { + if message.text.is_empty() { + Err(anyhow!("message body can't be empty"))?; + } + + let current_user = self + .user_store + .read(cx) + .current_user() + .ok_or_else(|| anyhow!("current_user is not present"))?; + + let channel_id = self.channel_id; + let pending_id = ChannelMessageId::Pending(post_inc(&mut self.next_pending_message_id)); + let nonce = self.rng.gen(); + self.insert_messages( + SumTree::from_item( + ChannelMessage { + id: pending_id, + body: message.text.clone(), + sender: current_user, + timestamp: OffsetDateTime::now_utc(), + mentions: message.mentions.clone(), + nonce, + }, + &(), + ), + cx, + ); + let user_store = self.user_store.clone(); + let rpc = self.rpc.clone(); + let outgoing_messages_lock = self.outgoing_messages_lock.clone(); + Ok(cx.spawn(move |this, mut cx| async move { + let outgoing_message_guard = outgoing_messages_lock.lock().await; + let request = rpc.request(proto::SendChannelMessage { + channel_id, + body: message.text, + nonce: Some(nonce.into()), + mentions: mentions_to_proto(&message.mentions), + }); + let response = request.await?; + drop(outgoing_message_guard); + let response = response.message.ok_or_else(|| anyhow!("invalid message"))?; + let id = response.id; + let message = ChannelMessage::from_proto(response, &user_store, &mut cx).await?; + this.update(&mut cx, |this, cx| { + this.insert_messages(SumTree::from_item(message, &()), cx); + })?; + Ok(id) + })) + } + + pub fn remove_message(&mut self, id: u64, cx: &mut ModelContext) -> Task> { + let response = self.rpc.request(proto::RemoveChannelMessage { + channel_id: self.channel_id, + message_id: id, + }); + cx.spawn(move |this, mut cx| async move { + response.await?; + this.update(&mut cx, |this, cx| { + this.message_removed(id, cx); + })?; + Ok(()) + }) + } + + pub fn load_more_messages(&mut self, cx: &mut ModelContext) -> Option>> { + if self.loaded_all_messages { + return None; + } + + let rpc = self.rpc.clone(); + let user_store = self.user_store.clone(); + let channel_id = self.channel_id; + let before_message_id = self.first_loaded_message_id()?; + Some(cx.spawn(move |this, mut cx| { + async move { + let response = rpc + .request(proto::GetChannelMessages { + channel_id, + before_message_id, + }) + .await?; + let loaded_all_messages = response.done; + let messages = messages_from_proto(response.messages, &user_store, &mut cx).await?; + this.update(&mut cx, |this, cx| { + this.loaded_all_messages = loaded_all_messages; + this.insert_messages(messages, cx); + })?; + anyhow::Ok(()) + } + .log_err() + })) + } + + pub fn first_loaded_message_id(&mut self) -> Option { + self.messages.first().and_then(|message| match message.id { + ChannelMessageId::Saved(id) => Some(id), + ChannelMessageId::Pending(_) => None, + }) + } + + /// Load all of the chat messages since a certain message id. + /// + /// For now, we always maintain a suffix of the channel's messages. + pub async fn load_history_since_message( + chat: Model, + message_id: u64, + mut cx: AsyncAppContext, + ) -> Option { + loop { + let step = chat + .update(&mut cx, |chat, cx| { + if let Some(first_id) = chat.first_loaded_message_id() { + if first_id <= message_id { + let mut cursor = chat.messages.cursor::<(ChannelMessageId, Count)>(); + let message_id = ChannelMessageId::Saved(message_id); + cursor.seek(&message_id, Bias::Left, &()); + return ControlFlow::Break( + if cursor + .item() + .map_or(false, |message| message.id == message_id) + { + Some(cursor.start().1 .0) + } else { + None + }, + ); + } + } + ControlFlow::Continue(chat.load_more_messages(cx)) + }) + .log_err()?; + match step { + ControlFlow::Break(ix) => return ix, + ControlFlow::Continue(task) => task?.await?, + } + } + } + + pub fn acknowledge_last_message(&mut self, cx: &mut ModelContext) { + if let ChannelMessageId::Saved(latest_message_id) = self.messages.summary().max_id { + if self + .last_acknowledged_id + .map_or(true, |acknowledged_id| acknowledged_id < latest_message_id) + { + self.rpc + .send(proto::AckChannelMessage { + channel_id: self.channel_id, + message_id: latest_message_id, + }) + .ok(); + self.last_acknowledged_id = Some(latest_message_id); + self.channel_store.update(cx, |store, cx| { + store.acknowledge_message_id(self.channel_id, latest_message_id, cx); + }); + } + } + } + + pub fn rejoin(&mut self, cx: &mut ModelContext) { + let user_store = self.user_store.clone(); + let rpc = self.rpc.clone(); + let channel_id = self.channel_id; + cx.spawn(move |this, mut cx| { + async move { + let response = rpc.request(proto::JoinChannelChat { channel_id }).await?; + let messages = messages_from_proto(response.messages, &user_store, &mut cx).await?; + let loaded_all_messages = response.done; + + let pending_messages = this.update(&mut cx, |this, cx| { + if let Some((first_new_message, last_old_message)) = + messages.first().zip(this.messages.last()) + { + if first_new_message.id > last_old_message.id { + let old_messages = mem::take(&mut this.messages); + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: 0..old_messages.summary().count, + new_count: 0, + }); + this.loaded_all_messages = loaded_all_messages; + } + } + + this.insert_messages(messages, cx); + if loaded_all_messages { + this.loaded_all_messages = loaded_all_messages; + } + + this.pending_messages().cloned().collect::>() + })?; + + for pending_message in pending_messages { + let request = rpc.request(proto::SendChannelMessage { + channel_id, + body: pending_message.body, + mentions: mentions_to_proto(&pending_message.mentions), + nonce: Some(pending_message.nonce.into()), + }); + let response = request.await?; + let message = ChannelMessage::from_proto( + response.message.ok_or_else(|| anyhow!("invalid message"))?, + &user_store, + &mut cx, + ) + .await?; + this.update(&mut cx, |this, cx| { + this.insert_messages(SumTree::from_item(message, &()), cx); + })?; + } + + anyhow::Ok(()) + } + .log_err() + }) + .detach(); + } + + pub fn message_count(&self) -> usize { + self.messages.summary().count + } + + pub fn messages(&self) -> &SumTree { + &self.messages + } + + pub fn message(&self, ix: usize) -> &ChannelMessage { + let mut cursor = self.messages.cursor::(); + cursor.seek(&Count(ix), Bias::Right, &()); + cursor.item().unwrap() + } + + pub fn acknowledge_message(&mut self, id: u64) { + if self.acknowledged_message_ids.insert(id) { + self.rpc + .send(proto::AckChannelMessage { + channel_id: self.channel_id, + message_id: id, + }) + .ok(); + } + } + + pub fn messages_in_range(&self, range: Range) -> impl Iterator { + let mut cursor = self.messages.cursor::(); + cursor.seek(&Count(range.start), Bias::Right, &()); + cursor.take(range.len()) + } + + pub fn pending_messages(&self) -> impl Iterator { + let mut cursor = self.messages.cursor::(); + cursor.seek(&ChannelMessageId::Pending(0), Bias::Left, &()); + cursor + } + + async fn handle_message_sent( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + let user_store = this.update(&mut cx, |this, _| this.user_store.clone())?; + let message = message + .payload + .message + .ok_or_else(|| anyhow!("empty message"))?; + let message_id = message.id; + + let message = ChannelMessage::from_proto(message, &user_store, &mut cx).await?; + this.update(&mut cx, |this, cx| { + this.insert_messages(SumTree::from_item(message, &()), cx); + cx.emit(ChannelChatEvent::NewMessage { + channel_id: this.channel_id, + message_id, + }) + })?; + + Ok(()) + } + + async fn handle_message_removed( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + this.update(&mut cx, |this, cx| { + this.message_removed(message.payload.message_id, cx) + })?; + Ok(()) + } + + fn insert_messages(&mut self, messages: SumTree, cx: &mut ModelContext) { + if let Some((first_message, last_message)) = messages.first().zip(messages.last()) { + let nonces = messages + .cursor::<()>() + .map(|m| m.nonce) + .collect::>(); + + let mut old_cursor = self.messages.cursor::<(ChannelMessageId, Count)>(); + let mut new_messages = old_cursor.slice(&first_message.id, Bias::Left, &()); + let start_ix = old_cursor.start().1 .0; + let removed_messages = old_cursor.slice(&last_message.id, Bias::Right, &()); + let removed_count = removed_messages.summary().count; + let new_count = messages.summary().count; + let end_ix = start_ix + removed_count; + + new_messages.append(messages, &()); + + let mut ranges = Vec::>::new(); + if new_messages.last().unwrap().is_pending() { + new_messages.append(old_cursor.suffix(&()), &()); + } else { + new_messages.append( + old_cursor.slice(&ChannelMessageId::Pending(0), Bias::Left, &()), + &(), + ); + + while let Some(message) = old_cursor.item() { + let message_ix = old_cursor.start().1 .0; + if nonces.contains(&message.nonce) { + if ranges.last().map_or(false, |r| r.end == message_ix) { + ranges.last_mut().unwrap().end += 1; + } else { + ranges.push(message_ix..message_ix + 1); + } + } else { + new_messages.push(message.clone(), &()); + } + old_cursor.next(&()); + } + } + + drop(old_cursor); + self.messages = new_messages; + + for range in ranges.into_iter().rev() { + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: range, + new_count: 0, + }); + } + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: start_ix..end_ix, + new_count, + }); + + cx.notify(); + } + } + + fn message_removed(&mut self, id: u64, cx: &mut ModelContext) { + let mut cursor = self.messages.cursor::(); + let mut messages = cursor.slice(&ChannelMessageId::Saved(id), Bias::Left, &()); + if let Some(item) = cursor.item() { + if item.id == ChannelMessageId::Saved(id) { + let ix = messages.summary().count; + cursor.next(&()); + messages.append(cursor.suffix(&()), &()); + drop(cursor); + self.messages = messages; + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: ix..ix + 1, + new_count: 0, + }); + } + } + } +} + +async fn messages_from_proto( + proto_messages: Vec, + user_store: &Model, + cx: &mut AsyncAppContext, +) -> Result> { + let messages = ChannelMessage::from_proto_vec(proto_messages, user_store, cx).await?; + let mut result = SumTree::new(); + result.extend(messages, &()); + Ok(result) +} + +impl ChannelMessage { + pub async fn from_proto( + message: proto::ChannelMessage, + user_store: &Model, + cx: &mut AsyncAppContext, + ) -> Result { + let sender = user_store + .update(cx, |user_store, cx| { + user_store.get_user(message.sender_id, cx) + })? + .await?; + Ok(ChannelMessage { + id: ChannelMessageId::Saved(message.id), + body: message.body, + mentions: message + .mentions + .into_iter() + .filter_map(|mention| { + let range = mention.range?; + Some((range.start as usize..range.end as usize, mention.user_id)) + }) + .collect(), + timestamp: OffsetDateTime::from_unix_timestamp(message.timestamp as i64)?, + sender, + nonce: message + .nonce + .ok_or_else(|| anyhow!("nonce is required"))? + .into(), + }) + } + + pub fn is_pending(&self) -> bool { + matches!(self.id, ChannelMessageId::Pending(_)) + } + + pub async fn from_proto_vec( + proto_messages: Vec, + user_store: &Model, + cx: &mut AsyncAppContext, + ) -> Result> { + let unique_user_ids = proto_messages + .iter() + .map(|m| m.sender_id) + .collect::>() + .into_iter() + .collect(); + user_store + .update(cx, |user_store, cx| { + user_store.get_users(unique_user_ids, cx) + })? + .await?; + + let mut messages = Vec::with_capacity(proto_messages.len()); + for message in proto_messages { + messages.push(ChannelMessage::from_proto(message, user_store, cx).await?); + } + Ok(messages) + } +} + +pub fn mentions_to_proto(mentions: &[(Range, UserId)]) -> Vec { + mentions + .iter() + .map(|(range, user_id)| proto::ChatMention { + range: Some(proto::Range { + start: range.start as u64, + end: range.end as u64, + }), + user_id: *user_id as u64, + }) + .collect() +} + +impl sum_tree::Item for ChannelMessage { + type Summary = ChannelMessageSummary; + + fn summary(&self) -> Self::Summary { + ChannelMessageSummary { + max_id: self.id, + count: 1, + } + } +} + +impl Default for ChannelMessageId { + fn default() -> Self { + Self::Saved(0) + } +} + +impl sum_tree::Summary for ChannelMessageSummary { + type Context = (); + + fn add_summary(&mut self, summary: &Self, _: &()) { + self.max_id = summary.max_id; + self.count += summary.count; + } +} + +impl<'a> sum_tree::Dimension<'a, ChannelMessageSummary> for ChannelMessageId { + fn add_summary(&mut self, summary: &'a ChannelMessageSummary, _: &()) { + debug_assert!(summary.max_id > *self); + *self = summary.max_id; + } +} + +impl<'a> sum_tree::Dimension<'a, ChannelMessageSummary> for Count { + fn add_summary(&mut self, summary: &'a ChannelMessageSummary, _: &()) { + self.0 += summary.count; + } +} + +impl<'a> From<&'a str> for MessageParams { + fn from(value: &'a str) -> Self { + Self { + text: value.into(), + mentions: Vec::new(), + } + } +} diff --git a/crates/channel2/src/channel_store.rs b/crates/channel2/src/channel_store.rs new file mode 100644 index 0000000000000000000000000000000000000000..3c9abd59e279e2c35fc580634faff753296d220e --- /dev/null +++ b/crates/channel2/src/channel_store.rs @@ -0,0 +1,1021 @@ +mod channel_index; + +use crate::{channel_buffer::ChannelBuffer, channel_chat::ChannelChat, ChannelMessage}; +use anyhow::{anyhow, Result}; +use channel_index::ChannelIndex; +use client::{Client, Subscription, User, UserId, UserStore}; +use collections::{hash_map, HashMap, HashSet}; +use db::RELEASE_CHANNEL; +use futures::{channel::mpsc, future::Shared, Future, FutureExt, StreamExt}; +use gpui::{ + AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task, WeakModel, +}; +use rpc::{ + proto::{self, ChannelVisibility}, + TypedEnvelope, +}; +use std::{mem, sync::Arc, time::Duration}; +use util::{async_maybe, ResultExt}; + +pub fn init(client: &Arc, user_store: Model, cx: &mut AppContext) { + let channel_store = + cx.build_model(|cx| ChannelStore::new(client.clone(), user_store.clone(), cx)); + cx.set_global(channel_store); +} + +pub const RECONNECT_TIMEOUT: Duration = Duration::from_secs(30); + +pub type ChannelId = u64; + +pub struct ChannelStore { + pub channel_index: ChannelIndex, + channel_invitations: Vec>, + channel_participants: HashMap>>, + outgoing_invites: HashSet<(ChannelId, UserId)>, + update_channels_tx: mpsc::UnboundedSender, + opened_buffers: HashMap>, + opened_chats: HashMap>, + client: Arc, + user_store: Model, + _rpc_subscription: Subscription, + _watch_connection_status: Task>, + disconnect_channel_buffers_task: Option>, + _update_channels: Task<()>, +} + +#[derive(Clone, Debug, PartialEq)] +pub struct Channel { + pub id: ChannelId, + pub name: String, + pub visibility: proto::ChannelVisibility, + pub role: proto::ChannelRole, + pub unseen_note_version: Option<(u64, clock::Global)>, + pub unseen_message_id: Option, + pub parent_path: Vec, +} + +impl Channel { + pub fn link(&self) -> String { + RELEASE_CHANNEL.link_prefix().to_owned() + + "channel/" + + &self.slug() + + "-" + + &self.id.to_string() + } + + pub fn slug(&self) -> String { + let slug: String = self + .name + .chars() + .map(|c| if c.is_alphanumeric() { c } else { '-' }) + .collect(); + + slug.trim_matches(|c| c == '-').to_string() + } + + pub fn can_edit_notes(&self) -> bool { + self.role == proto::ChannelRole::Member || self.role == proto::ChannelRole::Admin + } +} + +pub struct ChannelMembership { + pub user: Arc, + pub kind: proto::channel_member::Kind, + pub role: proto::ChannelRole, +} +impl ChannelMembership { + pub fn sort_key(&self) -> MembershipSortKey { + MembershipSortKey { + role_order: match self.role { + proto::ChannelRole::Admin => 0, + proto::ChannelRole::Member => 1, + proto::ChannelRole::Banned => 2, + proto::ChannelRole::Guest => 3, + }, + kind_order: match self.kind { + proto::channel_member::Kind::Member => 0, + proto::channel_member::Kind::AncestorMember => 1, + proto::channel_member::Kind::Invitee => 2, + }, + username_order: self.user.github_login.as_str(), + } + } +} + +#[derive(PartialOrd, Ord, PartialEq, Eq)] +pub struct MembershipSortKey<'a> { + role_order: u8, + kind_order: u8, + username_order: &'a str, +} + +pub enum ChannelEvent { + ChannelCreated(ChannelId), + ChannelRenamed(ChannelId), +} + +impl EventEmitter for ChannelStore { + type Event = ChannelEvent; +} + +enum OpenedModelHandle { + Open(WeakModel), + Loading(Shared, Arc>>>), +} + +impl ChannelStore { + pub fn global(cx: &AppContext) -> Model { + cx.global::>().clone() + } + + pub fn new( + client: Arc, + user_store: Model, + cx: &mut ModelContext, + ) -> Self { + let rpc_subscription = + client.add_message_handler(cx.weak_model(), Self::handle_update_channels); + + let mut connection_status = client.status(); + let (update_channels_tx, mut update_channels_rx) = mpsc::unbounded(); + let watch_connection_status = cx.spawn(|this, mut cx| async move { + while let Some(status) = connection_status.next().await { + let this = this.upgrade()?; + match status { + client::Status::Connected { .. } => { + this.update(&mut cx, |this, cx| this.handle_connect(cx)) + .ok()? + .await + .log_err()?; + } + client::Status::SignedOut | client::Status::UpgradeRequired => { + this.update(&mut cx, |this, cx| this.handle_disconnect(false, cx)) + .ok(); + } + _ => { + this.update(&mut cx, |this, cx| this.handle_disconnect(true, cx)) + .ok(); + } + } + } + Some(()) + }); + + Self { + channel_invitations: Vec::default(), + channel_index: ChannelIndex::default(), + channel_participants: Default::default(), + outgoing_invites: Default::default(), + opened_buffers: Default::default(), + opened_chats: Default::default(), + update_channels_tx, + client, + user_store, + _rpc_subscription: rpc_subscription, + _watch_connection_status: watch_connection_status, + disconnect_channel_buffers_task: None, + _update_channels: cx.spawn(|this, mut cx| async move { + async_maybe!({ + while let Some(update_channels) = update_channels_rx.next().await { + if let Some(this) = this.upgrade() { + let update_task = this.update(&mut cx, |this, cx| { + this.update_channels(update_channels, cx) + })?; + if let Some(update_task) = update_task { + update_task.await.log_err(); + } + } + } + anyhow::Ok(()) + }) + .await + .log_err(); + }), + } + } + + pub fn client(&self) -> Arc { + self.client.clone() + } + + /// Returns the number of unique channels in the store + pub fn channel_count(&self) -> usize { + self.channel_index.by_id().len() + } + + /// Returns the index of a channel ID in the list of unique channels + pub fn index_of_channel(&self, channel_id: ChannelId) -> Option { + self.channel_index + .by_id() + .keys() + .position(|id| *id == channel_id) + } + + /// Returns an iterator over all unique channels + pub fn channels(&self) -> impl '_ + Iterator> { + self.channel_index.by_id().values() + } + + /// Iterate over all entries in the channel DAG + pub fn ordered_channels(&self) -> impl '_ + Iterator)> { + self.channel_index + .ordered_channels() + .iter() + .filter_map(move |id| { + let channel = self.channel_index.by_id().get(id)?; + Some((channel.parent_path.len(), channel)) + }) + } + + pub fn channel_at_index(&self, ix: usize) -> Option<&Arc> { + let channel_id = self.channel_index.ordered_channels().get(ix)?; + self.channel_index.by_id().get(channel_id) + } + + pub fn channel_at(&self, ix: usize) -> Option<&Arc> { + self.channel_index.by_id().values().nth(ix) + } + + pub fn has_channel_invitation(&self, channel_id: ChannelId) -> bool { + self.channel_invitations + .iter() + .any(|channel| channel.id == channel_id) + } + + pub fn channel_invitations(&self) -> &[Arc] { + &self.channel_invitations + } + + pub fn channel_for_id(&self, channel_id: ChannelId) -> Option<&Arc> { + self.channel_index.by_id().get(&channel_id) + } + + pub fn has_open_channel_buffer(&self, channel_id: ChannelId, _cx: &AppContext) -> bool { + if let Some(buffer) = self.opened_buffers.get(&channel_id) { + if let OpenedModelHandle::Open(buffer) = buffer { + return buffer.upgrade().is_some(); + } + } + false + } + + pub fn open_channel_buffer( + &mut self, + channel_id: ChannelId, + cx: &mut ModelContext, + ) -> Task>> { + let client = self.client.clone(); + let user_store = self.user_store.clone(); + let channel_store = cx.handle(); + self.open_channel_resource( + channel_id, + |this| &mut this.opened_buffers, + |channel, cx| ChannelBuffer::new(channel, client, user_store, channel_store, cx), + cx, + ) + } + + pub fn fetch_channel_messages( + &self, + message_ids: Vec, + cx: &mut ModelContext, + ) -> Task>> { + let request = if message_ids.is_empty() { + None + } else { + Some( + self.client + .request(proto::GetChannelMessagesById { message_ids }), + ) + }; + cx.spawn(|this, mut cx| async move { + if let Some(request) = request { + let response = request.await?; + let this = this + .upgrade() + .ok_or_else(|| anyhow!("channel store dropped"))?; + let user_store = this.update(&mut cx, |this, _| this.user_store.clone())?; + ChannelMessage::from_proto_vec(response.messages, &user_store, &mut cx).await + } else { + Ok(Vec::new()) + } + }) + } + + pub fn has_channel_buffer_changed(&self, channel_id: ChannelId) -> Option { + self.channel_index + .by_id() + .get(&channel_id) + .map(|channel| channel.unseen_note_version.is_some()) + } + + pub fn has_new_messages(&self, channel_id: ChannelId) -> Option { + self.channel_index + .by_id() + .get(&channel_id) + .map(|channel| channel.unseen_message_id.is_some()) + } + + pub fn notes_changed( + &mut self, + channel_id: ChannelId, + epoch: u64, + version: &clock::Global, + cx: &mut ModelContext, + ) { + self.channel_index.note_changed(channel_id, epoch, version); + cx.notify(); + } + + pub fn new_message( + &mut self, + channel_id: ChannelId, + message_id: u64, + cx: &mut ModelContext, + ) { + self.channel_index.new_message(channel_id, message_id); + cx.notify(); + } + + pub fn acknowledge_message_id( + &mut self, + channel_id: ChannelId, + message_id: u64, + cx: &mut ModelContext, + ) { + self.channel_index + .acknowledge_message_id(channel_id, message_id); + cx.notify(); + } + + pub fn acknowledge_notes_version( + &mut self, + channel_id: ChannelId, + epoch: u64, + version: &clock::Global, + cx: &mut ModelContext, + ) { + self.channel_index + .acknowledge_note_version(channel_id, epoch, version); + cx.notify(); + } + + pub fn open_channel_chat( + &mut self, + channel_id: ChannelId, + cx: &mut ModelContext, + ) -> Task>> { + let client = self.client.clone(); + let user_store = self.user_store.clone(); + let this = cx.handle(); + self.open_channel_resource( + channel_id, + |this| &mut this.opened_chats, + |channel, cx| ChannelChat::new(channel, this, user_store, client, cx), + cx, + ) + } + + /// Asynchronously open a given resource associated with a channel. + /// + /// Make sure that the resource is only opened once, even if this method + /// is called multiple times with the same channel id while the first task + /// is still running. + fn open_channel_resource( + &mut self, + channel_id: ChannelId, + get_map: fn(&mut Self) -> &mut HashMap>, + load: F, + cx: &mut ModelContext, + ) -> Task>> + where + F: 'static + FnOnce(Arc, AsyncAppContext) -> Fut, + Fut: Future>>, + T: 'static, + { + let task = loop { + match get_map(self).entry(channel_id) { + hash_map::Entry::Occupied(e) => match e.get() { + OpenedModelHandle::Open(model) => { + if let Some(model) = model.upgrade() { + break Task::ready(Ok(model)).shared(); + } else { + get_map(self).remove(&channel_id); + continue; + } + } + OpenedModelHandle::Loading(task) => { + break task.clone(); + } + }, + hash_map::Entry::Vacant(e) => { + let task = cx + .spawn(move |this, mut cx| async move { + let channel = this.update(&mut cx, |this, _| { + this.channel_for_id(channel_id).cloned().ok_or_else(|| { + Arc::new(anyhow!("no channel for id: {}", channel_id)) + }) + })??; + + load(channel, cx).await.map_err(Arc::new) + }) + .shared(); + + e.insert(OpenedModelHandle::Loading(task.clone())); + cx.spawn({ + let task = task.clone(); + move |this, mut cx| async move { + let result = task.await; + this.update(&mut cx, |this, _| match result { + Ok(model) => { + get_map(this).insert( + channel_id, + OpenedModelHandle::Open(model.downgrade()), + ); + } + Err(_) => { + get_map(this).remove(&channel_id); + } + }) + .ok(); + } + }) + .detach(); + break task; + } + } + }; + cx.background_executor() + .spawn(async move { task.await.map_err(|error| anyhow!("{}", error)) }) + } + + pub fn is_channel_admin(&self, channel_id: ChannelId) -> bool { + let Some(channel) = self.channel_for_id(channel_id) else { + return false; + }; + channel.role == proto::ChannelRole::Admin + } + + pub fn channel_participants(&self, channel_id: ChannelId) -> &[Arc] { + self.channel_participants + .get(&channel_id) + .map_or(&[], |v| v.as_slice()) + } + + pub fn create_channel( + &self, + name: &str, + parent_id: Option, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + let name = name.trim_start_matches("#").to_owned(); + cx.spawn(move |this, mut cx| async move { + let response = client + .request(proto::CreateChannel { name, parent_id }) + .await?; + + let channel = response + .channel + .ok_or_else(|| anyhow!("missing channel in response"))?; + let channel_id = channel.id; + + this.update(&mut cx, |this, cx| { + let task = this.update_channels( + proto::UpdateChannels { + channels: vec![channel], + ..Default::default() + }, + cx, + ); + assert!(task.is_none()); + + // This event is emitted because the collab panel wants to clear the pending edit state + // before this frame is rendered. But we can't guarantee that the collab panel's future + // will resolve before this flush_effects finishes. Synchronously emitting this event + // ensures that the collab panel will observe this creation before the frame completes + cx.emit(ChannelEvent::ChannelCreated(channel_id)); + })?; + + Ok(channel_id) + }) + } + + pub fn move_channel( + &mut self, + channel_id: ChannelId, + to: Option, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + cx.spawn(move |_, _| async move { + let _ = client + .request(proto::MoveChannel { channel_id, to }) + .await?; + + Ok(()) + }) + } + + pub fn set_channel_visibility( + &mut self, + channel_id: ChannelId, + visibility: ChannelVisibility, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + cx.spawn(move |_, _| async move { + let _ = client + .request(proto::SetChannelVisibility { + channel_id, + visibility: visibility.into(), + }) + .await?; + + Ok(()) + }) + } + + pub fn invite_member( + &mut self, + channel_id: ChannelId, + user_id: UserId, + role: proto::ChannelRole, + cx: &mut ModelContext, + ) -> Task> { + if !self.outgoing_invites.insert((channel_id, user_id)) { + return Task::ready(Err(anyhow!("invite request already in progress"))); + } + + cx.notify(); + let client = self.client.clone(); + cx.spawn(move |this, mut cx| async move { + let result = client + .request(proto::InviteChannelMember { + channel_id, + user_id, + role: role.into(), + }) + .await; + + this.update(&mut cx, |this, cx| { + this.outgoing_invites.remove(&(channel_id, user_id)); + cx.notify(); + })?; + + result?; + + Ok(()) + }) + } + + pub fn remove_member( + &mut self, + channel_id: ChannelId, + user_id: u64, + cx: &mut ModelContext, + ) -> Task> { + if !self.outgoing_invites.insert((channel_id, user_id)) { + return Task::ready(Err(anyhow!("invite request already in progress"))); + } + + cx.notify(); + let client = self.client.clone(); + cx.spawn(move |this, mut cx| async move { + let result = client + .request(proto::RemoveChannelMember { + channel_id, + user_id, + }) + .await; + + this.update(&mut cx, |this, cx| { + this.outgoing_invites.remove(&(channel_id, user_id)); + cx.notify(); + })?; + result?; + Ok(()) + }) + } + + pub fn set_member_role( + &mut self, + channel_id: ChannelId, + user_id: UserId, + role: proto::ChannelRole, + cx: &mut ModelContext, + ) -> Task> { + if !self.outgoing_invites.insert((channel_id, user_id)) { + return Task::ready(Err(anyhow!("member request already in progress"))); + } + + cx.notify(); + let client = self.client.clone(); + cx.spawn(move |this, mut cx| async move { + let result = client + .request(proto::SetChannelMemberRole { + channel_id, + user_id, + role: role.into(), + }) + .await; + + this.update(&mut cx, |this, cx| { + this.outgoing_invites.remove(&(channel_id, user_id)); + cx.notify(); + })?; + + result?; + Ok(()) + }) + } + + pub fn rename( + &mut self, + channel_id: ChannelId, + new_name: &str, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + let name = new_name.to_string(); + cx.spawn(move |this, mut cx| async move { + let channel = client + .request(proto::RenameChannel { channel_id, name }) + .await? + .channel + .ok_or_else(|| anyhow!("missing channel in response"))?; + this.update(&mut cx, |this, cx| { + let task = this.update_channels( + proto::UpdateChannels { + channels: vec![channel], + ..Default::default() + }, + cx, + ); + assert!(task.is_none()); + + // This event is emitted because the collab panel wants to clear the pending edit state + // before this frame is rendered. But we can't guarantee that the collab panel's future + // will resolve before this flush_effects finishes. Synchronously emitting this event + // ensures that the collab panel will observe this creation before the frame complete + cx.emit(ChannelEvent::ChannelRenamed(channel_id)) + })?; + Ok(()) + }) + } + + pub fn respond_to_channel_invite( + &mut self, + channel_id: ChannelId, + accept: bool, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + cx.background_executor().spawn(async move { + client + .request(proto::RespondToChannelInvite { channel_id, accept }) + .await?; + Ok(()) + }) + } + + pub fn get_channel_member_details( + &self, + channel_id: ChannelId, + cx: &mut ModelContext, + ) -> Task>> { + let client = self.client.clone(); + let user_store = self.user_store.downgrade(); + cx.spawn(move |_, mut cx| async move { + let response = client + .request(proto::GetChannelMembers { channel_id }) + .await?; + + let user_ids = response.members.iter().map(|m| m.user_id).collect(); + let user_store = user_store + .upgrade() + .ok_or_else(|| anyhow!("user store dropped"))?; + let users = user_store + .update(&mut cx, |user_store, cx| user_store.get_users(user_ids, cx))? + .await?; + + Ok(users + .into_iter() + .zip(response.members) + .filter_map(|(user, member)| { + Some(ChannelMembership { + user, + role: member.role(), + kind: member.kind(), + }) + }) + .collect()) + }) + } + + pub fn remove_channel(&self, channel_id: ChannelId) -> impl Future> { + let client = self.client.clone(); + async move { + client.request(proto::DeleteChannel { channel_id }).await?; + Ok(()) + } + } + + pub fn has_pending_channel_invite_response(&self, _: &Arc) -> bool { + false + } + + pub fn has_pending_channel_invite(&self, channel_id: ChannelId, user_id: UserId) -> bool { + self.outgoing_invites.contains(&(channel_id, user_id)) + } + + async fn handle_update_channels( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + this.update(&mut cx, |this, _| { + this.update_channels_tx + .unbounded_send(message.payload) + .unwrap(); + })?; + Ok(()) + } + + fn handle_connect(&mut self, cx: &mut ModelContext) -> Task> { + self.channel_index.clear(); + self.channel_invitations.clear(); + self.channel_participants.clear(); + self.channel_index.clear(); + self.outgoing_invites.clear(); + self.disconnect_channel_buffers_task.take(); + + for chat in self.opened_chats.values() { + if let OpenedModelHandle::Open(chat) = chat { + if let Some(chat) = chat.upgrade() { + chat.update(cx, |chat, cx| { + chat.rejoin(cx); + }); + } + } + } + + let mut buffer_versions = Vec::new(); + for buffer in self.opened_buffers.values() { + if let OpenedModelHandle::Open(buffer) = buffer { + if let Some(buffer) = buffer.upgrade() { + let channel_buffer = buffer.read(cx); + let buffer = channel_buffer.buffer().read(cx); + buffer_versions.push(proto::ChannelBufferVersion { + channel_id: channel_buffer.channel_id, + epoch: channel_buffer.epoch(), + version: language::proto::serialize_version(&buffer.version()), + }); + } + } + } + + if buffer_versions.is_empty() { + return Task::ready(Ok(())); + } + + let response = self.client.request(proto::RejoinChannelBuffers { + buffers: buffer_versions, + }); + + cx.spawn(|this, mut cx| async move { + let mut response = response.await?; + + this.update(&mut cx, |this, cx| { + this.opened_buffers.retain(|_, buffer| match buffer { + OpenedModelHandle::Open(channel_buffer) => { + let Some(channel_buffer) = channel_buffer.upgrade() else { + return false; + }; + + channel_buffer.update(cx, |channel_buffer, cx| { + let channel_id = channel_buffer.channel_id; + if let Some(remote_buffer) = response + .buffers + .iter_mut() + .find(|buffer| buffer.channel_id == channel_id) + { + let channel_id = channel_buffer.channel_id; + let remote_version = + language::proto::deserialize_version(&remote_buffer.version); + + channel_buffer.replace_collaborators( + mem::take(&mut remote_buffer.collaborators), + cx, + ); + + let operations = channel_buffer + .buffer() + .update(cx, |buffer, cx| { + let outgoing_operations = + buffer.serialize_ops(Some(remote_version), cx); + let incoming_operations = + mem::take(&mut remote_buffer.operations) + .into_iter() + .map(language::proto::deserialize_operation) + .collect::>>()?; + buffer.apply_ops(incoming_operations, cx)?; + anyhow::Ok(outgoing_operations) + }) + .log_err(); + + if let Some(operations) = operations { + let client = this.client.clone(); + cx.background_executor() + .spawn(async move { + let operations = operations.await; + for chunk in + language::proto::split_operations(operations) + { + client + .send(proto::UpdateChannelBuffer { + channel_id, + operations: chunk, + }) + .ok(); + } + }) + .detach(); + return true; + } + } + + channel_buffer.disconnect(cx); + false + }) + } + OpenedModelHandle::Loading(_) => true, + }); + }) + .ok(); + anyhow::Ok(()) + }) + } + + fn handle_disconnect(&mut self, wait_for_reconnect: bool, cx: &mut ModelContext) { + cx.notify(); + + self.disconnect_channel_buffers_task.get_or_insert_with(|| { + cx.spawn(move |this, mut cx| async move { + if wait_for_reconnect { + cx.background_executor().timer(RECONNECT_TIMEOUT).await; + } + + if let Some(this) = this.upgrade() { + this.update(&mut cx, |this, cx| { + for (_, buffer) in this.opened_buffers.drain() { + if let OpenedModelHandle::Open(buffer) = buffer { + if let Some(buffer) = buffer.upgrade() { + buffer.update(cx, |buffer, cx| buffer.disconnect(cx)); + } + } + } + }) + .ok(); + } + }) + }); + } + + pub(crate) fn update_channels( + &mut self, + payload: proto::UpdateChannels, + cx: &mut ModelContext, + ) -> Option>> { + if !payload.remove_channel_invitations.is_empty() { + self.channel_invitations + .retain(|channel| !payload.remove_channel_invitations.contains(&channel.id)); + } + for channel in payload.channel_invitations { + match self + .channel_invitations + .binary_search_by_key(&channel.id, |c| c.id) + { + Ok(ix) => Arc::make_mut(&mut self.channel_invitations[ix]).name = channel.name, + Err(ix) => self.channel_invitations.insert( + ix, + Arc::new(Channel { + id: channel.id, + visibility: channel.visibility(), + role: channel.role(), + name: channel.name, + unseen_note_version: None, + unseen_message_id: None, + parent_path: channel.parent_path, + }), + ), + } + } + + let channels_changed = !payload.channels.is_empty() + || !payload.delete_channels.is_empty() + || !payload.unseen_channel_messages.is_empty() + || !payload.unseen_channel_buffer_changes.is_empty(); + + if channels_changed { + if !payload.delete_channels.is_empty() { + self.channel_index.delete_channels(&payload.delete_channels); + self.channel_participants + .retain(|channel_id, _| !&payload.delete_channels.contains(channel_id)); + + for channel_id in &payload.delete_channels { + let channel_id = *channel_id; + if payload + .channels + .iter() + .any(|channel| channel.id == channel_id) + { + continue; + } + if let Some(OpenedModelHandle::Open(buffer)) = + self.opened_buffers.remove(&channel_id) + { + if let Some(buffer) = buffer.upgrade() { + buffer.update(cx, ChannelBuffer::disconnect); + } + } + } + } + + let mut index = self.channel_index.bulk_insert(); + for channel in payload.channels { + let id = channel.id; + let channel_changed = index.insert(channel); + + if channel_changed { + if let Some(OpenedModelHandle::Open(buffer)) = self.opened_buffers.get(&id) { + if let Some(buffer) = buffer.upgrade() { + buffer.update(cx, ChannelBuffer::channel_changed); + } + } + } + } + + for unseen_buffer_change in payload.unseen_channel_buffer_changes { + let version = language::proto::deserialize_version(&unseen_buffer_change.version); + index.note_changed( + unseen_buffer_change.channel_id, + unseen_buffer_change.epoch, + &version, + ); + } + + for unseen_channel_message in payload.unseen_channel_messages { + index.new_messages( + unseen_channel_message.channel_id, + unseen_channel_message.message_id, + ); + } + } + + cx.notify(); + if payload.channel_participants.is_empty() { + return None; + } + + let mut all_user_ids = Vec::new(); + let channel_participants = payload.channel_participants; + for entry in &channel_participants { + for user_id in entry.participant_user_ids.iter() { + if let Err(ix) = all_user_ids.binary_search(user_id) { + all_user_ids.insert(ix, *user_id); + } + } + } + + let users = self + .user_store + .update(cx, |user_store, cx| user_store.get_users(all_user_ids, cx)); + Some(cx.spawn(|this, mut cx| async move { + let users = users.await?; + + this.update(&mut cx, |this, cx| { + for entry in &channel_participants { + let mut participants: Vec<_> = entry + .participant_user_ids + .iter() + .filter_map(|user_id| { + users + .binary_search_by_key(&user_id, |user| &user.id) + .ok() + .map(|ix| users[ix].clone()) + }) + .collect(); + + participants.sort_by_key(|u| u.id); + + this.channel_participants + .insert(entry.channel_id, participants); + } + + cx.notify(); + }) + })) + } +} diff --git a/crates/channel2/src/channel_store/channel_index.rs b/crates/channel2/src/channel_store/channel_index.rs new file mode 100644 index 0000000000000000000000000000000000000000..97b2ab6318630113a90e674313a3dba9fd66d79e --- /dev/null +++ b/crates/channel2/src/channel_store/channel_index.rs @@ -0,0 +1,184 @@ +use crate::{Channel, ChannelId}; +use collections::BTreeMap; +use rpc::proto; +use std::sync::Arc; + +#[derive(Default, Debug)] +pub struct ChannelIndex { + channels_ordered: Vec, + channels_by_id: BTreeMap>, +} + +impl ChannelIndex { + pub fn by_id(&self) -> &BTreeMap> { + &self.channels_by_id + } + + pub fn ordered_channels(&self) -> &[ChannelId] { + &self.channels_ordered + } + + pub fn clear(&mut self) { + self.channels_ordered.clear(); + self.channels_by_id.clear(); + } + + /// Delete the given channels from this index. + pub fn delete_channels(&mut self, channels: &[ChannelId]) { + self.channels_by_id + .retain(|channel_id, _| !channels.contains(channel_id)); + self.channels_ordered + .retain(|channel_id| !channels.contains(channel_id)); + } + + pub fn bulk_insert(&mut self) -> ChannelPathsInsertGuard { + ChannelPathsInsertGuard { + channels_ordered: &mut self.channels_ordered, + channels_by_id: &mut self.channels_by_id, + } + } + + pub fn acknowledge_note_version( + &mut self, + channel_id: ChannelId, + epoch: u64, + version: &clock::Global, + ) { + if let Some(channel) = self.channels_by_id.get_mut(&channel_id) { + let channel = Arc::make_mut(channel); + if let Some((unseen_epoch, unseen_version)) = &channel.unseen_note_version { + if epoch > *unseen_epoch + || epoch == *unseen_epoch && version.observed_all(unseen_version) + { + channel.unseen_note_version = None; + } + } + } + } + + pub fn acknowledge_message_id(&mut self, channel_id: ChannelId, message_id: u64) { + if let Some(channel) = self.channels_by_id.get_mut(&channel_id) { + let channel = Arc::make_mut(channel); + if let Some(unseen_message_id) = channel.unseen_message_id { + if message_id >= unseen_message_id { + channel.unseen_message_id = None; + } + } + } + } + + pub fn note_changed(&mut self, channel_id: ChannelId, epoch: u64, version: &clock::Global) { + insert_note_changed(&mut self.channels_by_id, channel_id, epoch, version); + } + + pub fn new_message(&mut self, channel_id: ChannelId, message_id: u64) { + insert_new_message(&mut self.channels_by_id, channel_id, message_id) + } +} + +/// A guard for ensuring that the paths index maintains its sort and uniqueness +/// invariants after a series of insertions +#[derive(Debug)] +pub struct ChannelPathsInsertGuard<'a> { + channels_ordered: &'a mut Vec, + channels_by_id: &'a mut BTreeMap>, +} + +impl<'a> ChannelPathsInsertGuard<'a> { + pub fn note_changed(&mut self, channel_id: ChannelId, epoch: u64, version: &clock::Global) { + insert_note_changed(&mut self.channels_by_id, channel_id, epoch, &version); + } + + pub fn new_messages(&mut self, channel_id: ChannelId, message_id: u64) { + insert_new_message(&mut self.channels_by_id, channel_id, message_id) + } + + pub fn insert(&mut self, channel_proto: proto::Channel) -> bool { + let mut ret = false; + if let Some(existing_channel) = self.channels_by_id.get_mut(&channel_proto.id) { + let existing_channel = Arc::make_mut(existing_channel); + + ret = existing_channel.visibility != channel_proto.visibility() + || existing_channel.role != channel_proto.role() + || existing_channel.name != channel_proto.name; + + existing_channel.visibility = channel_proto.visibility(); + existing_channel.role = channel_proto.role(); + existing_channel.name = channel_proto.name; + } else { + self.channels_by_id.insert( + channel_proto.id, + Arc::new(Channel { + id: channel_proto.id, + visibility: channel_proto.visibility(), + role: channel_proto.role(), + name: channel_proto.name, + unseen_note_version: None, + unseen_message_id: None, + parent_path: channel_proto.parent_path, + }), + ); + self.insert_root(channel_proto.id); + } + ret + } + + fn insert_root(&mut self, channel_id: ChannelId) { + self.channels_ordered.push(channel_id); + } +} + +impl<'a> Drop for ChannelPathsInsertGuard<'a> { + fn drop(&mut self) { + self.channels_ordered.sort_by(|a, b| { + let a = channel_path_sorting_key(*a, &self.channels_by_id); + let b = channel_path_sorting_key(*b, &self.channels_by_id); + a.cmp(b) + }); + self.channels_ordered.dedup(); + } +} + +fn channel_path_sorting_key<'a>( + id: ChannelId, + channels_by_id: &'a BTreeMap>, +) -> impl Iterator { + let (parent_path, name) = channels_by_id + .get(&id) + .map_or((&[] as &[_], None), |channel| { + (channel.parent_path.as_slice(), Some(channel.name.as_str())) + }); + parent_path + .iter() + .filter_map(|id| Some(channels_by_id.get(id)?.name.as_str())) + .chain(name) +} + +fn insert_note_changed( + channels_by_id: &mut BTreeMap>, + channel_id: u64, + epoch: u64, + version: &clock::Global, +) { + if let Some(channel) = channels_by_id.get_mut(&channel_id) { + let unseen_version = Arc::make_mut(channel) + .unseen_note_version + .get_or_insert((0, clock::Global::new())); + if epoch > unseen_version.0 { + *unseen_version = (epoch, version.clone()); + } else { + unseen_version.1.join(&version); + } + } +} + +fn insert_new_message( + channels_by_id: &mut BTreeMap>, + channel_id: u64, + message_id: u64, +) { + if let Some(channel) = channels_by_id.get_mut(&channel_id) { + let unseen_message_id = Arc::make_mut(channel).unseen_message_id.get_or_insert(0); + *unseen_message_id = message_id.max(*unseen_message_id); + } +} diff --git a/crates/channel2/src/channel_store_tests.rs b/crates/channel2/src/channel_store_tests.rs new file mode 100644 index 0000000000000000000000000000000000000000..e193917b76ea6db80554fe10d82364492fe8cc7c --- /dev/null +++ b/crates/channel2/src/channel_store_tests.rs @@ -0,0 +1,380 @@ +use crate::channel_chat::ChannelChatEvent; + +use super::*; +use client::{test::FakeServer, Client, UserStore}; +use gpui::{AppContext, Context, Model, TestAppContext}; +use rpc::proto::{self}; +use settings::SettingsStore; +use util::http::FakeHttpClient; + +#[gpui::test] +fn test_update_channels(cx: &mut AppContext) { + let channel_store = init_test(cx); + + update_channels( + &channel_store, + proto::UpdateChannels { + channels: vec![ + proto::Channel { + id: 1, + name: "b".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: Vec::new(), + }, + proto::Channel { + id: 2, + name: "a".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Member.into(), + parent_path: Vec::new(), + }, + ], + ..Default::default() + }, + cx, + ); + assert_channels( + &channel_store, + &[ + // + (0, "a".to_string(), proto::ChannelRole::Member), + (0, "b".to_string(), proto::ChannelRole::Admin), + ], + cx, + ); + + update_channels( + &channel_store, + proto::UpdateChannels { + channels: vec![ + proto::Channel { + id: 3, + name: "x".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![1], + }, + proto::Channel { + id: 4, + name: "y".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Member.into(), + parent_path: vec![2], + }, + ], + ..Default::default() + }, + cx, + ); + assert_channels( + &channel_store, + &[ + (0, "a".to_string(), proto::ChannelRole::Member), + (1, "y".to_string(), proto::ChannelRole::Member), + (0, "b".to_string(), proto::ChannelRole::Admin), + (1, "x".to_string(), proto::ChannelRole::Admin), + ], + cx, + ); +} + +#[gpui::test] +fn test_dangling_channel_paths(cx: &mut AppContext) { + let channel_store = init_test(cx); + + update_channels( + &channel_store, + proto::UpdateChannels { + channels: vec![ + proto::Channel { + id: 0, + name: "a".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![], + }, + proto::Channel { + id: 1, + name: "b".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![0], + }, + proto::Channel { + id: 2, + name: "c".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![0, 1], + }, + ], + ..Default::default() + }, + cx, + ); + // Sanity check + assert_channels( + &channel_store, + &[ + // + (0, "a".to_string(), proto::ChannelRole::Admin), + (1, "b".to_string(), proto::ChannelRole::Admin), + (2, "c".to_string(), proto::ChannelRole::Admin), + ], + cx, + ); + + update_channels( + &channel_store, + proto::UpdateChannels { + delete_channels: vec![1, 2], + ..Default::default() + }, + cx, + ); + + // Make sure that the 1/2/3 path is gone + assert_channels( + &channel_store, + &[(0, "a".to_string(), proto::ChannelRole::Admin)], + cx, + ); +} + +#[gpui::test] +async fn test_channel_messages(cx: &mut TestAppContext) { + let user_id = 5; + let channel_id = 5; + let channel_store = cx.update(init_test); + let client = channel_store.update(cx, |s, _| s.client()); + let server = FakeServer::for_client(user_id, &client, cx).await; + + // Get the available channels. + server.send(proto::UpdateChannels { + channels: vec![proto::Channel { + id: channel_id, + name: "the-channel".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Member.into(), + parent_path: vec![], + }], + ..Default::default() + }); + cx.executor().run_until_parked(); + cx.update(|cx| { + assert_channels( + &channel_store, + &[(0, "the-channel".to_string(), proto::ChannelRole::Member)], + cx, + ); + }); + + let get_users = server.receive::().await.unwrap(); + assert_eq!(get_users.payload.user_ids, vec![5]); + server.respond( + get_users.receipt(), + proto::UsersResponse { + users: vec![proto::User { + id: 5, + github_login: "nathansobo".into(), + avatar_url: "http://avatar.com/nathansobo".into(), + }], + }, + ); + + // Join a channel and populate its existing messages. + let channel = channel_store.update(cx, |store, cx| { + let channel_id = store.ordered_channels().next().unwrap().1.id; + store.open_channel_chat(channel_id, cx) + }); + let join_channel = server.receive::().await.unwrap(); + server.respond( + join_channel.receipt(), + proto::JoinChannelChatResponse { + messages: vec![ + proto::ChannelMessage { + id: 10, + body: "a".into(), + timestamp: 1000, + sender_id: 5, + mentions: vec![], + nonce: Some(1.into()), + }, + proto::ChannelMessage { + id: 11, + body: "b".into(), + timestamp: 1001, + sender_id: 6, + mentions: vec![], + nonce: Some(2.into()), + }, + ], + done: false, + }, + ); + + cx.executor().start_waiting(); + + // Client requests all users for the received messages + let mut get_users = server.receive::().await.unwrap(); + get_users.payload.user_ids.sort(); + assert_eq!(get_users.payload.user_ids, vec![6]); + server.respond( + get_users.receipt(), + proto::UsersResponse { + users: vec![proto::User { + id: 6, + github_login: "maxbrunsfeld".into(), + avatar_url: "http://avatar.com/maxbrunsfeld".into(), + }], + }, + ); + + let channel = channel.await.unwrap(); + channel.update(cx, |channel, _| { + assert_eq!( + channel + .messages_in_range(0..2) + .map(|message| (message.sender.github_login.clone(), message.body.clone())) + .collect::>(), + &[ + ("nathansobo".into(), "a".into()), + ("maxbrunsfeld".into(), "b".into()) + ] + ); + }); + + // Receive a new message. + server.send(proto::ChannelMessageSent { + channel_id, + message: Some(proto::ChannelMessage { + id: 12, + body: "c".into(), + timestamp: 1002, + sender_id: 7, + mentions: vec![], + nonce: Some(3.into()), + }), + }); + + // Client requests user for message since they haven't seen them yet + let get_users = server.receive::().await.unwrap(); + assert_eq!(get_users.payload.user_ids, vec![7]); + server.respond( + get_users.receipt(), + proto::UsersResponse { + users: vec![proto::User { + id: 7, + github_login: "as-cii".into(), + avatar_url: "http://avatar.com/as-cii".into(), + }], + }, + ); + + assert_eq!( + channel.next_event(cx), + ChannelChatEvent::MessagesUpdated { + old_range: 2..2, + new_count: 1, + } + ); + channel.update(cx, |channel, _| { + assert_eq!( + channel + .messages_in_range(2..3) + .map(|message| (message.sender.github_login.clone(), message.body.clone())) + .collect::>(), + &[("as-cii".into(), "c".into())] + ) + }); + + // Scroll up to view older messages. + channel.update(cx, |channel, cx| { + channel.load_more_messages(cx).unwrap().detach(); + }); + let get_messages = server.receive::().await.unwrap(); + assert_eq!(get_messages.payload.channel_id, 5); + assert_eq!(get_messages.payload.before_message_id, 10); + server.respond( + get_messages.receipt(), + proto::GetChannelMessagesResponse { + done: true, + messages: vec![ + proto::ChannelMessage { + id: 8, + body: "y".into(), + timestamp: 998, + sender_id: 5, + nonce: Some(4.into()), + mentions: vec![], + }, + proto::ChannelMessage { + id: 9, + body: "z".into(), + timestamp: 999, + sender_id: 6, + nonce: Some(5.into()), + mentions: vec![], + }, + ], + }, + ); + + assert_eq!( + channel.next_event(cx), + ChannelChatEvent::MessagesUpdated { + old_range: 0..0, + new_count: 2, + } + ); + channel.update(cx, |channel, _| { + assert_eq!( + channel + .messages_in_range(0..2) + .map(|message| (message.sender.github_login.clone(), message.body.clone())) + .collect::>(), + &[ + ("nathansobo".into(), "y".into()), + ("maxbrunsfeld".into(), "z".into()) + ] + ); + }); +} + +fn init_test(cx: &mut AppContext) -> Model { + let http = FakeHttpClient::with_404_response(); + let client = Client::new(http.clone(), cx); + let user_store = cx.build_model(|cx| UserStore::new(client.clone(), http, cx)); + + let settings_store = SettingsStore::test(cx); + cx.set_global(settings_store); + client::init(&client, cx); + crate::init(&client, user_store, cx); + + ChannelStore::global(cx) +} + +fn update_channels( + channel_store: &Model, + message: proto::UpdateChannels, + cx: &mut AppContext, +) { + let task = channel_store.update(cx, |store, cx| store.update_channels(message, cx)); + assert!(task.is_none()); +} + +#[track_caller] +fn assert_channels( + channel_store: &Model, + expected_channels: &[(usize, String, proto::ChannelRole)], + cx: &mut AppContext, +) { + let actual = channel_store.update(cx, |store, _| { + store + .ordered_channels() + .map(|(depth, channel)| (depth, channel.name.to_string(), channel.role)) + .collect::>() + }); + assert_eq!(actual, expected_channels); +} diff --git a/crates/client2/src/user.rs b/crates/client2/src/user.rs index baf3a19dadb8b9b3a978e3aac8ba859f80209de0..8ff134e6b7f83ea56eab218754b22ba91c9c028c 100644 --- a/crates/client2/src/user.rs +++ b/crates/client2/src/user.rs @@ -292,22 +292,18 @@ impl UserStore { .upgrade() .ok_or_else(|| anyhow!("can't upgrade user store handle"))?; for contact in message.contacts { - let should_notify = contact.should_notify; - updated_contacts.push(( - Arc::new(Contact::from_proto(contact, &this, &mut cx).await?), - should_notify, + updated_contacts.push(Arc::new( + Contact::from_proto(contact, &this, &mut cx).await?, )); } let mut incoming_requests = Vec::new(); for request in message.incoming_requests { incoming_requests.push({ - let user = this - .update(&mut cx, |this, cx| { - this.get_user(request.requester_id, cx) - })? - .await?; - (user, request.should_notify) + this.update(&mut cx, |this, cx| { + this.get_user(request.requester_id, cx) + })? + .await? }); } @@ -331,13 +327,7 @@ impl UserStore { this.contacts .retain(|contact| !removed_contacts.contains(&contact.user.id)); // Update existing contacts and insert new ones - for (updated_contact, should_notify) in updated_contacts { - if should_notify { - cx.emit(Event::Contact { - user: updated_contact.user.clone(), - kind: ContactEventKind::Accepted, - }); - } + for updated_contact in updated_contacts { match this.contacts.binary_search_by_key( &&updated_contact.user.github_login, |contact| &contact.user.github_login, @@ -360,14 +350,7 @@ impl UserStore { } }); // Update existing incoming requests and insert new ones - for (user, should_notify) in incoming_requests { - if should_notify { - cx.emit(Event::Contact { - user: user.clone(), - kind: ContactEventKind::Requested, - }); - } - + for user in incoming_requests { match this .incoming_contact_requests .binary_search_by_key(&&user.github_login, |contact| { diff --git a/crates/collab_ui/src/channel_view.rs b/crates/collab_ui/src/channel_view.rs index 1bdcebd01855e00948505fa48011ccccde7565f7..fe46f3bb3e5dfc40720ca45c2873c17c9db7cd7a 100644 --- a/crates/collab_ui/src/channel_view.rs +++ b/crates/collab_ui/src/channel_view.rs @@ -75,23 +75,23 @@ impl ChannelView { let workspace = workspace.read(cx); let project = workspace.project().to_owned(); let channel_store = ChannelStore::global(cx); - let markdown = workspace - .app_state() - .languages - .language_for_name("Markdown"); + let language_registry = workspace.app_state().languages.clone(); + let markdown = language_registry.language_for_name("Markdown"); let channel_buffer = channel_store.update(cx, |store, cx| store.open_channel_buffer(channel_id, cx)); cx.spawn(|mut cx| async move { let channel_buffer = channel_buffer.await?; + let markdown = markdown.await.log_err(); - if let Some(markdown) = markdown.await.log_err() { - channel_buffer.update(&mut cx, |buffer, cx| { - buffer.buffer().update(cx, |buffer, cx| { + channel_buffer.update(&mut cx, |buffer, cx| { + buffer.buffer().update(cx, |buffer, cx| { + buffer.set_language_registry(language_registry); + if let Some(markdown) = markdown { buffer.set_language(Some(markdown), cx); - }) - }); - } + } + }) + }); pane.update(&mut cx, |pane, cx| { let buffer_id = channel_buffer.read(cx).remote_id(cx); diff --git a/crates/diagnostics/Cargo.toml b/crates/diagnostics/Cargo.toml index b0b2450f053fb9c8925b4bfe0131af24d5d24fa7..0f9d108831b76a370dd1af25d93a533a1dfa46f8 100644 --- a/crates/diagnostics/Cargo.toml +++ b/crates/diagnostics/Cargo.toml @@ -20,7 +20,9 @@ theme = { path = "../theme" } util = { path = "../util" } workspace = { path = "../workspace" } +log.workspace = true anyhow.workspace = true +futures.workspace = true schemars.workspace = true serde.workspace = true serde_derive.workspace = true diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 0b1c6f8470369cbe18538e15b362258756d1aaeb..e794771434a0981fe5af2efa1ae19d9db7b0f523 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -2,8 +2,8 @@ pub mod items; mod project_diagnostics_settings; mod toolbar_controls; -use anyhow::Result; -use collections::{BTreeSet, HashSet}; +use anyhow::{Context, Result}; +use collections::{HashMap, HashSet}; use editor::{ diagnostic_block_renderer, display_map::{BlockDisposition, BlockId, BlockProperties, BlockStyle, RenderBlock}, @@ -11,9 +11,10 @@ use editor::{ scroll::autoscroll::Autoscroll, Editor, ExcerptId, ExcerptRange, MultiBuffer, ToOffset, }; +use futures::future::try_join_all; use gpui::{ actions, elements::*, fonts::TextStyle, serde_json, AnyViewHandle, AppContext, Entity, - ModelHandle, Task, View, ViewContext, ViewHandle, WeakViewHandle, + ModelHandle, Subscription, Task, View, ViewContext, ViewHandle, WeakViewHandle, }; use language::{ Anchor, Bias, Buffer, Diagnostic, DiagnosticEntry, DiagnosticSeverity, Point, Selection, @@ -28,6 +29,7 @@ use std::{ any::{Any, TypeId}, borrow::Cow, cmp::Ordering, + mem, ops::Range, path::PathBuf, sync::Arc, @@ -60,8 +62,10 @@ struct ProjectDiagnosticsEditor { summary: DiagnosticSummary, excerpts: ModelHandle, path_states: Vec, - paths_to_update: BTreeSet<(ProjectPath, LanguageServerId)>, + paths_to_update: HashMap>, + current_diagnostics: HashMap>, include_warnings: bool, + _subscriptions: Vec, } struct PathState { @@ -125,9 +129,12 @@ impl View for ProjectDiagnosticsEditor { "summary": project.diagnostic_summary(cx), }), "summary": self.summary, - "paths_to_update": self.paths_to_update.iter().map(|(path, server_id)| - (path.path.to_string_lossy(), server_id.0) - ).collect::>(), + "paths_to_update": self.paths_to_update.iter().map(|(server_id, paths)| + (server_id.0, paths.into_iter().map(|path| path.path.to_string_lossy()).collect::>()) + ).collect::>(), + "current_diagnostics": self.current_diagnostics.iter().map(|(server_id, paths)| + (server_id.0, paths.into_iter().map(|path| path.path.to_string_lossy()).collect::>()) + ).collect::>(), "paths_states": self.path_states.iter().map(|state| json!({ "path": state.path.path.to_string_lossy(), @@ -149,21 +156,30 @@ impl ProjectDiagnosticsEditor { workspace: WeakViewHandle, cx: &mut ViewContext, ) -> Self { - cx.subscribe(&project_handle, |this, _, event, cx| match event { - project::Event::DiskBasedDiagnosticsFinished { language_server_id } => { - this.update_excerpts(Some(*language_server_id), cx); - this.update_title(cx); - } - project::Event::DiagnosticsUpdated { - language_server_id, - path, - } => { - this.paths_to_update - .insert((path.clone(), *language_server_id)); - } - _ => {} - }) - .detach(); + let project_event_subscription = + cx.subscribe(&project_handle, |this, _, event, cx| match event { + project::Event::DiskBasedDiagnosticsFinished { language_server_id } => { + log::debug!("Disk based diagnostics finished for server {language_server_id}"); + this.update_excerpts(Some(*language_server_id), cx); + } + project::Event::DiagnosticsUpdated { + language_server_id, + path, + } => { + log::debug!("Adding path {path:?} to update for server {language_server_id}"); + this.paths_to_update + .entry(*language_server_id) + .or_default() + .insert(path.clone()); + let no_multiselections = this.editor.update(cx, |editor, cx| { + editor.selections.all::(cx).len() <= 1 + }); + if no_multiselections && !this.is_dirty(cx) { + this.update_excerpts(Some(*language_server_id), cx); + } + } + _ => {} + }); let excerpts = cx.add_model(|cx| MultiBuffer::new(project_handle.read(cx).replica_id())); let editor = cx.add_view(|cx| { @@ -172,19 +188,14 @@ impl ProjectDiagnosticsEditor { editor.set_vertical_scroll_margin(5, cx); editor }); - cx.subscribe(&editor, |this, _, event, cx| { + let editor_event_subscription = cx.subscribe(&editor, |this, _, event, cx| { cx.emit(event.clone()); if event == &editor::Event::Focused && this.path_states.is_empty() { cx.focus_self() } - }) - .detach(); + }); let project = project_handle.read(cx); - let paths_to_update = project - .diagnostic_summaries(cx) - .map(|(path, server_id, _)| (path, server_id)) - .collect(); let summary = project.diagnostic_summary(cx); let mut this = Self { project: project_handle, @@ -193,8 +204,10 @@ impl ProjectDiagnosticsEditor { excerpts, editor, path_states: Default::default(), - paths_to_update, + paths_to_update: HashMap::default(), include_warnings: settings::get::(cx).include_warnings, + current_diagnostics: HashMap::default(), + _subscriptions: vec![project_event_subscription, editor_event_subscription], }; this.update_excerpts(None, cx); this @@ -214,12 +227,7 @@ impl ProjectDiagnosticsEditor { fn toggle_warnings(&mut self, _: &ToggleWarnings, cx: &mut ViewContext) { self.include_warnings = !self.include_warnings; - self.paths_to_update = self - .project - .read(cx) - .diagnostic_summaries(cx) - .map(|(path, server_id, _)| (path, server_id)) - .collect(); + self.paths_to_update = self.current_diagnostics.clone(); self.update_excerpts(None, cx); cx.notify(); } @@ -229,29 +237,94 @@ impl ProjectDiagnosticsEditor { language_server_id: Option, cx: &mut ViewContext, ) { - let mut paths = Vec::new(); - self.paths_to_update.retain(|(path, server_id)| { - if language_server_id - .map_or(true, |language_server_id| language_server_id == *server_id) - { - paths.push(path.clone()); - false + log::debug!("Updating excerpts for server {language_server_id:?}"); + let mut paths_to_recheck = HashSet::default(); + let mut new_summaries: HashMap> = self + .project + .read(cx) + .diagnostic_summaries(cx) + .fold(HashMap::default(), |mut summaries, (path, server_id, _)| { + summaries.entry(server_id).or_default().insert(path); + summaries + }); + let mut old_diagnostics = if let Some(language_server_id) = language_server_id { + new_summaries.retain(|server_id, _| server_id == &language_server_id); + self.paths_to_update.retain(|server_id, paths| { + if server_id == &language_server_id { + paths_to_recheck.extend(paths.drain()); + false + } else { + true + } + }); + let mut old_diagnostics = HashMap::default(); + if let Some(new_paths) = new_summaries.get(&language_server_id) { + if let Some(old_paths) = self + .current_diagnostics + .insert(language_server_id, new_paths.clone()) + { + old_diagnostics.insert(language_server_id, old_paths); + } } else { - true + if let Some(old_paths) = self.current_diagnostics.remove(&language_server_id) { + old_diagnostics.insert(language_server_id, old_paths); + } } - }); + old_diagnostics + } else { + paths_to_recheck.extend(self.paths_to_update.drain().flat_map(|(_, paths)| paths)); + mem::replace(&mut self.current_diagnostics, new_summaries.clone()) + }; + for (server_id, new_paths) in new_summaries { + match old_diagnostics.remove(&server_id) { + Some(mut old_paths) => { + paths_to_recheck.extend( + new_paths + .into_iter() + .filter(|new_path| !old_paths.remove(new_path)), + ); + paths_to_recheck.extend(old_paths); + } + None => paths_to_recheck.extend(new_paths), + } + } + paths_to_recheck.extend(old_diagnostics.into_iter().flat_map(|(_, paths)| paths)); + + if paths_to_recheck.is_empty() { + log::debug!("No paths to recheck for language server {language_server_id:?}"); + return; + } + log::debug!( + "Rechecking {} paths for language server {:?}", + paths_to_recheck.len(), + language_server_id + ); let project = self.project.clone(); cx.spawn(|this, mut cx| { async move { - for path in paths { - let buffer = project - .update(&mut cx, |project, cx| project.open_buffer(path.clone(), cx)) - .await?; - this.update(&mut cx, |this, cx| { - this.populate_excerpts(path, language_server_id, buffer, cx) - })?; - } - Result::<_, anyhow::Error>::Ok(()) + let _: Vec<()> = try_join_all(paths_to_recheck.into_iter().map(|path| { + let mut cx = cx.clone(); + let project = project.clone(); + async move { + let buffer = project + .update(&mut cx, |project, cx| project.open_buffer(path.clone(), cx)) + .await + .with_context(|| format!("opening buffer for path {path:?}"))?; + this.update(&mut cx, |this, cx| { + this.populate_excerpts(path, language_server_id, buffer, cx); + }) + .context("missing project")?; + anyhow::Ok(()) + } + })) + .await + .context("rechecking diagnostics for paths")?; + + this.update(&mut cx, |this, cx| { + this.summary = this.project.read(cx).diagnostic_summary(cx); + cx.emit(Event::TitleChanged); + })?; + anyhow::Ok(()) } .log_err() }) @@ -554,11 +627,6 @@ impl ProjectDiagnosticsEditor { } cx.notify(); } - - fn update_title(&mut self, cx: &mut ViewContext) { - self.summary = self.project.read(cx).diagnostic_summary(cx); - cx.emit(Event::TitleChanged); - } } impl Item for ProjectDiagnosticsEditor { @@ -1301,25 +1369,6 @@ mod tests { cx, ) .unwrap(); - project - .update_diagnostic_entries( - server_id_2, - PathBuf::from("/test/main.js"), - None, - vec![DiagnosticEntry { - range: Unclipped(PointUtf16::new(1, 0))..Unclipped(PointUtf16::new(1, 1)), - diagnostic: Diagnostic { - message: "warning 1".to_string(), - severity: DiagnosticSeverity::ERROR, - is_primary: true, - is_disk_based: true, - group_id: 2, - ..Default::default() - }, - }], - cx, - ) - .unwrap(); }); // The first language server finishes @@ -1353,6 +1402,25 @@ mod tests { // The second language server finishes project.update(cx, |project, cx| { + project + .update_diagnostic_entries( + server_id_2, + PathBuf::from("/test/main.js"), + None, + vec![DiagnosticEntry { + range: Unclipped(PointUtf16::new(1, 0))..Unclipped(PointUtf16::new(1, 1)), + diagnostic: Diagnostic { + message: "warning 1".to_string(), + severity: DiagnosticSeverity::ERROR, + is_primary: true, + is_disk_based: true, + group_id: 2, + ..Default::default() + }, + }], + cx, + ) + .unwrap(); project.disk_based_diagnostics_finished(server_id_2, cx); }); diff --git a/crates/editor/src/items.rs b/crates/editor/src/items.rs index c87606070e5660c90a7e53962098b4da923a2f1e..1b922848e061b8b162fc5c1f25babf5c3ce96c0e 100644 --- a/crates/editor/src/items.rs +++ b/crates/editor/src/items.rs @@ -33,9 +33,9 @@ use util::{ paths::{PathExt, FILE_ROW_COLUMN_DELIMITER}, ResultExt, TryFutureExt, }; -use workspace::item::{BreadcrumbText, FollowableItemHandle}; +use workspace::item::{BreadcrumbText, FollowableItemHandle, ItemHandle}; use workspace::{ - item::{FollowableItem, Item, ItemEvent, ItemHandle, ProjectItem}, + item::{FollowableItem, Item, ItemEvent, ProjectItem}, searchable::{Direction, SearchEvent, SearchableItem, SearchableItemHandle}, ItemId, ItemNavHistory, Pane, StatusItemView, ToolbarItemLocation, ViewId, Workspace, WorkspaceId, diff --git a/crates/editor2/src/display_map.rs b/crates/editor2/src/display_map.rs index abf8dcfb95deacac4e7534219693737e3842f80f..51f5b0a192b6a2bd96468bd496db93efbe0cfe3b 100644 --- a/crates/editor2/src/display_map.rs +++ b/crates/editor2/src/display_map.rs @@ -510,8 +510,8 @@ impl DisplaySnapshot { self.chunks( display_rows, language_aware, - Some(theme.styles.inlay_highlight_style), - Some(theme.styles.suggestion_highlight_style), + None, // todo!("add inlay highlight style") + None, // todo!("add suggestion highlight style") ) .map(|chunk| { let mut highlight_style = chunk diff --git a/crates/editor2/src/editor.rs b/crates/editor2/src/editor.rs index 0790641b496676a027dca9cb1947c70cde8d0215..88df58c50f704b7fd6663e9888a75312017e57e6 100644 --- a/crates/editor2/src/editor.rs +++ b/crates/editor2/src/editor.rs @@ -9335,7 +9335,7 @@ impl Render for Editor { underline: None, }; EditorElement::new(EditorStyle { - background: cx.theme().colors().editor, + background: cx.theme().colors().editor_background, local_player: cx.theme().players().local(), text: text_style, line_height_scalar: settings.buffer_line_height.value(), diff --git a/crates/editor2/src/element.rs b/crates/editor2/src/element.rs index e1fea4a8e5b3a054c9bb7e9b2655b7a864f3d045..b84aedd76a1d8d68f7431304d17444b68b935f77 100644 --- a/crates/editor2/src/element.rs +++ b/crates/editor2/src/element.rs @@ -508,7 +508,7 @@ impl EditorElement { let bounds = gutter_bounds.union(&text_bounds); let scroll_top = layout.position_map.snapshot.scroll_position().y * layout.position_map.line_height; - let gutter_bg = cx.theme().colors().editor_gutter; + let gutter_bg = cx.theme().colors().editor_gutter_background; cx.paint_quad( gutter_bounds, Corners::default(), @@ -545,7 +545,7 @@ impl EditorElement { bounds.size.width, layout.position_map.line_height * (end_row - start_row + 1) as f32, ); - let active_line_bg = cx.theme().colors().editor_active_line; + let active_line_bg = cx.theme().colors().editor_active_line_background; cx.paint_quad( Bounds { origin, size }, Corners::default(), @@ -567,7 +567,7 @@ impl EditorElement { bounds.size.width, layout.position_map.line_height * highlighted_rows.len() as f32, ); - let highlighted_line_bg = cx.theme().colors().editor_highlighted_line; + let highlighted_line_bg = cx.theme().colors().editor_highlighted_line_background; cx.paint_quad( Bounds { origin, size }, Corners::default(), diff --git a/crates/gpui2/build.rs b/crates/gpui2/build.rs index c9abfaa6bb5e79ad07d77b1855c9414c2b0b5b05..6e8a0868b969c7a85627fd974f0f1bde793eb587 100644 --- a/crates/gpui2/build.rs +++ b/crates/gpui2/build.rs @@ -20,6 +20,7 @@ fn generate_dispatch_bindings() { .header("src/platform/mac/dispatch.h") .allowlist_var("_dispatch_main_q") .allowlist_var("DISPATCH_QUEUE_PRIORITY_DEFAULT") + .allowlist_var("DISPATCH_TIME_NOW") .allowlist_function("dispatch_get_global_queue") .allowlist_function("dispatch_async_f") .allowlist_function("dispatch_after_f") diff --git a/crates/gpui2/src/app.rs b/crates/gpui2/src/app.rs index 9ec76a86d4e7bd0726cc1a38f98a942728c7e43d..9afffeb685a8c38ecd8a0aaf075ce6a2c4fbdf5e 100644 --- a/crates/gpui2/src/app.rs +++ b/crates/gpui2/src/app.rs @@ -46,13 +46,17 @@ pub struct AppCell { } impl AppCell { + #[track_caller] pub fn borrow(&self) -> AppRef { + let thread_id = std::thread::current().id(); + eprintln!("borrowed {thread_id:?}"); AppRef(self.app.borrow()) } + #[track_caller] pub fn borrow_mut(&self) -> AppRefMut { - // let thread_id = std::thread::current().id(); - // dbg!("borrowed {thread_id:?}"); + let thread_id = std::thread::current().id(); + eprintln!("borrowed {thread_id:?}"); AppRefMut(self.app.borrow_mut()) } } @@ -157,6 +161,7 @@ pub struct AppContext { flushing_effects: bool, pending_updates: usize, pub(crate) active_drag: Option, + pub(crate) active_tooltip: Option, pub(crate) next_frame_callbacks: HashMap>, pub(crate) frame_consumers: HashMap>, pub(crate) background_executor: BackgroundExecutor, @@ -215,6 +220,7 @@ impl AppContext { flushing_effects: false, pending_updates: 0, active_drag: None, + active_tooltip: None, next_frame_callbacks: HashMap::default(), frame_consumers: HashMap::default(), background_executor: executor, @@ -896,3 +902,9 @@ pub(crate) struct AnyDrag { pub view: AnyView, pub cursor_offset: Point, } + +#[derive(Clone)] +pub(crate) struct AnyTooltip { + pub view: AnyView, + pub cursor_offset: Point, +} diff --git a/crates/gpui2/src/app/test_context.rs b/crates/gpui2/src/app/test_context.rs index e731dccc6eacd30444750950251bff7ec09dc02b..856fce75b44541eb690f9cf1bad603ca7fe678c7 100644 --- a/crates/gpui2/src/app/test_context.rs +++ b/crates/gpui2/src/app/test_context.rs @@ -189,3 +189,22 @@ impl TestAppContext { .unwrap(); } } + +impl Model { + pub fn next_event(&self, cx: &mut TestAppContext) -> T::Event + where + T::Event: Send + Clone, + { + let (tx, mut rx) = futures::channel::mpsc::unbounded(); + let _subscription = self.update(cx, |_, cx| { + cx.subscribe(self, move |_, _, event, _| { + tx.unbounded_send(event.clone()).ok(); + }) + }); + + cx.executor().run_until_parked(); + rx.try_next() + .expect("no event received") + .expect("model was dropped") + } +} diff --git a/crates/gpui2/src/element.rs b/crates/gpui2/src/element.rs index a92dbd6ff94a98165f5b200bc4eadedb2471bf5a..2a0f557272f4899eb21f2bbb3123a08045a56158 100644 --- a/crates/gpui2/src/element.rs +++ b/crates/gpui2/src/element.rs @@ -212,6 +212,19 @@ pub trait Component { { self.map(|this| if condition { then(this) } else { this }) } + + fn when_some(self, option: Option, then: impl FnOnce(Self, T) -> Self) -> Self + where + Self: Sized, + { + self.map(|this| { + if let Some(value) = option { + then(this, value) + } else { + this + } + }) + } } impl Component for AnyElement { diff --git a/crates/gpui2/src/elements/div.rs b/crates/gpui2/src/elements/div.rs index 56940efce4a0982c4255b613f682137ed3ce1582..e011041bae2259f8a290ef098b061740721f4307 100644 --- a/crates/gpui2/src/elements/div.rs +++ b/crates/gpui2/src/elements/div.rs @@ -3,7 +3,7 @@ use crate::{ ElementInteraction, FocusDisabled, FocusEnabled, FocusHandle, FocusListeners, Focusable, GlobalElementId, GroupBounds, InteractiveElementState, LayoutId, Overflow, ParentElement, Pixels, Point, SharedString, StatefulInteraction, StatefulInteractive, StatelessInteraction, - StatelessInteractive, Style, StyleRefinement, Styled, ViewContext, + StatelessInteractive, Style, StyleRefinement, Styled, ViewContext, Visibility, }; use refineable::Refineable; use smallvec::SmallVec; @@ -249,11 +249,22 @@ where cx: &mut ViewContext, ) { self.with_element_id(cx, |this, _global_id, cx| { + let style = this.compute_style(bounds, element_state, cx); + if style.visibility == Visibility::Hidden { + return; + } + + if let Some(mouse_cursor) = style.mouse_cursor { + let hovered = bounds.contains_point(&cx.mouse_position()); + if hovered { + cx.set_cursor_style(mouse_cursor); + } + } + if let Some(group) = this.group.clone() { GroupBounds::push(group, bounds, cx); } - let style = this.compute_style(bounds, element_state, cx); let z_index = style.z_index.unwrap_or(0); let mut child_min = point(Pixels::MAX, Pixels::MAX); diff --git a/crates/gpui2/src/geometry.rs b/crates/gpui2/src/geometry.rs index 9b0c77957296f1f83a5ee0acbfff868fcc7de91f..e26e6e2eccf0bbecc3813977cdc60dea35d5a20f 100644 --- a/crates/gpui2/src/geometry.rs +++ b/crates/gpui2/src/geometry.rs @@ -21,7 +21,7 @@ pub fn point(x: T, y: T) -> Point { } impl Point { - pub fn new(x: T, y: T) -> Self { + pub const fn new(x: T, y: T) -> Self { Self { x, y } } diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index 020cb82cd2a26bf7a011b44db7dd78711c386024..da208b38131f8ddd0e297c47bc504065af232d15 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -1,8 +1,8 @@ use crate::{ - div, point, px, Action, AnyDrag, AnyView, AppContext, BorrowWindow, Bounds, Component, - DispatchContext, DispatchPhase, Div, Element, ElementId, FocusHandle, KeyMatch, Keystroke, - Modifiers, Overflow, Pixels, Point, Render, SharedString, Size, Style, StyleRefinement, View, - ViewContext, + div, point, px, Action, AnyDrag, AnyTooltip, AnyView, AppContext, BorrowWindow, Bounds, + Component, DispatchContext, DispatchPhase, Div, Element, ElementId, FocusHandle, KeyMatch, + Keystroke, Modifiers, Overflow, Pixels, Point, Render, SharedString, Size, Style, + StyleRefinement, Task, View, ViewContext, }; use collections::HashMap; use derive_more::{Deref, DerefMut}; @@ -17,9 +17,12 @@ use std::{ ops::Deref, path::PathBuf, sync::Arc, + time::Duration, }; const DRAG_THRESHOLD: f64 = 2.; +const TOOLTIP_DELAY: Duration = Duration::from_millis(500); +const TOOLTIP_OFFSET: Point = Point::new(px(10.0), px(8.0)); pub trait StatelessInteractive: Element { fn stateless_interaction(&mut self) -> &mut StatelessInteraction; @@ -333,6 +336,37 @@ pub trait StatefulInteractive: StatelessInteractive { })); self } + + fn on_hover(mut self, listener: impl 'static + Fn(&mut V, bool, &mut ViewContext)) -> Self + where + Self: Sized, + { + debug_assert!( + self.stateful_interaction().hover_listener.is_none(), + "calling on_hover more than once on the same element is not supported" + ); + self.stateful_interaction().hover_listener = Some(Box::new(listener)); + self + } + + fn tooltip( + mut self, + build_tooltip: impl Fn(&mut V, &mut ViewContext) -> View + 'static, + ) -> Self + where + Self: Sized, + W: 'static + Render, + { + debug_assert!( + self.stateful_interaction().tooltip_builder.is_none(), + "calling tooltip more than once on the same element is not supported" + ); + self.stateful_interaction().tooltip_builder = Some(Arc::new(move |view_state, cx| { + build_tooltip(view_state, cx).into() + })); + + self + } } pub trait ElementInteraction: 'static { @@ -568,6 +602,77 @@ pub trait ElementInteraction: 'static { } } + if let Some(hover_listener) = stateful.hover_listener.take() { + let was_hovered = element_state.hover_state.clone(); + let has_mouse_down = element_state.pending_mouse_down.clone(); + + cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { + if phase != DispatchPhase::Bubble { + return; + } + let is_hovered = + bounds.contains_point(&event.position) && has_mouse_down.lock().is_none(); + let mut was_hovered = was_hovered.lock(); + + if is_hovered != was_hovered.clone() { + *was_hovered = is_hovered; + drop(was_hovered); + + hover_listener(view_state, is_hovered, cx); + } + }); + } + + if let Some(tooltip_builder) = stateful.tooltip_builder.take() { + let active_tooltip = element_state.active_tooltip.clone(); + let pending_mouse_down = element_state.pending_mouse_down.clone(); + + cx.on_mouse_event(move |_, event: &MouseMoveEvent, phase, cx| { + if phase != DispatchPhase::Bubble { + return; + } + + let is_hovered = bounds.contains_point(&event.position) + && pending_mouse_down.lock().is_none(); + if !is_hovered { + active_tooltip.lock().take(); + return; + } + + if active_tooltip.lock().is_none() { + let task = cx.spawn({ + let active_tooltip = active_tooltip.clone(); + let tooltip_builder = tooltip_builder.clone(); + + move |view, mut cx| async move { + cx.background_executor().timer(TOOLTIP_DELAY).await; + view.update(&mut cx, move |view_state, cx| { + active_tooltip.lock().replace(ActiveTooltip { + waiting: None, + tooltip: Some(AnyTooltip { + view: tooltip_builder(view_state, cx), + cursor_offset: cx.mouse_position() + TOOLTIP_OFFSET, + }), + }); + cx.notify(); + }) + .ok(); + } + }); + active_tooltip.lock().replace(ActiveTooltip { + waiting: Some(task), + tooltip: None, + }); + } + }); + + if let Some(active_tooltip) = element_state.active_tooltip.lock().as_ref() { + if active_tooltip.tooltip.is_some() { + cx.active_tooltip = active_tooltip.tooltip.clone() + } + } + } + let active_state = element_state.active_state.clone(); if active_state.lock().is_none() { let active_group_bounds = stateful @@ -639,6 +744,8 @@ pub struct StatefulInteraction { active_style: StyleRefinement, group_active_style: Option, drag_listener: Option>, + hover_listener: Option>, + tooltip_builder: Option>, } impl ElementInteraction for StatefulInteraction { @@ -666,6 +773,8 @@ impl From for StatefulInteraction { stateless: StatelessInteraction::default(), click_listeners: SmallVec::new(), drag_listener: None, + hover_listener: None, + tooltip_builder: None, active_style: StyleRefinement::default(), group_active_style: None, } @@ -695,6 +804,8 @@ impl StatelessInteraction { stateless: self, click_listeners: SmallVec::new(), drag_listener: None, + hover_listener: None, + tooltip_builder: None, active_style: StyleRefinement::default(), group_active_style: None, } @@ -746,8 +857,16 @@ impl ActiveState { #[derive(Default)] pub struct InteractiveElementState { active_state: Arc>, + hover_state: Arc>, pending_mouse_down: Arc>>, scroll_offset: Option>>>, + active_tooltip: Arc>>, +} + +struct ActiveTooltip { + #[allow(unused)] // used to drop the task + waiting: Option>, + tooltip: Option, } impl InteractiveElementState { @@ -1097,6 +1216,10 @@ pub type ClickListener = Box) pub(crate) type DragListener = Box, &mut ViewContext) -> AnyDrag + 'static>; +pub(crate) type HoverListener = Box) + 'static>; + +pub(crate) type TooltipBuilder = Arc) -> AnyView + 'static>; + pub type KeyListener = Box< dyn Fn( &mut V, diff --git a/crates/gpui2/src/platform/mac/dispatcher.rs b/crates/gpui2/src/platform/mac/dispatcher.rs index f5334912c6b7aec93fed2af3c33832ff241313c9..68c0e3b4f53c4040899ac0d344dc1dec095a9bc1 100644 --- a/crates/gpui2/src/platform/mac/dispatcher.rs +++ b/crates/gpui2/src/platform/mac/dispatcher.rs @@ -11,11 +11,7 @@ use objc::{ }; use parking::{Parker, Unparker}; use parking_lot::Mutex; -use std::{ - ffi::c_void, - sync::Arc, - time::{Duration, SystemTime}, -}; +use std::{ffi::c_void, sync::Arc, time::Duration}; include!(concat!(env!("OUT_DIR"), "/dispatch_sys.rs")); @@ -62,16 +58,10 @@ impl PlatformDispatcher for MacDispatcher { } fn dispatch_after(&self, duration: Duration, runnable: Runnable) { - let now = SystemTime::now(); - let after_duration = now - .duration_since(SystemTime::UNIX_EPOCH) - .unwrap() - .as_nanos() as u64 - + duration.as_nanos() as u64; unsafe { let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT.try_into().unwrap(), 0); - let when = dispatch_time(0, after_duration as i64); + let when = dispatch_time(DISPATCH_TIME_NOW as u64, duration.as_nanos() as i64); dispatch_after_f( when, queue, diff --git a/crates/gpui2/src/style.rs b/crates/gpui2/src/style.rs index d6aad7e68e69c82d94fad4d176b9f4fb7f4757fd..551a87624cad716e1073f3bf16366d5a6c705027 100644 --- a/crates/gpui2/src/style.rs +++ b/crates/gpui2/src/style.rs @@ -1,8 +1,8 @@ use crate::{ black, phi, point, rems, AbsoluteLength, BorrowAppContext, BorrowWindow, Bounds, ContentMask, - Corners, CornersRefinement, DefiniteLength, Edges, EdgesRefinement, Font, FontFeatures, - FontStyle, FontWeight, Hsla, Length, Pixels, Point, PointRefinement, Result, Rgba, - SharedString, Size, SizeRefinement, Styled, TextRun, ViewContext, WindowContext, + Corners, CornersRefinement, CursorStyle, DefiniteLength, Edges, EdgesRefinement, Font, + FontFeatures, FontStyle, FontWeight, Hsla, Length, Pixels, Point, PointRefinement, Result, + Rgba, SharedString, Size, SizeRefinement, Styled, TextRun, ViewContext, WindowContext, }; use refineable::{Cascade, Refineable}; use smallvec::SmallVec; @@ -19,6 +19,9 @@ pub struct Style { /// What layout strategy should be used? pub display: Display, + /// Should the element be painted on screen? + pub visibility: Visibility, + // Overflow properties /// How children overflowing their container should affect layout #[refineable] @@ -98,6 +101,9 @@ pub struct Style { /// TEXT pub text: TextStyleRefinement, + /// The mouse cursor style shown when the mouse pointer is over an element. + pub mouse_cursor: Option, + pub z_index: Option, } @@ -107,6 +113,13 @@ impl Styled for StyleRefinement { } } +#[derive(Default, Clone, Copy, Debug, Eq, PartialEq)] +pub enum Visibility { + #[default] + Visible, + Hidden, +} + #[derive(Clone, Debug)] pub struct BoxShadow { pub color: Hsla, @@ -297,6 +310,7 @@ impl Default for Style { fn default() -> Self { Style { display: Display::Block, + visibility: Visibility::Visible, overflow: Point { x: Overflow::Visible, y: Overflow::Visible, @@ -328,6 +342,7 @@ impl Default for Style { corner_radii: Corners::default(), box_shadow: Default::default(), text: TextStyleRefinement::default(), + mouse_cursor: None, z_index: None, } } diff --git a/crates/gpui2/src/styled.rs b/crates/gpui2/src/styled.rs index 746211325acbc8e2e332d318638615cca141ce4d..06be0368c02e88792e409e8675ba9c9c0aebedc8 100644 --- a/crates/gpui2/src/styled.rs +++ b/crates/gpui2/src/styled.rs @@ -1,7 +1,7 @@ use crate::{ - self as gpui2, hsla, point, px, relative, rems, AbsoluteLength, AlignItems, DefiniteLength, - Display, Fill, FlexDirection, Hsla, JustifyContent, Length, Position, SharedString, - StyleRefinement, + self as gpui, hsla, point, px, relative, rems, AbsoluteLength, AlignItems, CursorStyle, + DefiniteLength, Display, Fill, FlexDirection, Hsla, JustifyContent, Length, Position, + SharedString, StyleRefinement, Visibility, }; use crate::{BoxShadow, TextStyleRefinement}; use smallvec::smallvec; @@ -61,6 +61,54 @@ pub trait Styled { self } + /// Sets the visibility of the element to `visible`. + /// [Docs](https://tailwindcss.com/docs/visibility) + fn visible(mut self) -> Self + where + Self: Sized, + { + self.style().visibility = Some(Visibility::Visible); + self + } + + /// Sets the visibility of the element to `hidden`. + /// [Docs](https://tailwindcss.com/docs/visibility) + fn invisible(mut self) -> Self + where + Self: Sized, + { + self.style().visibility = Some(Visibility::Hidden); + self + } + + fn cursor(mut self, cursor: CursorStyle) -> Self + where + Self: Sized, + { + self.style().mouse_cursor = Some(cursor); + self + } + + /// Sets the cursor style when hovering an element to `default`. + /// [Docs](https://tailwindcss.com/docs/cursor) + fn cursor_default(mut self) -> Self + where + Self: Sized, + { + self.style().mouse_cursor = Some(CursorStyle::Arrow); + self + } + + /// Sets the cursor style when hovering an element to `pointer`. + /// [Docs](https://tailwindcss.com/docs/cursor) + fn cursor_pointer(mut self) -> Self + where + Self: Sized, + { + self.style().mouse_cursor = Some(CursorStyle::PointingHand); + self + } + /// Sets the flex direction of the element to `column`. /// [Docs](https://tailwindcss.com/docs/flex-direction#column) fn flex_col(mut self) -> Self diff --git a/crates/gpui2/src/subscription.rs b/crates/gpui2/src/subscription.rs index 744e83bbbddda1a6e6264fa62f81fb23c30f6830..2f4ec0d2f13212440fe7d23585781bac7b2be069 100644 --- a/crates/gpui2/src/subscription.rs +++ b/crates/gpui2/src/subscription.rs @@ -38,7 +38,7 @@ where lock.subscribers .entry(emitter_key.clone()) .or_default() - .insert(Default::default()) + .get_or_insert_with(|| Default::default()) .insert(subscriber_id, callback); let this = self.0.clone(); Subscription { diff --git a/crates/gpui2/src/window.rs b/crates/gpui2/src/window.rs index 2284f3ccc2269c21fe55a32b3ad3d1f4b1b3ca4a..9cab40082b02912eced41363a2afa6506fb3d9c0 100644 --- a/crates/gpui2/src/window.rs +++ b/crates/gpui2/src/window.rs @@ -1,14 +1,14 @@ use crate::{ px, size, Action, AnyBox, AnyDrag, AnyView, AppContext, AsyncWindowContext, AvailableSpace, - Bounds, BoxShadow, Context, Corners, DevicePixels, DispatchContext, DisplayId, Edges, Effect, - Entity, EntityId, EventEmitter, FileDropEvent, FocusEvent, FontId, GlobalElementId, GlyphId, - Hsla, ImageData, InputEvent, IsZero, KeyListener, KeyMatch, KeyMatcher, Keystroke, LayoutId, - Model, ModelContext, Modifiers, MonochromeSprite, MouseButton, MouseDownEvent, MouseMoveEvent, - MouseUpEvent, Path, Pixels, PlatformAtlas, PlatformDisplay, PlatformWindow, Point, - PolychromeSprite, PromptLevel, Quad, Render, RenderGlyphParams, RenderImageParams, - RenderSvgParams, ScaledPixels, SceneBuilder, Shadow, SharedString, Size, Style, SubscriberSet, - Subscription, TaffyLayoutEngine, Task, Underline, UnderlineStyle, View, VisualContext, - WeakView, WindowBounds, WindowOptions, SUBPIXEL_VARIANTS, + Bounds, BoxShadow, Context, Corners, CursorStyle, DevicePixels, DispatchContext, DisplayId, + Edges, Effect, Entity, EntityId, EventEmitter, FileDropEvent, FocusEvent, FontId, + GlobalElementId, GlyphId, Hsla, ImageData, InputEvent, IsZero, KeyListener, KeyMatch, + KeyMatcher, Keystroke, LayoutId, Model, ModelContext, Modifiers, MonochromeSprite, MouseButton, + MouseDownEvent, MouseMoveEvent, MouseUpEvent, Path, Pixels, PlatformAtlas, PlatformDisplay, + PlatformWindow, Point, PolychromeSprite, PromptLevel, Quad, Render, RenderGlyphParams, + RenderImageParams, RenderSvgParams, ScaledPixels, SceneBuilder, Shadow, SharedString, Size, + Style, SubscriberSet, Subscription, TaffyLayoutEngine, Task, Underline, UnderlineStyle, View, + VisualContext, WeakView, WindowBounds, WindowOptions, SUBPIXEL_VARIANTS, }; use anyhow::{anyhow, Result}; use collections::HashMap; @@ -190,6 +190,7 @@ pub struct Window { pub(crate) focus_handles: Arc>>, default_prevented: bool, mouse_position: Point, + requested_cursor_style: Option, scale_factor: f32, bounds: WindowBounds, bounds_observers: SubscriberSet<(), AnyObserver>, @@ -283,6 +284,7 @@ impl Window { focus_handles: Arc::new(RwLock::new(SlotMap::with_key())), default_prevented: true, mouse_position, + requested_cursor_style: None, scale_factor, bounds, bounds_observers: SubscriberSet::new(), @@ -669,6 +671,10 @@ impl<'a> WindowContext<'a> { self.window.mouse_position } + pub fn set_cursor_style(&mut self, style: CursorStyle) { + self.window.requested_cursor_style = Some(style) + } + /// Called during painting to invoke the given closure in a new stacking context. The given /// z-index is interpreted relative to the previous call to `stack`. pub fn stack(&mut self, z_index: u32, f: impl FnOnce(&mut Self) -> R) -> R { @@ -981,12 +987,27 @@ impl<'a> WindowContext<'a> { cx.active_drag = Some(active_drag); }); }); + } else if let Some(active_tooltip) = self.app.active_tooltip.take() { + self.stack(1, |cx| { + cx.with_element_offset(Some(active_tooltip.cursor_offset), |cx| { + let available_space = + size(AvailableSpace::MinContent, AvailableSpace::MinContent); + active_tooltip.view.draw(available_space, cx); + }); + }); } self.window.root_view = Some(root_view); let scene = self.window.scene_builder.build(); self.window.platform_window.draw(scene); + let cursor_style = self + .window + .requested_cursor_style + .take() + .unwrap_or(CursorStyle::Arrow); + self.platform.set_cursor_style(cursor_style); + self.window.dirty = false; } diff --git a/crates/gpui2_macros/src/derive_component.rs b/crates/gpui2_macros/src/derive_component.rs index a9467033101721082fb3c509251489605f945379..aaf814497aa9ac3963d3cef335a04383fc12f335 100644 --- a/crates/gpui2_macros/src/derive_component.rs +++ b/crates/gpui2_macros/src/derive_component.rs @@ -28,9 +28,9 @@ pub fn derive_component(input: TokenStream) -> TokenStream { let (_, ty_generics, _) = ast.generics.split_for_impl(); let expanded = quote! { - impl #impl_generics gpui2::Component<#view_type> for #name #ty_generics #where_clause { - fn render(self) -> gpui2::AnyElement<#view_type> { - (move |view_state: &mut #view_type, cx: &mut gpui2::ViewContext<'_, #view_type>| self.render(view_state, cx)) + impl #impl_generics gpui::Component<#view_type> for #name #ty_generics #where_clause { + fn render(self) -> gpui::AnyElement<#view_type> { + (move |view_state: &mut #view_type, cx: &mut gpui::ViewContext<'_, #view_type>| self.render(view_state, cx)) .render() } } diff --git a/crates/gpui2_macros/src/style_helpers.rs b/crates/gpui2_macros/src/style_helpers.rs index 9e47d85ef1267717eeb77143b75208d3c5940054..57aef03afa55276293d48f610458c5d29ddf9862 100644 --- a/crates/gpui2_macros/src/style_helpers.rs +++ b/crates/gpui2_macros/src/style_helpers.rs @@ -123,7 +123,7 @@ fn generate_predefined_setter( .iter() .map(|field_tokens| { quote! { - style.#field_tokens = Some((#negation_token gpui2::#length_tokens).into()); + style.#field_tokens = Some((#negation_token gpui::#length_tokens).into()); } }) .collect::>(); @@ -163,7 +163,7 @@ fn generate_custom_value_setter( let method = quote! { #[doc = #doc_string] - fn #method_name(mut self, length: impl std::clone::Clone + Into) -> Self where Self: std::marker::Sized { + fn #method_name(mut self, length: impl std::clone::Clone + Into) -> Self where Self: std::marker::Sized { let style = self.style(); #(#field_assignments)* self diff --git a/crates/gpui2_macros/src/test.rs b/crates/gpui2_macros/src/test.rs index acaaee597bac8def5163a0d4926774c4f5e39977..05d2c1f63aa8dd11308d85e03f54b9e1a005312f 100644 --- a/crates/gpui2_macros/src/test.rs +++ b/crates/gpui2_macros/src/test.rs @@ -175,6 +175,7 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { inner_fn_args.extend(quote!(&mut #cx_varname_lock,)); cx_teardowns.extend(quote!( #cx_varname_lock.quit(); + drop(#cx_varname_lock); dispatcher.run_until_parked(); )); continue; diff --git a/crates/gpui_macros/src/gpui_macros.rs b/crates/gpui_macros/src/gpui_macros.rs index aa55c27eaad9069fd8964ea2f2b4f64195bd458c..62fba3b61237bb0cc31b28211f2680d105b559d1 100644 --- a/crates/gpui_macros/src/gpui_macros.rs +++ b/crates/gpui_macros/src/gpui_macros.rs @@ -170,6 +170,8 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { #max_retries, #detect_nondeterminism, &mut |cx, foreground_platform, deterministic, seed| { + // some of the macro contents do not use all variables, silence the warnings + let _ = (&cx, &foreground_platform, &deterministic, &seed); #cx_vars cx.foreground().run(#inner_fn_name(#inner_fn_args)); #cx_teardowns @@ -247,6 +249,8 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { #max_retries, #detect_nondeterminism, &mut |cx, foreground_platform, deterministic, seed| { + // some of the macro contents do not use all variables, silence the warnings + let _ = (&cx, &foreground_platform, &deterministic, &seed); #cx_vars #inner_fn_name(#inner_fn_args); #cx_teardowns diff --git a/crates/live_kit_client2/Cargo.toml b/crates/live_kit_client2/Cargo.toml index 5adb71194806c450133e149bc9893e647f3ad74b..b606434b05d2e28171fe42839a7ff17e213028a5 100644 --- a/crates/live_kit_client2/Cargo.toml +++ b/crates/live_kit_client2/Cargo.toml @@ -16,14 +16,14 @@ name = "test_app" test-support = [ "async-trait", "collections/test-support", - "gpui2/test-support", + "gpui/test-support", "live_kit_server", "nanoid", ] [dependencies] collections = { path = "../collections", optional = true } -gpui2 = { package = "gpui2", path = "../gpui2", optional = true } +gpui = { package = "gpui2", path = "../gpui2", optional = true } live_kit_server = { path = "../live_kit_server", optional = true } media = { path = "../media" } @@ -41,7 +41,7 @@ nanoid = { version ="0.4", optional = true} [dev-dependencies] collections = { path = "../collections", features = ["test-support"] } -gpui2 = { package = "gpui2", path = "../gpui2", features = ["test-support"] } +gpui = { package = "gpui2", path = "../gpui2", features = ["test-support"] } live_kit_server = { path = "../live_kit_server" } media = { path = "../media" } nanoid = "0.4" diff --git a/crates/live_kit_client2/examples/test_app.rs b/crates/live_kit_client2/examples/test_app.rs index 4062441a06b4e7bede19a3d57dc4835111996b29..98302eb35c049015cbfee131b5dbcf125b7f5956 100644 --- a/crates/live_kit_client2/examples/test_app.rs +++ b/crates/live_kit_client2/examples/test_app.rs @@ -1,7 +1,7 @@ use std::{sync::Arc, time::Duration}; use futures::StreamExt; -use gpui2::KeyBinding; +use gpui::KeyBinding; use live_kit_client2::{ LocalAudioTrack, LocalVideoTrack, RemoteAudioTrackUpdate, RemoteVideoTrackUpdate, Room, }; @@ -16,7 +16,7 @@ struct Quit; fn main() { SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); - gpui2::App::production(Arc::new(())).run(|cx| { + gpui::App::production(Arc::new(())).run(|cx| { #[cfg(any(test, feature = "test-support"))] println!("USING TEST LIVEKIT"); @@ -173,6 +173,6 @@ fn main() { }); } -fn quit(_: &Quit, cx: &mut gpui2::AppContext) { +fn quit(_: &Quit, cx: &mut gpui::AppContext) { cx.quit(); } diff --git a/crates/live_kit_client2/src/test.rs b/crates/live_kit_client2/src/test.rs index 10c97e8d815b1798ed7711cfb33d7dc011635aef..6367e53ba857e979d834c048af06340fa1a8fc89 100644 --- a/crates/live_kit_client2/src/test.rs +++ b/crates/live_kit_client2/src/test.rs @@ -2,7 +2,7 @@ use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use collections::{BTreeMap, HashMap}; use futures::Stream; -use gpui2::BackgroundExecutor; +use gpui::BackgroundExecutor; use live_kit_server::token; use media::core_video::CVImageBuffer; use parking_lot::Mutex; diff --git a/crates/refineable/derive_refineable/src/derive_refineable.rs b/crates/refineable/derive_refineable/src/derive_refineable.rs index ed233e1b0dfa1acc9d6508e9e6fa5e6e35bcada1..c2d001b287c7038359c8e98e4adb9fd7eeed6a70 100644 --- a/crates/refineable/derive_refineable/src/derive_refineable.rs +++ b/crates/refineable/derive_refineable/src/derive_refineable.rs @@ -16,9 +16,33 @@ pub fn derive_refineable(input: TokenStream) -> TokenStream { .. } = parse_macro_input!(input); - let impl_debug_on_refinement = attrs - .iter() - .any(|attr| attr.path.is_ident("refineable") && attr.tokens.to_string().contains("debug")); + let refineable_attr = attrs.iter().find(|attr| attr.path.is_ident("refineable")); + + let mut impl_debug_on_refinement = false; + let mut derive_serialize_on_refinement = false; + let mut derive_deserialize_on_refinement = false; + + if let Some(refineable_attr) = refineable_attr { + if let Ok(syn::Meta::List(meta_list)) = refineable_attr.parse_meta() { + for nested in meta_list.nested { + let syn::NestedMeta::Meta(syn::Meta::Path(path)) = nested else { + continue; + }; + + if path.is_ident("debug") { + impl_debug_on_refinement = true; + } + + if path.is_ident("serialize") { + derive_serialize_on_refinement = true; + } + + if path.is_ident("deserialize") { + derive_deserialize_on_refinement = true; + } + } + } + } let refinement_ident = format_ident!("{}Refinement", ident); let (impl_generics, ty_generics, where_clause) = generics.split_for_impl(); @@ -235,8 +259,22 @@ pub fn derive_refineable(input: TokenStream) -> TokenStream { quote! {} }; + let derive_serialize = if derive_serialize_on_refinement { + quote! { #[derive(serde::Serialize)]} + } else { + quote! {} + }; + + let derive_deserialize = if derive_deserialize_on_refinement { + quote! { #[derive(serde::Deserialize)]} + } else { + quote! {} + }; + let gen = quote! { #[derive(Clone)] + #derive_serialize + #derive_deserialize pub struct #refinement_ident #impl_generics { #( #field_visibilities #field_names: #wrapped_types ),* } diff --git a/crates/rpc2/proto/zed.proto b/crates/rpc2/proto/zed.proto index 3501e70e6ac4191c5fe3141620e18cd8f7b8c32d..206777879b6882c64f72fb87f22937003b86835a 100644 --- a/crates/rpc2/proto/zed.proto +++ b/crates/rpc2/proto/zed.proto @@ -89,88 +89,96 @@ message Envelope { FormatBuffersResponse format_buffers_response = 70; GetCompletions get_completions = 71; GetCompletionsResponse get_completions_response = 72; - ApplyCompletionAdditionalEdits apply_completion_additional_edits = 73; - ApplyCompletionAdditionalEditsResponse apply_completion_additional_edits_response = 74; - GetCodeActions get_code_actions = 75; - GetCodeActionsResponse get_code_actions_response = 76; - GetHover get_hover = 77; - GetHoverResponse get_hover_response = 78; - ApplyCodeAction apply_code_action = 79; - ApplyCodeActionResponse apply_code_action_response = 80; - PrepareRename prepare_rename = 81; - PrepareRenameResponse prepare_rename_response = 82; - PerformRename perform_rename = 83; - PerformRenameResponse perform_rename_response = 84; - SearchProject search_project = 85; - SearchProjectResponse search_project_response = 86; - - UpdateContacts update_contacts = 87; - UpdateInviteInfo update_invite_info = 88; - ShowContacts show_contacts = 89; - - GetUsers get_users = 90; - FuzzySearchUsers fuzzy_search_users = 91; - UsersResponse users_response = 92; - RequestContact request_contact = 93; - RespondToContactRequest respond_to_contact_request = 94; - RemoveContact remove_contact = 95; - - Follow follow = 96; - FollowResponse follow_response = 97; - UpdateFollowers update_followers = 98; - Unfollow unfollow = 99; - GetPrivateUserInfo get_private_user_info = 100; - GetPrivateUserInfoResponse get_private_user_info_response = 101; - UpdateDiffBase update_diff_base = 102; - - OnTypeFormatting on_type_formatting = 103; - OnTypeFormattingResponse on_type_formatting_response = 104; - - UpdateWorktreeSettings update_worktree_settings = 105; - - InlayHints inlay_hints = 106; - InlayHintsResponse inlay_hints_response = 107; - ResolveInlayHint resolve_inlay_hint = 108; - ResolveInlayHintResponse resolve_inlay_hint_response = 109; - RefreshInlayHints refresh_inlay_hints = 110; - - CreateChannel create_channel = 111; - CreateChannelResponse create_channel_response = 112; - InviteChannelMember invite_channel_member = 113; - RemoveChannelMember remove_channel_member = 114; - RespondToChannelInvite respond_to_channel_invite = 115; - UpdateChannels update_channels = 116; - JoinChannel join_channel = 117; - DeleteChannel delete_channel = 118; - GetChannelMembers get_channel_members = 119; - GetChannelMembersResponse get_channel_members_response = 120; - SetChannelMemberAdmin set_channel_member_admin = 121; - RenameChannel rename_channel = 122; - RenameChannelResponse rename_channel_response = 123; - - JoinChannelBuffer join_channel_buffer = 124; - JoinChannelBufferResponse join_channel_buffer_response = 125; - UpdateChannelBuffer update_channel_buffer = 126; - LeaveChannelBuffer leave_channel_buffer = 127; - UpdateChannelBufferCollaborators update_channel_buffer_collaborators = 128; - RejoinChannelBuffers rejoin_channel_buffers = 129; - RejoinChannelBuffersResponse rejoin_channel_buffers_response = 130; - AckBufferOperation ack_buffer_operation = 143; - - JoinChannelChat join_channel_chat = 131; - JoinChannelChatResponse join_channel_chat_response = 132; - LeaveChannelChat leave_channel_chat = 133; - SendChannelMessage send_channel_message = 134; - SendChannelMessageResponse send_channel_message_response = 135; - ChannelMessageSent channel_message_sent = 136; - GetChannelMessages get_channel_messages = 137; - GetChannelMessagesResponse get_channel_messages_response = 138; - RemoveChannelMessage remove_channel_message = 139; - AckChannelMessage ack_channel_message = 144; - - LinkChannel link_channel = 140; - UnlinkChannel unlink_channel = 141; - MoveChannel move_channel = 142; // current max: 144 + ResolveCompletionDocumentation resolve_completion_documentation = 73; + ResolveCompletionDocumentationResponse resolve_completion_documentation_response = 74; + ApplyCompletionAdditionalEdits apply_completion_additional_edits = 75; + ApplyCompletionAdditionalEditsResponse apply_completion_additional_edits_response = 76; + GetCodeActions get_code_actions = 77; + GetCodeActionsResponse get_code_actions_response = 78; + GetHover get_hover = 79; + GetHoverResponse get_hover_response = 80; + ApplyCodeAction apply_code_action = 81; + ApplyCodeActionResponse apply_code_action_response = 82; + PrepareRename prepare_rename = 83; + PrepareRenameResponse prepare_rename_response = 84; + PerformRename perform_rename = 85; + PerformRenameResponse perform_rename_response = 86; + SearchProject search_project = 87; + SearchProjectResponse search_project_response = 88; + + UpdateContacts update_contacts = 89; + UpdateInviteInfo update_invite_info = 90; + ShowContacts show_contacts = 91; + + GetUsers get_users = 92; + FuzzySearchUsers fuzzy_search_users = 93; + UsersResponse users_response = 94; + RequestContact request_contact = 95; + RespondToContactRequest respond_to_contact_request = 96; + RemoveContact remove_contact = 97; + + Follow follow = 98; + FollowResponse follow_response = 99; + UpdateFollowers update_followers = 100; + Unfollow unfollow = 101; + GetPrivateUserInfo get_private_user_info = 102; + GetPrivateUserInfoResponse get_private_user_info_response = 103; + UpdateDiffBase update_diff_base = 104; + + OnTypeFormatting on_type_formatting = 105; + OnTypeFormattingResponse on_type_formatting_response = 106; + + UpdateWorktreeSettings update_worktree_settings = 107; + + InlayHints inlay_hints = 108; + InlayHintsResponse inlay_hints_response = 109; + ResolveInlayHint resolve_inlay_hint = 110; + ResolveInlayHintResponse resolve_inlay_hint_response = 111; + RefreshInlayHints refresh_inlay_hints = 112; + + CreateChannel create_channel = 113; + CreateChannelResponse create_channel_response = 114; + InviteChannelMember invite_channel_member = 115; + RemoveChannelMember remove_channel_member = 116; + RespondToChannelInvite respond_to_channel_invite = 117; + UpdateChannels update_channels = 118; + JoinChannel join_channel = 119; + DeleteChannel delete_channel = 120; + GetChannelMembers get_channel_members = 121; + GetChannelMembersResponse get_channel_members_response = 122; + SetChannelMemberRole set_channel_member_role = 123; + RenameChannel rename_channel = 124; + RenameChannelResponse rename_channel_response = 125; + + JoinChannelBuffer join_channel_buffer = 126; + JoinChannelBufferResponse join_channel_buffer_response = 127; + UpdateChannelBuffer update_channel_buffer = 128; + LeaveChannelBuffer leave_channel_buffer = 129; + UpdateChannelBufferCollaborators update_channel_buffer_collaborators = 130; + RejoinChannelBuffers rejoin_channel_buffers = 131; + RejoinChannelBuffersResponse rejoin_channel_buffers_response = 132; + AckBufferOperation ack_buffer_operation = 133; + + JoinChannelChat join_channel_chat = 134; + JoinChannelChatResponse join_channel_chat_response = 135; + LeaveChannelChat leave_channel_chat = 136; + SendChannelMessage send_channel_message = 137; + SendChannelMessageResponse send_channel_message_response = 138; + ChannelMessageSent channel_message_sent = 139; + GetChannelMessages get_channel_messages = 140; + GetChannelMessagesResponse get_channel_messages_response = 141; + RemoveChannelMessage remove_channel_message = 142; + AckChannelMessage ack_channel_message = 143; + GetChannelMessagesById get_channel_messages_by_id = 144; + + MoveChannel move_channel = 147; + SetChannelVisibility set_channel_visibility = 148; + + AddNotification add_notification = 149; + GetNotifications get_notifications = 150; + GetNotificationsResponse get_notifications_response = 151; + DeleteNotification delete_notification = 152; + MarkNotificationRead mark_notification_read = 153; // Current max } } @@ -332,6 +340,7 @@ message RoomUpdated { message LiveKitConnectionInfo { string server_url = 1; string token = 2; + bool can_publish = 3; } message ShareProject { @@ -832,6 +841,17 @@ message ResolveState { } } +message ResolveCompletionDocumentation { + uint64 project_id = 1; + uint64 language_server_id = 2; + bytes lsp_completion = 3; +} + +message ResolveCompletionDocumentationResponse { + string text = 1; + bool is_markdown = 2; +} + message ResolveInlayHint { uint64 project_id = 1; uint64 buffer_id = 2; @@ -950,13 +970,10 @@ message LspDiskBasedDiagnosticsUpdated {} message UpdateChannels { repeated Channel channels = 1; - repeated ChannelEdge insert_edge = 2; - repeated ChannelEdge delete_edge = 3; repeated uint64 delete_channels = 4; repeated Channel channel_invitations = 5; repeated uint64 remove_channel_invitations = 6; repeated ChannelParticipants channel_participants = 7; - repeated ChannelPermission channel_permissions = 8; repeated UnseenChannelMessage unseen_channel_messages = 9; repeated UnseenChannelBufferChange unseen_channel_buffer_changes = 10; } @@ -972,14 +989,9 @@ message UnseenChannelBufferChange { repeated VectorClockEntry version = 3; } -message ChannelEdge { - uint64 channel_id = 1; - uint64 parent_id = 2; -} - message ChannelPermission { uint64 channel_id = 1; - bool is_admin = 2; + ChannelRole role = 3; } message ChannelParticipants { @@ -1005,8 +1017,8 @@ message GetChannelMembersResponse { message ChannelMember { uint64 user_id = 1; - bool admin = 2; Kind kind = 3; + ChannelRole role = 4; enum Kind { Member = 0; @@ -1028,7 +1040,7 @@ message CreateChannelResponse { message InviteChannelMember { uint64 channel_id = 1; uint64 user_id = 2; - bool admin = 3; + ChannelRole role = 4; } message RemoveChannelMember { @@ -1036,10 +1048,22 @@ message RemoveChannelMember { uint64 user_id = 2; } -message SetChannelMemberAdmin { +enum ChannelRole { + Admin = 0; + Member = 1; + Guest = 2; + Banned = 3; +} + +message SetChannelMemberRole { uint64 channel_id = 1; uint64 user_id = 2; - bool admin = 3; + ChannelRole role = 3; +} + +message SetChannelVisibility { + uint64 channel_id = 1; + ChannelVisibility visibility = 2; } message RenameChannel { @@ -1068,6 +1092,7 @@ message SendChannelMessage { uint64 channel_id = 1; string body = 2; Nonce nonce = 3; + repeated ChatMention mentions = 4; } message RemoveChannelMessage { @@ -1099,20 +1124,13 @@ message GetChannelMessagesResponse { bool done = 2; } -message LinkChannel { - uint64 channel_id = 1; - uint64 to = 2; -} - -message UnlinkChannel { - uint64 channel_id = 1; - uint64 from = 2; +message GetChannelMessagesById { + repeated uint64 message_ids = 1; } message MoveChannel { uint64 channel_id = 1; - uint64 from = 2; - uint64 to = 3; + optional uint64 to = 2; } message JoinChannelBuffer { @@ -1125,6 +1143,12 @@ message ChannelMessage { uint64 timestamp = 3; uint64 sender_id = 4; Nonce nonce = 5; + repeated ChatMention mentions = 6; +} + +message ChatMention { + Range range = 1; + uint64 user_id = 2; } message RejoinChannelBuffers { @@ -1216,7 +1240,6 @@ message ShowContacts {} message IncomingContactRequest { uint64 requester_id = 1; - bool should_notify = 2; } message UpdateDiagnostics { @@ -1533,16 +1556,23 @@ message Nonce { uint64 lower_half = 2; } +enum ChannelVisibility { + Public = 0; + Members = 1; +} + message Channel { uint64 id = 1; string name = 2; + ChannelVisibility visibility = 3; + ChannelRole role = 4; + repeated uint64 parent_path = 5; } message Contact { uint64 user_id = 1; bool online = 2; bool busy = 3; - bool should_notify = 4; } message WorktreeMetadata { @@ -1557,3 +1587,34 @@ message UpdateDiffBase { uint64 buffer_id = 2; optional string diff_base = 3; } + +message GetNotifications { + optional uint64 before_id = 1; +} + +message AddNotification { + Notification notification = 1; +} + +message GetNotificationsResponse { + repeated Notification notifications = 1; + bool done = 2; +} + +message DeleteNotification { + uint64 notification_id = 1; +} + +message MarkNotificationRead { + uint64 notification_id = 1; +} + +message Notification { + uint64 id = 1; + uint64 timestamp = 2; + string kind = 3; + optional uint64 entity_id = 4; + string content = 5; + bool is_read = 6; + optional bool response = 7; +} diff --git a/crates/rpc2/src/proto.rs b/crates/rpc2/src/proto.rs index f0d7937f6f9592b2574bff7b93d3097ceba24d94..77a69122c20ce29fd03c647061d2c150b59961e7 100644 --- a/crates/rpc2/src/proto.rs +++ b/crates/rpc2/src/proto.rs @@ -133,6 +133,9 @@ impl fmt::Display for PeerId { messages!( (Ack, Foreground), + (AckBufferOperation, Background), + (AckChannelMessage, Background), + (AddNotification, Foreground), (AddProjectCollaborator, Foreground), (ApplyCodeAction, Background), (ApplyCodeActionResponse, Background), @@ -143,57 +146,74 @@ messages!( (Call, Foreground), (CallCanceled, Foreground), (CancelCall, Foreground), + (ChannelMessageSent, Foreground), (CopyProjectEntry, Foreground), (CreateBufferForPeer, Foreground), (CreateChannel, Foreground), (CreateChannelResponse, Foreground), - (ChannelMessageSent, Foreground), (CreateProjectEntry, Foreground), (CreateRoom, Foreground), (CreateRoomResponse, Foreground), (DeclineCall, Foreground), + (DeleteChannel, Foreground), + (DeleteNotification, Foreground), (DeleteProjectEntry, Foreground), (Error, Foreground), (ExpandProjectEntry, Foreground), + (ExpandProjectEntryResponse, Foreground), (Follow, Foreground), (FollowResponse, Foreground), (FormatBuffers, Foreground), (FormatBuffersResponse, Foreground), (FuzzySearchUsers, Foreground), - (GetCodeActions, Background), - (GetCodeActionsResponse, Background), - (GetHover, Background), - (GetHoverResponse, Background), + (GetChannelMembers, Foreground), + (GetChannelMembersResponse, Foreground), (GetChannelMessages, Background), + (GetChannelMessagesById, Background), (GetChannelMessagesResponse, Background), - (SendChannelMessage, Background), - (SendChannelMessageResponse, Background), + (GetCodeActions, Background), + (GetCodeActionsResponse, Background), (GetCompletions, Background), (GetCompletionsResponse, Background), (GetDefinition, Background), (GetDefinitionResponse, Background), - (GetTypeDefinition, Background), - (GetTypeDefinitionResponse, Background), (GetDocumentHighlights, Background), (GetDocumentHighlightsResponse, Background), - (GetReferences, Background), - (GetReferencesResponse, Background), + (GetHover, Background), + (GetHoverResponse, Background), + (GetNotifications, Foreground), + (GetNotificationsResponse, Foreground), + (GetPrivateUserInfo, Foreground), + (GetPrivateUserInfoResponse, Foreground), (GetProjectSymbols, Background), (GetProjectSymbolsResponse, Background), + (GetReferences, Background), + (GetReferencesResponse, Background), + (GetTypeDefinition, Background), + (GetTypeDefinitionResponse, Background), (GetUsers, Foreground), (Hello, Foreground), (IncomingCall, Foreground), + (InlayHints, Background), + (InlayHintsResponse, Background), (InviteChannelMember, Foreground), - (UsersResponse, Foreground), + (JoinChannel, Foreground), + (JoinChannelBuffer, Foreground), + (JoinChannelBufferResponse, Foreground), + (JoinChannelChat, Foreground), + (JoinChannelChatResponse, Foreground), (JoinProject, Foreground), (JoinProjectResponse, Foreground), (JoinRoom, Foreground), (JoinRoomResponse, Foreground), - (JoinChannelChat, Foreground), - (JoinChannelChatResponse, Foreground), + (LeaveChannelBuffer, Background), (LeaveChannelChat, Foreground), (LeaveProject, Foreground), (LeaveRoom, Foreground), + (MarkNotificationRead, Foreground), + (MoveChannel, Foreground), + (OnTypeFormatting, Background), + (OnTypeFormattingResponse, Background), (OpenBufferById, Background), (OpenBufferByPath, Background), (OpenBufferForSymbol, Background), @@ -201,58 +221,56 @@ messages!( (OpenBufferResponse, Background), (PerformRename, Background), (PerformRenameResponse, Background), - (OnTypeFormatting, Background), - (OnTypeFormattingResponse, Background), - (InlayHints, Background), - (InlayHintsResponse, Background), - (ResolveInlayHint, Background), - (ResolveInlayHintResponse, Background), - (RefreshInlayHints, Foreground), (Ping, Foreground), (PrepareRename, Background), (PrepareRenameResponse, Background), - (ExpandProjectEntryResponse, Foreground), (ProjectEntryResponse, Foreground), + (RefreshInlayHints, Foreground), + (RejoinChannelBuffers, Foreground), + (RejoinChannelBuffersResponse, Foreground), (RejoinRoom, Foreground), (RejoinRoomResponse, Foreground), - (RemoveContact, Foreground), - (RemoveChannelMember, Foreground), - (RemoveChannelMessage, Foreground), (ReloadBuffers, Foreground), (ReloadBuffersResponse, Foreground), + (RemoveChannelMember, Foreground), + (RemoveChannelMessage, Foreground), + (RemoveContact, Foreground), (RemoveProjectCollaborator, Foreground), + (RenameChannel, Foreground), + (RenameChannelResponse, Foreground), (RenameProjectEntry, Foreground), (RequestContact, Foreground), - (RespondToContactRequest, Foreground), + (ResolveCompletionDocumentation, Background), + (ResolveCompletionDocumentationResponse, Background), + (ResolveInlayHint, Background), + (ResolveInlayHintResponse, Background), (RespondToChannelInvite, Foreground), - (JoinChannel, Foreground), + (RespondToContactRequest, Foreground), (RoomUpdated, Foreground), (SaveBuffer, Foreground), - (RenameChannel, Foreground), - (RenameChannelResponse, Foreground), - (SetChannelMemberAdmin, Foreground), + (SetChannelMemberRole, Foreground), + (SetChannelVisibility, Foreground), (SearchProject, Background), (SearchProjectResponse, Background), + (SendChannelMessage, Background), + (SendChannelMessageResponse, Background), (ShareProject, Foreground), (ShareProjectResponse, Foreground), (ShowContacts, Foreground), (StartLanguageServer, Foreground), (SynchronizeBuffers, Foreground), (SynchronizeBuffersResponse, Foreground), - (RejoinChannelBuffers, Foreground), - (RejoinChannelBuffersResponse, Foreground), (Test, Foreground), (Unfollow, Foreground), (UnshareProject, Foreground), (UpdateBuffer, Foreground), (UpdateBufferFile, Foreground), - (UpdateContacts, Foreground), - (DeleteChannel, Foreground), - (MoveChannel, Foreground), - (LinkChannel, Foreground), - (UnlinkChannel, Foreground), + (UpdateChannelBuffer, Foreground), + (UpdateChannelBufferCollaborators, Foreground), (UpdateChannels, Foreground), + (UpdateContacts, Foreground), (UpdateDiagnosticSummary, Foreground), + (UpdateDiffBase, Foreground), (UpdateFollowers, Foreground), (UpdateInviteInfo, Foreground), (UpdateLanguageServer, Foreground), @@ -261,18 +279,7 @@ messages!( (UpdateProjectCollaborator, Foreground), (UpdateWorktree, Foreground), (UpdateWorktreeSettings, Foreground), - (UpdateDiffBase, Foreground), - (GetPrivateUserInfo, Foreground), - (GetPrivateUserInfoResponse, Foreground), - (GetChannelMembers, Foreground), - (GetChannelMembersResponse, Foreground), - (JoinChannelBuffer, Foreground), - (JoinChannelBufferResponse, Foreground), - (LeaveChannelBuffer, Background), - (UpdateChannelBuffer, Foreground), - (UpdateChannelBufferCollaborators, Foreground), - (AckBufferOperation, Background), - (AckChannelMessage, Background), + (UsersResponse, Foreground), ); request_messages!( @@ -284,72 +291,78 @@ request_messages!( (Call, Ack), (CancelCall, Ack), (CopyProjectEntry, ProjectEntryResponse), + (CreateChannel, CreateChannelResponse), (CreateProjectEntry, ProjectEntryResponse), (CreateRoom, CreateRoomResponse), - (CreateChannel, CreateChannelResponse), (DeclineCall, Ack), + (DeleteChannel, Ack), (DeleteProjectEntry, ProjectEntryResponse), (ExpandProjectEntry, ExpandProjectEntryResponse), (Follow, FollowResponse), (FormatBuffers, FormatBuffersResponse), + (FuzzySearchUsers, UsersResponse), + (GetChannelMembers, GetChannelMembersResponse), + (GetChannelMessages, GetChannelMessagesResponse), + (GetChannelMessagesById, GetChannelMessagesResponse), (GetCodeActions, GetCodeActionsResponse), - (GetHover, GetHoverResponse), (GetCompletions, GetCompletionsResponse), (GetDefinition, GetDefinitionResponse), - (GetTypeDefinition, GetTypeDefinitionResponse), (GetDocumentHighlights, GetDocumentHighlightsResponse), - (GetReferences, GetReferencesResponse), + (GetHover, GetHoverResponse), + (GetNotifications, GetNotificationsResponse), (GetPrivateUserInfo, GetPrivateUserInfoResponse), (GetProjectSymbols, GetProjectSymbolsResponse), - (FuzzySearchUsers, UsersResponse), + (GetReferences, GetReferencesResponse), + (GetTypeDefinition, GetTypeDefinitionResponse), (GetUsers, UsersResponse), + (IncomingCall, Ack), + (InlayHints, InlayHintsResponse), (InviteChannelMember, Ack), + (JoinChannel, JoinRoomResponse), + (JoinChannelBuffer, JoinChannelBufferResponse), + (JoinChannelChat, JoinChannelChatResponse), (JoinProject, JoinProjectResponse), (JoinRoom, JoinRoomResponse), - (JoinChannelChat, JoinChannelChatResponse), + (LeaveChannelBuffer, Ack), (LeaveRoom, Ack), - (RejoinRoom, RejoinRoomResponse), - (IncomingCall, Ack), + (MarkNotificationRead, Ack), + (MoveChannel, Ack), + (OnTypeFormatting, OnTypeFormattingResponse), (OpenBufferById, OpenBufferResponse), (OpenBufferByPath, OpenBufferResponse), (OpenBufferForSymbol, OpenBufferForSymbolResponse), - (Ping, Ack), (PerformRename, PerformRenameResponse), + (Ping, Ack), (PrepareRename, PrepareRenameResponse), - (OnTypeFormatting, OnTypeFormattingResponse), - (InlayHints, InlayHintsResponse), - (ResolveInlayHint, ResolveInlayHintResponse), (RefreshInlayHints, Ack), + (RejoinChannelBuffers, RejoinChannelBuffersResponse), + (RejoinRoom, RejoinRoomResponse), (ReloadBuffers, ReloadBuffersResponse), - (RequestContact, Ack), (RemoveChannelMember, Ack), - (RemoveContact, Ack), - (RespondToContactRequest, Ack), - (RespondToChannelInvite, Ack), - (SetChannelMemberAdmin, Ack), - (SendChannelMessage, SendChannelMessageResponse), - (GetChannelMessages, GetChannelMessagesResponse), - (GetChannelMembers, GetChannelMembersResponse), - (JoinChannel, JoinRoomResponse), (RemoveChannelMessage, Ack), - (DeleteChannel, Ack), - (RenameProjectEntry, ProjectEntryResponse), + (RemoveContact, Ack), (RenameChannel, RenameChannelResponse), - (LinkChannel, Ack), - (UnlinkChannel, Ack), - (MoveChannel, Ack), + (RenameProjectEntry, ProjectEntryResponse), + (RequestContact, Ack), + ( + ResolveCompletionDocumentation, + ResolveCompletionDocumentationResponse + ), + (ResolveInlayHint, ResolveInlayHintResponse), + (RespondToChannelInvite, Ack), + (RespondToContactRequest, Ack), (SaveBuffer, BufferSaved), (SearchProject, SearchProjectResponse), + (SendChannelMessage, SendChannelMessageResponse), + (SetChannelMemberRole, Ack), + (SetChannelVisibility, Ack), (ShareProject, ShareProjectResponse), (SynchronizeBuffers, SynchronizeBuffersResponse), - (RejoinChannelBuffers, RejoinChannelBuffersResponse), (Test, Test), (UpdateBuffer, Ack), (UpdateParticipantLocation, Ack), (UpdateProject, Ack), (UpdateWorktree, Ack), - (JoinChannelBuffer, JoinChannelBufferResponse), - (LeaveChannelBuffer, Ack) ); entity_messages!( @@ -368,25 +381,26 @@ entity_messages!( GetCodeActions, GetCompletions, GetDefinition, - GetTypeDefinition, GetDocumentHighlights, GetHover, - GetReferences, GetProjectSymbols, + GetReferences, + GetTypeDefinition, + InlayHints, JoinProject, LeaveProject, + OnTypeFormatting, OpenBufferById, OpenBufferByPath, OpenBufferForSymbol, PerformRename, - OnTypeFormatting, - InlayHints, - ResolveInlayHint, - RefreshInlayHints, PrepareRename, + RefreshInlayHints, ReloadBuffers, RemoveProjectCollaborator, RenameProjectEntry, + ResolveCompletionDocumentation, + ResolveInlayHint, SaveBuffer, SearchProject, StartLanguageServer, @@ -395,19 +409,19 @@ entity_messages!( UpdateBuffer, UpdateBufferFile, UpdateDiagnosticSummary, + UpdateDiffBase, UpdateLanguageServer, UpdateProject, UpdateProjectCollaborator, UpdateWorktree, UpdateWorktreeSettings, - UpdateDiffBase ); entity_messages!( channel_id, ChannelMessageSent, - UpdateChannelBuffer, RemoveChannelMessage, + UpdateChannelBuffer, UpdateChannelBufferCollaborators, ); diff --git a/crates/storybook2/Cargo.toml b/crates/storybook2/Cargo.toml index 0f335ae9845e2cdbb370e45c3c201f6dc5ed5ea0..1f3a0b33cc2254671069d8e8c1f0fb0e453db9ae 100644 --- a/crates/storybook2/Cargo.toml +++ b/crates/storybook2/Cargo.toml @@ -14,7 +14,7 @@ anyhow.workspace = true backtrace-on-stack-overflow = "0.3.0" clap = { version = "4.4", features = ["derive", "string"] } chrono = "0.4" -gpui2 = { path = "../gpui2" } +gpui = { package = "gpui2", path = "../gpui2" } itertools = "0.11.0" log.workspace = true rust-embed.workspace = true @@ -29,4 +29,4 @@ ui = { package = "ui2", path = "../ui2", features = ["stories"] } util = { path = "../util" } [dev-dependencies] -gpui2 = { path = "../gpui2", features = ["test-support"] } +gpui = { package = "gpui2", path = "../gpui2", features = ["test-support"] } diff --git a/crates/storybook2/src/assets.rs b/crates/storybook2/src/assets.rs index 3d4298454882409b394713a5a899052b4bdda706..9fc71917b45f7fa024a3e157f0a806d6056ef7f4 100644 --- a/crates/storybook2/src/assets.rs +++ b/crates/storybook2/src/assets.rs @@ -1,7 +1,7 @@ use std::borrow::Cow; use anyhow::{anyhow, Result}; -use gpui2::{AssetSource, SharedString}; +use gpui::{AssetSource, SharedString}; use rust_embed::RustEmbed; #[derive(RustEmbed)] diff --git a/crates/storybook2/src/components.rs b/crates/storybook2/src/components.rs deleted file mode 100644 index a3dca51adc44050e31473a3e3e526d7f2a4b381e..0000000000000000000000000000000000000000 --- a/crates/storybook2/src/components.rs +++ /dev/null @@ -1,97 +0,0 @@ -use gpui2::{ - div, ArcCow, Element, EventContext, Interactive, IntoElement, MouseButton, ParentElement, - StyleHelpers, ViewContext, -}; -use std::{marker::PhantomData, rc::Rc}; - -struct ButtonHandlers { - click: Option)>>, -} - -impl Default for ButtonHandlers { - fn default() -> Self { - Self { click: None } - } -} - -#[derive(Component)] -pub struct Button { - handlers: ButtonHandlers, - label: Option>, - icon: Option>, - data: Rc, - view_type: PhantomData, -} - -// Impl block for buttons without data. -// See below for an impl block for any button. -impl Button { - fn new() -> Self { - Self { - handlers: ButtonHandlers::default(), - label: None, - icon: None, - data: Rc::new(()), - view_type: PhantomData, - } - } - - pub fn data(self, data: D) -> Button { - Button { - handlers: ButtonHandlers::default(), - label: self.label, - icon: self.icon, - data: Rc::new(data), - view_type: PhantomData, - } - } -} - -// Impl block for button regardless of its data type. -impl Button { - pub fn label(mut self, label: impl Into>) -> Self { - self.label = Some(label.into()); - self - } - - pub fn icon(mut self, icon: impl Into>) -> Self { - self.icon = Some(icon.into()); - self - } - - pub fn on_click( - mut self, - handler: impl Fn(&mut V, &D, &mut EventContext) + 'static, - ) -> Self { - self.handlers.click = Some(Rc::new(handler)); - self - } -} - -pub fn button() -> Button { - Button::new() -} - -impl Button { - fn render( - &mut self, - view: &mut V, - cx: &mut ViewContext, - ) -> impl IntoElement + Interactive { - // let colors = &cx.theme::().colors; - - let button = div() - // .fill(colors.error(0.5)) - .h_4() - .children(self.label.clone()); - - if let Some(handler) = self.handlers.click.clone() { - let data = self.data.clone(); - button.on_mouse_down(MouseButton::Left, move |view, event, cx| { - handler(view, data.as_ref(), cx) - }) - } else { - button - } - } -} diff --git a/crates/storybook2/src/stories/colors.rs b/crates/storybook2/src/stories/colors.rs index c1c65d62fa16eca970fe72f286c39c6235d0d46e..13b7b36a8c67c1674f34d54a003a1b6d6788aeb9 100644 --- a/crates/storybook2/src/stories/colors.rs +++ b/crates/storybook2/src/stories/colors.rs @@ -1,5 +1,5 @@ use crate::story::Story; -use gpui2::{px, Div, Render}; +use gpui::{px, Div, Render}; use theme2::{default_color_scales, ColorScaleStep}; use ui::prelude::*; @@ -20,7 +20,7 @@ impl Render for ColorsStory { .flex_col() .gap_1() .overflow_y_scroll() - .text_color(gpui2::white()) + .text_color(gpui::white()) .children(color_scales.into_iter().map(|scale| { div() .flex() diff --git a/crates/storybook2/src/stories/focus.rs b/crates/storybook2/src/stories/focus.rs index aa71040b477abeddee443d851c1eaf1550ec3da1..16c03f87d5421af9d9336e462692102c4cb632bb 100644 --- a/crates/storybook2/src/stories/focus.rs +++ b/crates/storybook2/src/stories/focus.rs @@ -1,4 +1,4 @@ -use gpui2::{ +use gpui::{ div, Div, FocusEnabled, Focusable, KeyBinding, ParentElement, Render, StatefulInteraction, StatelessInteractive, Styled, View, VisualContext, WindowContext, }; @@ -33,7 +33,7 @@ impl FocusStory { impl Render for FocusStory { type Element = Div, FocusEnabled>; - fn render(&mut self, cx: &mut gpui2::ViewContext) -> Self::Element { + fn render(&mut self, cx: &mut gpui::ViewContext) -> Self::Element { let theme = cx.theme(); let color_1 = theme.styles.git.created; let color_2 = theme.styles.git.modified; diff --git a/crates/storybook2/src/stories/kitchen_sink.rs b/crates/storybook2/src/stories/kitchen_sink.rs index cfa91417b6de60f03284428e889d40c946a5a152..54d6f2a3a967cc3f6e5a29be97e36291c45bdeff 100644 --- a/crates/storybook2/src/stories/kitchen_sink.rs +++ b/crates/storybook2/src/stories/kitchen_sink.rs @@ -1,8 +1,5 @@ -use crate::{ - story::Story, - story_selector::{ComponentStory, ElementStory}, -}; -use gpui2::{Div, Render, StatefulInteraction, View, VisualContext}; +use crate::{story::Story, story_selector::ComponentStory}; +use gpui::{Div, Render, StatefulInteraction, View, VisualContext}; use strum::IntoEnumIterator; use ui::prelude::*; @@ -18,9 +15,6 @@ impl Render for KitchenSinkStory { type Element = Div>; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - let element_stories = ElementStory::iter() - .map(|selector| selector.story(cx)) - .collect::>(); let component_stories = ComponentStory::iter() .map(|selector| selector.story(cx)) .collect::>(); @@ -29,8 +23,6 @@ impl Render for KitchenSinkStory { .id("kitchen-sink") .overflow_y_scroll() .child(Story::title(cx, "Kitchen Sink")) - .child(Story::label(cx, "Elements")) - .child(div().flex().flex_col().children(element_stories)) .child(Story::label(cx, "Components")) .child(div().flex().flex_col().children(component_stories)) // Add a bit of space at the bottom of the kitchen sink so elements diff --git a/crates/storybook2/src/stories/scroll.rs b/crates/storybook2/src/stories/scroll.rs index 9236629c341e5c1ffa5706e656c0bdbf9bcea09d..cdb48603e093f62e4ef5ee5968af068798e3bce9 100644 --- a/crates/storybook2/src/stories/scroll.rs +++ b/crates/storybook2/src/stories/scroll.rs @@ -1,4 +1,4 @@ -use gpui2::{ +use gpui::{ div, px, Component, Div, ParentElement, Render, SharedString, StatefulInteraction, Styled, View, VisualContext, WindowContext, }; @@ -15,7 +15,7 @@ impl ScrollStory { impl Render for ScrollStory { type Element = Div>; - fn render(&mut self, cx: &mut gpui2::ViewContext) -> Self::Element { + fn render(&mut self, cx: &mut gpui::ViewContext) -> Self::Element { let theme = cx.theme(); let color_1 = theme.styles.git.created; let color_2 = theme.styles.git.modified; diff --git a/crates/storybook2/src/stories/text.rs b/crates/storybook2/src/stories/text.rs index 85a9fd51a6ed67860d53e663a31dd30ff18e77ca..b4a4c86e7eed15fb774ea1586e4ab36a1ea5aafe 100644 --- a/crates/storybook2/src/stories/text.rs +++ b/crates/storybook2/src/stories/text.rs @@ -1,4 +1,4 @@ -use gpui2::{div, white, Div, ParentElement, Render, Styled, View, VisualContext, WindowContext}; +use gpui::{div, white, Div, ParentElement, Render, Styled, View, VisualContext, WindowContext}; pub struct TextStory; @@ -11,7 +11,7 @@ impl TextStory { impl Render for TextStory { type Element = Div; - fn render(&mut self, cx: &mut gpui2::ViewContext) -> Self::Element { + fn render(&mut self, cx: &mut gpui::ViewContext) -> Self::Element { div().size_full().bg(white()).child(concat!( "The quick brown fox jumps over the lazy dog. ", "Meanwhile, the lazy dog decided it was time for a change. ", diff --git a/crates/storybook2/src/stories/z_index.rs b/crates/storybook2/src/stories/z_index.rs index c0e1456bc01a1ebb7ffe3f50ccf17ea411315179..46ec0f4a3511ea2b3a3cc7999e203a62d35a01d6 100644 --- a/crates/storybook2/src/stories/z_index.rs +++ b/crates/storybook2/src/stories/z_index.rs @@ -1,4 +1,4 @@ -use gpui2::{px, rgb, Div, Hsla, Render}; +use gpui::{px, rgb, Div, Hsla, Render}; use ui::prelude::*; use crate::story::Story; diff --git a/crates/storybook2/src/story_selector.rs b/crates/storybook2/src/story_selector.rs index 968309bd8a0cee2f00cb005cf0a486c51940e31f..f59208ccb8794948dd93afa99155d707ea91ad0d 100644 --- a/crates/storybook2/src/story_selector.rs +++ b/crates/storybook2/src/story_selector.rs @@ -5,57 +5,33 @@ use crate::stories::*; use anyhow::anyhow; use clap::builder::PossibleValue; use clap::ValueEnum; -use gpui2::{AnyView, VisualContext}; +use gpui::{AnyView, VisualContext}; use strum::{EnumIter, EnumString, IntoEnumIterator}; -use ui::{prelude::*, AvatarStory, ButtonStory, DetailsStory, IconStory, InputStory, LabelStory}; - -#[derive(Debug, PartialEq, Eq, Clone, Copy, strum::Display, EnumString, EnumIter)] -#[strum(serialize_all = "snake_case")] -pub enum ElementStory { - Avatar, - Button, - Colors, - Details, - Focus, - Icon, - Input, - Label, - Scroll, - Text, - ZIndex, -} - -impl ElementStory { - pub fn story(&self, cx: &mut WindowContext) -> AnyView { - match self { - Self::Colors => cx.build_view(|_| ColorsStory).into(), - Self::Avatar => cx.build_view(|_| AvatarStory).into(), - Self::Button => cx.build_view(|_| ButtonStory).into(), - Self::Details => cx.build_view(|_| DetailsStory).into(), - Self::Focus => FocusStory::view(cx).into(), - Self::Icon => cx.build_view(|_| IconStory).into(), - Self::Input => cx.build_view(|_| InputStory).into(), - Self::Label => cx.build_view(|_| LabelStory).into(), - Self::Scroll => ScrollStory::view(cx).into(), - Self::Text => TextStory::view(cx).into(), - Self::ZIndex => cx.build_view(|_| ZIndexStory).into(), - } - } -} +use ui::prelude::*; +use ui::{AvatarStory, ButtonStory, DetailsStory, IconStory, InputStory, LabelStory}; #[derive(Debug, PartialEq, Eq, Clone, Copy, strum::Display, EnumString, EnumIter)] #[strum(serialize_all = "snake_case")] pub enum ComponentStory { AssistantPanel, + Avatar, Breadcrumb, Buffer, + Button, ChatPanel, + Checkbox, CollabPanel, + Colors, CommandPalette, - Copilot, ContextMenu, + Copilot, + Details, Facepile, + Focus, + Icon, + Input, Keybinding, + Label, LanguageSelector, MultiBuffer, NotificationsPanel, @@ -63,29 +39,42 @@ pub enum ComponentStory { Panel, ProjectPanel, RecentProjects, + Scroll, Tab, TabBar, Terminal, + Text, ThemeSelector, TitleBar, Toast, Toolbar, TrafficLights, Workspace, + ZIndex, } impl ComponentStory { pub fn story(&self, cx: &mut WindowContext) -> AnyView { match self { Self::AssistantPanel => cx.build_view(|_| ui::AssistantPanelStory).into(), - Self::Buffer => cx.build_view(|_| ui::BufferStory).into(), + Self::Avatar => cx.build_view(|_| AvatarStory).into(), Self::Breadcrumb => cx.build_view(|_| ui::BreadcrumbStory).into(), + Self::Buffer => cx.build_view(|_| ui::BufferStory).into(), + Self::Button => cx.build_view(|_| ButtonStory).into(), Self::ChatPanel => cx.build_view(|_| ui::ChatPanelStory).into(), + Self::Checkbox => cx.build_view(|_| ui::CheckboxStory).into(), Self::CollabPanel => cx.build_view(|_| ui::CollabPanelStory).into(), + Self::Colors => cx.build_view(|_| ColorsStory).into(), Self::CommandPalette => cx.build_view(|_| ui::CommandPaletteStory).into(), Self::ContextMenu => cx.build_view(|_| ui::ContextMenuStory).into(), + Self::Copilot => cx.build_view(|_| ui::CopilotModalStory).into(), + Self::Details => cx.build_view(|_| DetailsStory).into(), Self::Facepile => cx.build_view(|_| ui::FacepileStory).into(), + Self::Focus => FocusStory::view(cx).into(), + Self::Icon => cx.build_view(|_| IconStory).into(), + Self::Input => cx.build_view(|_| InputStory).into(), Self::Keybinding => cx.build_view(|_| ui::KeybindingStory).into(), + Self::Label => cx.build_view(|_| LabelStory).into(), Self::LanguageSelector => cx.build_view(|_| ui::LanguageSelectorStory).into(), Self::MultiBuffer => cx.build_view(|_| ui::MultiBufferStory).into(), Self::NotificationsPanel => cx.build_view(|cx| ui::NotificationsPanelStory).into(), @@ -93,23 +82,24 @@ impl ComponentStory { Self::Panel => cx.build_view(|cx| ui::PanelStory).into(), Self::ProjectPanel => cx.build_view(|_| ui::ProjectPanelStory).into(), Self::RecentProjects => cx.build_view(|_| ui::RecentProjectsStory).into(), + Self::Scroll => ScrollStory::view(cx).into(), Self::Tab => cx.build_view(|_| ui::TabStory).into(), Self::TabBar => cx.build_view(|_| ui::TabBarStory).into(), Self::Terminal => cx.build_view(|_| ui::TerminalStory).into(), + Self::Text => TextStory::view(cx).into(), Self::ThemeSelector => cx.build_view(|_| ui::ThemeSelectorStory).into(), + Self::TitleBar => ui::TitleBarStory::view(cx).into(), Self::Toast => cx.build_view(|_| ui::ToastStory).into(), Self::Toolbar => cx.build_view(|_| ui::ToolbarStory).into(), Self::TrafficLights => cx.build_view(|_| ui::TrafficLightsStory).into(), - Self::Copilot => cx.build_view(|_| ui::CopilotModalStory).into(), - Self::TitleBar => ui::TitleBarStory::view(cx).into(), Self::Workspace => ui::WorkspaceStory::view(cx).into(), + Self::ZIndex => cx.build_view(|_| ZIndexStory).into(), } } } #[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum StorySelector { - Element(ElementStory), Component(ComponentStory), KitchenSink, } @@ -126,13 +116,6 @@ impl FromStr for StorySelector { return Ok(Self::KitchenSink); } - if let Some((_, story)) = story.split_once("elements/") { - let element_story = ElementStory::from_str(story) - .with_context(|| format!("story not found for element '{story}'"))?; - - return Ok(Self::Element(element_story)); - } - if let Some((_, story)) = story.split_once("components/") { let component_story = ComponentStory::from_str(story) .with_context(|| format!("story not found for component '{story}'"))?; @@ -147,7 +130,6 @@ impl FromStr for StorySelector { impl StorySelector { pub fn story(&self, cx: &mut WindowContext) -> AnyView { match self { - Self::Element(element_story) => element_story.story(cx), Self::Component(component_story) => component_story.story(cx), Self::KitchenSink => KitchenSinkStory::view(cx).into(), } @@ -160,11 +142,9 @@ static ALL_STORY_SELECTORS: OnceLock> = OnceLock::new(); impl ValueEnum for StorySelector { fn value_variants<'a>() -> &'a [Self] { let stories = ALL_STORY_SELECTORS.get_or_init(|| { - let element_stories = ElementStory::iter().map(StorySelector::Element); let component_stories = ComponentStory::iter().map(StorySelector::Component); - element_stories - .chain(component_stories) + component_stories .chain(std::iter::once(StorySelector::KitchenSink)) .collect::>() }); @@ -174,7 +154,6 @@ impl ValueEnum for StorySelector { fn to_possible_value(&self) -> Option { let value = match self { - Self::Element(story) => format!("elements/{story}"), Self::Component(story) => format!("components/{story}"), Self::KitchenSink => "kitchen_sink".to_string(), }; diff --git a/crates/storybook2/src/storybook2.rs b/crates/storybook2/src/storybook2.rs index 4e2c439db0c723baf4f8d7585281020474eec952..c8849c134278ebe36d583c34a14b6e8961f4885b 100644 --- a/crates/storybook2/src/storybook2.rs +++ b/crates/storybook2/src/storybook2.rs @@ -8,7 +8,7 @@ mod story_selector; use std::sync::Arc; use clap::Parser; -use gpui2::{ +use gpui::{ div, px, size, AnyView, AppContext, Bounds, Div, Render, ViewContext, VisualContext, WindowBounds, WindowOptions, }; @@ -22,7 +22,7 @@ use ui::prelude::*; use crate::assets::Assets; use crate::story_selector::StorySelector; -// gpui2::actions! { +// gpui::actions! { // storybook, // [ToggleInspector] // } @@ -51,7 +51,7 @@ fn main() { let theme_name = args.theme.unwrap_or("Zed Pro Moonlight".to_string()); let asset_source = Arc::new(Assets); - gpui2::App::production(asset_source).run(move |cx| { + gpui::App::production(asset_source).run(move |cx| { load_embedded_fonts(cx).unwrap(); let mut store = SettingsStore::default(); @@ -116,7 +116,7 @@ impl Render for StoryWrapper { } } -fn load_embedded_fonts(cx: &AppContext) -> gpui2::Result<()> { +fn load_embedded_fonts(cx: &AppContext) -> gpui::Result<()> { let font_paths = cx.asset_source().list("fonts")?; let mut embedded_fonts = Vec::new(); for font_path in font_paths { diff --git a/crates/terminal2/src/mappings/colors.rs b/crates/terminal2/src/mappings/colors.rs index fc3557b4e80c3095c8cc63278d0a86e250230362..d3c8443cbf962c68dc3dd124aff2495d0a88ddc0 100644 --- a/crates/terminal2/src/mappings/colors.rs +++ b/crates/terminal2/src/mappings/colors.rs @@ -1,6 +1,6 @@ // todo!() use alacritty_terminal::term::color::Rgb as AlacRgb; -// use gpui2::color::Color; +// use gpui::color::Color; // use theme2::TerminalStyle; ///Converts a 2, 8, or 24 bit color ANSI color to the GPUI equivalent diff --git a/crates/theme2/src/colors.rs b/crates/theme2/src/colors.rs index 866d35cb622b8b3e08b4d3db870bf2fc624a7fe8..441f22be81593926f51d808cf1d80778854887b4 100644 --- a/crates/theme2/src/colors.rs +++ b/crates/theme2/src/colors.rs @@ -1,4 +1,4 @@ -use gpui::{HighlightStyle, Hsla}; +use gpui::Hsla; use refineable::Refineable; use crate::SyntaxTheme; @@ -64,24 +64,26 @@ pub struct GitStatusColors { pub renamed: Hsla, } -#[derive(Refineable, Clone, Debug, Default)] -#[refineable(debug)] +#[derive(Refineable, Clone, Debug)] +#[refineable(debug, deserialize)] pub struct ThemeColors { pub border: Hsla, pub border_variant: Hsla, pub border_focused: Hsla, + pub border_selected: Hsla, pub border_transparent: Hsla, - pub elevated_surface: Hsla, - pub surface: Hsla, + pub border_disabled: Hsla, + pub elevated_surface_background: Hsla, + pub surface_background: Hsla, pub background: Hsla, - pub element: Hsla, + pub element_background: Hsla, pub element_hover: Hsla, pub element_active: Hsla, pub element_selected: Hsla, pub element_disabled: Hsla, pub element_placeholder: Hsla, pub element_drop_target: Hsla, - pub ghost_element: Hsla, + pub ghost_element_background: Hsla, pub ghost_element_hover: Hsla, pub ghost_element_active: Hsla, pub ghost_element_selected: Hsla, @@ -96,38 +98,57 @@ pub struct ThemeColors { pub icon_disabled: Hsla, pub icon_placeholder: Hsla, pub icon_accent: Hsla, - pub status_bar: Hsla, - pub title_bar: Hsla, - pub toolbar: Hsla, - pub tab_bar: Hsla, - pub tab_inactive: Hsla, - pub tab_active: Hsla, - pub editor: Hsla, - pub editor_gutter: Hsla, - pub editor_subheader: Hsla, - pub editor_active_line: Hsla, - pub editor_highlighted_line: Hsla, + pub status_bar_background: Hsla, + pub title_bar_background: Hsla, + pub toolbar_background: Hsla, + pub tab_bar_background: Hsla, + pub tab_inactive_background: Hsla, + pub tab_active_background: Hsla, + pub editor_background: Hsla, + pub editor_gutter_background: Hsla, + pub editor_subheader_background: Hsla, + pub editor_active_line_background: Hsla, + pub editor_highlighted_line_background: Hsla, pub editor_line_number: Hsla, pub editor_active_line_number: Hsla, pub editor_invisible: Hsla, pub editor_wrap_guide: Hsla, pub editor_active_wrap_guide: Hsla, + pub terminal_background: Hsla, + pub terminal_ansi_bright_black: Hsla, + pub terminal_ansi_bright_red: Hsla, + pub terminal_ansi_bright_green: Hsla, + pub terminal_ansi_bright_yellow: Hsla, + pub terminal_ansi_bright_blue: Hsla, + pub terminal_ansi_bright_magenta: Hsla, + pub terminal_ansi_bright_cyan: Hsla, + pub terminal_ansi_bright_white: Hsla, + pub terminal_ansi_black: Hsla, + pub terminal_ansi_red: Hsla, + pub terminal_ansi_green: Hsla, + pub terminal_ansi_yellow: Hsla, + pub terminal_ansi_blue: Hsla, + pub terminal_ansi_magenta: Hsla, + pub terminal_ansi_cyan: Hsla, + pub terminal_ansi_white: Hsla, } #[derive(Refineable, Clone)] pub struct ThemeStyles { pub system: SystemColors, + + #[refineable] pub colors: ThemeColors, pub status: StatusColors, pub git: GitStatusColors, pub player: PlayerColors, pub syntax: SyntaxTheme, - pub inlay_highlight_style: HighlightStyle, - pub suggestion_highlight_style: HighlightStyle, } #[cfg(test)] mod tests { + use serde_json::json; + use super::*; #[test] @@ -169,4 +190,16 @@ mod tests { assert_eq!(colors.text, magenta); assert_eq!(colors.background, green); } + + #[test] + fn deserialize_theme_colors_refinement_from_json() { + let colors: ThemeColorsRefinement = serde_json::from_value(json!({ + "background": "#ff00ff", + "text": "#ff0000" + })) + .unwrap(); + + assert_eq!(colors.background, Some(gpui::rgb(0xff00ff))); + assert_eq!(colors.text, Some(gpui::rgb(0xff0000))); + } } diff --git a/crates/theme2/src/default_colors.rs b/crates/theme2/src/default_colors.rs index 0df1988ead70d321c9b25b05e80e47538cbae8f6..ce6fe25907d547352ef4c2fe7b1635f70fdd79aa 100644 --- a/crates/theme2/src/default_colors.rs +++ b/crates/theme2/src/default_colors.rs @@ -205,18 +205,20 @@ impl ThemeColors { border: neutral().light().step_6(), border_variant: neutral().light().step_5(), border_focused: blue().light().step_5(), + border_disabled: neutral().light().step_3(), + border_selected: blue().light().step_5(), border_transparent: system.transparent, - elevated_surface: neutral().light().step_2(), - surface: neutral().light().step_2(), + elevated_surface_background: neutral().light().step_2(), + surface_background: neutral().light().step_2(), background: neutral().light().step_1(), - element: neutral().light().step_3(), + element_background: neutral().light().step_3(), element_hover: neutral().light().step_4(), element_active: neutral().light().step_5(), element_selected: neutral().light().step_5(), element_disabled: neutral().light_alpha().step_3(), element_placeholder: neutral().light().step_11(), element_drop_target: blue().light_alpha().step_2(), - ghost_element: system.transparent, + ghost_element_background: system.transparent, ghost_element_hover: neutral().light().step_4(), ghost_element_active: neutral().light().step_5(), ghost_element_selected: neutral().light().step_5(), @@ -231,22 +233,39 @@ impl ThemeColors { icon_disabled: neutral().light().step_9(), icon_placeholder: neutral().light().step_10(), icon_accent: blue().light().step_11(), - status_bar: neutral().light().step_2(), - title_bar: neutral().light().step_2(), - toolbar: neutral().light().step_1(), - tab_bar: neutral().light().step_2(), - tab_active: neutral().light().step_1(), - tab_inactive: neutral().light().step_2(), - editor: neutral().light().step_1(), - editor_gutter: neutral().light().step_1(), // todo!("pick the right colors") - editor_subheader: neutral().light().step_2(), - editor_active_line: neutral().light_alpha().step_3(), + status_bar_background: neutral().light().step_2(), + title_bar_background: neutral().light().step_2(), + toolbar_background: neutral().light().step_1(), + tab_bar_background: neutral().light().step_2(), + tab_active_background: neutral().light().step_1(), + tab_inactive_background: neutral().light().step_2(), + editor_background: neutral().light().step_1(), + editor_gutter_background: neutral().light().step_1(), // todo!("pick the right colors") + editor_subheader_background: neutral().light().step_2(), + editor_active_line_background: neutral().light_alpha().step_3(), editor_line_number: neutral().light_alpha().step_3(), // todo!("pick the right colors") editor_active_line_number: neutral().light_alpha().step_3(), // todo!("pick the right colors") - editor_highlighted_line: neutral().light_alpha().step_4(), // todo!("pick the right colors") + editor_highlighted_line_background: neutral().light_alpha().step_4(), // todo!("pick the right colors") editor_invisible: neutral().light_alpha().step_4(), // todo!("pick the right colors") editor_wrap_guide: neutral().light_alpha().step_4(), // todo!("pick the right colors") editor_active_wrap_guide: neutral().light_alpha().step_4(), // todo!("pick the right colors") + terminal_background: neutral().light().step_1(), + terminal_ansi_black: black().light().step_12(), + terminal_ansi_red: red().light().step_11(), + terminal_ansi_green: green().light().step_11(), + terminal_ansi_yellow: yellow().light().step_11(), + terminal_ansi_blue: blue().light().step_11(), + terminal_ansi_magenta: violet().light().step_11(), + terminal_ansi_cyan: cyan().light().step_11(), + terminal_ansi_white: neutral().light().step_12(), + terminal_ansi_bright_black: black().light().step_11(), + terminal_ansi_bright_red: red().light().step_10(), + terminal_ansi_bright_green: green().light().step_10(), + terminal_ansi_bright_yellow: yellow().light().step_10(), + terminal_ansi_bright_blue: blue().light().step_10(), + terminal_ansi_bright_magenta: violet().light().step_10(), + terminal_ansi_bright_cyan: cyan().light().step_10(), + terminal_ansi_bright_white: neutral().light().step_11(), } } @@ -257,18 +276,20 @@ impl ThemeColors { border: neutral().dark().step_6(), border_variant: neutral().dark().step_5(), border_focused: blue().dark().step_5(), + border_disabled: neutral().dark().step_3(), + border_selected: blue().dark().step_5(), border_transparent: system.transparent, - elevated_surface: neutral().dark().step_2(), - surface: neutral().dark().step_2(), + elevated_surface_background: neutral().dark().step_2(), + surface_background: neutral().dark().step_2(), background: neutral().dark().step_1(), - element: neutral().dark().step_3(), + element_background: neutral().dark().step_3(), element_hover: neutral().dark().step_4(), element_active: neutral().dark().step_5(), element_selected: neutral().dark().step_5(), element_disabled: neutral().dark_alpha().step_3(), element_placeholder: neutral().dark().step_11(), element_drop_target: blue().dark_alpha().step_2(), - ghost_element: system.transparent, + ghost_element_background: system.transparent, ghost_element_hover: neutral().dark().step_4(), ghost_element_active: neutral().dark().step_5(), ghost_element_selected: neutral().dark().step_5(), @@ -283,22 +304,39 @@ impl ThemeColors { icon_disabled: neutral().dark().step_9(), icon_placeholder: neutral().dark().step_10(), icon_accent: blue().dark().step_11(), - status_bar: neutral().dark().step_2(), - title_bar: neutral().dark().step_2(), - toolbar: neutral().dark().step_1(), - tab_bar: neutral().dark().step_2(), - tab_active: neutral().dark().step_1(), - tab_inactive: neutral().dark().step_2(), - editor: neutral().dark().step_1(), - editor_gutter: neutral().dark().step_1(), // todo!("pick the right colors") - editor_subheader: neutral().dark().step_2(), - editor_active_line: neutral().dark_alpha().step_3(), + status_bar_background: neutral().dark().step_2(), + title_bar_background: neutral().dark().step_2(), + toolbar_background: neutral().dark().step_1(), + tab_bar_background: neutral().dark().step_2(), + tab_active_background: neutral().dark().step_1(), + tab_inactive_background: neutral().dark().step_2(), + editor_background: neutral().dark().step_1(), + editor_gutter_background: neutral().dark().step_1(), // todo!("pick the right colors") + editor_subheader_background: neutral().dark().step_2(), + editor_active_line_background: neutral().dark_alpha().step_3(), editor_line_number: neutral().dark_alpha().step_3(), // todo!("pick the right colors") editor_active_line_number: neutral().dark_alpha().step_3(), // todo!("pick the right colors") - editor_highlighted_line: neutral().dark_alpha().step_4(), // todo!("pick the right colors") + editor_highlighted_line_background: neutral().dark_alpha().step_4(), // todo!("pick the right colors") editor_invisible: neutral().dark_alpha().step_4(), // todo!("pick the right colors") editor_wrap_guide: neutral().dark_alpha().step_4(), // todo!("pick the right colors") editor_active_wrap_guide: neutral().dark_alpha().step_4(), // todo!("pick the right colors") + terminal_background: neutral().dark().step_1(), + terminal_ansi_black: black().dark().step_12(), + terminal_ansi_red: red().dark().step_11(), + terminal_ansi_green: green().dark().step_11(), + terminal_ansi_yellow: yellow().dark().step_11(), + terminal_ansi_blue: blue().dark().step_11(), + terminal_ansi_magenta: violet().dark().step_11(), + terminal_ansi_cyan: cyan().dark().step_11(), + terminal_ansi_white: neutral().dark().step_12(), + terminal_ansi_bright_black: black().dark().step_11(), + terminal_ansi_bright_red: red().dark().step_10(), + terminal_ansi_bright_green: green().dark().step_10(), + terminal_ansi_bright_yellow: yellow().dark().step_10(), + terminal_ansi_bright_blue: blue().dark().step_10(), + terminal_ansi_bright_magenta: violet().dark().step_10(), + terminal_ansi_bright_cyan: cyan().dark().step_10(), + terminal_ansi_bright_white: neutral().dark().step_11(), } } } diff --git a/crates/theme2/src/default_theme.rs b/crates/theme2/src/default_theme.rs index 9a676dfe6dbccb6a7755dc639213c73a785b626a..d7360b6f71ecb3167d08907d87d91aff4cee3724 100644 --- a/crates/theme2/src/default_theme.rs +++ b/crates/theme2/src/default_theme.rs @@ -15,8 +15,6 @@ fn zed_pro_daylight() -> ThemeVariant { git: GitStatusColors::default(), player: PlayerColors::default(), syntax: SyntaxTheme::default_light(), - inlay_highlight_style: Default::default(), - suggestion_highlight_style: Default::default(), }, } } @@ -33,8 +31,6 @@ pub(crate) fn zed_pro_moonlight() -> ThemeVariant { git: GitStatusColors::default(), player: PlayerColors::default(), syntax: SyntaxTheme::default_dark(), - inlay_highlight_style: Default::default(), - suggestion_highlight_style: Default::default(), }, } } diff --git a/crates/theme2/src/registry.rs b/crates/theme2/src/registry.rs index c1bba121e1bff5895a68b3acacd33943441d28a9..bc6f8dbe945a2c137409b5bfddd1d796a65b3616 100644 --- a/crates/theme2/src/registry.rs +++ b/crates/theme2/src/registry.rs @@ -1,4 +1,4 @@ -use crate::{zed_pro_family, ThemeFamily, ThemeVariant}; +use crate::{all_imported_themes, zed_pro_family, ThemeFamily, ThemeVariant}; use anyhow::{anyhow, Result}; use gpui::SharedString; use std::{collections::HashMap, sync::Arc}; @@ -42,7 +42,10 @@ impl Default for ThemeRegistry { themes: HashMap::default(), }; - this.insert_theme_families([zed_pro_family()]); + let mut all_themes = vec![zed_pro_family()]; + all_themes.extend(all_imported_themes()); + + this.insert_theme_families(all_themes); this } diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index e2a3885e215b44811288d15ab82d6eb3d5e05f5c..40e782c61790ba90c9b4d12ae731e3a0de570dbd 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -5,6 +5,7 @@ mod registry; mod scale; mod settings; mod syntax; +mod themes; use std::sync::Arc; @@ -16,10 +17,11 @@ pub use registry::*; pub use scale::*; pub use settings::*; pub use syntax::*; +pub use themes::*; use gpui::{AppContext, Hsla, SharedString}; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, PartialEq, Clone, Copy)] pub enum Appearance { Light, Dark, @@ -41,8 +43,7 @@ impl ActiveTheme for AppContext { } pub struct ThemeFamily { - #[allow(dead_code)] - pub(crate) id: String, + pub id: String, pub name: SharedString, pub author: SharedString, pub themes: Vec, @@ -52,8 +53,7 @@ pub struct ThemeFamily { impl ThemeFamily {} pub struct ThemeVariant { - #[allow(dead_code)] - pub(crate) id: String, + pub id: String, pub name: SharedString, pub appearance: Appearance, pub styles: ThemeStyles, diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs new file mode 100644 index 0000000000000000000000000000000000000000..46e14a99ad2d0044467a434382b0ccd43881ff12 --- /dev/null +++ b/crates/theme2/src/themes/andromeda.rs @@ -0,0 +1,333 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn andromeda() -> ThemeFamily { + ThemeFamily { + id: "192bb9a2-a028-4c9a-b713-4c92330b3fab".into(), + name: "Andromeda".into(), + author: "Eliver Lara (EliverLara)".into(), + themes: vec![ + ThemeVariant { + id: "a3aaa73f-f225-41bd-8d52-77ca1df0b7f7".into(), + name: "Andromeda".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1b1d23ff).into(), + border_variant: rgba(0x1b1d23ff).into(), + border_focused: rgba(0x1b1d23ff).into(), + border_disabled: rgba(0x1b1d23ff).into(), + border_selected: rgba(0x1b1d23ff).into(), + border_transparent: rgba(0x1b1d23ff).into(), + elevated_surface_background: rgba(0x23262eff).into(), + surface_background: rgba(0x23262eff).into(), + background: rgba(0x23262eff).into(), + element_background: rgba(0x00e8c5cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd4cdd8ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x23262eff).into(), + tab_active_background: rgba(0x23262eff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x000000e6).into(), + terminal_ansi_bright_red: rgba(0xee5d42ff).into(), + terminal_ansi_bright_green: rgba(0x95e072ff).into(), + terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), + terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_bright_white: rgba(0xb0b4baff).into(), + terminal_ansi_black: rgba(0x000000f2).into(), + terminal_ansi_red: rgba(0xee5d42ff).into(), + terminal_ansi_green: rgba(0x95e072ff).into(), + terminal_ansi_yellow: rgba(0xffe66dff).into(), + terminal_ansi_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_white: rgba(0xedeef0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "91a17b19-1e74-487e-b0a0-56e2e5360ab8".into(), + name: "Andromeda Bordered".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1b1d23ff).into(), + border_variant: rgba(0x1b1d23ff).into(), + border_focused: rgba(0x1b1d23ff).into(), + border_disabled: rgba(0x1b1d23ff).into(), + border_selected: rgba(0x1b1d23ff).into(), + border_transparent: rgba(0x1b1d23ff).into(), + elevated_surface_background: rgba(0x23262eff).into(), + surface_background: rgba(0x23262eff).into(), + background: rgba(0x262933ff).into(), + element_background: rgba(0x00e8c5cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd4cdd8ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x23262eff).into(), + tab_active_background: rgba(0x262933ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x000000e6).into(), + terminal_ansi_bright_red: rgba(0xee5d42ff).into(), + terminal_ansi_bright_green: rgba(0x95e072ff).into(), + terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), + terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_bright_white: rgba(0xb0b4baff).into(), + terminal_ansi_black: rgba(0x000000f2).into(), + terminal_ansi_red: rgba(0xee5d42ff).into(), + terminal_ansi_green: rgba(0x95e072ff).into(), + terminal_ansi_yellow: rgba(0xffe66dff).into(), + terminal_ansi_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_white: rgba(0xedeef0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs new file mode 100644 index 0000000000000000000000000000000000000000..40fdb7ac15ba69c7efb76857dfe8298691860ecd --- /dev/null +++ b/crates/theme2/src/themes/ayu.rs @@ -0,0 +1,491 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn ayu() -> ThemeFamily { + ThemeFamily { + id: "5ace5bd5-0231-4f26-a69f-40a96dd4163e".into(), + name: "Ayu".into(), + author: "dempfi (Ike Ku)".into(), + themes: vec![ + ThemeVariant { + id: "7781d65c-4575-421d-af3c-061ab0b0478a".into(), + name: "Ayu Light".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x6b7d8f1f).into(), + border_variant: rgba(0x6b7d8f1f).into(), + border_focused: rgba(0x6b7d8f1f).into(), + border_disabled: rgba(0x6b7d8f1f).into(), + border_selected: rgba(0x6b7d8f1f).into(), + border_transparent: rgba(0x6b7d8f1f).into(), + elevated_surface_background: rgba(0xf8f9faff).into(), + surface_background: rgba(0xf8f9faff).into(), + background: rgba(0xf8f9faff).into(), + element_background: rgba(0xffaa32ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x8a9199ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf8f9faff).into(), + tab_active_background: rgba(0xf8f9faff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf8f9faff).into(), + terminal_ansi_bright_black: rgba(0x686868ff).into(), + terminal_ansi_bright_red: rgba(0xef7070ff).into(), + terminal_ansi_bright_green: rgba(0x86b300ff).into(), + terminal_ansi_bright_yellow: rgba(0xf2ad48ff).into(), + terminal_ansi_bright_blue: rgba(0x389ee6ff).into(), + terminal_ansi_bright_magenta: rgba(0xa37accff).into(), + terminal_ansi_bright_cyan: rgba(0x4bbf98ff).into(), + terminal_ansi_bright_white: rgba(0xd1d1d1ff).into(), + terminal_ansi_black: rgba(0x000000ff).into(), + terminal_ansi_red: rgba(0xea6c6dff).into(), + terminal_ansi_green: rgba(0x6cbf43ff).into(), + terminal_ansi_yellow: rgba(0xeca944ff).into(), + terminal_ansi_blue: rgba(0x3198e1ff).into(), + terminal_ansi_magenta: rgba(0x9e75c7ff).into(), + terminal_ansi_cyan: rgba(0x46ba94ff).into(), + terminal_ansi_white: rgba(0xc7c7c7ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "68066666-5e56-4937-9434-510ffd0fe05f".into(), + name: "Ayu Mirage".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x171a24ff).into(), + border_variant: rgba(0x171a24ff).into(), + border_focused: rgba(0x171a24ff).into(), + border_disabled: rgba(0x171a24ff).into(), + border_selected: rgba(0x171a24ff).into(), + border_transparent: rgba(0x171a24ff).into(), + elevated_surface_background: rgba(0x1f2430ff).into(), + surface_background: rgba(0x1f2430ff).into(), + background: rgba(0x1f2430ff).into(), + element_background: rgba(0xffcb65ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0x707a8cff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x1f2430ff).into(), + tab_active_background: rgba(0x1f2430ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x1f2430ff).into(), + terminal_ansi_bright_black: rgba(0x686868ff).into(), + terminal_ansi_bright_red: rgba(0xf18678ff).into(), + terminal_ansi_bright_green: rgba(0xd4fe7fff).into(), + terminal_ansi_bright_yellow: rgba(0xffd173ff).into(), + terminal_ansi_bright_blue: rgba(0x73cfffff).into(), + terminal_ansi_bright_magenta: rgba(0xdfbfffff).into(), + terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x171a24ff).into(), + terminal_ansi_red: rgba(0xed8173ff).into(), + terminal_ansi_green: rgba(0x86d96bff).into(), + terminal_ansi_yellow: rgba(0xfacc6eff).into(), + terminal_ansi_blue: rgba(0x6ccafaff).into(), + terminal_ansi_magenta: rgba(0xdabafaff).into(), + terminal_ansi_cyan: rgba(0x90e1c6ff).into(), + terminal_ansi_white: rgba(0xc7c7c7ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "d4f949b8-e5b9-4337-a52e-2ed1752a6c4f".into(), + name: "Ayu Dark".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1e232bff).into(), + border_variant: rgba(0x1e232bff).into(), + border_focused: rgba(0x1e232bff).into(), + border_disabled: rgba(0x1e232bff).into(), + border_selected: rgba(0x1e232bff).into(), + border_transparent: rgba(0x1e232bff).into(), + elevated_surface_background: rgba(0x0b0e14ff).into(), + surface_background: rgba(0x0b0e14ff).into(), + background: rgba(0x0b0e14ff).into(), + element_background: rgba(0xe6b450ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0x565b66ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x0b0e14ff).into(), + tab_active_background: rgba(0x0b0e14ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x0b0e14ff).into(), + terminal_ansi_bright_black: rgba(0x686868ff).into(), + terminal_ansi_bright_red: rgba(0xef7077ff).into(), + terminal_ansi_bright_green: rgba(0xa9d94bff).into(), + terminal_ansi_bright_yellow: rgba(0xffb353ff).into(), + terminal_ansi_bright_blue: rgba(0x59c2ffff).into(), + terminal_ansi_bright_magenta: rgba(0xd2a6ffff).into(), + terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x1e232bff).into(), + terminal_ansi_red: rgba(0xea6c72ff).into(), + terminal_ansi_green: rgba(0x7ed962ff).into(), + terminal_ansi_yellow: rgba(0xf9af4fff).into(), + terminal_ansi_blue: rgba(0x52bdfaff).into(), + terminal_ansi_magenta: rgba(0xcca1faff).into(), + terminal_ansi_cyan: rgba(0x90e1c6ff).into(), + terminal_ansi_white: rgba(0xc7c7c7ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs new file mode 100644 index 0000000000000000000000000000000000000000..2fae1b04f6ba0ceaeae2819c730da928ac051a87 --- /dev/null +++ b/crates/theme2/src/themes/dracula.rs @@ -0,0 +1,173 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn dracula() -> ThemeFamily { + ThemeFamily { + id: "20b9a8c0-0b74-483b-bed2-be7a053e1321".into(), + name: "Dracula".into(), + author: "Zeno Rocha".into(), + themes: vec![ThemeVariant { + id: "02f5624f-9b0a-48e0-8897-4557adc8f104".into(), + name: "Dracula".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xbd93f9ff).into(), + border_variant: rgba(0xbd93f9ff).into(), + border_focused: rgba(0xbd93f9ff).into(), + border_disabled: rgba(0xbd93f9ff).into(), + border_selected: rgba(0xbd93f9ff).into(), + border_transparent: rgba(0xbd93f9ff).into(), + elevated_surface_background: rgba(0x282a35ff).into(), + surface_background: rgba(0x282a35ff).into(), + background: rgba(0x282a35ff).into(), + element_background: rgba(0x44475aff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xf8f8f2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x21222cff).into(), + tab_active_background: rgba(0x282a35ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x282a35ff).into(), + terminal_ansi_bright_black: rgba(0x6272a4ff).into(), + terminal_ansi_bright_red: rgba(0xff6d6dff).into(), + terminal_ansi_bright_green: rgba(0x69ff94ff).into(), + terminal_ansi_bright_yellow: rgba(0xffffa5ff).into(), + terminal_ansi_bright_blue: rgba(0xd6abfeff).into(), + terminal_ansi_bright_magenta: rgba(0xff92dfff).into(), + terminal_ansi_bright_cyan: rgba(0xa3fefeff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x21222cff).into(), + terminal_ansi_red: rgba(0xff5555ff).into(), + terminal_ansi_green: rgba(0x50fa7bff).into(), + terminal_ansi_yellow: rgba(0xf1fa8cff).into(), + terminal_ansi_blue: rgba(0xbd93f9ff).into(), + terminal_ansi_magenta: rgba(0xff79c6ff).into(), + terminal_ansi_cyan: rgba(0x8be9fdff).into(), + terminal_ansi_white: rgba(0xf8f8f2ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs new file mode 100644 index 0000000000000000000000000000000000000000..db5849718771d836cccd3f0230937b2e15176696 --- /dev/null +++ b/crates/theme2/src/themes/gruvbox.rs @@ -0,0 +1,965 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn gruvbox() -> ThemeFamily { + ThemeFamily { + id: "c0b7f0e7-f261-4a33-a2bf-baf2e140aac4".into(), + name: "Gruvbox".into(), + author: "morhetz".into(), + themes: vec![ + ThemeVariant { + id: "fb9f8f64-372b-4fda-8dbd-d610c97a9691".into(), + name: "Gruvbox Dark Hard".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3c3836ff).into(), + border_variant: rgba(0x3c3836ff).into(), + border_focused: rgba(0x3c3836ff).into(), + border_disabled: rgba(0x3c3836ff).into(), + border_selected: rgba(0x3c3836ff).into(), + border_transparent: rgba(0x3c3836ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x1d2021ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xebdbb2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x1d2021ff).into(), + tab_active_background: rgba(0x32302fff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x1d2021ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0xfb4833ff).into(), + terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), + terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), + terminal_ansi_bright_blue: rgba(0x83a598ff).into(), + terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), + terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), + terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), + terminal_ansi_black: rgba(0x3c3836ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0xa89984ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "72f0ea45-33bc-49d8-9f52-87540f858fb4".into(), + name: "Gruvbox Dark Medium".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3c3836ff).into(), + border_variant: rgba(0x3c3836ff).into(), + border_focused: rgba(0x3c3836ff).into(), + border_disabled: rgba(0x3c3836ff).into(), + border_selected: rgba(0x3c3836ff).into(), + border_transparent: rgba(0x3c3836ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x282828ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xebdbb2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x282828ff).into(), + tab_active_background: rgba(0x3c3836ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x282828ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0xfb4833ff).into(), + terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), + terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), + terminal_ansi_bright_blue: rgba(0x83a598ff).into(), + terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), + terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), + terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), + terminal_ansi_black: rgba(0x3c3836ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0xa89984ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "5ea1cdf8-6ed0-4e54-b44a-14c6634701cf".into(), + name: "Gruvbox Dark Soft".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3c3836ff).into(), + border_variant: rgba(0x3c3836ff).into(), + border_focused: rgba(0x3c3836ff).into(), + border_disabled: rgba(0x3c3836ff).into(), + border_selected: rgba(0x3c3836ff).into(), + border_transparent: rgba(0x3c3836ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x32302fff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xebdbb2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x32302fff).into(), + tab_active_background: rgba(0x504945ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x32302fff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0xfb4833ff).into(), + terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), + terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), + terminal_ansi_bright_blue: rgba(0x83a598ff).into(), + terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), + terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), + terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), + terminal_ansi_black: rgba(0x3c3836ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0xa89984ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "b0c9082f-00c8-4a02-a4de-9fd7af97c7f2".into(), + name: "Gruvbox Light Hard".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xebdbb2ff).into(), + border_variant: rgba(0xebdbb2ff).into(), + border_focused: rgba(0xebdbb2ff).into(), + border_disabled: rgba(0xebdbb2ff).into(), + border_selected: rgba(0xebdbb2ff).into(), + border_transparent: rgba(0xebdbb2ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xf9f5d7ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x3c3836ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf9f5d7ff).into(), + tab_active_background: rgba(0xf2e5bcff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf9f5d7ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0x9d0006ff).into(), + terminal_ansi_bright_green: rgba(0x79740eff).into(), + terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), + terminal_ansi_bright_blue: rgba(0x066578ff).into(), + terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), + terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), + terminal_ansi_bright_white: rgba(0x3c3836ff).into(), + terminal_ansi_black: rgba(0xebdbb2ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0x7c6f64ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "172c281c-ff0a-496e-8794-880e2fc3aa49".into(), + name: "Gruvbox Light Medium".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xebdbb2ff).into(), + border_variant: rgba(0xebdbb2ff).into(), + border_focused: rgba(0xebdbb2ff).into(), + border_disabled: rgba(0xebdbb2ff).into(), + border_selected: rgba(0xebdbb2ff).into(), + border_transparent: rgba(0xebdbb2ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xfbf1c7ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x3c3836ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xfbf1c7ff).into(), + tab_active_background: rgba(0xebdbb2ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xfbf1c7ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0x9d0006ff).into(), + terminal_ansi_bright_green: rgba(0x79740eff).into(), + terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), + terminal_ansi_bright_blue: rgba(0x066578ff).into(), + terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), + terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), + terminal_ansi_bright_white: rgba(0x3c3836ff).into(), + terminal_ansi_black: rgba(0xebdbb2ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0x7c6f64ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "b94f3305-b755-44f2-948c-cfd8c9d3158f".into(), + name: "Gruvbox Light Soft".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xebdbb2ff).into(), + border_variant: rgba(0xebdbb2ff).into(), + border_focused: rgba(0xebdbb2ff).into(), + border_disabled: rgba(0xebdbb2ff).into(), + border_selected: rgba(0xebdbb2ff).into(), + border_transparent: rgba(0xebdbb2ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xf2e5bcff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x3c3836ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf2e5bcff).into(), + tab_active_background: rgba(0xd5c4a1ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf2e5bcff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0x9d0006ff).into(), + terminal_ansi_bright_green: rgba(0x79740eff).into(), + terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), + terminal_ansi_bright_blue: rgba(0x066578ff).into(), + terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), + terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), + terminal_ansi_bright_white: rgba(0x3c3836ff).into(), + terminal_ansi_black: rgba(0xebdbb2ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0x7c6f64ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/mod.rs b/crates/theme2/src/themes/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..86fe9f9bb3e2a7f60bf1c3ea330a9c1cd226a067 --- /dev/null +++ b/crates/theme2/src/themes/mod.rs @@ -0,0 +1,41 @@ +// mod andromeda; +// mod ayu; +// mod dracula; +// mod gruvbox; +// mod night_owl; +// mod nord; +// mod notctis; +// mod palenight; +// mod rose_pine; +// mod solarized; +// mod synthwave_84; + +// pub use andromeda::*; +// pub use ayu::*; +// pub use dracula::*; +// pub use gruvbox::*; +// pub use night_owl::*; +// pub use nord::*; +// pub use notctis::*; +// pub use palenight::*; +// pub use rose_pine::*; +// pub use solarized::*; +// pub use synthwave_84::*; + +use crate::ThemeFamily; + +pub fn all_imported_themes() -> Vec { + vec![ + // rose_pine(), + // night_owl(), + // andromeda(), + // synthwave_84(), + // palenight(), + // dracula(), + // solarized(), + // nord(), + // notctis(), + // ayu(), + // gruvbox(), + ] +} diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs new file mode 100644 index 0000000000000000000000000000000000000000..d4418ac3dc7d72fc6df6c494e822b3a2071245aa --- /dev/null +++ b/crates/theme2/src/themes/night_owl.rs @@ -0,0 +1,333 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn night_owl() -> ThemeFamily { + ThemeFamily { + id: "b6469599-df68-4604-be9d-44f63d877d53".into(), + name: "Night Owl".into(), + author: "Sarah Drasner (sdras)".into(), + themes: vec![ + ThemeVariant { + id: "2a04e5fa-e266-475b-b965-3d92efe77ad9".into(), + name: "Night Owl".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x5f7e97ff).into(), + border_variant: rgba(0x5f7e97ff).into(), + border_focused: rgba(0x5f7e97ff).into(), + border_disabled: rgba(0x5f7e97ff).into(), + border_selected: rgba(0x5f7e97ff).into(), + border_transparent: rgba(0x5f7e97ff).into(), + elevated_surface_background: rgba(0x011526ff).into(), + surface_background: rgba(0x011526ff).into(), + background: rgba(0x011526ff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd6deebff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x01101cff).into(), + tab_active_background: rgba(0x0a2842ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x575656ff).into(), + terminal_ansi_bright_red: rgba(0xef524fff).into(), + terminal_ansi_bright_green: rgba(0x21da6eff).into(), + terminal_ansi_bright_yellow: rgba(0xffeb95ff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x7fdbcaff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x011526ff).into(), + terminal_ansi_red: rgba(0xef524fff).into(), + terminal_ansi_green: rgba(0x21da6eff).into(), + terminal_ansi_yellow: rgba(0xc5e478ff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x20c7a7ff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "91901d29-1c1f-49ef-ac69-c25639425f7c".into(), + name: "Night Owl Light".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xd9d9d9ff).into(), + border_variant: rgba(0xd9d9d9ff).into(), + border_focused: rgba(0xd9d9d9ff).into(), + border_disabled: rgba(0xd9d9d9ff).into(), + border_selected: rgba(0xd9d9d9ff).into(), + border_transparent: rgba(0xd9d9d9ff).into(), + elevated_surface_background: rgba(0xf0f0f0ff).into(), + surface_background: rgba(0xf0f0f0ff).into(), + background: rgba(0xfbfbfbff).into(), + element_background: rgba(0x29a298ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x403f53ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf0f0f0ff).into(), + tab_active_background: rgba(0xf6f6f6ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf6f6f6ff).into(), + terminal_ansi_bright_black: rgba(0x403f53ff).into(), + terminal_ansi_bright_red: rgba(0xde3c3aff).into(), + terminal_ansi_bright_green: rgba(0x07916aff).into(), + terminal_ansi_bright_yellow: rgba(0xdaa900ff).into(), + terminal_ansi_bright_blue: rgba(0x278dd7ff).into(), + terminal_ansi_bright_magenta: rgba(0xd64289ff).into(), + terminal_ansi_bright_cyan: rgba(0x29a298ff).into(), + terminal_ansi_bright_white: rgba(0xf0f0f0ff).into(), + terminal_ansi_black: rgba(0x403f53ff).into(), + terminal_ansi_red: rgba(0xde3c3aff).into(), + terminal_ansi_green: rgba(0x07916aff).into(), + terminal_ansi_yellow: rgba(0xe0ae01ff).into(), + terminal_ansi_blue: rgba(0x278dd7ff).into(), + terminal_ansi_magenta: rgba(0xd64289ff).into(), + terminal_ansi_cyan: rgba(0x29a298ff).into(), + terminal_ansi_white: rgba(0xf0f0f0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs new file mode 100644 index 0000000000000000000000000000000000000000..953ee1d0da5617de5948e061bb316c34d47c8e0d --- /dev/null +++ b/crates/theme2/src/themes/nord.rs @@ -0,0 +1,173 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn nord() -> ThemeFamily { + ThemeFamily { + id: "dcd03133-f540-47e7-9360-91bb1c94d16e".into(), + name: "Nord".into(), + author: "Sven Greb (svengreb)".into(), + themes: vec![ThemeVariant { + id: "ed7e8c08-321a-41f0-bd22-ca92c0b42e0e".into(), + name: "Nord".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3b4252ff).into(), + border_variant: rgba(0x3b4252ff).into(), + border_focused: rgba(0x3b4252ff).into(), + border_disabled: rgba(0x3b4252ff).into(), + border_selected: rgba(0x3b4252ff).into(), + border_transparent: rgba(0x3b4252ff).into(), + elevated_surface_background: rgba(0x2e3440ff).into(), + surface_background: rgba(0x2e3440ff).into(), + background: rgba(0x2e3440ff).into(), + element_background: rgba(0x88bfd0ee).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd8dee9ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x2e3440ff).into(), + tab_active_background: rgba(0x3b4252ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x2e3440ff).into(), + terminal_ansi_bright_black: rgba(0x4c566aff).into(), + terminal_ansi_bright_red: rgba(0xbf616aff).into(), + terminal_ansi_bright_green: rgba(0xa3be8cff).into(), + terminal_ansi_bright_yellow: rgba(0xebcb8bff).into(), + terminal_ansi_bright_blue: rgba(0x81a1c1ff).into(), + terminal_ansi_bright_magenta: rgba(0xb48eacff).into(), + terminal_ansi_bright_cyan: rgba(0x8fbcbbff).into(), + terminal_ansi_bright_white: rgba(0xeceff4ff).into(), + terminal_ansi_black: rgba(0x3b4252ff).into(), + terminal_ansi_red: rgba(0xbf616aff).into(), + terminal_ansi_green: rgba(0xa3be8cff).into(), + terminal_ansi_yellow: rgba(0xebcb8bff).into(), + terminal_ansi_blue: rgba(0x81a1c1ff).into(), + terminal_ansi_magenta: rgba(0xb48eacff).into(), + terminal_ansi_cyan: rgba(0x88bfd0ff).into(), + terminal_ansi_white: rgba(0xe5e9f0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/notctis.rs b/crates/theme2/src/themes/notctis.rs new file mode 100644 index 0000000000000000000000000000000000000000..d11463ea42ea278efd446540bf438c55203a3791 --- /dev/null +++ b/crates/theme2/src/themes/notctis.rs @@ -0,0 +1,1755 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn notctis() -> ThemeFamily { + ThemeFamily { + id: "077650e4-c11f-4cb5-96ec-73bc74923e95".into(), + name: "Notctis".into(), + author: "Liviu Schera (liviuschera)".into(), + themes: vec![ + ThemeVariant { + id: "47135df9-e9b5-480c-a71b-c85052b8ff93".into(), + name: "Noctis Azureus".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1579b6ff).into(), + border_variant: rgba(0x1579b6ff).into(), + border_focused: rgba(0x1579b6ff).into(), + border_disabled: rgba(0x1579b6ff).into(), + border_selected: rgba(0x1579b6ff).into(), + border_transparent: rgba(0x1579b6ff).into(), + elevated_surface_background: rgba(0x051b28ff).into(), + surface_background: rgba(0x051b28ff).into(), + background: rgba(0x07263aff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xbecfdaff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x08324eff).into(), + tab_active_background: rgba(0x07263aff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x051b28ff).into(), + terminal_ansi_bright_black: rgba(0x475e6cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xbecfdaff).into(), + terminal_ansi_black: rgba(0x28343dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xaec3d0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "5a3842b1-2273-47ce-ab82-4179842362b1".into(), + name: "Noctis Bordo".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x997582ff).into(), + border_variant: rgba(0x997582ff).into(), + border_focused: rgba(0x997582ff).into(), + border_disabled: rgba(0x997582ff).into(), + border_selected: rgba(0x997582ff).into(), + border_transparent: rgba(0x997582ff).into(), + elevated_surface_background: rgba(0x272022ff).into(), + surface_background: rgba(0x272022ff).into(), + background: rgba(0x322a2dff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xcbbec2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x413036ff).into(), + tab_active_background: rgba(0x322a2dff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x272022ff).into(), + terminal_ansi_bright_black: rgba(0x69545bff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xcbbec2ff).into(), + terminal_ansi_black: rgba(0x47393eff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb9acb0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "a83c02b3-23f3-496b-8644-57df3314601e".into(), + name: "Noctus Hibernus".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x00c6e0ff).into(), + border_variant: rgba(0x00c6e0ff).into(), + border_focused: rgba(0x00c6e0ff).into(), + border_disabled: rgba(0x00c6e0ff).into(), + border_selected: rgba(0x00c6e0ff).into(), + border_transparent: rgba(0x00c6e0ff).into(), + elevated_surface_background: rgba(0xe1eeefff).into(), + surface_background: rgba(0xe1eeefff).into(), + background: rgba(0xf4f6f6ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x005661ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xcaedf2ff).into(), + tab_active_background: rgba(0xf4f6f6ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xe1eeefff).into(), + terminal_ansi_bright_black: rgba(0x004d57ff).into(), + terminal_ansi_bright_red: rgba(0xff3f00ff).into(), + terminal_ansi_bright_green: rgba(0x00d17aff).into(), + terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), + terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), + terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), + terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), + terminal_ansi_black: rgba(0x003b41ff).into(), + terminal_ansi_red: rgba(0xe34d1bff).into(), + terminal_ansi_green: rgba(0x00b368ff).into(), + terminal_ansi_yellow: rgba(0xf49724ff).into(), + terminal_ansi_blue: rgba(0x0094f0ff).into(), + terminal_ansi_magenta: rgba(0xff5792ff).into(), + terminal_ansi_cyan: rgba(0x00bdd6ff).into(), + terminal_ansi_white: rgba(0x8ca6a6ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "bda85aea-2260-455a-959a-c03b0a62b8f4".into(), + name: "Noctis Lilac".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xaea4f4ff).into(), + border_variant: rgba(0xaea4f4ff).into(), + border_focused: rgba(0xaea4f4ff).into(), + border_disabled: rgba(0xaea4f4ff).into(), + border_selected: rgba(0xaea4f4ff).into(), + border_transparent: rgba(0xaea4f4ff).into(), + elevated_surface_background: rgba(0xe9e7f3ff).into(), + surface_background: rgba(0xe9e7f3ff).into(), + background: rgba(0xf2f1f8ff).into(), + element_background: rgba(0x8d7ffeff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0x0c006bff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0xe2dff6ff).into(), + tab_active_background: rgba(0xf2f1f8ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0xe9e7f3ff).into(), + terminal_ansi_bright_black: rgba(0x0f0080ff).into(), + terminal_ansi_bright_red: rgba(0xff3f00ff).into(), + terminal_ansi_bright_green: rgba(0x00d17aff).into(), + terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), + terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), + terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), + terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), + terminal_ansi_black: rgba(0x0c006bff).into(), + terminal_ansi_red: rgba(0xe34d1bff).into(), + terminal_ansi_green: rgba(0x00b368ff).into(), + terminal_ansi_yellow: rgba(0xf49724ff).into(), + terminal_ansi_blue: rgba(0x0094f0ff).into(), + terminal_ansi_magenta: rgba(0xff5792ff).into(), + terminal_ansi_cyan: rgba(0x00bdd6ff).into(), + terminal_ansi_white: rgba(0x8ca6a6ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "7720f487-6b09-4bb6-9add-272b030c013f".into(), + name: "Noctis Lux".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x00c6e0ff).into(), + border_variant: rgba(0x00c6e0ff).into(), + border_focused: rgba(0x00c6e0ff).into(), + border_disabled: rgba(0x00c6e0ff).into(), + border_selected: rgba(0x00c6e0ff).into(), + border_transparent: rgba(0x00c6e0ff).into(), + elevated_surface_background: rgba(0xf6eddaff).into(), + surface_background: rgba(0xf6eddaff).into(), + background: rgba(0xfef8ecff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x005661ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf0e9d6ff).into(), + tab_active_background: rgba(0xfef8ecff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf6eddaff).into(), + terminal_ansi_bright_black: rgba(0x004d57ff).into(), + terminal_ansi_bright_red: rgba(0xff3f00ff).into(), + terminal_ansi_bright_green: rgba(0x00d17aff).into(), + terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), + terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), + terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), + terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), + terminal_ansi_black: rgba(0x003b41ff).into(), + terminal_ansi_red: rgba(0xe34d1bff).into(), + terminal_ansi_green: rgba(0x00b368ff).into(), + terminal_ansi_yellow: rgba(0xf49724ff).into(), + terminal_ansi_blue: rgba(0x0094f0ff).into(), + terminal_ansi_magenta: rgba(0xff5792ff).into(), + terminal_ansi_cyan: rgba(0x00bdd6ff).into(), + terminal_ansi_white: rgba(0x8ca6a6ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "51dfe842-b4e2-4d95-a306-8e579a3bb51c".into(), + name: "Noctis Minimus".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x496c83ff).into(), + border_variant: rgba(0x496c83ff).into(), + border_focused: rgba(0x496c83ff).into(), + border_disabled: rgba(0x496c83ff).into(), + border_selected: rgba(0x496c83ff).into(), + border_transparent: rgba(0x496c83ff).into(), + elevated_surface_background: rgba(0x0e1920ff).into(), + surface_background: rgba(0x0e1920ff).into(), + background: rgba(0x1b2932ff).into(), + element_background: rgba(0x2e616bff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xc5cdd3ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x202d37ff).into(), + tab_active_background: rgba(0x1b2932ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x0e1920ff).into(), + terminal_ansi_bright_black: rgba(0x425866ff).into(), + terminal_ansi_bright_red: rgba(0xca8468ff).into(), + terminal_ansi_bright_green: rgba(0x84c8abff).into(), + terminal_ansi_bright_yellow: rgba(0xd1aa7bff).into(), + terminal_ansi_bright_blue: rgba(0x68a4caff).into(), + terminal_ansi_bright_magenta: rgba(0xc88da2ff).into(), + terminal_ansi_bright_cyan: rgba(0x84bfc8ff).into(), + terminal_ansi_bright_white: rgba(0xc5d1d3ff).into(), + terminal_ansi_black: rgba(0x182935ff).into(), + terminal_ansi_red: rgba(0xc08872ff).into(), + terminal_ansi_green: rgba(0x72c09fff).into(), + terminal_ansi_yellow: rgba(0xc8a984ff).into(), + terminal_ansi_blue: rgba(0x6095b7ff).into(), + terminal_ansi_magenta: rgba(0xc28097ff).into(), + terminal_ansi_cyan: rgba(0x72b7c0ff).into(), + terminal_ansi_white: rgba(0xc5cdd3ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "75a67a53-afbe-4073-a7c0-85a40b56c2cc".into(), + name: "Noctis".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x0d6571ff).into(), + border_variant: rgba(0x0d6571ff).into(), + border_focused: rgba(0x0d6571ff).into(), + border_disabled: rgba(0x0d6571ff).into(), + border_selected: rgba(0x0d6571ff).into(), + border_transparent: rgba(0x0d6571ff).into(), + elevated_surface_background: rgba(0x03181aff).into(), + surface_background: rgba(0x03181aff).into(), + background: rgba(0x052428ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xb1c9ccff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x052e32ff).into(), + tab_active_background: rgba(0x052428ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x03181aff).into(), + terminal_ansi_bright_black: rgba(0x47686cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), + terminal_ansi_black: rgba(0x324a4dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb1c9ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "0202afff-5703-473b-b6b6-e86ac3a70718".into(), + name: "Noctis Obscuro".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x0d6571ff).into(), + border_variant: rgba(0x0d6571ff).into(), + border_focused: rgba(0x0d6571ff).into(), + border_disabled: rgba(0x0d6571ff).into(), + border_selected: rgba(0x0d6571ff).into(), + border_transparent: rgba(0x0d6571ff).into(), + elevated_surface_background: rgba(0x020c0eff).into(), + surface_background: rgba(0x020c0eff).into(), + background: rgba(0x031316ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xb1c9ccff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x052e32ff).into(), + tab_active_background: rgba(0x031316ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x020c0eff).into(), + terminal_ansi_bright_black: rgba(0x47686cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), + terminal_ansi_black: rgba(0x324a4dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb1c9ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "213fd750-27ad-4762-8891-08282ed316c7".into(), + name: "Noctis Sereno".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x0d6571ff).into(), + border_variant: rgba(0x0d6571ff).into(), + border_focused: rgba(0x0d6571ff).into(), + border_disabled: rgba(0x0d6571ff).into(), + border_selected: rgba(0x0d6571ff).into(), + border_transparent: rgba(0x0d6571ff).into(), + elevated_surface_background: rgba(0x020c0eff).into(), + surface_background: rgba(0x020c0eff).into(), + background: rgba(0x031316ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xb1c9ccff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x052e32ff).into(), + tab_active_background: rgba(0x031316ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x020c0eff).into(), + terminal_ansi_bright_black: rgba(0x47686cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), + terminal_ansi_black: rgba(0x324a4dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb1c9ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "0cc2c841-1c01-40a7-8396-1234dd077ede".into(), + name: "Noctis Uva".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x6d66a7ff).into(), + border_variant: rgba(0x6d66a7ff).into(), + border_focused: rgba(0x6d66a7ff).into(), + border_disabled: rgba(0x6d66a7ff).into(), + border_selected: rgba(0x6d66a7ff).into(), + border_transparent: rgba(0x6d66a7ff).into(), + elevated_surface_background: rgba(0x1f1d30ff).into(), + surface_background: rgba(0x1f1d30ff).into(), + background: rgba(0x292640ff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xc5c2d6ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x2f2c49ff).into(), + tab_active_background: rgba(0x292640ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x1f1d30ff).into(), + terminal_ansi_bright_black: rgba(0x504e65ff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc5c2d6ff).into(), + terminal_ansi_black: rgba(0x302f3dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb6b3ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "090a97c7-ad25-4a35-96e6-2fce5e471e6b".into(), + name: "Noctis Viola".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x8666a7ff).into(), + border_variant: rgba(0x8666a7ff).into(), + border_focused: rgba(0x8666a7ff).into(), + border_disabled: rgba(0x8666a7ff).into(), + border_selected: rgba(0x8666a7ff).into(), + border_transparent: rgba(0x8666a7ff).into(), + elevated_surface_background: rgba(0x291d35ff).into(), + surface_background: rgba(0x291d35ff).into(), + background: rgba(0x30243dff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xccbfd9ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x3d2e4dff).into(), + tab_active_background: rgba(0x30243dff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x291d35ff).into(), + terminal_ansi_bright_black: rgba(0x594e65ff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xccbfd9ff).into(), + terminal_ansi_black: rgba(0x362f3dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xbfafcfff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs new file mode 100644 index 0000000000000000000000000000000000000000..836ec680cdf349d563aa5745122947d6fab26b5a --- /dev/null +++ b/crates/theme2/src/themes/palenight.rs @@ -0,0 +1,491 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn palenight() -> ThemeFamily { + ThemeFamily { + id: "3187cd2f-29da-4bde-9621-83016df3b393".into(), + name: "Palenight".into(), + author: "Olaolu Olawuyi (whizkydee)".into(), + themes: vec![ + ThemeVariant { + id: "0eaa3098-3aa2-4b8e-b1df-92d9ebd9a0b8".into(), + name: "Palenight".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x282b3bff).into(), + border_variant: rgba(0x282b3bff).into(), + border_focused: rgba(0x282b3bff).into(), + border_disabled: rgba(0x282b3bff).into(), + border_selected: rgba(0x282b3bff).into(), + border_transparent: rgba(0x282b3bff).into(), + elevated_surface_background: rgba(0x292c3eff).into(), + surface_background: rgba(0x292c3eff).into(), + background: rgba(0x292c3eff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x31364aff).into(), + tab_active_background: rgba(0x292c3eff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x676e95ff).into(), + terminal_ansi_bright_red: rgba(0xff5571ff).into(), + terminal_ansi_bright_green: rgba(0xc3e88dff).into(), + terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x676e95ff).into(), + terminal_ansi_red: rgba(0xff5571ff).into(), + terminal_ansi_green: rgba(0xa9c77dff).into(), + terminal_ansi_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x89ddffff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "b6a27c72-c5b1-431b-8bfe-29e33dbcb337".into(), + name: "Palenight Operator".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x282b3bff).into(), + border_variant: rgba(0x282b3bff).into(), + border_focused: rgba(0x282b3bff).into(), + border_disabled: rgba(0x282b3bff).into(), + border_selected: rgba(0x282b3bff).into(), + border_transparent: rgba(0x282b3bff).into(), + elevated_surface_background: rgba(0x292c3eff).into(), + surface_background: rgba(0x292c3eff).into(), + background: rgba(0x292c3eff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x31364aff).into(), + tab_active_background: rgba(0x292c3eff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x676e95ff).into(), + terminal_ansi_bright_red: rgba(0xff5571ff).into(), + terminal_ansi_bright_green: rgba(0xc3e88dff).into(), + terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x676e95ff).into(), + terminal_ansi_red: rgba(0xff5571ff).into(), + terminal_ansi_green: rgba(0xa9c77dff).into(), + terminal_ansi_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x89ddffff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "4015bf85-061c-45ff-81ba-a31f017aac83".into(), + name: "Palenight (Mild Contrast)".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x2c2f40ff).into(), + border_variant: rgba(0x2c2f40ff).into(), + border_focused: rgba(0x2c2f40ff).into(), + border_disabled: rgba(0x2c2f40ff).into(), + border_selected: rgba(0x2c2f40ff).into(), + border_transparent: rgba(0x2c2f40ff).into(), + elevated_surface_background: rgba(0x25283aff).into(), + surface_background: rgba(0x25283aff).into(), + background: rgba(0x292c3eff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x31364aff).into(), + tab_active_background: rgba(0x25283aff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x676e95ff).into(), + terminal_ansi_bright_red: rgba(0xff5571ff).into(), + terminal_ansi_bright_green: rgba(0xc3e88dff).into(), + terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x676e95ff).into(), + terminal_ansi_red: rgba(0xff5571ff).into(), + terminal_ansi_green: rgba(0xa9c77dff).into(), + terminal_ansi_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x89ddffff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs new file mode 100644 index 0000000000000000000000000000000000000000..b367d6196b347c2e7dfe5a05e410262a4ae84310 --- /dev/null +++ b/crates/theme2/src/themes/rose_pine.rs @@ -0,0 +1,491 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn rose_pine() -> ThemeFamily { + ThemeFamily { + id: "48c308b9-7dbe-4a52-b935-0b44d9dac00d".into(), + name: "Rose Pine".into(), + author: "Rosé Pine".into(), + themes: vec![ + ThemeVariant { + id: "c2832e85-20cb-4a13-924f-026e68123068".into(), + name: "Rose Pine".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x000000ff).into(), + border_variant: rgba(0x000000ff).into(), + border_focused: rgba(0x000000ff).into(), + border_disabled: rgba(0x000000ff).into(), + border_selected: rgba(0x000000ff).into(), + border_transparent: rgba(0x000000ff).into(), + elevated_surface_background: rgba(0x1f1d2eff).into(), + surface_background: rgba(0x1f1d2eff).into(), + background: rgba(0x191724ff).into(), + element_background: rgba(0xebbcbaff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xe0def4ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x000000ff).into(), + tab_active_background: rgba(0x6e6a861a).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x908caaff).into(), + terminal_ansi_bright_red: rgba(0xeb6f92ff).into(), + terminal_ansi_bright_green: rgba(0x30738fff).into(), + terminal_ansi_bright_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_bright_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_bright_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_bright_cyan: rgba(0xebbcbaff).into(), + terminal_ansi_bright_white: rgba(0xe0def4ff).into(), + terminal_ansi_black: rgba(0x26233aff).into(), + terminal_ansi_red: rgba(0xeb6f92ff).into(), + terminal_ansi_green: rgba(0x30738fff).into(), + terminal_ansi_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_cyan: rgba(0xebbcbaff).into(), + terminal_ansi_white: rgba(0xe0def4ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "3f6c3263-86f4-4a0e-92a6-144984aa2d38".into(), + name: "Rose Moon".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x000000ff).into(), + border_variant: rgba(0x000000ff).into(), + border_focused: rgba(0x000000ff).into(), + border_disabled: rgba(0x000000ff).into(), + border_selected: rgba(0x000000ff).into(), + border_transparent: rgba(0x000000ff).into(), + elevated_surface_background: rgba(0x2a273eff).into(), + surface_background: rgba(0x2a273eff).into(), + background: rgba(0x232136ff).into(), + element_background: rgba(0xea9a97ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xe0def4ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x000000ff).into(), + tab_active_background: rgba(0x817c9c14).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x908caaff).into(), + terminal_ansi_bright_red: rgba(0xeb6f92ff).into(), + terminal_ansi_bright_green: rgba(0x3d8fb0ff).into(), + terminal_ansi_bright_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_bright_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_bright_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_bright_cyan: rgba(0xea9a97ff).into(), + terminal_ansi_bright_white: rgba(0xe0def4ff).into(), + terminal_ansi_black: rgba(0x393552ff).into(), + terminal_ansi_red: rgba(0xeb6f92ff).into(), + terminal_ansi_green: rgba(0x3d8fb0ff).into(), + terminal_ansi_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_cyan: rgba(0xea9a97ff).into(), + terminal_ansi_white: rgba(0xe0def4ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "d171cda6-de3b-4528-8559-cd8fb71b2e7c".into(), + name: "Rose Pine Dawn".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x000000ff).into(), + border_variant: rgba(0x000000ff).into(), + border_focused: rgba(0x000000ff).into(), + border_disabled: rgba(0x000000ff).into(), + border_selected: rgba(0x000000ff).into(), + border_transparent: rgba(0x000000ff).into(), + elevated_surface_background: rgba(0xfffaf3ff).into(), + surface_background: rgba(0xfffaf3ff).into(), + background: rgba(0xfaf4edff).into(), + element_background: rgba(0xd7827dff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x575279ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0x000000ff).into(), + tab_active_background: rgba(0x6e6a860d).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xfcfcfdff).into(), + terminal_ansi_bright_black: rgba(0x797593ff).into(), + terminal_ansi_bright_red: rgba(0xb3627aff).into(), + terminal_ansi_bright_green: rgba(0x276983ff).into(), + terminal_ansi_bright_yellow: rgba(0xea9d34ff).into(), + terminal_ansi_bright_blue: rgba(0x55949fff).into(), + terminal_ansi_bright_magenta: rgba(0x9079a9ff).into(), + terminal_ansi_bright_cyan: rgba(0xd7827dff).into(), + terminal_ansi_bright_white: rgba(0x575279ff).into(), + terminal_ansi_black: rgba(0xf2e9e1ff).into(), + terminal_ansi_red: rgba(0xb3627aff).into(), + terminal_ansi_green: rgba(0x276983ff).into(), + terminal_ansi_yellow: rgba(0xea9d34ff).into(), + terminal_ansi_blue: rgba(0x55949fff).into(), + terminal_ansi_magenta: rgba(0x9079a9ff).into(), + terminal_ansi_cyan: rgba(0xd7827dff).into(), + terminal_ansi_white: rgba(0x575279ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs new file mode 100644 index 0000000000000000000000000000000000000000..d160cfa6524dda6a2deadce08f15032660f2ff0e --- /dev/null +++ b/crates/theme2/src/themes/solarized.rs @@ -0,0 +1,333 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn solarized() -> ThemeFamily { + ThemeFamily { + id: "9a6f18c9-520f-46ec-9bfb-a7ee73508139".into(), + name: "Solarized".into(), + author: "Ethan Schoonover (altercation)".into(), + themes: vec![ + ThemeVariant { + id: "74003db2-7f9a-4d26-8815-020c796bb551".into(), + name: "Solarized Dark".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x003847ff).into(), + border_variant: rgba(0x003847ff).into(), + border_focused: rgba(0x003847ff).into(), + border_disabled: rgba(0x003847ff).into(), + border_selected: rgba(0x003847ff).into(), + border_transparent: rgba(0x003847ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x002a35ff).into(), + element_background: rgba(0x29a19899).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xedeef0ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x003f51ff).into(), + tab_active_background: rgba(0x002a36ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x586e75ff).into(), + terminal_ansi_bright_red: rgba(0xcb4b15ff).into(), + terminal_ansi_bright_green: rgba(0x859900ff).into(), + terminal_ansi_bright_yellow: rgba(0x657b83ff).into(), + terminal_ansi_bright_blue: rgba(0x839496ff).into(), + terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(), + terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(), + terminal_ansi_bright_white: rgba(0x839496ff).into(), + terminal_ansi_black: rgba(0x063642ff).into(), + terminal_ansi_red: rgba(0xdc312eff).into(), + terminal_ansi_green: rgba(0x859900ff).into(), + terminal_ansi_yellow: rgba(0xb58800ff).into(), + terminal_ansi_blue: rgba(0x258ad2ff).into(), + terminal_ansi_magenta: rgba(0xd33582ff).into(), + terminal_ansi_cyan: rgba(0x29a198ff).into(), + terminal_ansi_white: rgba(0x839496ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "43be149b-2604-4eb2-a9ce-c8f902ab3bb3".into(), + name: "Solarized Light".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xddd6c1ff).into(), + border_variant: rgba(0xddd6c1ff).into(), + border_focused: rgba(0xddd6c1ff).into(), + border_disabled: rgba(0xddd6c1ff).into(), + border_selected: rgba(0xddd6c1ff).into(), + border_transparent: rgba(0xddd6c1ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xfdf6e3ff).into(), + element_background: rgba(0xab9d56ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x1c2024ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xd3cbb7ff).into(), + tab_active_background: rgba(0xfdf6e3ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xfcfcfdff).into(), + terminal_ansi_bright_black: rgba(0x657b83ff).into(), + terminal_ansi_bright_red: rgba(0xcb4b15ff).into(), + terminal_ansi_bright_green: rgba(0x859900ff).into(), + terminal_ansi_bright_yellow: rgba(0x657b83ff).into(), + terminal_ansi_bright_blue: rgba(0x839496ff).into(), + terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(), + terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(), + terminal_ansi_bright_white: rgba(0xeee8d5ff).into(), + terminal_ansi_black: rgba(0x657b83ff).into(), + terminal_ansi_red: rgba(0xdc312eff).into(), + terminal_ansi_green: rgba(0x859900ff).into(), + terminal_ansi_yellow: rgba(0xb58800ff).into(), + terminal_ansi_blue: rgba(0x258ad2ff).into(), + terminal_ansi_magenta: rgba(0xd33582ff).into(), + terminal_ansi_cyan: rgba(0x29a198ff).into(), + terminal_ansi_white: rgba(0xeee8d5ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs new file mode 100644 index 0000000000000000000000000000000000000000..cfe81bef424db8d1352d993c638c0002399767e0 --- /dev/null +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -0,0 +1,173 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn synthwave_84() -> ThemeFamily { + ThemeFamily { + id: "5e0f0cd5-5522-45cf-a652-caeb140eb3de".into(), + name: "Synthwave 84".into(), + author: "Robb Owen (robb0wen)".into(), + themes: vec![ThemeVariant { + id: "83110d9e-dbf0-4f36-9a4c-6b396ce9a5a4".into(), + name: "Synthwave 84".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x363a3fff).into(), + border_variant: rgba(0x2e3135ff).into(), + border_focused: rgba(0x004073ff).into(), + border_disabled: rgba(0x212225ff).into(), + border_selected: rgba(0x004073ff).into(), + border_transparent: rgba(0x00000000).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x252334ff).into(), + element_background: rgba(0x614d85ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x252334ff).into(), + tab_active_background: rgba(0x111113ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x000000e6).into(), + terminal_ansi_bright_red: rgba(0xfe444fff).into(), + terminal_ansi_bright_green: rgba(0x71f1b7ff).into(), + terminal_ansi_bright_yellow: rgba(0xfede5cff).into(), + terminal_ansi_bright_blue: rgba(0x02edf9ff).into(), + terminal_ansi_bright_magenta: rgba(0xff7ddaff).into(), + terminal_ansi_bright_cyan: rgba(0x02edf9ff).into(), + terminal_ansi_bright_white: rgba(0xb0b4baff).into(), + terminal_ansi_black: rgba(0x000000f2).into(), + terminal_ansi_red: rgba(0xfe444fff).into(), + terminal_ansi_green: rgba(0x71f1b7ff).into(), + terminal_ansi_yellow: rgba(0xf3e70fff).into(), + terminal_ansi_blue: rgba(0x02edf9ff).into(), + terminal_ansi_magenta: rgba(0xff7ddaff).into(), + terminal_ansi_cyan: rgba(0x02edf9ff).into(), + terminal_ansi_white: rgba(0xedeef0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }], + scales: default_color_scales(), + } +} diff --git a/crates/theme_importer/Cargo.toml b/crates/theme_importer/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..1c86349e968bad43da86d286cd30cf58e3cd743b --- /dev/null +++ b/crates/theme_importer/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "theme_importer" +version = "0.1.0" +edition = "2021" +publish = false + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow.workspace = true +convert_case = "0.6.0" +gpui = { package = "gpui2", path = "../gpui2" } +log.workspace = true +rust-embed.workspace = true +serde.workspace = true +simplelog = "0.9" +theme = { package = "theme2", path = "../theme2" } +uuid.workspace = true diff --git a/crates/theme_importer/README.md b/crates/theme_importer/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a610d694d707d355c223c79b9581c21ab13072ce --- /dev/null +++ b/crates/theme_importer/README.md @@ -0,0 +1,124 @@ +# Zed Theme Importer + +--- + +## Usage + +- `cargo run -p theme_importer` - Import the context of `assets/themes/src` + +--- + +## Troubleshooting + +As the importer generates rust files, you may need to manually do some cleanup in `registry.rs` and `themes/mod.rs` if you remove themes or delete the `themes` folder in the theme crate. + +--- + +## Required Structure + +To import a theme or series of themes 3 things are required: + +- `family.json`: A JSON file containing the theme family metadata and list of theme variants +- `{theme_name}.json`: One theme json for each theme variant +- `LICENSE`: A license file for the theme family + +### `family.json` + +#### `name` + +The name of the theme family. Avoid special characters. + +This will be used for the theme family directory name (lowercased) and the theme family name in the Zed UI. + +Good: + +- `Rose Pine` +- `Synthwave 84` +- `Monokai Solarized` + +Bad: + +- `Rosé Pine` +- `Synthwave '84` +- `Monokai (Solarized)` + +#### `author` + +The author of the theme family. This can be a name or a username. + +This will be used for the theme family author in the Zed UI. + +#### `themes` + +A list of theme variants. + +`appearance` can be either `light` or `dark`. This will impact which default fallback colors are used, and where the theme shows up in the Zed UI. + +### `{theme_name}.json` + +Each theme added to the family must have a corresponding JSON file. This JSON file can be obtained from the VSCode extensions folder (once you have installed it.) This is usually located at `~/.vscode/extensions` (on macOS). + +You can use `open ~/.vscode/extensions` to open the folder in Finder directly. + +Copy that json file into the theme family directory and tidy up the filenames as needed. + +### `LICENSE` + +A LICENSE file is required to import a theme family. Failing to provide a complete text license will cause it to be skipped when the import is run. + +If the theme only provices a license code (e.g. MIT, Apache 2.0, etc.) then put that code into the LICENSE file. + +If no license is provided, either contact the theme creator or don't add the theme. + +--- + +### Complete Example: + +An example family with multiple variants: + +```json +{ + "name": "Ayu", + // When both name and username are available + // prefer the `username (name)` format + "author": "dempfi (Ike Ku)", + "themes": [ + { + "name": "Ayu Light", + "file_name": "ayu-light.json", + "appearance": "light" + }, + { + "name": "Ayu Mirage", + "file_name": "ayu-mirage.json", + "appearance": "dark" + }, + { + "name": "Ayu Dark", + "file_name": "ayu-dark.json", + "appearance": "dark" + } + ] +} +``` + +An example single variant family: + +```json +{ + "name": "Andromeda", + "author": "Eliver Lara (EliverLara)", + "themes": [ + { + "name": "Andromeda", + "file_name": "andromeda.json", + "appearance": "dark" + }, + { + "name": "Andromeda Bordered", + "file_name": "andromeda-bordered.json", + "appearance": "dark" + } + ] +} +``` diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs new file mode 100644 index 0000000000000000000000000000000000000000..bd264bcb5521c840e65d0b833fcecd9f8b965238 --- /dev/null +++ b/crates/theme_importer/src/main.rs @@ -0,0 +1,215 @@ +mod theme_printer; +mod util; +mod vscode; + +use std::fs::{self, File}; +use std::io::Write; +use std::path::PathBuf; +use std::str::FromStr; + +use anyhow::{anyhow, Context, Result}; +use convert_case::{Case, Casing}; +use gpui::serde_json; +use log::LevelFilter; +use serde::Deserialize; +use simplelog::SimpleLogger; +use theme::{default_color_scales, Appearance, ThemeFamily}; +use vscode::VsCodeThemeConverter; + +use crate::theme_printer::ThemeFamilyPrinter; +use crate::vscode::VsCodeTheme; + +#[derive(Debug, Deserialize)] +struct FamilyMetadata { + pub name: String, + pub author: String, + pub themes: Vec, +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum ThemeAppearanceJson { + Light, + Dark, +} + +impl From for Appearance { + fn from(value: ThemeAppearanceJson) -> Self { + match value { + ThemeAppearanceJson::Light => Self::Light, + ThemeAppearanceJson::Dark => Self::Dark, + } + } +} + +#[derive(Debug, Deserialize)] +pub struct ThemeMetadata { + pub name: String, + pub file_name: String, + pub appearance: ThemeAppearanceJson, +} + +fn main() -> Result<()> { + const SOURCE_PATH: &str = "assets/themes/src/vscode"; + const OUT_PATH: &str = "crates/theme2/src/themes"; + + SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); + + println!("Loading themes source..."); + let vscode_themes_path = PathBuf::from_str(SOURCE_PATH)?; + if !vscode_themes_path.exists() { + return Err(anyhow!(format!( + "Couldn't find {}, make sure it exists", + SOURCE_PATH + ))); + } + + let mut theme_families = Vec::new(); + + for theme_family_dir in fs::read_dir(&vscode_themes_path)? { + let theme_family_dir = theme_family_dir?; + + if !theme_family_dir.file_type()?.is_dir() { + continue; + } + + let theme_family_slug = theme_family_dir + .path() + .file_stem() + .ok_or(anyhow!("no file stem")) + .map(|stem| stem.to_string_lossy().to_string())?; + + let family_metadata_file = File::open(theme_family_dir.path().join("family.json")) + .context(format!( + "no `family.json` found for '{}'", + theme_family_slug + ))?; + + let license_file_path = theme_family_dir.path().join("LICENSE"); + + if !license_file_path.exists() { + println!("Skipping theme family '{}' because it does not have a LICENSE file. This theme will only be imported once a LICENSE file is provided.", theme_family_slug); + continue; + } + + let family_metadata: FamilyMetadata = serde_json::from_reader(family_metadata_file) + .context(format!( + "failed to parse `family.json` for '{theme_family_slug}'" + ))?; + + let mut themes = Vec::new(); + + for theme_metadata in family_metadata.themes { + let theme_file_path = theme_family_dir.path().join(&theme_metadata.file_name); + + let theme_file = match File::open(&theme_file_path) { + Ok(file) => file, + Err(_) => { + println!("Failed to open file at path: {:?}", theme_file_path); + continue; + } + }; + + let vscode_theme: VsCodeTheme = serde_json::from_reader(theme_file) + .context(format!("failed to parse theme {theme_file_path:?}"))?; + + let converter = VsCodeThemeConverter::new(vscode_theme, theme_metadata); + + let theme = converter.convert()?; + + themes.push(theme); + } + + let theme_family = ThemeFamily { + id: uuid::Uuid::new_v4().to_string(), + name: family_metadata.name.into(), + author: family_metadata.author.into(), + themes, + scales: default_color_scales(), + }; + + theme_families.push(theme_family); + } + + let themes_output_path = PathBuf::from_str(OUT_PATH)?; + + if !themes_output_path.exists() { + println!("Creating directory: {:?}", themes_output_path); + fs::create_dir_all(&themes_output_path)?; + } + + let mut mod_rs_file = File::create(themes_output_path.join(format!("mod.rs")))?; + + let mut theme_modules = Vec::new(); + + for theme_family in theme_families { + let theme_family_slug = theme_family.name.to_string().to_case(Case::Snake); + + let mut output_file = + File::create(themes_output_path.join(format!("{theme_family_slug}.rs")))?; + println!( + "Creating file: {:?}", + themes_output_path.join(format!("{theme_family_slug}.rs")) + ); + + let theme_module = format!( + r#" + use gpui::rgba; + + use crate::{{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }}; + + pub fn {theme_family_slug}() -> ThemeFamily {{ + {theme_family_definition} + }} + "#, + theme_family_definition = format!("{:#?}", ThemeFamilyPrinter::new(theme_family)) + ); + + output_file.write_all(theme_module.as_bytes())?; + + theme_modules.push(theme_family_slug); + } + + let themes_vector_contents = format!( + r#" + use crate::ThemeFamily; + + pub(crate) fn all_imported_themes() -> Vec {{ + vec![{all_themes}] + }} + "#, + all_themes = theme_modules + .iter() + .map(|module| format!("{}()", module)) + .collect::>() + .join(", ") + ); + + let mod_rs_contents = format!( + r#" + {mod_statements} + + {use_statements} + + {themes_vector_contents} + "#, + mod_statements = theme_modules + .iter() + .map(|module| format!("mod {module};")) + .collect::>() + .join("\n"), + use_statements = theme_modules + .iter() + .map(|module| format!("pub use {module}::*;")) + .collect::>() + .join("\n"), + themes_vector_contents = themes_vector_contents + ); + + mod_rs_file.write_all(mod_rs_contents.as_bytes())?; + + Ok(()) +} diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs new file mode 100644 index 0000000000000000000000000000000000000000..16812625318ed5149ed95e58e44c89e6bdf5d4bf --- /dev/null +++ b/crates/theme_importer/src/theme_printer.rs @@ -0,0 +1,384 @@ +use std::fmt::{self, Debug}; + +use gpui::{Hsla, Rgba}; +use theme::{ + Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, SyntaxTheme, + SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +struct RawSyntaxPrinter<'a>(&'a str); + +impl<'a> Debug for RawSyntaxPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.0) + } +} + +struct HslaPrinter(Hsla); + +impl Debug for HslaPrinter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{:?}", IntoPrinter(&Rgba::from(self.0))) + } +} + +struct IntoPrinter<'a, D: Debug>(&'a D); + +impl<'a, D: Debug> Debug for IntoPrinter<'a, D> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{:?}.into()", self.0) + } +} + +pub struct VecPrinter<'a, T>(&'a Vec); + +impl<'a, T: Debug> Debug for VecPrinter<'a, T> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "vec!{:?}", &self.0) + } +} + +pub struct ThemeFamilyPrinter(ThemeFamily); + +impl ThemeFamilyPrinter { + pub fn new(theme_family: ThemeFamily) -> Self { + Self(theme_family) + } +} + +impl Debug for ThemeFamilyPrinter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeFamily") + .field("id", &IntoPrinter(&self.0.id)) + .field("name", &IntoPrinter(&self.0.name)) + .field("author", &IntoPrinter(&self.0.author)) + .field( + "themes", + &VecPrinter( + &self + .0 + .themes + .iter() + .map(|theme| ThemeVariantPrinter(theme)) + .collect(), + ), + ) + .field("scales", &RawSyntaxPrinter("default_color_scales()")) + .finish() + } +} + +pub struct ThemeVariantPrinter<'a>(&'a ThemeVariant); + +impl<'a> Debug for ThemeVariantPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeVariant") + .field("id", &IntoPrinter(&self.0.id)) + .field("name", &IntoPrinter(&self.0.name)) + .field("appearance", &AppearancePrinter(self.0.appearance)) + .field("styles", &ThemeStylesPrinter(&self.0.styles)) + .finish() + } +} + +pub struct AppearancePrinter(Appearance); + +impl Debug for AppearancePrinter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Appearance::{:?}", self.0) + } +} + +pub struct ThemeStylesPrinter<'a>(&'a ThemeStyles); + +impl<'a> Debug for ThemeStylesPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeStyles") + .field("system", &SystemColorsPrinter(&self.0.system)) + .field("colors", &ThemeColorsPrinter(&self.0.colors)) + .field("status", &StatusColorsPrinter(&self.0.status)) + .field("git", &GitStatusColorsPrinter(&self.0.git)) + .field("player", &PlayerColorsPrinter(&self.0.player)) + .field("syntax", &SyntaxThemePrinter(&self.0.syntax)) + .finish() + } +} + +pub struct SystemColorsPrinter<'a>(&'a SystemColors); + +impl<'a> Debug for SystemColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("SystemColors") + .field("transparent", &HslaPrinter(self.0.transparent)) + .field( + "mac_os_traffic_light_red", + &HslaPrinter(self.0.mac_os_traffic_light_red), + ) + .field( + "mac_os_traffic_light_yellow", + &HslaPrinter(self.0.mac_os_traffic_light_yellow), + ) + .field( + "mac_os_traffic_light_green", + &HslaPrinter(self.0.mac_os_traffic_light_green), + ) + .finish() + } +} + +pub struct ThemeColorsPrinter<'a>(&'a ThemeColors); + +impl<'a> Debug for ThemeColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeColors") + .field("border", &HslaPrinter(self.0.border)) + .field("border_variant", &HslaPrinter(self.0.border_variant)) + .field("border_focused", &HslaPrinter(self.0.border_focused)) + .field("border_disabled", &HslaPrinter(self.0.border_disabled)) + .field("border_selected", &HslaPrinter(self.0.border_selected)) + .field( + "border_transparent", + &HslaPrinter(self.0.border_transparent), + ) + .field( + "elevated_surface_background", + &HslaPrinter(self.0.elevated_surface_background), + ) + .field( + "surface_background", + &HslaPrinter(self.0.surface_background), + ) + .field("background", &HslaPrinter(self.0.background)) + .field( + "element_background", + &HslaPrinter(self.0.element_background), + ) + .field("element_hover", &HslaPrinter(self.0.element_hover)) + .field("element_active", &HslaPrinter(self.0.element_active)) + .field("element_selected", &HslaPrinter(self.0.element_selected)) + .field("element_disabled", &HslaPrinter(self.0.element_disabled)) + .field( + "element_placeholder", + &HslaPrinter(self.0.element_placeholder), + ) + .field( + "element_drop_target", + &HslaPrinter(self.0.element_drop_target), + ) + .field( + "ghost_element_background", + &HslaPrinter(self.0.ghost_element_background), + ) + .field( + "ghost_element_hover", + &HslaPrinter(self.0.ghost_element_hover), + ) + .field( + "ghost_element_active", + &HslaPrinter(self.0.ghost_element_active), + ) + .field( + "ghost_element_selected", + &HslaPrinter(self.0.ghost_element_selected), + ) + .field( + "ghost_element_disabled", + &HslaPrinter(self.0.ghost_element_disabled), + ) + .field("text", &HslaPrinter(self.0.text)) + .field("text_muted", &HslaPrinter(self.0.text_muted)) + .field("text_placeholder", &HslaPrinter(self.0.text_placeholder)) + .field("text_disabled", &HslaPrinter(self.0.text_disabled)) + .field("text_accent", &HslaPrinter(self.0.text_accent)) + .field("icon", &HslaPrinter(self.0.icon)) + .field("icon_muted", &HslaPrinter(self.0.icon_muted)) + .field("icon_disabled", &HslaPrinter(self.0.icon_disabled)) + .field("icon_placeholder", &HslaPrinter(self.0.icon_placeholder)) + .field("icon_accent", &HslaPrinter(self.0.icon_accent)) + .field( + "status_bar_background", + &HslaPrinter(self.0.status_bar_background), + ) + .field( + "title_bar_background", + &HslaPrinter(self.0.title_bar_background), + ) + .field( + "toolbar_background", + &HslaPrinter(self.0.toolbar_background), + ) + .field( + "tab_bar_background", + &HslaPrinter(self.0.tab_bar_background), + ) + .field( + "tab_inactive_background", + &HslaPrinter(self.0.tab_inactive_background), + ) + .field( + "tab_active_background", + &HslaPrinter(self.0.tab_active_background), + ) + .field("editor_background", &HslaPrinter(self.0.editor_background)) + .field( + "editor_subheader_background", + &HslaPrinter(self.0.editor_subheader_background), + ) + .field( + "editor_active_line", + &HslaPrinter(self.0.editor_active_line_background), + ) + .field( + "terminal_background", + &HslaPrinter(self.0.terminal_background), + ) + .field( + "terminal_ansi_bright_black", + &HslaPrinter(self.0.terminal_ansi_bright_black), + ) + .field( + "terminal_ansi_bright_red", + &HslaPrinter(self.0.terminal_ansi_bright_red), + ) + .field( + "terminal_ansi_bright_green", + &HslaPrinter(self.0.terminal_ansi_bright_green), + ) + .field( + "terminal_ansi_bright_yellow", + &HslaPrinter(self.0.terminal_ansi_bright_yellow), + ) + .field( + "terminal_ansi_bright_blue", + &HslaPrinter(self.0.terminal_ansi_bright_blue), + ) + .field( + "terminal_ansi_bright_magenta", + &HslaPrinter(self.0.terminal_ansi_bright_magenta), + ) + .field( + "terminal_ansi_bright_cyan", + &HslaPrinter(self.0.terminal_ansi_bright_cyan), + ) + .field( + "terminal_ansi_bright_white", + &HslaPrinter(self.0.terminal_ansi_bright_white), + ) + .field( + "terminal_ansi_black", + &HslaPrinter(self.0.terminal_ansi_black), + ) + .field("terminal_ansi_red", &HslaPrinter(self.0.terminal_ansi_red)) + .field( + "terminal_ansi_green", + &HslaPrinter(self.0.terminal_ansi_green), + ) + .field( + "terminal_ansi_yellow", + &HslaPrinter(self.0.terminal_ansi_yellow), + ) + .field( + "terminal_ansi_blue", + &HslaPrinter(self.0.terminal_ansi_blue), + ) + .field( + "terminal_ansi_magenta", + &HslaPrinter(self.0.terminal_ansi_magenta), + ) + .field( + "terminal_ansi_cyan", + &HslaPrinter(self.0.terminal_ansi_cyan), + ) + .field( + "terminal_ansi_white", + &HslaPrinter(self.0.terminal_ansi_white), + ) + .finish() + } +} + +pub struct StatusColorsPrinter<'a>(&'a StatusColors); + +impl<'a> Debug for StatusColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("StatusColors") + .field("conflict", &HslaPrinter(self.0.conflict)) + .field("created", &HslaPrinter(self.0.created)) + .field("deleted", &HslaPrinter(self.0.deleted)) + .field("error", &HslaPrinter(self.0.error)) + .field("hidden", &HslaPrinter(self.0.hidden)) + .field("ignored", &HslaPrinter(self.0.ignored)) + .field("info", &HslaPrinter(self.0.info)) + .field("modified", &HslaPrinter(self.0.modified)) + .field("renamed", &HslaPrinter(self.0.renamed)) + .field("success", &HslaPrinter(self.0.success)) + .field("warning", &HslaPrinter(self.0.warning)) + .finish() + } +} + +pub struct GitStatusColorsPrinter<'a>(&'a GitStatusColors); + +impl<'a> Debug for GitStatusColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("GitStatusColors") + .field("conflict", &HslaPrinter(self.0.conflict)) + .field("created", &HslaPrinter(self.0.created)) + .field("deleted", &HslaPrinter(self.0.deleted)) + .field("ignored", &HslaPrinter(self.0.ignored)) + .field("modified", &HslaPrinter(self.0.modified)) + .field("renamed", &HslaPrinter(self.0.renamed)) + .finish() + } +} + +pub struct PlayerColorsPrinter<'a>(&'a PlayerColors); + +impl<'a> Debug for PlayerColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("PlayerColors") + .field(&VecPrinter( + &self + .0 + .0 + .iter() + .map(|player_color| PlayerColorPrinter(player_color)) + .collect(), + )) + .finish() + } +} + +pub struct PlayerColorPrinter<'a>(&'a PlayerColor); + +impl<'a> Debug for PlayerColorPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("PlayerColor") + .field("cursor", &HslaPrinter(self.0.cursor)) + .field("background", &HslaPrinter(self.0.background)) + .field("selection", &HslaPrinter(self.0.selection)) + .finish() + } +} + +pub struct SyntaxThemePrinter<'a>(&'a SyntaxTheme); + +impl<'a> Debug for SyntaxThemePrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("SyntaxTheme") + .field( + "highlights", + &VecPrinter( + &self + .0 + .highlights + .iter() + .map(|(token, highlight)| { + (IntoPrinter(token), HslaPrinter(highlight.color.unwrap())) + }) + .collect(), + ), + ) + .finish() + } +} diff --git a/crates/theme_importer/src/util.rs b/crates/theme_importer/src/util.rs new file mode 100644 index 0000000000000000000000000000000000000000..a78d57ecde82e8d33865409c8a07d7cd40d10f92 --- /dev/null +++ b/crates/theme_importer/src/util.rs @@ -0,0 +1,11 @@ +use anyhow::Result; + +pub trait Traverse { + fn traverse(self, f: impl FnOnce(T) -> Result) -> Result>; +} + +impl Traverse for Option { + fn traverse(self, f: impl FnOnce(T) -> Result) -> Result> { + self.map_or(Ok(None), |value| f(value).map(Some)) + } +} diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs new file mode 100644 index 0000000000000000000000000000000000000000..f63766b6a50c8e8db957e0e4b0a833c5f7e9c1e6 --- /dev/null +++ b/crates/theme_importer/src/vscode.rs @@ -0,0 +1,606 @@ +use anyhow::Result; +use gpui::{Hsla, Refineable, Rgba}; +use serde::Deserialize; +use theme::{ + Appearance, GitStatusColors, PlayerColors, StatusColors, SyntaxTheme, SystemColors, + ThemeColors, ThemeColorsRefinement, ThemeStyles, ThemeVariant, +}; + +use crate::util::Traverse; +use crate::ThemeMetadata; + +#[derive(Deserialize, Debug)] +pub struct VsCodeTheme { + #[serde(rename = "$schema")] + pub schema: Option, + pub name: Option, + pub author: Option, + pub maintainers: Option>, + #[serde(rename = "semanticClass")] + pub semantic_class: Option, + #[serde(rename = "semanticHighlighting")] + pub semantic_highlighting: Option, + pub colors: VsCodeColors, +} + +#[derive(Debug, Deserialize)] +pub struct VsCodeColors { + #[serde(rename = "terminal.background")] + pub terminal_background: Option, + #[serde(rename = "terminal.foreground")] + pub terminal_foreground: Option, + #[serde(rename = "terminal.ansiBrightBlack")] + pub terminal_ansi_bright_black: Option, + #[serde(rename = "terminal.ansiBrightRed")] + pub terminal_ansi_bright_red: Option, + #[serde(rename = "terminal.ansiBrightGreen")] + pub terminal_ansi_bright_green: Option, + #[serde(rename = "terminal.ansiBrightYellow")] + pub terminal_ansi_bright_yellow: Option, + #[serde(rename = "terminal.ansiBrightBlue")] + pub terminal_ansi_bright_blue: Option, + #[serde(rename = "terminal.ansiBrightMagenta")] + pub terminal_ansi_bright_magenta: Option, + #[serde(rename = "terminal.ansiBrightCyan")] + pub terminal_ansi_bright_cyan: Option, + #[serde(rename = "terminal.ansiBrightWhite")] + pub terminal_ansi_bright_white: Option, + #[serde(rename = "terminal.ansiBlack")] + pub terminal_ansi_black: Option, + #[serde(rename = "terminal.ansiRed")] + pub terminal_ansi_red: Option, + #[serde(rename = "terminal.ansiGreen")] + pub terminal_ansi_green: Option, + #[serde(rename = "terminal.ansiYellow")] + pub terminal_ansi_yellow: Option, + #[serde(rename = "terminal.ansiBlue")] + pub terminal_ansi_blue: Option, + #[serde(rename = "terminal.ansiMagenta")] + pub terminal_ansi_magenta: Option, + #[serde(rename = "terminal.ansiCyan")] + pub terminal_ansi_cyan: Option, + #[serde(rename = "terminal.ansiWhite")] + pub terminal_ansi_white: Option, + #[serde(rename = "focusBorder")] + pub focus_border: Option, + pub foreground: Option, + #[serde(rename = "selection.background")] + pub selection_background: Option, + #[serde(rename = "errorForeground")] + pub error_foreground: Option, + #[serde(rename = "button.background")] + pub button_background: Option, + #[serde(rename = "button.foreground")] + pub button_foreground: Option, + #[serde(rename = "button.secondaryBackground")] + pub button_secondary_background: Option, + #[serde(rename = "button.secondaryForeground")] + pub button_secondary_foreground: Option, + #[serde(rename = "button.secondaryHoverBackground")] + pub button_secondary_hover_background: Option, + #[serde(rename = "dropdown.background")] + pub dropdown_background: Option, + #[serde(rename = "dropdown.border")] + pub dropdown_border: Option, + #[serde(rename = "dropdown.foreground")] + pub dropdown_foreground: Option, + #[serde(rename = "input.background")] + pub input_background: Option, + #[serde(rename = "input.foreground")] + pub input_foreground: Option, + #[serde(rename = "input.border")] + pub input_border: Option, + #[serde(rename = "input.placeholderForeground")] + pub input_placeholder_foreground: Option, + #[serde(rename = "inputOption.activeBorder")] + pub input_option_active_border: Option, + #[serde(rename = "inputValidation.infoBorder")] + pub input_validation_info_border: Option, + #[serde(rename = "inputValidation.warningBorder")] + pub input_validation_warning_border: Option, + #[serde(rename = "inputValidation.errorBorder")] + pub input_validation_error_border: Option, + #[serde(rename = "badge.foreground")] + pub badge_foreground: Option, + #[serde(rename = "badge.background")] + pub badge_background: Option, + #[serde(rename = "progressBar.background")] + pub progress_bar_background: Option, + #[serde(rename = "list.activeSelectionBackground")] + pub list_active_selection_background: Option, + #[serde(rename = "list.activeSelectionForeground")] + pub list_active_selection_foreground: Option, + #[serde(rename = "list.dropBackground")] + pub list_drop_background: Option, + #[serde(rename = "list.focusBackground")] + pub list_focus_background: Option, + #[serde(rename = "list.highlightForeground")] + pub list_highlight_foreground: Option, + #[serde(rename = "list.hoverBackground")] + pub list_hover_background: Option, + #[serde(rename = "list.inactiveSelectionBackground")] + pub list_inactive_selection_background: Option, + #[serde(rename = "list.warningForeground")] + pub list_warning_foreground: Option, + #[serde(rename = "list.errorForeground")] + pub list_error_foreground: Option, + #[serde(rename = "activityBar.background")] + pub activity_bar_background: Option, + #[serde(rename = "activityBar.inactiveForeground")] + pub activity_bar_inactive_foreground: Option, + #[serde(rename = "activityBar.foreground")] + pub activity_bar_foreground: Option, + #[serde(rename = "activityBar.activeBorder")] + pub activity_bar_active_border: Option, + #[serde(rename = "activityBar.activeBackground")] + pub activity_bar_active_background: Option, + #[serde(rename = "activityBarBadge.background")] + pub activity_bar_badge_background: Option, + #[serde(rename = "activityBarBadge.foreground")] + pub activity_bar_badge_foreground: Option, + #[serde(rename = "sideBar.background")] + pub side_bar_background: Option, + #[serde(rename = "sideBarTitle.foreground")] + pub side_bar_title_foreground: Option, + #[serde(rename = "sideBarSectionHeader.background")] + pub side_bar_section_header_background: Option, + #[serde(rename = "sideBarSectionHeader.border")] + pub side_bar_section_header_border: Option, + #[serde(rename = "editorGroup.border")] + pub editor_group_border: Option, + #[serde(rename = "editorGroup.dropBackground")] + pub editor_group_drop_background: Option, + #[serde(rename = "editorGroupHeader.tabsBackground")] + pub editor_group_header_tabs_background: Option, + #[serde(rename = "tab.activeBackground")] + pub tab_active_background: Option, + #[serde(rename = "tab.activeForeground")] + pub tab_active_foreground: Option, + #[serde(rename = "tab.border")] + pub tab_border: Option, + #[serde(rename = "tab.activeBorderTop")] + pub tab_active_border_top: Option, + #[serde(rename = "tab.inactiveBackground")] + pub tab_inactive_background: Option, + #[serde(rename = "tab.inactiveForeground")] + pub tab_inactive_foreground: Option, + #[serde(rename = "editor.foreground")] + pub editor_foreground: Option, + #[serde(rename = "editor.background")] + pub editor_background: Option, + #[serde(rename = "editorLineNumber.foreground")] + pub editor_line_number_foreground: Option, + #[serde(rename = "editor.selectionBackground")] + pub editor_selection_background: Option, + #[serde(rename = "editor.selectionHighlightBackground")] + pub editor_selection_highlight_background: Option, + #[serde(rename = "editor.foldBackground")] + pub editor_fold_background: Option, + #[serde(rename = "editor.wordHighlightBackground")] + pub editor_word_highlight_background: Option, + #[serde(rename = "editor.wordHighlightStrongBackground")] + pub editor_word_highlight_strong_background: Option, + #[serde(rename = "editor.findMatchBackground")] + pub editor_find_match_background: Option, + #[serde(rename = "editor.findMatchHighlightBackground")] + pub editor_find_match_highlight_background: Option, + #[serde(rename = "editor.findRangeHighlightBackground")] + pub editor_find_range_highlight_background: Option, + #[serde(rename = "editor.hoverHighlightBackground")] + pub editor_hover_highlight_background: Option, + #[serde(rename = "editor.lineHighlightBorder")] + pub editor_line_highlight_border: Option, + #[serde(rename = "editorLink.activeForeground")] + pub editor_link_active_foreground: Option, + #[serde(rename = "editor.rangeHighlightBackground")] + pub editor_range_highlight_background: Option, + #[serde(rename = "editor.snippetTabstopHighlightBackground")] + pub editor_snippet_tabstop_highlight_background: Option, + #[serde(rename = "editor.snippetTabstopHighlightBorder")] + pub editor_snippet_tabstop_highlight_border: Option, + #[serde(rename = "editor.snippetFinalTabstopHighlightBackground")] + pub editor_snippet_final_tabstop_highlight_background: Option, + #[serde(rename = "editor.snippetFinalTabstopHighlightBorder")] + pub editor_snippet_final_tabstop_highlight_border: Option, + #[serde(rename = "editorWhitespace.foreground")] + pub editor_whitespace_foreground: Option, + #[serde(rename = "editorIndentGuide.background")] + pub editor_indent_guide_background: Option, + #[serde(rename = "editorIndentGuide.activeBackground")] + pub editor_indent_guide_active_background: Option, + #[serde(rename = "editorRuler.foreground")] + pub editor_ruler_foreground: Option, + #[serde(rename = "editorCodeLens.foreground")] + pub editor_code_lens_foreground: Option, + #[serde(rename = "editorBracketHighlight.foreground1")] + pub editor_bracket_highlight_foreground1: Option, + #[serde(rename = "editorBracketHighlight.foreground2")] + pub editor_bracket_highlight_foreground2: Option, + #[serde(rename = "editorBracketHighlight.foreground3")] + pub editor_bracket_highlight_foreground3: Option, + #[serde(rename = "editorBracketHighlight.foreground4")] + pub editor_bracket_highlight_foreground4: Option, + #[serde(rename = "editorBracketHighlight.foreground5")] + pub editor_bracket_highlight_foreground5: Option, + #[serde(rename = "editorBracketHighlight.foreground6")] + pub editor_bracket_highlight_foreground6: Option, + #[serde(rename = "editorBracketHighlight.unexpectedBracket.foreground")] + pub editor_bracket_highlight_unexpected_bracket_foreground: Option, + #[serde(rename = "editorOverviewRuler.border")] + pub editor_overview_ruler_border: Option, + #[serde(rename = "editorOverviewRuler.selectionHighlightForeground")] + pub editor_overview_ruler_selection_highlight_foreground: Option, + #[serde(rename = "editorOverviewRuler.wordHighlightForeground")] + pub editor_overview_ruler_word_highlight_foreground: Option, + #[serde(rename = "editorOverviewRuler.wordHighlightStrongForeground")] + pub editor_overview_ruler_word_highlight_strong_foreground: Option, + #[serde(rename = "editorOverviewRuler.modifiedForeground")] + pub editor_overview_ruler_modified_foreground: Option, + #[serde(rename = "editorOverviewRuler.addedForeground")] + pub editor_overview_ruler_added_foreground: Option, + #[serde(rename = "editorOverviewRuler.deletedForeground")] + pub editor_overview_ruler_deleted_foreground: Option, + #[serde(rename = "editorOverviewRuler.errorForeground")] + pub editor_overview_ruler_error_foreground: Option, + #[serde(rename = "editorOverviewRuler.warningForeground")] + pub editor_overview_ruler_warning_foreground: Option, + #[serde(rename = "editorOverviewRuler.infoForeground")] + pub editor_overview_ruler_info_foreground: Option, + #[serde(rename = "editorError.foreground")] + pub editor_error_foreground: Option, + #[serde(rename = "editorWarning.foreground")] + pub editor_warning_foreground: Option, + #[serde(rename = "editorGutter.modifiedBackground")] + pub editor_gutter_modified_background: Option, + #[serde(rename = "editorGutter.addedBackground")] + pub editor_gutter_added_background: Option, + #[serde(rename = "editorGutter.deletedBackground")] + pub editor_gutter_deleted_background: Option, + #[serde(rename = "gitDecoration.modifiedResourceForeground")] + pub git_decoration_modified_resource_foreground: Option, + #[serde(rename = "gitDecoration.deletedResourceForeground")] + pub git_decoration_deleted_resource_foreground: Option, + #[serde(rename = "gitDecoration.untrackedResourceForeground")] + pub git_decoration_untracked_resource_foreground: Option, + #[serde(rename = "gitDecoration.ignoredResourceForeground")] + pub git_decoration_ignored_resource_foreground: Option, + #[serde(rename = "gitDecoration.conflictingResourceForeground")] + pub git_decoration_conflicting_resource_foreground: Option, + #[serde(rename = "diffEditor.insertedTextBackground")] + pub diff_editor_inserted_text_background: Option, + #[serde(rename = "diffEditor.removedTextBackground")] + pub diff_editor_removed_text_background: Option, + #[serde(rename = "inlineChat.regionHighlight")] + pub inline_chat_region_highlight: Option, + #[serde(rename = "editorWidget.background")] + pub editor_widget_background: Option, + #[serde(rename = "editorSuggestWidget.background")] + pub editor_suggest_widget_background: Option, + #[serde(rename = "editorSuggestWidget.foreground")] + pub editor_suggest_widget_foreground: Option, + #[serde(rename = "editorSuggestWidget.selectedBackground")] + pub editor_suggest_widget_selected_background: Option, + #[serde(rename = "editorHoverWidget.background")] + pub editor_hover_widget_background: Option, + #[serde(rename = "editorHoverWidget.border")] + pub editor_hover_widget_border: Option, + #[serde(rename = "editorMarkerNavigation.background")] + pub editor_marker_navigation_background: Option, + #[serde(rename = "peekView.border")] + pub peek_view_border: Option, + #[serde(rename = "peekViewEditor.background")] + pub peek_view_editor_background: Option, + #[serde(rename = "peekViewEditor.matchHighlightBackground")] + pub peek_view_editor_match_highlight_background: Option, + #[serde(rename = "peekViewResult.background")] + pub peek_view_result_background: Option, + #[serde(rename = "peekViewResult.fileForeground")] + pub peek_view_result_file_foreground: Option, + #[serde(rename = "peekViewResult.lineForeground")] + pub peek_view_result_line_foreground: Option, + #[serde(rename = "peekViewResult.matchHighlightBackground")] + pub peek_view_result_match_highlight_background: Option, + #[serde(rename = "peekViewResult.selectionBackground")] + pub peek_view_result_selection_background: Option, + #[serde(rename = "peekViewResult.selectionForeground")] + pub peek_view_result_selection_foreground: Option, + #[serde(rename = "peekViewTitle.background")] + pub peek_view_title_background: Option, + #[serde(rename = "peekViewTitleDescription.foreground")] + pub peek_view_title_description_foreground: Option, + #[serde(rename = "peekViewTitleLabel.foreground")] + pub peek_view_title_label_foreground: Option, + #[serde(rename = "merge.currentHeaderBackground")] + pub merge_current_header_background: Option, + #[serde(rename = "merge.incomingHeaderBackground")] + pub merge_incoming_header_background: Option, + #[serde(rename = "editorOverviewRuler.currentContentForeground")] + pub editor_overview_ruler_current_content_foreground: Option, + #[serde(rename = "editorOverviewRuler.incomingContentForeground")] + pub editor_overview_ruler_incoming_content_foreground: Option, + #[serde(rename = "panel.background")] + pub panel_background: Option, + #[serde(rename = "panel.border")] + pub panel_border: Option, + #[serde(rename = "panelTitle.activeBorder")] + pub panel_title_active_border: Option, + #[serde(rename = "panelTitle.activeForeground")] + pub panel_title_active_foreground: Option, + #[serde(rename = "panelTitle.inactiveForeground")] + pub panel_title_inactive_foreground: Option, + #[serde(rename = "statusBar.background")] + pub status_bar_background: Option, + #[serde(rename = "statusBar.foreground")] + pub status_bar_foreground: Option, + #[serde(rename = "statusBar.debuggingBackground")] + pub status_bar_debugging_background: Option, + #[serde(rename = "statusBar.debuggingForeground")] + pub status_bar_debugging_foreground: Option, + #[serde(rename = "statusBar.noFolderBackground")] + pub status_bar_no_folder_background: Option, + #[serde(rename = "statusBar.noFolderForeground")] + pub status_bar_no_folder_foreground: Option, + #[serde(rename = "statusBarItem.prominentBackground")] + pub status_bar_item_prominent_background: Option, + #[serde(rename = "statusBarItem.prominentHoverBackground")] + pub status_bar_item_prominent_hover_background: Option, + #[serde(rename = "statusBarItem.remoteForeground")] + pub status_bar_item_remote_foreground: Option, + #[serde(rename = "statusBarItem.remoteBackground")] + pub status_bar_item_remote_background: Option, + #[serde(rename = "titleBar.activeBackground")] + pub title_bar_active_background: Option, + #[serde(rename = "titleBar.activeForeground")] + pub title_bar_active_foreground: Option, + #[serde(rename = "titleBar.inactiveBackground")] + pub title_bar_inactive_background: Option, + #[serde(rename = "titleBar.inactiveForeground")] + pub title_bar_inactive_foreground: Option, + #[serde(rename = "extensionButton.prominentForeground")] + pub extension_button_prominent_foreground: Option, + #[serde(rename = "extensionButton.prominentBackground")] + pub extension_button_prominent_background: Option, + #[serde(rename = "extensionButton.prominentHoverBackground")] + pub extension_button_prominent_hover_background: Option, + #[serde(rename = "pickerGroup.border")] + pub picker_group_border: Option, + #[serde(rename = "pickerGroup.foreground")] + pub picker_group_foreground: Option, + #[serde(rename = "debugToolBar.background")] + pub debug_tool_bar_background: Option, + #[serde(rename = "walkThrough.embeddedEditorBackground")] + pub walk_through_embedded_editor_background: Option, + #[serde(rename = "settings.headerForeground")] + pub settings_header_foreground: Option, + #[serde(rename = "settings.modifiedItemIndicator")] + pub settings_modified_item_indicator: Option, + #[serde(rename = "settings.dropdownBackground")] + pub settings_dropdown_background: Option, + #[serde(rename = "settings.dropdownForeground")] + pub settings_dropdown_foreground: Option, + #[serde(rename = "settings.dropdownBorder")] + pub settings_dropdown_border: Option, + #[serde(rename = "settings.checkboxBackground")] + pub settings_checkbox_background: Option, + #[serde(rename = "settings.checkboxForeground")] + pub settings_checkbox_foreground: Option, + #[serde(rename = "settings.checkboxBorder")] + pub settings_checkbox_border: Option, + #[serde(rename = "settings.textInputBackground")] + pub settings_text_input_background: Option, + #[serde(rename = "settings.textInputForeground")] + pub settings_text_input_foreground: Option, + #[serde(rename = "settings.textInputBorder")] + pub settings_text_input_border: Option, + #[serde(rename = "settings.numberInputBackground")] + pub settings_number_input_background: Option, + #[serde(rename = "settings.numberInputForeground")] + pub settings_number_input_foreground: Option, + #[serde(rename = "settings.numberInputBorder")] + pub settings_number_input_border: Option, + #[serde(rename = "breadcrumb.foreground")] + pub breadcrumb_foreground: Option, + #[serde(rename = "breadcrumb.background")] + pub breadcrumb_background: Option, + #[serde(rename = "breadcrumb.focusForeground")] + pub breadcrumb_focus_foreground: Option, + #[serde(rename = "breadcrumb.activeSelectionForeground")] + pub breadcrumb_active_selection_foreground: Option, + #[serde(rename = "breadcrumbPicker.background")] + pub breadcrumb_picker_background: Option, + #[serde(rename = "listFilterWidget.background")] + pub list_filter_widget_background: Option, + #[serde(rename = "listFilterWidget.outline")] + pub list_filter_widget_outline: Option, + #[serde(rename = "listFilterWidget.noMatchesOutline")] + pub list_filter_widget_no_matches_outline: Option, +} + +fn try_parse_color(color: &str) -> Result { + Ok(Rgba::try_from(color)?.into()) +} + +pub struct VsCodeThemeConverter { + theme: VsCodeTheme, + theme_metadata: ThemeMetadata, +} + +impl VsCodeThemeConverter { + pub fn new(theme: VsCodeTheme, theme_metadata: ThemeMetadata) -> Self { + Self { + theme, + theme_metadata, + } + } + + pub fn convert(self) -> Result { + let appearance = self.theme_metadata.appearance.into(); + + let mut theme_colors = match appearance { + Appearance::Light => ThemeColors::default_light(), + Appearance::Dark => ThemeColors::default_dark(), + }; + + let vscode_colors = &self.theme.colors; + + let theme_colors_refinements = ThemeColorsRefinement { + border: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_variant: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_focused: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_disabled: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_selected: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_transparent: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + elevated_surface_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + surface_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + background: vscode_colors + .editor_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + element_background: vscode_colors + .button_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + text: vscode_colors + .foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, + tab_active_background: vscode_colors + .tab_active_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + tab_inactive_background: vscode_colors + .tab_inactive_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_background: vscode_colors + .terminal_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_black: vscode_colors + .terminal_ansi_bright_black + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_red: vscode_colors + .terminal_ansi_bright_red + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_green: vscode_colors + .terminal_ansi_bright_green + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_yellow: vscode_colors + .terminal_ansi_bright_yellow + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_blue: vscode_colors + .terminal_ansi_bright_blue + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_magenta: vscode_colors + .terminal_ansi_bright_magenta + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_cyan: vscode_colors + .terminal_ansi_bright_cyan + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_white: vscode_colors + .terminal_ansi_bright_white + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_black: vscode_colors + .terminal_ansi_black + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_red: vscode_colors + .terminal_ansi_red + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_green: vscode_colors + .terminal_ansi_green + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_yellow: vscode_colors + .terminal_ansi_yellow + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_blue: vscode_colors + .terminal_ansi_blue + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_magenta: vscode_colors + .terminal_ansi_magenta + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_cyan: vscode_colors + .terminal_ansi_cyan + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_white: vscode_colors + .terminal_ansi_white + .as_ref() + .traverse(|color| try_parse_color(&color))?, + ..Default::default() + }; + + theme_colors.refine(&theme_colors_refinements); + + Ok(ThemeVariant { + id: uuid::Uuid::new_v4().to_string(), + name: self.theme_metadata.name.into(), + appearance, + styles: ThemeStyles { + system: SystemColors::default(), + colors: theme_colors, + status: StatusColors::default(), + git: GitStatusColors::default(), + player: PlayerColors::default(), + syntax: SyntaxTheme::default_dark(), + }, + }) + } +} + +// #[cfg(test)] +// mod tests { +// use super::*; +// use std::path::PathBuf; + +// #[test] +// fn test_deserialize_theme() { +// let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); +// let root_dir = manifest_dir.parent().unwrap().parent().unwrap(); + +// let mut d = root_dir.to_path_buf(); +// d.push("assets/themes/src/vsc/dracula/dracula.json"); + +// let data = std::fs::read_to_string(d).expect("Unable to read file"); + +// let result: Theme = serde_json::from_str(&data).unwrap(); +// println!("{:#?}", result); +// } +// } diff --git a/crates/ui2/Cargo.toml b/crates/ui2/Cargo.toml index f11fd652b61d4b5be02ef0f06eb0095a3c3fda44..754bca371f41e741356f1ad9df670de2154e9978 100644 --- a/crates/ui2/Cargo.toml +++ b/crates/ui2/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] anyhow.workspace = true chrono = "0.4" -gpui2 = { path = "../gpui2" } +gpui = { package = "gpui2", path = "../gpui2" } itertools = { version = "0.11.0", optional = true } serde.workspace = true settings2 = { path = "../settings2" } diff --git a/crates/ui2/docs/building-ui.md b/crates/ui2/docs/building-ui.md new file mode 100644 index 0000000000000000000000000000000000000000..e0160e336ed36df3a4354c8e7ba186a035502227 --- /dev/null +++ b/crates/ui2/docs/building-ui.md @@ -0,0 +1,49 @@ +# Building UI with GPUI + +## Common patterns + +### Method ordering + +- id +- Flex properties +- Position properties +- Size properties +- Style properties +- Handlers +- State properties + +### Using the Label Component to Create UI Text + +The `Label` component helps in displaying text on user interfaces. It creates an interface where specific parameters such as label color, line height style, and strikethrough can be set. + +Firstly, to create a `Label` instance, use the `Label::new()` function. This function takes a string that will be displayed as text in the interface. + +```rust +Label::new("Hello, world!"); +``` + +Now let's dive a bit deeper into how to customize `Label` instances: + +- **Setting Color:** To set the color of the label using various predefined color options such as `Default`, `Muted`, `Created`, `Modified`, `Deleted`, etc, the `color()` function is called on the `Label` instance: + + ```rust + Label::new("Hello, world!").color(LabelColor::Default); + ``` + +- **Setting Line Height Style:** To set the line height style, the `line_height_style()` function is utilized: + + ```rust + Label::new("Hello, world!").line_height_style(LineHeightStyle::TextLabel); + ``` + +- **Adding a Strikethrough:** To add a strikethrough in a `Label`, the `set_strikethrough()` function is used: + + ```rust + Label::new("Hello, world!").set_strikethrough(true); + ``` + +That's it! Now you can use the `Label` component to create and customize text on your application's interface. + +## Building a new component + +TODO diff --git a/crates/ui2/docs/elevation.md b/crates/ui2/docs/elevation.md deleted file mode 100644 index bd34de3396dea1f1042bb267f8a23abe6a45441f..0000000000000000000000000000000000000000 --- a/crates/ui2/docs/elevation.md +++ /dev/null @@ -1,57 +0,0 @@ -# Elevation - -Elevation in Zed applies to all surfaces and components. Elevation is categorized into levels. - -Elevation accomplishes the following: -- Allows surfaces to move in front of or behind others, such as content scrolling beneath app top bars. -- Reflects spatial relationships, for instance, how a floating action button’s shadow intimates its disconnection from a collection of cards. -- Directs attention to structures at the highest elevation, like a temporary dialog arising in front of other surfaces. - -Elevations are the initial elevation values assigned to components by default. - -Components may transition to a higher elevation in some cases, like user interations. - -On such occasions, components transition to predetermined dynamic elevation offsets. These are the typical elevations to which components move when they are not at rest. - -## Understanding Elevation - -Elevation can be thought of as the physical closeness of an element to the user. Elements with lower elevations are physically further away from the user on the z-axis and appear to be underneath elements with higher elevations. - -Material Design 3 has a some great visualizations of elevation that may be helpful to understanding the mental modal of elevation. [Material Design – Elevation](https://m3.material.io/styles/elevation/overview) - -## Elevation Levels - -Zed integrates six unique elevation levels in its design system. The elevation of a surface is expressed as a whole number ranging from 0 to 5, both numbers inclusive. A component’s elevation is ascertained by combining the component’s resting elevation with any dynamic elevation offsets. - -The levels are detailed as follows: - -0. App Background -1. UI Surface -2. Elevated Elements -3. Wash -4. Focused Element -5. Dragged Element - -### 0. App Background - -The app background constitutes the lowest elevation layer, appearing behind all other surfaces and components. It is predominantly used for the background color of the app. - -### 1. UI Surface - -The UI Surface is the standard elevation for components and is placed above the app background. It is generally used for the background color of the app bar, card, and sheet. - -### 2. Elevated Elements - -Elevated elements appear above the UI surface layer surfaces and components. Elevated elements are predominantly used for creating popovers, context menus, and tooltips. - -### 3. Wash - -Wash denotes a distinct elevation reserved to isolate app UI layers from high elevation components such as modals, notifications, and overlaid panels. The wash may not consistently be visible when these components are active. This layer is often referred to as a scrim or overlay and the background color of the wash is typically deployed in its design. - -### 4. Focused Element - -Focused elements obtain a higher elevation above surfaces and components at wash elevation. They are often used for modals, notifications, and overlaid panels and indicate that they are the sole element the user is interacting with at the moment. - -### 5. Dragged Element - -Dragged elements gain the highest elevation, thus appearing above surfaces and components at the elevation of focused elements. These are typically used for elements that are being dragged, following the cursor diff --git a/crates/ui2/docs/hello-world.md b/crates/ui2/docs/hello-world.md new file mode 100644 index 0000000000000000000000000000000000000000..e8ed3bb9445464e310e22dbc40d9773bf419d2b3 --- /dev/null +++ b/crates/ui2/docs/hello-world.md @@ -0,0 +1,160 @@ +# Hello World + +Let's work through the prototypical "Build a todo app" example to showcase how we might build a simple component from scratch. + +## Setup + +We'll create a headline, a list of todo items, and a form to add new items. + +~~~rust +struct TodoList { + headline: SharedString, + items: Vec, + submit_form: ClickHandler +} + +struct TodoItem { + text: SharedString, + completed: bool, + delete: ClickHandler +} + +impl TodoList { + pub fn new( + // Here we impl Into + headline: impl Into, + items: Vec, + submit_form: ClickHandler + ) -> Self { + Self { + // and here we call .into() so we can simply pass a string + // when creating the headline. This pattern is used throughout + // outr components + headline: headline.into(), + items: Vec::new(), + submit_form, + } + } +} +~~~ + +All of this is relatively straightforward. + +We use [gpui::SharedString] in components instead of [std::string::String]. This allows us to [TODO: someone who actually knows please explain why we use SharedString]. + +When we want to pass an action we pass a `ClickHandler`. Whenever we want to add an action, the struct it belongs to needs to be generic over the view type `V`. + +~~~rust +use gpui::hsla + +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + div().size_4().bg(hsla(50.0/360.0, 1.0, 0.5, 1.0)) + } +} +~~~ + +Every component needs a render method, and it should return `impl Component`. This basic component will render a 16x16px yellow square on the screen. + +A couple of questions might come to mind: + +**Why is `size_4()` 16px, not 4px?** + +gpui's style system is based on conventions created by [Tailwind CSS](https://tailwindcss.com/). Here is an example of the list of sizes for `width`: [Width - TailwindCSS Docs](https://tailwindcss.com/docs/width). + +I'll quote from the Tailwind [Core Concepts](https://tailwindcss.com/docs/utility-first) docs here: + +> Now I know what you’re thinking, “this is an atrocity, what a horrible mess!” +> and you’re right, it’s kind of ugly. In fact it’s just about impossible to +> think this is a good idea the first time you see it — +> you have to actually try it. + +As you start using the Tailwind-style conventions you will be surprised how quick it makes it to build out UIs. + +**Why `50.0/360.0` in `hsla()`?** + +gpui [gpui::Hsla] use `0.0-1.0` for all it's values, but it is common for tools to use `0-360` for hue. + +This may change in the future, but this is a little trick that let's you use familiar looking values. + +## Building out the container + +Let's grab our [theme2::colors::ThemeColors] from the theme and start building out a basic container. + +We can access the current theme's colors like this: + +~~~rust +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let color = cx.theme().colors() + + div().size_4().hsla(50.0/360.0, 1.0, 0.5, 1.0) + } +} +~~~ + +Now we have access to the complete set of colors defined in the theme. + +~~~rust +use gpui::hsla + +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let color = cx.theme().colors() + + div().size_4().bg(color.surface) + } +} +~~~ + +Let's finish up some basic styles for the container then move on to adding the other elements. + +~~~rust +use gpui::hsla + +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let color = cx.theme().colors() + + div() + // Flex properties + .flex() + .flex_col() // Stack elements vertically + .gap_2() // Add 8px of space between elements + // Size properties + .w_96() // Set width to 384px + .p_4() // Add 16px of padding on all sides + // Color properties + .bg(color.surface) // Set background color + .text_color(color.text) // Set text color + // Border properties + .rounded_md() // Add 4px of border radius + .border() // Add a 1px border + .border_color(color.border) + .child( + "Hello, world!" + ) + } +} +~~~ + +### Headline + +TODO + +### List of todo items + +TODO + +### Input + +TODO + + +### End result + +TODO diff --git a/crates/ui2/docs/todo.md b/crates/ui2/docs/todo.md new file mode 100644 index 0000000000000000000000000000000000000000..e7a053ecf47d212e9527733a629482c57a2359eb --- /dev/null +++ b/crates/ui2/docs/todo.md @@ -0,0 +1,25 @@ +## Documentation priorities: + +These are the priorities to get documented, in a rough stack rank order: + +- [ ] label +- [ ] button +- [ ] icon_button +- [ ] icon +- [ ] list +- [ ] avatar +- [ ] panel +- [ ] modal +- [ ] palette +- [ ] input +- [ ] facepile +- [ ] player +- [ ] stacks +- [ ] context menu +- [ ] input +- [ ] textarea/multiline input (not built - not an editor) +- [ ] indicator +- [ ] public actor +- [ ] keybinding +- [ ] tab +- [ ] toast diff --git a/crates/ui2/src/components.rs b/crates/ui2/src/components.rs index 7a9cac01ca7c54999210b3220986062906196e1b..857d0f1042f8d62616bfc96ba19be09b0bde567a 100644 --- a/crates/ui2/src/components.rs +++ b/crates/ui2/src/components.rs @@ -1,71 +1,53 @@ -mod assistant_panel; -mod breadcrumb; -mod buffer; -mod buffer_search; -mod chat_panel; -mod collab_panel; -mod command_palette; +mod avatar; +mod button; +mod checkbox; mod context_menu; -mod copilot; -mod editor_pane; +mod details; mod facepile; +mod icon; mod icon_button; +mod indicator; +mod input; mod keybinding; -mod language_selector; +mod label; mod list; mod modal; -mod multi_buffer; mod notification_toast; -mod notifications_panel; mod palette; mod panel; -mod panes; +mod player; mod player_stack; -mod project_panel; -mod recent_projects; -mod status_bar; +mod slot; +mod stack; mod tab; -mod tab_bar; -mod terminal; -mod theme_selector; -mod title_bar; mod toast; -mod toolbar; -mod traffic_lights; -mod workspace; +mod toggle; +mod tool_divider; +mod tooltip; -pub use assistant_panel::*; -pub use breadcrumb::*; -pub use buffer::*; -pub use buffer_search::*; -pub use chat_panel::*; -pub use collab_panel::*; -pub use command_palette::*; +pub use avatar::*; +pub use button::*; +pub use checkbox::*; pub use context_menu::*; -pub use copilot::*; -pub use editor_pane::*; +pub use details::*; pub use facepile::*; +pub use icon::*; pub use icon_button::*; +pub use indicator::*; +pub use input::*; pub use keybinding::*; -pub use language_selector::*; +pub use label::*; pub use list::*; pub use modal::*; -pub use multi_buffer::*; pub use notification_toast::*; -pub use notifications_panel::*; pub use palette::*; pub use panel::*; -pub use panes::*; +pub use player::*; pub use player_stack::*; -pub use project_panel::*; -pub use recent_projects::*; -pub use status_bar::*; +pub use slot::*; +pub use stack::*; pub use tab::*; -pub use tab_bar::*; -pub use terminal::*; -pub use theme_selector::*; -pub use title_bar::*; pub use toast::*; -pub use toolbar::*; -pub use traffic_lights::*; -pub use workspace::*; +pub use toggle::*; +pub use tool_divider::*; +pub use tooltip::*; diff --git a/crates/ui2/src/elements/avatar.rs b/crates/ui2/src/components/avatar.rs similarity index 96% rename from crates/ui2/src/elements/avatar.rs rename to crates/ui2/src/components/avatar.rs index ff574a2042d2805a08a64867916b1cdea9802271..9c993dfc062c2df288c5345c8bcc4019cd11d6a4 100644 --- a/crates/ui2/src/elements/avatar.rs +++ b/crates/ui2/src/components/avatar.rs @@ -1,4 +1,4 @@ -use gpui2::img; +use gpui::img; use crate::prelude::*; @@ -33,7 +33,7 @@ impl Avatar { img.uri(self.src.clone()) .size_4() // todo!(Pull the avatar fallback background from the theme.) - .bg(gpui2::red()) + .bg(gpui::red()) } } @@ -44,7 +44,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct AvatarStory; diff --git a/crates/ui2/src/elements/button.rs b/crates/ui2/src/components/button.rs similarity index 95% rename from crates/ui2/src/elements/button.rs rename to crates/ui2/src/components/button.rs index 073bcdbb4589ed9fc87e4b63dd6acd0bfd3176f4..437daaa982b21d4e938c3ca823fe2a40432427b3 100644 --- a/crates/ui2/src/elements/button.rs +++ b/crates/ui2/src/components/button.rs @@ -1,9 +1,28 @@ use std::sync::Arc; -use gpui2::{div, rems, DefiniteLength, Hsla, MouseButton, WindowContext}; +use gpui::{div, rems, DefiniteLength, Hsla, MouseButton, WindowContext}; -use crate::prelude::*; use crate::{h_stack, Icon, IconColor, IconElement, Label, LabelColor, LineHeightStyle}; +use crate::{prelude::*, IconButton}; + +/// Provides the flexibility to use either a standard +/// button or an icon button in a given context. +pub enum ButtonOrIconButton { + Button(Button), + IconButton(IconButton), +} + +impl From> for ButtonOrIconButton { + fn from(value: Button) -> Self { + Self::Button(value) + } +} + +impl From> for ButtonOrIconButton { + fn from(value: IconButton) -> Self { + Self::IconButton(value) + } +} #[derive(Default, PartialEq, Clone, Copy)] pub enum IconPosition { @@ -22,8 +41,8 @@ pub enum ButtonVariant { impl ButtonVariant { pub fn bg_color(&self, cx: &mut WindowContext) -> Hsla { match self { - ButtonVariant::Ghost => cx.theme().colors().ghost_element, - ButtonVariant::Filled => cx.theme().colors().element, + ButtonVariant::Ghost => cx.theme().colors().ghost_element_background, + ButtonVariant::Filled => cx.theme().colors().element_background, } } @@ -42,7 +61,7 @@ impl ButtonVariant { } } -pub type ClickHandler = Arc) + Send + Sync>; +pub type ClickHandler = Arc) + Send + Sync>; struct ButtonHandlers { click: Option>, @@ -215,7 +234,7 @@ pub use stories::*; mod stories { use super::*; use crate::{h_stack, v_stack, LabelColor, Story}; - use gpui2::{rems, Div, Render}; + use gpui::{rems, Div, Render}; use strum::IntoEnumIterator; pub struct ButtonStory; diff --git a/crates/ui2/src/components/checkbox.rs b/crates/ui2/src/components/checkbox.rs new file mode 100644 index 0000000000000000000000000000000000000000..9f7c10a10433eef59249e3ab0df408b94a8a2aff --- /dev/null +++ b/crates/ui2/src/components/checkbox.rs @@ -0,0 +1,229 @@ +use std::sync::Arc; + +use gpui::{ + div, Component, ElementId, ParentElement, StatefulInteractive, StatelessInteractive, Styled, + ViewContext, +}; +use theme2::ActiveTheme; + +use crate::{Icon, IconColor, IconElement, Selection}; + +pub type CheckHandler = Arc) + Send + Sync>; + +/// # Checkbox +/// +/// Checkboxes are used for multiple choices, not for mutually exclusive choices. +/// Each checkbox works independently from other checkboxes in the list, +/// therefore checking an additional box does not affect any other selections. +#[derive(Component)] +pub struct Checkbox { + id: ElementId, + checked: Selection, + disabled: bool, + on_click: Option>, +} + +impl Checkbox { + pub fn new(id: impl Into, checked: Selection) -> Self { + Self { + id: id.into(), + checked, + disabled: false, + on_click: None, + } + } + + pub fn disabled(mut self, disabled: bool) -> Self { + self.disabled = disabled; + self + } + + pub fn on_click( + mut self, + handler: impl 'static + Fn(Selection, &mut V, &mut ViewContext) + Send + Sync, + ) -> Self { + self.on_click = Some(Arc::new(handler)); + self + } + + pub fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let group_id = format!("checkbox_group_{:?}", self.id); + + let icon = match self.checked { + // When selected, we show a checkmark. + Selection::Selected => { + Some( + IconElement::new(Icon::Check) + .size(crate::IconSize::Small) + .color( + // If the checkbox is disabled we change the color of the icon. + if self.disabled { + IconColor::Disabled + } else { + IconColor::Selected + }, + ), + ) + } + // In an indeterminate state, we show a dash. + Selection::Indeterminate => { + Some( + IconElement::new(Icon::Dash) + .size(crate::IconSize::Small) + .color( + // If the checkbox is disabled we change the color of the icon. + if self.disabled { + IconColor::Disabled + } else { + IconColor::Selected + }, + ), + ) + } + // When unselected, we show nothing. + Selection::Unselected => None, + }; + + // A checkbox could be in an indeterminate state, + // for example the indeterminate state could represent: + // - a group of options of which only some are selected + // - an enabled option that is no longer available + // - a previously agreed to license that has been updated + // + // For the sake of styles we treat the indeterminate state as selected, + // but it's icon will be different. + let selected = + self.checked == Selection::Selected || self.checked == Selection::Indeterminate; + + // We could use something like this to make the checkbox background when selected: + // + // ~~~rust + // ... + // .when(selected, |this| { + // this.bg(cx.theme().colors().element_selected) + // }) + // ~~~ + // + // But we use a match instead here because the checkbox might be disabled, + // and it could be disabled _while_ it is selected, as well as while it is not selected. + let (bg_color, border_color) = match (self.disabled, selected) { + (true, _) => ( + cx.theme().colors().ghost_element_disabled, + cx.theme().colors().border_disabled, + ), + (false, true) => ( + cx.theme().colors().element_selected, + cx.theme().colors().border, + ), + (false, false) => ( + cx.theme().colors().element_background, + cx.theme().colors().border, + ), + }; + + div() + .id(self.id) + // Rather than adding `px_1()` to add some space around the checkbox, + // we use a larger parent element to create a slightly larger + // click area for the checkbox. + .size_5() + // Because we've enlarged the click area, we need to create a + // `group` to pass down interaction events to the checkbox. + .group(group_id.clone()) + .child( + div() + .flex() + // This prevent the flex element from growing + // or shrinking in response to any size changes + .flex_none() + // The combo of `justify_center()` and `items_center()` + // is used frequently to center elements in a flex container. + // + // We use this to center the icon in the checkbox. + .justify_center() + .items_center() + .m_1() + .size_4() + .rounded_sm() + .bg(bg_color) + .border() + .border_color(border_color) + // We only want the interaction states to fire when we + // are in a checkbox that isn't disabled. + .when(!self.disabled, |this| { + // Here instead of `hover()` we use `group_hover()` + // to pass it the group id. + this.group_hover(group_id.clone(), |el| { + el.bg(cx.theme().colors().element_hover) + }) + }) + .children(icon), + ) + .when_some( + self.on_click.filter(|_| !self.disabled), + |this, on_click| { + this.on_click(move |view, _, cx| on_click(self.checked.inverse(), view, cx)) + }, + ) + } +} + +#[cfg(feature = "stories")] +pub use stories::*; + +#[cfg(feature = "stories")] +mod stories { + use super::*; + use crate::{h_stack, Story}; + use gpui::{Div, Render}; + + pub struct CheckboxStory; + + impl Render for CheckboxStory { + type Element = Div; + + fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + Story::container(cx) + .child(Story::title_for::<_, Checkbox>(cx)) + .child(Story::label(cx, "Default")) + .child( + h_stack() + .p_2() + .gap_2() + .rounded_md() + .border() + .border_color(cx.theme().colors().border) + .child(Checkbox::new("checkbox-enabled", Selection::Unselected)) + .child(Checkbox::new( + "checkbox-intermediate", + Selection::Indeterminate, + )) + .child(Checkbox::new("checkbox-selected", Selection::Selected)), + ) + .child(Story::label(cx, "Disabled")) + .child( + h_stack() + .p_2() + .gap_2() + .rounded_md() + .border() + .border_color(cx.theme().colors().border) + .child( + Checkbox::new("checkbox-disabled", Selection::Unselected) + .disabled(true), + ) + .child( + Checkbox::new( + "checkbox-disabled-intermediate", + Selection::Indeterminate, + ) + .disabled(true), + ) + .child( + Checkbox::new("checkbox-disabled-selected", Selection::Selected) + .disabled(true), + ), + ) + } + } +} diff --git a/crates/ui2/src/components/context_menu.rs b/crates/ui2/src/components/context_menu.rs index 8345be1b3577724f3967205c3f493abf5945bc2d..117be127798bd56f9d0c3963f8119832aa170550 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -8,7 +8,7 @@ pub enum ContextMenuItem { } impl ContextMenuItem { - fn to_list_item(self) -> ListItem { + fn to_list_item(self) -> ListItem { match self { ContextMenuItem::Header(label) => ListSubHeader::new(label).into(), ContextMenuItem::Entry(label) => { @@ -46,18 +46,15 @@ impl ContextMenu { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { v_stack() .flex() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .border() .border_color(cx.theme().colors().border) - .child( - List::new( - self.items - .into_iter() - .map(ContextMenuItem::to_list_item) - .collect(), - ) - .toggle(ToggleState::Toggled), - ) + .child(List::new( + self.items + .into_iter() + .map(ContextMenuItem::to_list_item::) + .collect(), + )) } } @@ -68,7 +65,7 @@ pub use stories::*; mod stories { use super::*; use crate::story::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct ContextMenuStory; diff --git a/crates/ui2/src/elements/details.rs b/crates/ui2/src/components/details.rs similarity index 98% rename from crates/ui2/src/elements/details.rs rename to crates/ui2/src/components/details.rs index 1d22c817740804b7dd2e2a6121d130e28b336dbe..c7f6cc1839df780cef995a1e98b9b3f68aa3ca57 100644 --- a/crates/ui2/src/elements/details.rs +++ b/crates/ui2/src/components/details.rs @@ -47,7 +47,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Button, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct DetailsStory; diff --git a/crates/ui2/src/components/facepile.rs b/crates/ui2/src/components/facepile.rs index 21dd848a281a2ed655c473c53f980958e778de75..efac4925f80a579bfc9deeca273fbf64aad10c5f 100644 --- a/crates/ui2/src/components/facepile.rs +++ b/crates/ui2/src/components/facepile.rs @@ -33,7 +33,7 @@ pub use stories::*; mod stories { use super::*; use crate::{static_players, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct FacepileStory; diff --git a/crates/ui2/src/elements/icon.rs b/crates/ui2/src/components/icon.rs similarity index 96% rename from crates/ui2/src/elements/icon.rs rename to crates/ui2/src/components/icon.rs index 5885d76101f18ce332e418423afb0f2d1f3d0da8..907f3f91871b5c614944e821244d10228d2853bb 100644 --- a/crates/ui2/src/elements/icon.rs +++ b/crates/ui2/src/components/icon.rs @@ -1,4 +1,4 @@ -use gpui2::{rems, svg, Hsla}; +use gpui::{rems, svg, Hsla}; use strum::EnumIter; use crate::prelude::*; @@ -22,6 +22,7 @@ pub enum IconColor { Warning, Success, Info, + Selected, } impl IconColor { @@ -36,6 +37,7 @@ impl IconColor { IconColor::Warning => cx.theme().status().warning, IconColor::Success => cx.theme().status().success, IconColor::Info => cx.theme().status().info, + IconColor::Selected => cx.theme().colors().icon_accent, } } } @@ -55,6 +57,7 @@ pub enum Icon { ChevronRight, ChevronUp, Close, + Dash, Exit, ExclamationTriangle, File, @@ -112,6 +115,7 @@ impl Icon { Icon::ChevronRight => "icons/chevron_right.svg", Icon::ChevronUp => "icons/chevron_up.svg", Icon::Close => "icons/x.svg", + Icon::Dash => "icons/dash.svg", Icon::Exit => "icons/exit.svg", Icon::ExclamationTriangle => "icons/warning.svg", Icon::File => "icons/file.svg", @@ -182,7 +186,6 @@ impl IconElement { } fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let fill = self.color.color(cx); let svg_size = match self.size { IconSize::Small => rems(0.75), IconSize::Medium => rems(0.9375), @@ -192,7 +195,7 @@ impl IconElement { .size(svg_size) .flex_none() .path(self.icon.path()) - .text_color(fill) + .text_color(self.color.color(cx)) } } @@ -201,7 +204,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use strum::IntoEnumIterator; use crate::Story; diff --git a/crates/ui2/src/components/icon_button.rs b/crates/ui2/src/components/icon_button.rs index 101c845a76ed490e051bb02416c1f4bd05b4c1a5..cb4fb4d7f00463b6a8b4dd0d661fb77d82c62419 100644 --- a/crates/ui2/src/components/icon_button.rs +++ b/crates/ui2/src/components/icon_button.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use gpui2::{rems, MouseButton}; +use gpui::{rems, MouseButton}; use crate::{h_stack, prelude::*}; use crate::{ClickHandler, Icon, IconColor, IconElement}; @@ -73,12 +73,12 @@ impl IconButton { let (bg_color, bg_hover_color, bg_active_color) = match self.variant { ButtonVariant::Filled => ( - cx.theme().colors().element, + cx.theme().colors().element_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), ButtonVariant::Ghost => ( - cx.theme().colors().ghost_element, + cx.theme().colors().ghost_element_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), diff --git a/crates/ui2/src/elements/indicator.rs b/crates/ui2/src/components/indicator.rs similarity index 84% rename from crates/ui2/src/elements/indicator.rs rename to crates/ui2/src/components/indicator.rs index 1f6e00e621ad02132f85540db985a1a2abd40c31..83030ebbee066b213ab9594106b7c6610e7f64e3 100644 --- a/crates/ui2/src/elements/indicator.rs +++ b/crates/ui2/src/components/indicator.rs @@ -1,4 +1,4 @@ -use gpui2::px; +use gpui::px; use crate::prelude::*; @@ -14,7 +14,7 @@ impl UnreadIndicator { div() .rounded_full() .border_2() - .border_color(cx.theme().colors().surface) + .border_color(cx.theme().colors().surface_background) .w(px(9.0)) .h(px(9.0)) .z_index(2) diff --git a/crates/ui2/src/elements/input.rs b/crates/ui2/src/components/input.rs similarity index 95% rename from crates/ui2/src/elements/input.rs rename to crates/ui2/src/components/input.rs index 2884470ce21193085e165cc1b0b92fb710c585a0..e9f520346c5bb2d036d3f754f13c9452406266c5 100644 --- a/crates/ui2/src/elements/input.rs +++ b/crates/ui2/src/components/input.rs @@ -59,12 +59,12 @@ impl Input { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { let (input_bg, input_hover_bg, input_active_bg) = match self.variant { InputVariant::Ghost => ( - cx.theme().colors().ghost_element, + cx.theme().colors().ghost_element_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), InputVariant::Filled => ( - cx.theme().colors().element, + cx.theme().colors().element_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), @@ -111,7 +111,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct InputStory; diff --git a/crates/ui2/src/components/keybinding.rs b/crates/ui2/src/components/keybinding.rs index 88cabbdc88bbd45fffb34d14682a3e8d546a68bc..22bbc747a2e5d503d46aff06b9ba1d03d8de5e0b 100644 --- a/crates/ui2/src/components/keybinding.rs +++ b/crates/ui2/src/components/keybinding.rs @@ -66,7 +66,7 @@ impl Key { .rounded_md() .text_sm() .text_color(cx.theme().colors().text) - .bg(cx.theme().colors().element) + .bg(cx.theme().colors().element_background) .child(self.key.clone()) } } @@ -158,7 +158,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use itertools::Itertools; pub struct KeybindingStory; diff --git a/crates/ui2/src/elements/label.rs b/crates/ui2/src/components/label.rs similarity index 98% rename from crates/ui2/src/elements/label.rs rename to crates/ui2/src/components/label.rs index d1d4d6630c49437979421de52b370a67be5d78ac..dd078d2331305dcfd87a66a52c290b0bfe8cb1fa 100644 --- a/crates/ui2/src/elements/label.rs +++ b/crates/ui2/src/components/label.rs @@ -1,4 +1,4 @@ -use gpui2::{relative, rems, Hsla, WindowContext}; +use gpui::{relative, rems, Hsla, WindowContext}; use smallvec::SmallVec; use crate::prelude::*; @@ -194,7 +194,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct LabelStory; diff --git a/crates/ui2/src/components/list.rs b/crates/ui2/src/components/list.rs index 50a86ff256b7a4e9e6f7992acd6f2178c8c32c6a..57143e1f0c47efe077ce68e7d6e44544a9fc76f7 100644 --- a/crates/ui2/src/components/list.rs +++ b/crates/ui2/src/components/list.rs @@ -1,11 +1,11 @@ -use gpui2::{div, px, relative, Div}; +use gpui::div; use crate::settings::user_settings; use crate::{ - h_stack, v_stack, Avatar, ClickHandler, Icon, IconColor, IconElement, IconSize, Label, - LabelColor, + disclosure_control, h_stack, v_stack, Avatar, Icon, IconColor, IconElement, IconSize, Label, + LabelColor, Toggle, }; -use crate::{prelude::*, Button}; +use crate::{prelude::*, GraphicSlot}; #[derive(Clone, Copy, Default, Debug, PartialEq)] pub enum ListItemVariant { @@ -29,7 +29,7 @@ pub struct ListHeader { left_icon: Option, meta: Option, variant: ListItemVariant, - toggleable: Toggleable, + toggle: Toggle, } impl ListHeader { @@ -39,17 +39,12 @@ impl ListHeader { left_icon: None, meta: None, variant: ListItemVariant::default(), - toggleable: Toggleable::NotToggleable, + toggle: Toggle::NotToggleable, } } - pub fn toggle(mut self, toggle: ToggleState) -> Self { - self.toggleable = toggle.into(); - self - } - - pub fn toggleable(mut self, toggleable: Toggleable) -> Self { - self.toggleable = toggleable; + pub fn toggle(mut self, toggle: Toggle) -> Self { + self.toggle = toggle; self } @@ -63,30 +58,8 @@ impl ListHeader { self } - fn disclosure_control(&self) -> Div { - let is_toggleable = self.toggleable != Toggleable::NotToggleable; - let is_toggled = Toggleable::is_toggled(&self.toggleable); - - match (is_toggleable, is_toggled) { - (false, _) => div(), - (_, true) => div().child( - IconElement::new(Icon::ChevronDown) - .color(IconColor::Muted) - .size(IconSize::Small), - ), - (_, false) => div().child( - IconElement::new(Icon::ChevronRight) - .color(IconColor::Muted) - .size(IconSize::Small), - ), - } - } - fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let is_toggleable = self.toggleable != Toggleable::NotToggleable; - let is_toggled = self.toggleable.is_toggled(); - - let disclosure_control = self.disclosure_control(); + let disclosure_control = disclosure_control(self.toggle); let meta = match self.meta { Some(ListHeaderMeta::Tools(icons)) => div().child( @@ -106,7 +79,7 @@ impl ListHeader { h_stack() .w_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) // TODO: Add focus state // .when(self.state == InteractionState::Focused, |this| { // this.border() @@ -193,12 +166,6 @@ impl ListSubHeader { } } -#[derive(Clone)] -pub enum LeftContent { - Icon(Icon), - Avatar(SharedString), -} - #[derive(Default, PartialEq, Copy, Clone)] pub enum ListEntrySize { #[default] @@ -207,44 +174,36 @@ pub enum ListEntrySize { } #[derive(Component)] -pub enum ListItem { +pub enum ListItem { Entry(ListEntry), - Details(ListDetailsEntry), Separator(ListSeparator), Header(ListSubHeader), } -impl From for ListItem { +impl From for ListItem { fn from(entry: ListEntry) -> Self { Self::Entry(entry) } } -impl From> for ListItem { - fn from(entry: ListDetailsEntry) -> Self { - Self::Details(entry) - } -} - -impl From for ListItem { +impl From for ListItem { fn from(entry: ListSeparator) -> Self { Self::Separator(entry) } } -impl From for ListItem { +impl From for ListItem { fn from(entry: ListSubHeader) -> Self { Self::Header(entry) } } -impl ListItem { - fn render(self, view: &mut V, cx: &mut ViewContext) -> impl Component { +impl ListItem { + fn render(self, view: &mut V, cx: &mut ViewContext) -> impl Component { match self { ListItem::Entry(entry) => div().child(entry.render(view, cx)), ListItem::Separator(separator) => div().child(separator.render(view, cx)), ListItem::Header(header) => div().child(header.render(view, cx)), - ListItem::Details(details) => div().child(details.render(view, cx)), } } @@ -263,31 +222,29 @@ impl ListItem { #[derive(Component)] pub struct ListEntry { - disclosure_control_style: DisclosureControlVisibility, + disabled: bool, + // TODO: Reintroduce this + // disclosure_control_style: DisclosureControlVisibility, indent_level: u32, label: Label, - left_content: Option, - variant: ListItemVariant, - size: ListEntrySize, - state: InteractionState, - toggle: Option, + left_slot: Option, overflow: OverflowStyle, + size: ListEntrySize, + toggle: Toggle, + variant: ListItemVariant, } impl ListEntry { pub fn new(label: Label) -> Self { Self { - disclosure_control_style: DisclosureControlVisibility::default(), + disabled: false, indent_level: 0, label, - variant: ListItemVariant::default(), - left_content: None, - size: ListEntrySize::default(), - state: InteractionState::default(), - // TODO: Should use Toggleable::NotToggleable - // or remove Toggleable::NotToggleable from the system - toggle: None, + left_slot: None, overflow: OverflowStyle::Hidden, + size: ListEntrySize::default(), + toggle: Toggle::NotToggleable, + variant: ListItemVariant::default(), } } @@ -301,28 +258,23 @@ impl ListEntry { self } - pub fn toggle(mut self, toggle: ToggleState) -> Self { - self.toggle = Some(toggle); + pub fn toggle(mut self, toggle: Toggle) -> Self { + self.toggle = toggle; self } - pub fn left_content(mut self, left_content: LeftContent) -> Self { - self.left_content = Some(left_content); + pub fn left_content(mut self, left_content: GraphicSlot) -> Self { + self.left_slot = Some(left_content); self } pub fn left_icon(mut self, left_icon: Icon) -> Self { - self.left_content = Some(LeftContent::Icon(left_icon)); + self.left_slot = Some(GraphicSlot::Icon(left_icon)); self } pub fn left_avatar(mut self, left_avatar: impl Into) -> Self { - self.left_content = Some(LeftContent::Avatar(left_avatar.into())); - self - } - - pub fn state(mut self, state: InteractionState) -> Self { - self.state = state; + self.left_slot = Some(GraphicSlot::Avatar(left_avatar.into())); self } @@ -331,63 +283,19 @@ impl ListEntry { self } - pub fn disclosure_control_style( - mut self, - disclosure_control_style: DisclosureControlVisibility, - ) -> Self { - self.disclosure_control_style = disclosure_control_style; - self - } - - fn label_color(&self) -> LabelColor { - match self.state { - InteractionState::Disabled => LabelColor::Disabled, - _ => Default::default(), - } - } - - fn icon_color(&self) -> IconColor { - match self.state { - InteractionState::Disabled => IconColor::Disabled, - _ => Default::default(), - } - } - - fn disclosure_control( - &mut self, - cx: &mut ViewContext, - ) -> Option> { - let disclosure_control_icon = if let Some(ToggleState::Toggled) = self.toggle { - IconElement::new(Icon::ChevronDown) - } else { - IconElement::new(Icon::ChevronRight) - } - .color(IconColor::Muted) - .size(IconSize::Small); - - match (self.toggle, self.disclosure_control_style) { - (Some(_), DisclosureControlVisibility::OnHover) => { - Some(div().absolute().neg_left_5().child(disclosure_control_icon)) - } - (Some(_), DisclosureControlVisibility::Always) => { - Some(div().child(disclosure_control_icon)) - } - (None, _) => None, - } - } - - fn render(mut self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { let settings = user_settings(cx); - let left_content = match self.left_content.clone() { - Some(LeftContent::Icon(i)) => Some( + let left_content = match self.left_slot.clone() { + Some(GraphicSlot::Icon(i)) => Some( h_stack().child( IconElement::new(i) .size(IconSize::Small) .color(IconColor::Muted), ), ), - Some(LeftContent::Avatar(src)) => Some(h_stack().child(Avatar::new(src))), + Some(GraphicSlot::Avatar(src)) => Some(h_stack().child(Avatar::new(src))), + Some(GraphicSlot::PublicActor(src)) => Some(h_stack().child(Avatar::new(src))), None => None, }; @@ -399,11 +307,12 @@ impl ListEntry { div() .relative() .group("") - .bg(cx.theme().colors().surface) - .when(self.state == InteractionState::Focused, |this| { - this.border() - .border_color(cx.theme().colors().border_focused) - }) + .bg(cx.theme().colors().surface_background) + // TODO: Add focus state + // .when(self.state == InteractionState::Focused, |this| { + // this.border() + // .border_color(cx.theme().colors().border_focused) + // }) .child( sized_item .when(self.variant == ListItemVariant::Inset, |this| this.px_2()) @@ -425,131 +334,13 @@ impl ListEntry { .gap_1() .items_center() .relative() - .children(self.disclosure_control(cx)) + .child(disclosure_control(self.toggle)) .children(left_content) .child(self.label), ) } } -struct ListDetailsEntryHandlers { - click: Option>, -} - -impl Default for ListDetailsEntryHandlers { - fn default() -> Self { - Self { click: None } - } -} - -#[derive(Component)] -pub struct ListDetailsEntry { - label: SharedString, - meta: Option, - left_content: Option, - handlers: ListDetailsEntryHandlers, - actions: Option>>, - // TODO: make this more generic instead of - // specifically for notifications - seen: bool, -} - -impl ListDetailsEntry { - pub fn new(label: impl Into) -> Self { - Self { - label: label.into(), - meta: None, - left_content: None, - handlers: ListDetailsEntryHandlers::default(), - actions: None, - seen: false, - } - } - - pub fn meta(mut self, meta: impl Into) -> Self { - self.meta = Some(meta.into()); - self - } - - pub fn seen(mut self, seen: bool) -> Self { - self.seen = seen; - self - } - - pub fn on_click(mut self, handler: ClickHandler) -> Self { - self.handlers.click = Some(handler); - self - } - - pub fn actions(mut self, actions: Vec>) -> Self { - self.actions = Some(actions); - self - } - - fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let settings = user_settings(cx); - - let (item_bg, item_bg_hover, item_bg_active) = ( - cx.theme().colors().ghost_element, - cx.theme().colors().ghost_element_hover, - cx.theme().colors().ghost_element_active, - ); - - let label_color = match self.seen { - true => LabelColor::Muted, - false => LabelColor::Default, - }; - - div() - .relative() - .group("") - .bg(item_bg) - .px_2() - .py_1p5() - .w_full() - .z_index(1) - .when(!self.seen, |this| { - this.child( - div() - .absolute() - .left(px(3.0)) - .top_3() - .rounded_full() - .border_2() - .border_color(cx.theme().colors().surface) - .w(px(9.0)) - .h(px(9.0)) - .z_index(2) - .bg(cx.theme().status().info), - ) - }) - .child( - v_stack() - .w_full() - .line_height(relative(1.2)) - .gap_1() - .child( - div() - .w_5() - .h_5() - .rounded_full() - .bg(cx.theme().colors().icon_accent), - ) - .child(Label::new(self.label.clone()).color(label_color)) - .children( - self.meta - .map(|meta| Label::new(meta).color(LabelColor::Muted)), - ) - .child( - h_stack() - .gap_1() - .justify_end() - .children(self.actions.unwrap_or_default()), - ), - ) - } -} - #[derive(Clone, Component)] pub struct ListSeparator; @@ -564,20 +355,22 @@ impl ListSeparator { } #[derive(Component)] -pub struct List { - items: Vec>, +pub struct List { + items: Vec, + /// Message to display when the list is empty + /// Defaults to "No items" empty_message: SharedString, header: Option, - toggleable: Toggleable, + toggle: Toggle, } -impl List { - pub fn new(items: Vec>) -> Self { +impl List { + pub fn new(items: Vec) -> Self { Self { items, empty_message: "No items".into(), header: None, - toggleable: Toggleable::default(), + toggle: Toggle::NotToggleable, } } @@ -591,19 +384,16 @@ impl List { self } - pub fn toggle(mut self, toggle: ToggleState) -> Self { - self.toggleable = toggle.into(); + pub fn toggle(mut self, toggle: Toggle) -> Self { + self.toggle = toggle; self } - fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let is_toggleable = self.toggleable != Toggleable::NotToggleable; - let is_toggled = Toggleable::is_toggled(&self.toggleable); - - let list_content = match (self.items.is_empty(), is_toggled) { + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let list_content = match (self.items.is_empty(), self.toggle) { (false, _) => div().children(self.items), - (true, false) => div(), - (true, true) => { + (true, Toggle::Toggled(false)) => div(), + (true, _) => { div().child(Label::new(self.empty_message.clone()).color(LabelColor::Muted)) } }; @@ -611,7 +401,7 @@ impl List { v_stack() .w_full() .py_1() - .children(self.header.map(|header| header.toggleable(self.toggleable))) + .children(self.header.map(|header| header)) .child(list_content) } } diff --git a/crates/ui2/src/components/modal.rs b/crates/ui2/src/components/modal.rs index 26986474e09dc012b039d36325347a33c7924f4e..75528b5c3460defeb139f7a16d8d311d87a5093b 100644 --- a/crates/ui2/src/components/modal.rs +++ b/crates/ui2/src/components/modal.rs @@ -1,4 +1,4 @@ -use gpui2::AnyElement; +use gpui::AnyElement; use smallvec::SmallVec; use crate::{h_stack, prelude::*, v_stack, Button, Icon, IconButton, Label}; diff --git a/crates/ui2/src/components/notification_toast.rs b/crates/ui2/src/components/notification_toast.rs index 59078c98f43d2a079c5de75b428eae1073c8803e..aeb2aa6ed901f8f867109f6687e100d0dc061ccb 100644 --- a/crates/ui2/src/components/notification_toast.rs +++ b/crates/ui2/src/components/notification_toast.rs @@ -1,4 +1,4 @@ -use gpui2::rems; +use gpui::rems; use crate::prelude::*; use crate::{h_stack, Icon}; @@ -34,7 +34,7 @@ impl NotificationToast { .px_1p5() .rounded_lg() .shadow_md() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .child(div().size_full().child(self.label.clone())) } } diff --git a/crates/ui2/src/components/palette.rs b/crates/ui2/src/components/palette.rs index a1f3eb7e1c4a9f044ac6a4b810643a044fc578b4..7f736433fcd4d376534e265d3bf412aaa068888c 100644 --- a/crates/ui2/src/components/palette.rs +++ b/crates/ui2/src/components/palette.rs @@ -47,7 +47,7 @@ impl Palette { .id(self.id.clone()) .w_96() .rounded_lg() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .border() .border_color(cx.theme().colors().border) .child( @@ -56,7 +56,12 @@ impl Palette { .child(v_stack().py_0p5().px_1().child(div().px_2().py_0p5().child( Label::new(self.input_placeholder.clone()).color(LabelColor::Placeholder), ))) - .child(div().h_px().w_full().bg(cx.theme().colors().element)) + .child( + div() + .h_px() + .w_full() + .bg(cx.theme().colors().element_background), + ) .child( v_stack() .id("items") @@ -148,13 +153,13 @@ impl PaletteItem { } } -use gpui2::ElementId; +use gpui::ElementId; #[cfg(feature = "stories")] pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{ModifierKeys, Story}; diff --git a/crates/ui2/src/components/panel.rs b/crates/ui2/src/components/panel.rs index 5d941eb50ea3e7c8084b73c7792a2b6dcd0c378a..1762003a2c2f8b6a8569a5ffd99770d90aef130d 100644 --- a/crates/ui2/src/components/panel.rs +++ b/crates/ui2/src/components/panel.rs @@ -1,4 +1,4 @@ -use gpui2::{AbsoluteLength, AnyElement}; +use gpui::{AbsoluteLength, AnyElement}; use smallvec::SmallVec; use crate::prelude::*; @@ -107,7 +107,7 @@ impl Panel { PanelSide::Right => this.border_l(), PanelSide::Bottom => this.border_b().w_full().h(current_size), }) - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .border_color(cx.theme().colors().border) .children(self.children) } @@ -126,7 +126,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Label, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct PanelStory; diff --git a/crates/ui2/src/elements/player.rs b/crates/ui2/src/components/player.rs similarity index 87% rename from crates/ui2/src/elements/player.rs rename to crates/ui2/src/components/player.rs index c7b7ade1c13c62878e8ae72ce828bde30ab9d375..dc034a5373e5347fa214a57f6e025326c89f62f8 100644 --- a/crates/ui2/src/elements/player.rs +++ b/crates/ui2/src/components/player.rs @@ -1,7 +1,25 @@ -use gpui2::{Hsla, ViewContext}; +use gpui::{Hsla, ViewContext}; use crate::prelude::*; +/// Represents a person with a Zed account's public profile. +/// All data in this struct should be considered public. +pub struct PublicPlayer { + pub username: SharedString, + pub avatar: SharedString, + pub is_contact: bool, +} + +impl PublicPlayer { + pub fn new(username: impl Into, avatar: impl Into) -> Self { + Self { + username: username.into(), + avatar: avatar.into(), + is_contact: false, + } + } +} + #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)] pub enum PlayerStatus { #[default] diff --git a/crates/ui2/src/components/slot.rs b/crates/ui2/src/components/slot.rs new file mode 100644 index 0000000000000000000000000000000000000000..a672694dc5781c6a474211d621a71ee640e7dcaa --- /dev/null +++ b/crates/ui2/src/components/slot.rs @@ -0,0 +1,14 @@ +use gpui::SharedString; + +use crate::Icon; + +#[derive(Debug, Clone)] +/// A slot utility that provides a way to to pass either +/// an icon or an image to a component. +/// +/// Can be filled with a [] +pub enum GraphicSlot { + Icon(Icon), + Avatar(SharedString), + PublicActor(SharedString), +} diff --git a/crates/ui2/src/elements/stack.rs b/crates/ui2/src/components/stack.rs similarity index 96% rename from crates/ui2/src/elements/stack.rs rename to crates/ui2/src/components/stack.rs index 1b019ad4d949f838c1afc1b4c995edcc0a5a2f1a..d7bd0eb04f23b67b0797d86ba04fe3f4ee818b84 100644 --- a/crates/ui2/src/elements/stack.rs +++ b/crates/ui2/src/components/stack.rs @@ -1,4 +1,4 @@ -use gpui2::{div, Div}; +use gpui::{div, Div}; use crate::prelude::*; diff --git a/crates/ui2/src/components/tab.rs b/crates/ui2/src/components/tab.rs index e8b0ee3be59b19fd8307f3485971b2fafb2a89f4..416db2d17294d5c62e654f136b3f82c714f43b85 100644 --- a/crates/ui2/src/components/tab.rs +++ b/crates/ui2/src/components/tab.rs @@ -1,6 +1,6 @@ use crate::prelude::*; use crate::{Icon, IconColor, IconElement, Label, LabelColor}; -use gpui2::{red, Div, ElementId, Render, View, VisualContext}; +use gpui::{red, Div, ElementId, Render, View, VisualContext}; #[derive(Component, Clone)] pub struct Tab { @@ -109,12 +109,12 @@ impl Tab { let (tab_bg, tab_hover_bg, tab_active_bg) = match self.current { false => ( - cx.theme().colors().tab_inactive, + cx.theme().colors().tab_inactive_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), true => ( - cx.theme().colors().tab_active, + cx.theme().colors().tab_active_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), diff --git a/crates/ui2/src/components/toast.rs b/crates/ui2/src/components/toast.rs index 3b81ac42b44abf45fac20337b8f1392d9d529941..4164be2c3e71fdf22b0b9a852588b796d0d1de21 100644 --- a/crates/ui2/src/components/toast.rs +++ b/crates/ui2/src/components/toast.rs @@ -1,4 +1,4 @@ -use gpui2::AnyElement; +use gpui::AnyElement; use smallvec::SmallVec; use crate::prelude::*; @@ -54,7 +54,7 @@ impl Toast { .rounded_lg() .shadow_md() .overflow_hidden() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .children(self.children) } } @@ -70,7 +70,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{Label, Story}; diff --git a/crates/ui2/src/components/toggle.rs b/crates/ui2/src/components/toggle.rs new file mode 100644 index 0000000000000000000000000000000000000000..368c95662fa51ed804c3d73f0d456d4f071a76d1 --- /dev/null +++ b/crates/ui2/src/components/toggle.rs @@ -0,0 +1,61 @@ +use gpui::{div, Component, ParentElement}; + +use crate::{Icon, IconColor, IconElement, IconSize}; + +/// Whether the entry is toggleable, and if so, whether it is currently toggled. +/// +/// To make an element toggleable, simply add a `Toggle::Toggled(_)` and handle it's cases. +/// +/// You can check if an element is toggleable with `.is_toggleable()` +/// +/// Possible values: +/// - `Toggle::NotToggleable` - The entry is not toggleable +/// - `Toggle::Toggled(true)` - The entry is toggleable and toggled +/// - `Toggle::Toggled(false)` - The entry is toggleable and not toggled +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub enum Toggle { + NotToggleable, + Toggled(bool), +} + +impl Toggle { + /// Returns true if the entry is toggled (or is not toggleable.) + /// + /// As element that isn't toggleable is always "expanded" or "enabled" + /// returning true in that case makes sense. + pub fn is_toggled(&self) -> bool { + match self { + Self::Toggled(false) => false, + _ => true, + } + } + + pub fn is_toggleable(&self) -> bool { + match self { + Self::Toggled(_) => true, + _ => false, + } + } +} + +impl From for Toggle { + fn from(toggled: bool) -> Self { + Toggle::Toggled(toggled) + } +} + +pub fn disclosure_control(toggle: Toggle) -> impl Component { + match (toggle.is_toggleable(), toggle.is_toggled()) { + (false, _) => div(), + (_, true) => div().child( + IconElement::new(Icon::ChevronDown) + .color(IconColor::Muted) + .size(IconSize::Small), + ), + (_, false) => div().child( + IconElement::new(Icon::ChevronRight) + .color(IconColor::Muted) + .size(IconSize::Small), + ), + } +} diff --git a/crates/ui2/src/elements/tool_divider.rs b/crates/ui2/src/components/tool_divider.rs similarity index 100% rename from crates/ui2/src/elements/tool_divider.rs rename to crates/ui2/src/components/tool_divider.rs diff --git a/crates/ui2/src/components/tooltip.rs b/crates/ui2/src/components/tooltip.rs new file mode 100644 index 0000000000000000000000000000000000000000..84630920128a3a107a31e5a7fecb8dca2b139037 --- /dev/null +++ b/crates/ui2/src/components/tooltip.rs @@ -0,0 +1,31 @@ +use gpui::{div, px, Div, ParentElement, Render, SharedString, Styled, ViewContext}; +use theme2::ActiveTheme; + +#[derive(Clone, Debug)] +pub struct TextTooltip { + title: SharedString, +} + +impl TextTooltip { + pub fn new(str: SharedString) -> Self { + Self { title: str } + } +} + +impl Render for TextTooltip { + type Element = Div; + + fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + let theme = cx.theme(); + div() + .bg(theme.colors().background) + .rounded(px(8.)) + .border() + .font("Zed Sans") + .border_color(theme.colors().border) + .text_color(theme.colors().text) + .pl_2() + .pr_2() + .child(self.title.clone()) + } +} diff --git a/crates/ui2/src/elements.rs b/crates/ui2/src/elements.rs deleted file mode 100644 index dfff2761a76e40deb84656f6c4ce6b6abe2b28f3..0000000000000000000000000000000000000000 --- a/crates/ui2/src/elements.rs +++ /dev/null @@ -1,21 +0,0 @@ -mod avatar; -mod button; -mod details; -mod icon; -mod indicator; -mod input; -mod label; -mod player; -mod stack; -mod tool_divider; - -pub use avatar::*; -pub use button::*; -pub use details::*; -pub use icon::*; -pub use indicator::*; -pub use input::*; -pub use label::*; -pub use player::*; -pub use stack::*; -pub use tool_divider::*; diff --git a/crates/ui2/src/lib.rs b/crates/ui2/src/lib.rs index 5d0a57c6d90fca078982941193d87828e706f726..5fb39984387e7b5b76a7ca7152ed186303bc5463 100644 --- a/crates/ui2/src/lib.rs +++ b/crates/ui2/src/lib.rs @@ -7,28 +7,25 @@ //! This crate is still a work in progress. The initial primitives and components are built for getting all the UI on the screen, //! much of the state and functionality is mocked or hard codeded, and performance has not been a focus. //! -//! Expect some inconsistencies from component to component as we work out the best way to build these components. -//! -//! ## Design Philosophy -//! -//! Work in Progress! -//! +#![doc = include_str!("../docs/hello-world.md")] +#![doc = include_str!("../docs/building-ui.md")] +#![doc = include_str!("../docs/todo.md")] // TODO: Fix warnings instead of supressing. #![allow(dead_code, unused_variables)] mod components; -mod elements; mod elevation; pub mod prelude; pub mod settings; mod static_data; +mod to_extract; pub mod utils; pub use components::*; -pub use elements::*; pub use prelude::*; pub use static_data::*; +pub use to_extract::*; // This needs to be fully qualified with `crate::` otherwise we get a panic // at: diff --git a/crates/ui2/src/prelude.rs b/crates/ui2/src/prelude.rs index fbb7ccc528107de3d0eef115ca7fc4ba536a68e2..c942f0aa3b883141a6178533c83e45c2a3a9f48c 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -1,4 +1,4 @@ -pub use gpui2::{ +pub use gpui::{ div, Component, Element, ElementId, ParentElement, SharedString, StatefulInteractive, StatelessInteractive, Styled, ViewContext, WindowContext, }; @@ -7,27 +7,9 @@ pub use crate::elevation::*; pub use crate::ButtonVariant; pub use theme2::ActiveTheme; -use gpui2::Hsla; +use gpui::Hsla; use strum::EnumIter; -/// Represents a person with a Zed account's public profile. -/// All data in this struct should be considered public. -pub struct PublicActor { - pub username: SharedString, - pub avatar: SharedString, - pub is_contact: bool, -} - -impl PublicActor { - pub fn new(username: impl Into, avatar: impl Into) -> Self { - Self { - username: username.into(), - avatar: avatar.into(), - is_contact: false, - } - } -} - #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)] pub enum FileSystemStatus { #[default] @@ -172,68 +154,19 @@ impl InteractionState { } } -#[derive(Default, PartialEq)] -pub enum SelectedState { +#[derive(Debug, Default, PartialEq, Eq, Hash, Clone, Copy)] +pub enum Selection { #[default] Unselected, - PartiallySelected, + Indeterminate, Selected, } -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] -pub enum Toggleable { - Toggleable(ToggleState), - #[default] - NotToggleable, -} - -impl Toggleable { - pub fn is_toggled(&self) -> bool { +impl Selection { + pub fn inverse(&self) -> Self { match self { - Self::Toggleable(ToggleState::Toggled) => true, - _ => false, - } - } -} - -impl From for Toggleable { - fn from(state: ToggleState) -> Self { - Self::Toggleable(state) - } -} - -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] -pub enum ToggleState { - /// The "on" state of a toggleable element. - /// - /// Example: - /// - A collasable list that is currently expanded - /// - A toggle button that is currently on. - Toggled, - /// The "off" state of a toggleable element. - /// - /// Example: - /// - A collasable list that is currently collapsed - /// - A toggle button that is currently off. - #[default] - NotToggled, -} - -impl From for ToggleState { - fn from(toggleable: Toggleable) -> Self { - match toggleable { - Toggleable::Toggleable(state) => state, - Toggleable::NotToggleable => ToggleState::NotToggled, - } - } -} - -impl From for ToggleState { - fn from(toggled: bool) -> Self { - if toggled { - ToggleState::Toggled - } else { - ToggleState::NotToggled + Self::Unselected | Self::Indeterminate => Self::Selected, + Self::Selected => Self::Unselected, } } } diff --git a/crates/ui2/src/settings.rs b/crates/ui2/src/settings.rs index 6a9426f623ef167d8ec3a24054d2586f1536b7f1..c3ac78316e9e6138195225c92cdad96542e808cd 100644 --- a/crates/ui2/src/settings.rs +++ b/crates/ui2/src/settings.rs @@ -1,6 +1,6 @@ use std::ops::Deref; -use gpui2::{rems, AbsoluteLength, AppContext, WindowContext}; +use gpui::{rems, AbsoluteLength, AppContext, WindowContext}; use crate::prelude::*; diff --git a/crates/ui2/src/static_data.rs b/crates/ui2/src/static_data.rs index 68f625c75d6f2ac24e7caf8e97469a0c082effad..ffdd3fee9849147719f89dcf08c23bff17dee4d9 100644 --- a/crates/ui2/src/static_data.rs +++ b/crates/ui2/src/static_data.rs @@ -3,17 +3,17 @@ use std::str::FromStr; use std::sync::Arc; use chrono::DateTime; -use gpui2::{AppContext, ViewContext}; +use gpui::{AppContext, ViewContext}; use rand::Rng; use theme2::ActiveTheme; +use crate::HighlightedText; use crate::{ Buffer, BufferRow, BufferRows, Button, EditorPane, FileSystemStatus, GitStatus, - HighlightedLine, Icon, Keybinding, Label, LabelColor, ListEntry, ListEntrySize, ListSubHeader, - Livestream, MicStatus, ModifierKeys, Notification, PaletteItem, Player, PlayerCallStatus, - PlayerWithCallStatus, PublicActor, ScreenShareStatus, Symbol, Tab, ToggleState, VideoStatus, + HighlightedLine, Icon, Keybinding, Label, LabelColor, ListEntry, ListEntrySize, Livestream, + MicStatus, ModifierKeys, Notification, PaletteItem, Player, PlayerCallStatus, + PlayerWithCallStatus, PublicPlayer, ScreenShareStatus, Symbol, Tab, Toggle, VideoStatus, }; -use crate::{HighlightedText, ListDetailsEntry}; use crate::{ListItem, NotificationAction}; pub fn static_tabs_example() -> Vec { @@ -345,7 +345,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2023-11-02T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -374,7 +374,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2023-11-01T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -403,7 +403,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2022-10-25T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -432,7 +432,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2021-10-12T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -461,7 +461,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("1969-07-20T00:00:00Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -478,89 +478,12 @@ pub fn static_new_notification_items_2() -> Vec> { ] } -pub fn static_new_notification_items() -> Vec> { - vec![ - ListItem::Header(ListSubHeader::new("New")), - ListItem::Details( - ListDetailsEntry::new("maxdeviant invited you to join a stream in #design.") - .meta("4 people in stream."), - ), - ListItem::Details(ListDetailsEntry::new( - "nathansobo accepted your contact request.", - )), - ListItem::Header(ListSubHeader::new("Earlier")), - ListItem::Details( - ListDetailsEntry::new("mikaylamaki added you as a contact.").actions(vec![ - Button::new("Decline"), - Button::new("Accept").variant(crate::ButtonVariant::Filled), - ]), - ), - ListItem::Details( - ListDetailsEntry::new("maxdeviant invited you to a stream in #design.") - .seen(true) - .meta("This stream has ended."), - ), - ListItem::Details(ListDetailsEntry::new( - "as-cii accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("You were added as an admin on the #gpui2 channel.").seen(true), - ), - ListItem::Details(ListDetailsEntry::new( - "osiewicz accepted your contact request.", - )), - ListItem::Details(ListDetailsEntry::new( - "ConradIrwin accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("nathansobo invited you to a stream in #gpui2.") - .seen(true) - .meta("This stream has ended."), - ), - ListItem::Details(ListDetailsEntry::new( - "nathansobo accepted your contact request.", - )), - ListItem::Header(ListSubHeader::new("Earlier")), - ListItem::Details( - ListDetailsEntry::new("mikaylamaki added you as a contact.").actions(vec![ - Button::new("Decline"), - Button::new("Accept").variant(crate::ButtonVariant::Filled), - ]), - ), - ListItem::Details( - ListDetailsEntry::new("maxdeviant invited you to a stream in #design.") - .seen(true) - .meta("This stream has ended."), - ), - ListItem::Details(ListDetailsEntry::new( - "as-cii accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("You were added as an admin on the #gpui2 channel.").seen(true), - ), - ListItem::Details(ListDetailsEntry::new( - "osiewicz accepted your contact request.", - )), - ListItem::Details(ListDetailsEntry::new( - "ConradIrwin accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("nathansobo invited you to a stream in #gpui2.") - .seen(true) - .meta("This stream has ended."), - ), - ] - .into_iter() - .map(From::from) - .collect() -} - -pub fn static_project_panel_project_items() -> Vec> { +pub fn static_project_panel_project_items() -> Vec { vec![ ListEntry::new(Label::new("zed")) .left_icon(Icon::FolderOpen.into()) .indent_level(0) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new(".cargo")) .left_icon(Icon::Folder.into()) .indent_level(1), @@ -579,14 +502,14 @@ pub fn static_project_panel_project_items() -> Vec> { ListEntry::new(Label::new("assets")) .left_icon(Icon::Folder.into()) .indent_level(1) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("cargo-target").color(LabelColor::Hidden)) .left_icon(Icon::Folder.into()) .indent_level(1), ListEntry::new(Label::new("crates")) .left_icon(Icon::FolderOpen.into()) .indent_level(1) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("activity_indicator")) .left_icon(Icon::Folder.into()) .indent_level(2), @@ -608,38 +531,38 @@ pub fn static_project_panel_project_items() -> Vec> { ListEntry::new(Label::new("sqlez").color(LabelColor::Modified)) .left_icon(Icon::Folder.into()) .indent_level(2) - .toggle(ToggleState::NotToggled), + .toggle(Toggle::Toggled(false)), ListEntry::new(Label::new("gpui2")) .left_icon(Icon::FolderOpen.into()) .indent_level(2) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("src")) .left_icon(Icon::FolderOpen.into()) .indent_level(3) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("derive_element.rs")) .left_icon(Icon::FileRust.into()) .indent_level(4), ListEntry::new(Label::new("storybook").color(LabelColor::Modified)) .left_icon(Icon::FolderOpen.into()) .indent_level(1) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("docs").color(LabelColor::Default)) .left_icon(Icon::Folder.into()) .indent_level(2) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("src").color(LabelColor::Modified)) .left_icon(Icon::FolderOpen.into()) .indent_level(3) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("ui").color(LabelColor::Modified)) .left_icon(Icon::FolderOpen.into()) .indent_level(4) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("component").color(LabelColor::Created)) .left_icon(Icon::FolderOpen.into()) .indent_level(5) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("facepile.rs").color(LabelColor::Default)) .left_icon(Icon::FileRust.into()) .indent_level(6), @@ -682,7 +605,7 @@ pub fn static_project_panel_project_items() -> Vec> { .collect() } -pub fn static_project_panel_single_items() -> Vec> { +pub fn static_project_panel_single_items() -> Vec { vec![ ListEntry::new(Label::new("todo.md")) .left_icon(Icon::FileDoc.into()) @@ -699,7 +622,7 @@ pub fn static_project_panel_single_items() -> Vec> { .collect() } -pub fn static_collab_panel_current_call() -> Vec> { +pub fn static_collab_panel_current_call() -> Vec { vec![ ListEntry::new(Label::new("as-cii")).left_avatar("http://github.com/as-cii.png?s=50"), ListEntry::new(Label::new("nathansobo")) @@ -712,7 +635,7 @@ pub fn static_collab_panel_current_call() -> Vec> { .collect() } -pub fn static_collab_panel_channels() -> Vec> { +pub fn static_collab_panel_channels() -> Vec { vec![ ListEntry::new(Label::new("zed")) .left_icon(Icon::Hash.into()) diff --git a/crates/ui2/src/story.rs b/crates/ui2/src/story.rs index dea4e342b4eda0520251c3685e8dbd50be2aedb2..94e38267f4c5b160365317c4e597a76748c05d6f 100644 --- a/crates/ui2/src/story.rs +++ b/crates/ui2/src/story.rs @@ -1,4 +1,4 @@ -use gpui2::Div; +use gpui::Div; use crate::prelude::*; diff --git a/crates/ui2/src/to_extract.rs b/crates/ui2/src/to_extract.rs new file mode 100644 index 0000000000000000000000000000000000000000..e786dd0f7e08ef377e6f483d248ae4eee90358e8 --- /dev/null +++ b/crates/ui2/src/to_extract.rs @@ -0,0 +1,47 @@ +mod assistant_panel; +mod breadcrumb; +mod buffer; +mod buffer_search; +mod chat_panel; +mod collab_panel; +mod command_palette; +mod copilot; +mod editor_pane; +mod language_selector; +mod multi_buffer; +mod notifications_panel; +mod panes; +mod project_panel; +mod recent_projects; +mod status_bar; +mod tab_bar; +mod terminal; +mod theme_selector; +mod title_bar; +mod toolbar; +mod traffic_lights; +mod workspace; + +pub use assistant_panel::*; +pub use breadcrumb::*; +pub use buffer::*; +pub use buffer_search::*; +pub use chat_panel::*; +pub use collab_panel::*; +pub use command_palette::*; +pub use copilot::*; +pub use editor_pane::*; +pub use language_selector::*; +pub use multi_buffer::*; +pub use notifications_panel::*; +pub use panes::*; +pub use project_panel::*; +pub use recent_projects::*; +pub use status_bar::*; +pub use tab_bar::*; +pub use terminal::*; +pub use theme_selector::*; +pub use title_bar::*; +pub use toolbar::*; +pub use traffic_lights::*; +pub use workspace::*; diff --git a/crates/ui2/src/components/assistant_panel.rs b/crates/ui2/src/to_extract/assistant_panel.rs similarity index 97% rename from crates/ui2/src/components/assistant_panel.rs rename to crates/ui2/src/to_extract/assistant_panel.rs index 51c123ad9ea7db7947673e3905313fdfa28bfcfc..8a35757f5c484315daebea12c0af7186c418f96e 100644 --- a/crates/ui2/src/components/assistant_panel.rs +++ b/crates/ui2/src/to_extract/assistant_panel.rs @@ -1,6 +1,6 @@ use crate::prelude::*; use crate::{Icon, IconButton, Label, Panel, PanelSide}; -use gpui2::{rems, AbsoluteLength}; +use gpui::{rems, AbsoluteLength}; #[derive(Component)] pub struct AssistantPanel { @@ -77,7 +77,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct AssistantPanelStory; impl Render for AssistantPanelStory { diff --git a/crates/ui2/src/components/breadcrumb.rs b/crates/ui2/src/to_extract/breadcrumb.rs similarity index 99% rename from crates/ui2/src/components/breadcrumb.rs rename to crates/ui2/src/to_extract/breadcrumb.rs index 163dfabfb0b5ed73e72df5346f998c1e1cf7b651..cd7df87646a026f352d580ef47e1c1ef90fdb441 100644 --- a/crates/ui2/src/components/breadcrumb.rs +++ b/crates/ui2/src/to_extract/breadcrumb.rs @@ -2,7 +2,7 @@ use std::path::PathBuf; use crate::prelude::*; use crate::{h_stack, HighlightedText}; -use gpui2::Div; +use gpui::Div; #[derive(Clone)] pub struct Symbol(pub Vec); @@ -73,7 +73,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::Render; + use gpui::Render; use std::str::FromStr; pub struct BreadcrumbStory; diff --git a/crates/ui2/src/components/buffer.rs b/crates/ui2/src/to_extract/buffer.rs similarity index 97% rename from crates/ui2/src/components/buffer.rs rename to crates/ui2/src/to_extract/buffer.rs index 2b3db676ce795dac12a930f1ad48b8c3724751af..aa4bebc9d5d5cdaa23f1429af7d64b71751c99c0 100644 --- a/crates/ui2/src/components/buffer.rs +++ b/crates/ui2/src/to_extract/buffer.rs @@ -1,4 +1,4 @@ -use gpui2::{Hsla, WindowContext}; +use gpui::{Hsla, WindowContext}; use crate::prelude::*; use crate::{h_stack, v_stack, Icon, IconElement}; @@ -156,7 +156,7 @@ impl Buffer { fn render_row(row: BufferRow, cx: &WindowContext) -> impl Component { let line_background = if row.current { - cx.theme().colors().editor_active_line + cx.theme().colors().editor_active_line_background } else { cx.theme().styles.system.transparent }; @@ -220,7 +220,7 @@ impl Buffer { .flex_1() .w_full() .h_full() - .bg(cx.theme().colors().editor) + .bg(cx.theme().colors().editor_background) .children(rows) } } @@ -235,7 +235,7 @@ mod stories { empty_buffer_example, hello_world_rust_buffer_example, hello_world_rust_buffer_with_status_example, Story, }; - use gpui2::{rems, Div, Render}; + use gpui::{rems, Div, Render}; pub struct BufferStory; diff --git a/crates/ui2/src/components/buffer_search.rs b/crates/ui2/src/to_extract/buffer_search.rs similarity index 54% rename from crates/ui2/src/components/buffer_search.rs rename to crates/ui2/src/to_extract/buffer_search.rs index 5d7de1b408a90159269fc7edc11d634a62c607d8..9993cd361294067112c6b629ef9f5e2698e4e3cb 100644 --- a/crates/ui2/src/components/buffer_search.rs +++ b/crates/ui2/src/to_extract/buffer_search.rs @@ -1,4 +1,4 @@ -use gpui2::{Div, Render, View, VisualContext}; +use gpui::{Div, Render, View, VisualContext}; use crate::prelude::*; use crate::{h_stack, Icon, IconButton, IconColor, Input}; @@ -30,14 +30,17 @@ impl Render for BufferSearch { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Div { - h_stack().bg(cx.theme().colors().toolbar).p_2().child( - h_stack().child(Input::new("Search")).child( - IconButton::::new("replace", Icon::Replace) - .when(self.is_replace_open, |this| this.color(IconColor::Accent)) - .on_click(|buffer_search, cx| { - buffer_search.toggle_replace(cx); - }), - ), - ) + h_stack() + .bg(cx.theme().colors().toolbar_background) + .p_2() + .child( + h_stack().child(Input::new("Search")).child( + IconButton::::new("replace", Icon::Replace) + .when(self.is_replace_open, |this| this.color(IconColor::Accent)) + .on_click(|buffer_search, cx| { + buffer_search.toggle_replace(cx); + }), + ), + ) } } diff --git a/crates/ui2/src/components/chat_panel.rs b/crates/ui2/src/to_extract/chat_panel.rs similarity index 99% rename from crates/ui2/src/components/chat_panel.rs rename to crates/ui2/src/to_extract/chat_panel.rs index f4f1ddf4337c30f5fcfc5f19d1731c846ab3a5f8..538b5dfceba5bb753feb0504b1eb880140aef291 100644 --- a/crates/ui2/src/components/chat_panel.rs +++ b/crates/ui2/src/to_extract/chat_panel.rs @@ -108,7 +108,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { use chrono::DateTime; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{Panel, Story}; diff --git a/crates/ui2/src/components/collab_panel.rs b/crates/ui2/src/to_extract/collab_panel.rs similarity index 83% rename from crates/ui2/src/components/collab_panel.rs rename to crates/ui2/src/to_extract/collab_panel.rs index a0e3b55f63c43c57c37645ae7c4c7492e92f3d03..7b785ae9e1dbbda8c5392baa1473a7a31d6ce1eb 100644 --- a/crates/ui2/src/components/collab_panel.rs +++ b/crates/ui2/src/to_extract/collab_panel.rs @@ -1,7 +1,6 @@ -use crate::prelude::*; +use crate::{prelude::*, Toggle}; use crate::{ - static_collab_panel_channels, static_collab_panel_current_call, v_stack, Icon, List, - ListHeader, ToggleState, + static_collab_panel_channels, static_collab_panel_current_call, v_stack, Icon, List, ListHeader, }; #[derive(Component)] @@ -18,7 +17,7 @@ impl CollabPanel { v_stack() .id(self.id.clone()) .h_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( v_stack() .id("crdb") @@ -34,17 +33,17 @@ impl CollabPanel { .header( ListHeader::new("CRDB") .left_icon(Icon::Hash.into()) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ), ) .child( v_stack().id("channels").py_1().child( List::new(static_collab_panel_channels()) - .header(ListHeader::new("CHANNELS").toggle(ToggleState::Toggled)) + .header(ListHeader::new("CHANNELS").toggle(Toggle::Toggled(true))) .empty_message("No channels yet. Add a channel to get started.") - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ), ) .child( @@ -52,9 +51,9 @@ impl CollabPanel { List::new(static_collab_panel_current_call()) .header( ListHeader::new("CONTACTS – ONLINE") - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ), ) .child( @@ -62,9 +61,9 @@ impl CollabPanel { List::new(static_collab_panel_current_call()) .header( ListHeader::new("CONTACTS – OFFLINE") - .toggle(ToggleState::NotToggled), + .toggle(Toggle::Toggled(false)), ) - .toggle(ToggleState::NotToggled), + .toggle(Toggle::Toggled(false)), ), ), ) @@ -93,7 +92,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct CollabPanelStory; diff --git a/crates/ui2/src/components/command_palette.rs b/crates/ui2/src/to_extract/command_palette.rs similarity index 97% rename from crates/ui2/src/components/command_palette.rs rename to crates/ui2/src/to_extract/command_palette.rs index 63db4359e7e84c6608f737bc1e3762f2d4b53eec..8a9461c796d053e45fb768f3db4c14f1364f0d27 100644 --- a/crates/ui2/src/components/command_palette.rs +++ b/crates/ui2/src/to_extract/command_palette.rs @@ -27,7 +27,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/components/copilot.rs b/crates/ui2/src/to_extract/copilot.rs similarity index 97% rename from crates/ui2/src/components/copilot.rs rename to crates/ui2/src/to_extract/copilot.rs index 51523d48f07bf9f7c4eed4d5edf07f0b7ff7fb3b..8750ab3c51a28cd1f91f67f09c4cd7d419a7b98b 100644 --- a/crates/ui2/src/components/copilot.rs +++ b/crates/ui2/src/to_extract/copilot.rs @@ -25,7 +25,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/components/editor_pane.rs b/crates/ui2/src/to_extract/editor_pane.rs similarity index 98% rename from crates/ui2/src/components/editor_pane.rs rename to crates/ui2/src/to_extract/editor_pane.rs index 8e54d2c2e888f5b75599d85f779d9ebae3c96ad7..fd21e81242c34237f9d16fb63f66312ebc678fbf 100644 --- a/crates/ui2/src/components/editor_pane.rs +++ b/crates/ui2/src/to_extract/editor_pane.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use gpui2::{Div, Render, View, VisualContext}; +use gpui::{Div, Render, View, VisualContext}; use crate::prelude::*; use crate::{ diff --git a/crates/ui2/src/components/language_selector.rs b/crates/ui2/src/to_extract/language_selector.rs similarity index 98% rename from crates/ui2/src/components/language_selector.rs rename to crates/ui2/src/to_extract/language_selector.rs index fa7f5b2bd7b9cae4135f321e34ad559834f8d539..694ca78e9c92353a7097f33d7ec133278b063bb0 100644 --- a/crates/ui2/src/components/language_selector.rs +++ b/crates/ui2/src/to_extract/language_selector.rs @@ -40,7 +40,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct LanguageSelectorStory; diff --git a/crates/ui2/src/components/multi_buffer.rs b/crates/ui2/src/to_extract/multi_buffer.rs similarity index 97% rename from crates/ui2/src/components/multi_buffer.rs rename to crates/ui2/src/to_extract/multi_buffer.rs index ea130f20bd447a2e31ea3f6e04e3e2ff08470dae..78a22d51d078bc6293e849f8898b53ee2c363109 100644 --- a/crates/ui2/src/components/multi_buffer.rs +++ b/crates/ui2/src/to_extract/multi_buffer.rs @@ -24,7 +24,7 @@ impl MultiBuffer { .items_center() .justify_between() .p_4() - .bg(cx.theme().colors().editor_subheader) + .bg(cx.theme().colors().editor_subheader_background) .child(Label::new("main.rs")) .child(IconButton::new("arrow_up_right", Icon::ArrowUpRight)), ) @@ -40,7 +40,7 @@ pub use stories::*; mod stories { use super::*; use crate::{hello_world_rust_buffer_example, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct MultiBufferStory; diff --git a/crates/ui2/src/components/notifications_panel.rs b/crates/ui2/src/to_extract/notifications_panel.rs similarity index 93% rename from crates/ui2/src/components/notifications_panel.rs rename to crates/ui2/src/to_extract/notifications_panel.rs index 74f015ac068706cd09242dd04f30d8b09e285842..b2cc4a7846c00acf32b4afb1d65d196f8caeda8a 100644 --- a/crates/ui2/src/components/notifications_panel.rs +++ b/crates/ui2/src/to_extract/notifications_panel.rs @@ -1,8 +1,8 @@ use crate::utils::naive_format_distance_from_now; use crate::{ - h_stack, prelude::*, static_new_notification_items_2, v_stack, Avatar, Button, Icon, - IconButton, IconElement, Label, LabelColor, LineHeightStyle, ListHeaderMeta, ListSeparator, - UnreadIndicator, + h_stack, prelude::*, static_new_notification_items_2, v_stack, Avatar, ButtonOrIconButton, + Icon, IconElement, Label, LabelColor, LineHeightStyle, ListHeaderMeta, ListSeparator, + PublicPlayer, UnreadIndicator, }; use crate::{ClickHandler, ListHeader}; @@ -22,7 +22,7 @@ impl NotificationsPanel { .flex() .flex_col() .size_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( ListHeader::new("Notifications").meta(Some(ListHeaderMeta::Tools(vec![ Icon::AtSign, @@ -43,7 +43,7 @@ impl NotificationsPanel { .p_1() // TODO: Add cursor style // .cursor(Cursor::IBeam) - .bg(cx.theme().colors().element) + .bg(cx.theme().colors().element_background) .border() .border_color(cx.theme().colors().border_variant) .child( @@ -57,23 +57,6 @@ impl NotificationsPanel { } } -pub enum ButtonOrIconButton { - Button(Button), - IconButton(IconButton), -} - -impl From> for ButtonOrIconButton { - fn from(value: Button) -> Self { - Self::Button(value) - } -} - -impl From> for ButtonOrIconButton { - fn from(value: IconButton) -> Self { - Self::IconButton(value) - } -} - pub struct NotificationAction { button: ButtonOrIconButton, tooltip: SharedString, @@ -102,7 +85,7 @@ impl NotificationAction { } pub enum ActorOrIcon { - Actor(PublicActor), + Actor(PublicPlayer), Icon(Icon), } @@ -171,7 +154,7 @@ impl Notification { id: impl Into, message: impl Into, date_received: NaiveDateTime, - actor: PublicActor, + actor: PublicPlayer, click_action: ClickHandler, ) -> Self { Self::new( @@ -210,7 +193,7 @@ impl Notification { id: impl Into, message: impl Into, date_received: NaiveDateTime, - actor: PublicActor, + actor: PublicPlayer, actions: [NotificationAction; 2], ) -> Self { Self::new( @@ -362,7 +345,7 @@ impl Notification { } use chrono::NaiveDateTime; -use gpui2::{px, Styled}; +use gpui::{px, Styled}; #[cfg(feature = "stories")] pub use stories::*; @@ -370,7 +353,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Panel, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct NotificationsPanelStory; diff --git a/crates/ui2/src/components/panes.rs b/crates/ui2/src/to_extract/panes.rs similarity index 95% rename from crates/ui2/src/components/panes.rs rename to crates/ui2/src/to_extract/panes.rs index bf0f27d43f32742abfe61c527c67dd6d8fd0f96a..b57b77d5eeb8ec71dc4ab075d63269fcac158cbe 100644 --- a/crates/ui2/src/components/panes.rs +++ b/crates/ui2/src/to_extract/panes.rs @@ -1,4 +1,4 @@ -use gpui2::{hsla, red, AnyElement, ElementId, ExternalPaths, Hsla, Length, Size, View}; +use gpui::{hsla, red, AnyElement, ElementId, ExternalPaths, Hsla, Length, Size, View}; use smallvec::SmallVec; use crate::prelude::*; @@ -113,7 +113,7 @@ impl PaneGroup { .gap_px() .w_full() .h_full() - .bg(cx.theme().colors().editor) + .bg(cx.theme().colors().editor_background) .children(self.groups.into_iter().map(|group| group.render(view, cx))); if self.split_direction == SplitDirection::Horizontal { diff --git a/crates/ui2/src/components/project_panel.rs b/crates/ui2/src/to_extract/project_panel.rs similarity index 81% rename from crates/ui2/src/components/project_panel.rs rename to crates/ui2/src/to_extract/project_panel.rs index 76fa50d3380188b6945fa95e5426071d0baec69c..d4f5c724265f549eaed54040364abf655c6a5bfd 100644 --- a/crates/ui2/src/components/project_panel.rs +++ b/crates/ui2/src/to_extract/project_panel.rs @@ -18,9 +18,8 @@ impl ProjectPanel { .id(self.id.clone()) .flex() .flex_col() - .w_full() - .h_full() - .bg(cx.theme().colors().surface) + .size_full() + .bg(cx.theme().colors().surface_background) .child( div() .id("project-panel-contents") @@ -30,15 +29,13 @@ impl ProjectPanel { .overflow_y_scroll() .child( List::new(static_project_panel_single_items()) - .header(ListHeader::new("FILES").toggle(ToggleState::Toggled)) - .empty_message("No files in directory") - .toggle(ToggleState::Toggled), + .header(ListHeader::new("FILES")) + .empty_message("No files in directory"), ) .child( List::new(static_project_panel_project_items()) - .header(ListHeader::new("PROJECT").toggle(ToggleState::Toggled)) - .empty_message("No folders in directory") - .toggle(ToggleState::Toggled), + .header(ListHeader::new("PROJECT")) + .empty_message("No folders in directory"), ), ) .child( @@ -49,7 +46,7 @@ impl ProjectPanel { } } -use gpui2::ElementId; +use gpui::ElementId; #[cfg(feature = "stories")] pub use stories::*; @@ -57,7 +54,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Panel, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct ProjectPanelStory; diff --git a/crates/ui2/src/components/recent_projects.rs b/crates/ui2/src/to_extract/recent_projects.rs similarity index 98% rename from crates/ui2/src/components/recent_projects.rs rename to crates/ui2/src/to_extract/recent_projects.rs index d5a9dd1b228122db6475d434b897e48392d0d38a..3d4f551490a47ef5eab616ebf1e2b1f6f0a0a726 100644 --- a/crates/ui2/src/components/recent_projects.rs +++ b/crates/ui2/src/to_extract/recent_projects.rs @@ -36,7 +36,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct RecentProjectsStory; diff --git a/crates/ui2/src/components/status_bar.rs b/crates/ui2/src/to_extract/status_bar.rs similarity index 99% rename from crates/ui2/src/components/status_bar.rs rename to crates/ui2/src/to_extract/status_bar.rs index 136472f605abc71600137ef567e43d45c8129e45..34a5993e69da552d9045a7ab23c5fa30d3d218e3 100644 --- a/crates/ui2/src/components/status_bar.rs +++ b/crates/ui2/src/to_extract/status_bar.rs @@ -93,7 +93,7 @@ impl StatusBar { .items_center() .justify_between() .w_full() - .bg(cx.theme().colors().status_bar) + .bg(cx.theme().colors().status_bar_background) .child(self.left_tools(view, cx)) .child(self.right_tools(view, cx)) } diff --git a/crates/ui2/src/components/tab_bar.rs b/crates/ui2/src/to_extract/tab_bar.rs similarity index 97% rename from crates/ui2/src/components/tab_bar.rs rename to crates/ui2/src/to_extract/tab_bar.rs index bb7fca11534dbcb5981a0d695ffb3962ebe67e6c..aff095c639ea48c560b35e738e18f60ea38e8264 100644 --- a/crates/ui2/src/components/tab_bar.rs +++ b/crates/ui2/src/to_extract/tab_bar.rs @@ -31,7 +31,7 @@ impl TabBar { .id(self.id.clone()) .w_full() .flex() - .bg(cx.theme().colors().tab_bar) + .bg(cx.theme().colors().tab_bar_background) // Left Side .child( div() @@ -92,7 +92,7 @@ impl TabBar { } } -use gpui2::ElementId; +use gpui::ElementId; #[cfg(feature = "stories")] pub use stories::*; @@ -100,7 +100,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct TabBarStory; diff --git a/crates/ui2/src/components/terminal.rs b/crates/ui2/src/to_extract/terminal.rs similarity index 96% rename from crates/ui2/src/components/terminal.rs rename to crates/ui2/src/to_extract/terminal.rs index 051ebf7315400298f6b22eb8ae5adb108a7098fe..6c36f35152d8082a3da7fda855a5fc58084b3ae2 100644 --- a/crates/ui2/src/components/terminal.rs +++ b/crates/ui2/src/to_extract/terminal.rs @@ -1,4 +1,4 @@ -use gpui2::{relative, rems, Size}; +use gpui::{relative, rems, Size}; use crate::prelude::*; use crate::{Icon, IconButton, Pane, Tab}; @@ -24,7 +24,7 @@ impl Terminal { div() .w_full() .flex() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( div().px_1().flex().flex_none().gap_2().child( div() @@ -83,7 +83,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct TerminalStory; impl Render for TerminalStory { diff --git a/crates/ui2/src/components/theme_selector.rs b/crates/ui2/src/to_extract/theme_selector.rs similarity index 98% rename from crates/ui2/src/components/theme_selector.rs rename to crates/ui2/src/to_extract/theme_selector.rs index 5c67f1cd3ef987c5181734fedfdf061cf50465fe..7f911b50bfa8d9b6273126053a7e791e41754989 100644 --- a/crates/ui2/src/components/theme_selector.rs +++ b/crates/ui2/src/to_extract/theme_selector.rs @@ -39,7 +39,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/components/title_bar.rs b/crates/ui2/src/to_extract/title_bar.rs similarity index 99% rename from crates/ui2/src/components/title_bar.rs rename to crates/ui2/src/to_extract/title_bar.rs index 2fa201440a9ca0301cb6b7c04ca9246597f9c409..87d7dd4146d051aa5c8e4b8ae6697f487bfb34fa 100644 --- a/crates/ui2/src/components/title_bar.rs +++ b/crates/ui2/src/to_extract/title_bar.rs @@ -1,7 +1,7 @@ use std::sync::atomic::AtomicBool; use std::sync::Arc; -use gpui2::{Div, Render, View, VisualContext}; +use gpui::{Div, Render, View, VisualContext}; use crate::prelude::*; use crate::settings::user_settings; diff --git a/crates/ui2/src/components/toolbar.rs b/crates/ui2/src/to_extract/toolbar.rs similarity index 97% rename from crates/ui2/src/components/toolbar.rs rename to crates/ui2/src/to_extract/toolbar.rs index 05a5c991d69d645602f2966f270124efcb5209bd..81918f34a790b1ec91aa4ac33cad210972b191cf 100644 --- a/crates/ui2/src/components/toolbar.rs +++ b/crates/ui2/src/to_extract/toolbar.rs @@ -1,4 +1,4 @@ -use gpui2::AnyElement; +use gpui::AnyElement; use smallvec::SmallVec; use crate::prelude::*; @@ -56,7 +56,7 @@ impl Toolbar { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { div() - .bg(cx.theme().colors().toolbar) + .bg(cx.theme().colors().toolbar_background) .p_2() .flex() .justify_between() @@ -73,7 +73,7 @@ mod stories { use std::path::PathBuf; use std::str::FromStr; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{Breadcrumb, HighlightedText, Icon, IconButton, Story, Symbol}; diff --git a/crates/ui2/src/components/traffic_lights.rs b/crates/ui2/src/to_extract/traffic_lights.rs similarity index 96% rename from crates/ui2/src/components/traffic_lights.rs rename to crates/ui2/src/to_extract/traffic_lights.rs index 9080276cdd281888813f06c34fee8a256e540aa8..245ff377f2146579f5532123a456f2f1ae498cfc 100644 --- a/crates/ui2/src/components/traffic_lights.rs +++ b/crates/ui2/src/to_extract/traffic_lights.rs @@ -28,7 +28,7 @@ impl TrafficLight { (true, TrafficLightColor::Red) => system_colors.mac_os_traffic_light_red, (true, TrafficLightColor::Yellow) => system_colors.mac_os_traffic_light_yellow, (true, TrafficLightColor::Green) => system_colors.mac_os_traffic_light_green, - (false, _) => cx.theme().colors().element, + (false, _) => cx.theme().colors().element_background, }; div().w_3().h_3().rounded_full().bg(fill) @@ -77,7 +77,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/components/workspace.rs b/crates/ui2/src/to_extract/workspace.rs similarity index 92% rename from crates/ui2/src/components/workspace.rs rename to crates/ui2/src/to_extract/workspace.rs index 97570a33e3b83d8856db49eed178d53677eb7b48..d6de8a828807606a6d55086af724983ca1a93df0 100644 --- a/crates/ui2/src/components/workspace.rs +++ b/crates/ui2/src/to_extract/workspace.rs @@ -1,14 +1,14 @@ use std::sync::Arc; use chrono::DateTime; -use gpui2::{px, relative, Div, Render, Size, View, VisualContext}; +use gpui::{px, relative, Div, Render, Size, View, VisualContext}; use settings2::Settings; use theme2::ThemeSettings; use crate::prelude::*; use crate::{ - static_livestream, v_stack, AssistantPanel, Button, ChatMessage, ChatPanel, CollabPanel, - EditorPane, Label, LanguageSelector, NotificationsPanel, Pane, PaneGroup, Panel, + static_livestream, v_stack, AssistantPanel, Button, ChatMessage, ChatPanel, Checkbox, + CollabPanel, EditorPane, Label, LanguageSelector, NotificationsPanel, Pane, PaneGroup, Panel, PanelAllowedSides, PanelSide, ProjectPanel, SplitDirection, StatusBar, Terminal, TitleBar, Toast, ToastOrigin, }; @@ -42,6 +42,7 @@ pub struct Workspace { show_terminal: bool, show_debug: bool, show_language_selector: bool, + test_checkbox_selection: Selection, debug: Gpui2UiDebug, } @@ -58,6 +59,7 @@ impl Workspace { show_language_selector: false, show_debug: false, show_notifications_panel: true, + test_checkbox_selection: Selection::Unselected, debug: Gpui2UiDebug::default(), } } @@ -217,6 +219,23 @@ impl Render for Workspace { .text_color(cx.theme().colors().text) .bg(cx.theme().colors().background) .child(self.title_bar.clone()) + .child( + div() + .absolute() + .top_12() + .left_12() + .z_index(99) + .bg(cx.theme().colors().background) + .child( + Checkbox::new("test_checkbox", self.test_checkbox_selection).on_click( + |selection, workspace: &mut Workspace, cx| { + workspace.test_checkbox_selection = selection; + + cx.notify(); + }, + ), + ), + ) .child( div() .flex_1() @@ -354,7 +373,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { use super::*; - use gpui2::VisualContext; + use gpui::VisualContext; pub struct WorkspaceStory { workspace: View, diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 4c4f26fe0eeb4a8eb53af571cbf2c146edefd2c5..5af5514da4386a444aea737f6307b8c13f97b834 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -26,7 +26,7 @@ use std::{ }, }; use ui::v_stack; -use ui::{prelude::*, Icon, IconButton, IconColor, IconElement}; +use ui::{prelude::*, Icon, IconButton, IconColor, IconElement, TextTooltip}; use util::truncate_and_remove_front; #[derive(PartialEq, Clone, Copy, Deserialize, Debug)] @@ -1361,25 +1361,29 @@ impl Pane { let label = item.tab_content(Some(detail), cx); let close_icon = || { let id = item.id(); + div() .id(item.id()) - .child(IconElement::new(Icon::Close).color(IconColor::Muted)) - .on_click(move |pane: &mut Self, _, cx| { - pane.close_item_by_id(id, SaveIntent::Close, cx) - .detach_and_log_err(cx); - }) + .invisible() + .group_hover("", |style| style.visible()) + .child(IconButton::new("close_tab", Icon::Close).on_click( + move |pane: &mut Self, cx| { + pane.close_item_by_id(id, SaveIntent::Close, cx) + .detach_and_log_err(cx); + }, + )) }; let (text_color, tab_bg, tab_hover_bg, tab_active_bg) = match ix == self.active_item_index { false => ( cx.theme().colors().text_muted, - cx.theme().colors().tab_inactive, + cx.theme().colors().tab_inactive_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), true => ( cx.theme().colors().text, - cx.theme().colors().tab_active, + cx.theme().colors().tab_active_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), @@ -1388,7 +1392,12 @@ impl Pane { let close_right = ItemSettings::get_global(cx).close_position.right(); div() + .group("") .id(item.id()) + .cursor_pointer() + .when_some(item.tab_tooltip_text(cx), |div, text| { + div.tooltip(move |_, cx| cx.build_view(|cx| TextTooltip::new(text.clone()))) + }) // .on_drag(move |pane, cx| pane.render_tab(ix, item.boxed_clone(), detail, cx)) // .drag_over::(|d| d.bg(cx.theme().colors().element_drop_target)) // .on_drop(|_view, state: View, cx| { @@ -1444,7 +1453,7 @@ impl Pane { .id("tab_bar") .w_full() .flex() - .bg(cx.theme().colors().tab_bar) + .bg(cx.theme().colors().tab_bar_background) // Left Side .child( div() diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index 4f7ba02c2ae4ae2fbe370941917e4525d7dc0ebb..fcf6ac3b613219aaf8fa7556de101fb0df5554a5 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -45,7 +45,7 @@ impl Render for StatusBar { .justify_between() .w_full() .h_8() - .bg(cx.theme().colors().status_bar) + .bg(cx.theme().colors().status_bar_background) .child(self.render_left_tools(cx)) .child(self.render_right_tools(cx)) } diff --git a/crates/workspace2/src/workspace2.rs b/crates/workspace2/src/workspace2.rs index f7e9a0d58546c35d491681599a059e7143014de4..7561c903d3bf05c5664632015c80350a8f897626 100644 --- a/crates/workspace2/src/workspace2.rs +++ b/crates/workspace2/src/workspace2.rs @@ -544,6 +544,7 @@ impl DelayedDebouncedEditAction { pub enum Event { PaneAdded(View), ContactRequestedJoin(u64), + WorkspaceCreated(WeakView), } pub struct Workspace { @@ -698,8 +699,7 @@ impl Workspace { Ok(()) }); - // todo!("replace with a different mechanism") - // cx.emit_global(WorkspaceCreated(weak_handle.clone())); + cx.emit(Event::WorkspaceCreated(weak_handle.clone())); let left_dock = cx.build_view(|_| Dock::new(DockPosition::Left)); let bottom_dock = cx.build_view(|_| Dock::new(DockPosition::Bottom)); @@ -2697,7 +2697,7 @@ impl Workspace { fn render_titlebar(&self, cx: &mut ViewContext) -> impl Component { div() - .bg(cx.theme().colors().title_bar) + .bg(cx.theme().colors().title_bar_background) .when( !matches!(cx.window_bounds(), WindowBounds::Fullscreen), |s| s.pl_20(), @@ -4253,7 +4253,7 @@ impl ViewId { // } // } -// pub struct WorkspaceCreated(pub WeakView); +pub struct WorkspaceCreated(pub WeakView); pub fn activate_workspace_for_project( cx: &mut AppContext, diff --git a/crates/zed/src/languages/elixir.rs b/crates/zed/src/languages/elixir.rs index df438d89eef7b7c5c89a376670d7d270db4fa413..e2c79570bcbb444cc056712dfcc45c9ecbf4ea49 100644 --- a/crates/zed/src/languages/elixir.rs +++ b/crates/zed/src/languages/elixir.rs @@ -140,8 +140,8 @@ impl LspAdapter for ElixirLspAdapter { ) -> Result { let version = version.downcast::().unwrap(); let zip_path = container_dir.join(format!("elixir-ls_{}.zip", version.name)); - let version_dir = container_dir.join(format!("elixir-ls_{}", version.name)); - let binary_path = version_dir.join("language_server.sh"); + let folder_path = container_dir.join("elixir-ls"); + let binary_path = folder_path.join("language_server.sh"); if fs::metadata(&binary_path).await.is_err() { let mut response = delegate @@ -160,13 +160,13 @@ impl LspAdapter for ElixirLspAdapter { } futures::io::copy(response.body_mut(), &mut file).await?; - fs::create_dir_all(&version_dir) + fs::create_dir_all(&folder_path) .await - .with_context(|| format!("failed to create directory {}", version_dir.display()))?; + .with_context(|| format!("failed to create directory {}", folder_path.display()))?; let unzip_status = smol::process::Command::new("unzip") .arg(&zip_path) .arg("-d") - .arg(&version_dir) + .arg(&folder_path) .output() .await? .status; @@ -174,7 +174,7 @@ impl LspAdapter for ElixirLspAdapter { Err(anyhow!("failed to unzip elixir-ls archive"))?; } - remove_matching(&container_dir, |entry| entry != version_dir).await; + remove_matching(&container_dir, |entry| entry != folder_path).await; } Ok(LanguageServerBinary { @@ -285,20 +285,16 @@ impl LspAdapter for ElixirLspAdapter { async fn get_cached_server_binary_elixir_ls( container_dir: PathBuf, ) -> Option { - (|| async move { - let mut last = None; - let mut entries = fs::read_dir(&container_dir).await?; - while let Some(entry) = entries.next().await { - last = Some(entry?.path()); - } - last.map(|path| LanguageServerBinary { - path, + let server_path = container_dir.join("elixir-ls/language_server.sh"); + if server_path.exists() { + Some(LanguageServerBinary { + path: server_path, arguments: vec![], }) - .ok_or_else(|| anyhow!("no cached binary")) - })() - .await - .log_err() + } else { + log::error!("missing executable in directory {:?}", server_path); + None + } } pub struct NextLspAdapter; diff --git a/crates/zed2/src/assets.rs b/crates/zed2/src/assets.rs index 873138c2447762f55243b29514e9d9f1064d79f4..5d5e81a60e4feaff4c04bf3a0f3aff9a87659686 100644 --- a/crates/zed2/src/assets.rs +++ b/crates/zed2/src/assets.rs @@ -8,6 +8,7 @@ use rust_embed::RustEmbed; #[include = "fonts/**/*"] #[include = "icons/**/*"] #[include = "themes/**/*"] +#[exclude = "themes/src/*"] #[include = "sounds/**/*"] #[include = "*.md"] #[exclude = "*.DS_Store"] diff --git a/crates/zed2/src/languages/elixir.rs b/crates/zed2/src/languages/elixir.rs index bd38377c99c17f9fc11e8a2f44044c5d44126c6f..90352c78b49874ab1f76ad73b17f2687baeee8f3 100644 --- a/crates/zed2/src/languages/elixir.rs +++ b/crates/zed2/src/languages/elixir.rs @@ -140,8 +140,8 @@ impl LspAdapter for ElixirLspAdapter { ) -> Result { let version = version.downcast::().unwrap(); let zip_path = container_dir.join(format!("elixir-ls_{}.zip", version.name)); - let version_dir = container_dir.join(format!("elixir-ls_{}", version.name)); - let binary_path = version_dir.join("language_server.sh"); + let folder_path = container_dir.join("elixir-ls"); + let binary_path = folder_path.join("language_server.sh"); if fs::metadata(&binary_path).await.is_err() { let mut response = delegate @@ -160,13 +160,13 @@ impl LspAdapter for ElixirLspAdapter { } futures::io::copy(response.body_mut(), &mut file).await?; - fs::create_dir_all(&version_dir) + fs::create_dir_all(&folder_path) .await - .with_context(|| format!("failed to create directory {}", version_dir.display()))?; + .with_context(|| format!("failed to create directory {}", folder_path.display()))?; let unzip_status = smol::process::Command::new("unzip") .arg(&zip_path) .arg("-d") - .arg(&version_dir) + .arg(&folder_path) .output() .await? .status; @@ -174,7 +174,7 @@ impl LspAdapter for ElixirLspAdapter { Err(anyhow!("failed to unzip elixir-ls archive"))?; } - remove_matching(&container_dir, |entry| entry != version_dir).await; + remove_matching(&container_dir, |entry| entry != folder_path).await; } Ok(LanguageServerBinary { @@ -285,20 +285,16 @@ impl LspAdapter for ElixirLspAdapter { async fn get_cached_server_binary_elixir_ls( container_dir: PathBuf, ) -> Option { - (|| async move { - let mut last = None; - let mut entries = fs::read_dir(&container_dir).await?; - while let Some(entry) = entries.next().await { - last = Some(entry?.path()); - } - last.map(|path| LanguageServerBinary { - path, + let server_path = container_dir.join("elixir-ls/language_server.sh"); + if server_path.exists() { + Some(LanguageServerBinary { + path: server_path, arguments: vec![], }) - .ok_or_else(|| anyhow!("no cached binary")) - })() - .await - .log_err() + } else { + log::error!("missing executable in directory {:?}", server_path); + None + } } pub struct NextLspAdapter; diff --git a/crates/zed2/src/languages/language_plugin.rs b/crates/zed2/src/languages/language_plugin.rs index a160cca228faa2d91285ec5ed1e8b499833cffd6..968cc819fde558f939de6c7f655023e0b431bd37 100644 --- a/crates/zed2/src/languages/language_plugin.rs +++ b/crates/zed2/src/languages/language_plugin.rs @@ -2,7 +2,7 @@ use anyhow::{anyhow, Result}; use async_trait::async_trait; use collections::HashMap; use futures::lock::Mutex; -use gpui2::executor::Background; +use gpui::executor::Background; use language2::{LanguageServerName, LspAdapter, LspAdapterDelegate}; use lsp2::LanguageServerBinary; use plugin_runtime::{Plugin, PluginBinary, PluginBuilder, WasiFn}; diff --git a/crates/zed2/src/main.rs b/crates/zed2/src/main.rs index 2b44c9ddc467df2400561c0230c69a9eb96a5c02..580afd265370c1052554b85affb600b98046e913 100644 --- a/crates/zed2/src/main.rs +++ b/crates/zed2/src/main.rs @@ -209,7 +209,6 @@ fn main() { if stdout_is_a_pty() { cx.activate(true); let urls = collect_url_args(); - dbg!(&urls); if !urls.is_empty() { listener.open_urls(urls) } diff --git a/script/bundle b/script/bundle index 69a2f165dc605fceb36a1d86be42b4c3a1305cee..b8e64b53ce9e5e4ab36cb3280862eb2677e6d7d6 100755 --- a/script/bundle +++ b/script/bundle @@ -10,6 +10,9 @@ local_only=false overwrite_local_app=false bundle_name="" +# This must match the team in the provsiioning profile. +APPLE_NOTORIZATION_TEAM="MQ55VZLNZQ" + # Function for displaying help info help_info() { echo " @@ -228,8 +231,7 @@ else if [[ -n $MACOS_CERTIFICATE && -n $MACOS_CERTIFICATE_PASSWORD && -n $APPLE_NOTARIZATION_USERNAME && -n $APPLE_NOTARIZATION_PASSWORD ]]; then echo "Notarizing DMG with Apple" - npm install -g notarize-cli - npx notarize-cli --file "${dmg_file_path}" --bundle-id dev.zed.Zed --username "$APPLE_NOTARIZATION_USERNAME" --password "$APPLE_NOTARIZATION_PASSWORD" + "$(xcode-select -p)/usr/bin/notarytool" submit --wait --apple-id "$APPLE_NOTARIZATION_USERNAME" --password "$APPLE_NOTARIZATION_PASSWORD" --team-id "$APPLE_NOTORIZATION_TEAM" "${dmg_file_path}" fi if [ "$open_result" = true ]; then diff --git a/test.rs b/test.rs index 6553e633c8e82597b9ca32b34d68a2f475d586ce..4a7b9faa8ff9b56cc0779b79f5152b3b1694c2c7 100644 --- a/test.rs +++ b/test.rs @@ -410,7 +410,7 @@ mod components { themes::rose_pine, }; use gpui::{platform::MouseButton, ViewContext}; - use gpui2_macros::Element; + use gpui_macros::Element; use std::{marker::PhantomData, rc::Rc}; struct ButtonHandlers { click: Option)>>, @@ -535,7 +535,7 @@ mod element { platform::{MouseButton, MouseButtonEvent}, EngineLayout, EventContext, RenderContext, ViewContext, }; - use gpui2_macros::tailwind_lengths; + use gpui_macros::tailwind_lengths; use std::{ any::{Any, TypeId}, cell::Cell, @@ -4572,7 +4572,7 @@ mod frame { }; use anyhow::{anyhow, Result}; use gpui::LayoutNodeId; - use gpui2_macros::IntoElement; + use gpui_macros::IntoElement; #[element_crate = "crate"] pub struct Frame { style: OptionalStyle, diff --git a/theme.txt b/theme.txt deleted file mode 100644 index 626d6b9fa91edeedee07148dea96defd194ebf31..0000000000000000000000000000000000000000 --- a/theme.txt +++ /dev/null @@ -1,254 +0,0 @@ - Finished dev [unoptimized + debuginfo] target(s) in 0.39s - Running `target/debug/storybook` -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -}