diff --git a/README.md b/README.md index f61e34b9..266d9412 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,19 @@ +

Matrix Inspired Theme

+ +I’ve added a custom theme inspired by **The Matrix**. +You can preview it below: + +

+ Matrix theme preview +

+ +Disclaimer + +This theme is inspired by the visual style of *The Matrix* movie. It is not affiliated with, endorsed by, or associated with Warner Bros. or any official Matrix franchise rights holders. All trademarks and copyrights belong to their respective owners. + +
+ +

Original README

@@ -64,7 +80,7 @@ However, the amount of effort needed to maintain and develop new features for th massCode allows you to organize snippets using multi-level folders as well as tags. Each snippet has fragments - tabs, which gives even greater level of organization. ### Editor -massCode uses [Codemirror](https://github.com/codemirror/codemirror5) as the basis for the editor and `.tmLanguage` as the grammar for syntax highlighting. This tandem opens the door to over [600](https://github.com/github/linguist/blob/master/vendor/README.md) existing grammars. The application currently supports more than [160](https://github.com/massCodeIO/massCode/tree/master/src/renderer/components/editor) grammars. In addition to `.tmLanguage`, the application supports `.tmTheme` for themes. There is also support for [Prettier](https://prettier.io) for code formatting. +massCode uses [Codemirror](https://github.com/codemirror/codemirror5) as the basis for the editor and `.tmLanguage` as the grammar for syntax highlighting. This tandem opens the door to over [600](https://github.com/github/linguist/blob/master/vendor/README.md) existing grammars. The application currently supports more than [160](https://github.com/massCodeIO/massCode/tree/master/src/renderer/components/editor) grammars. In addition to `.tmLanguage`, the application supports `.tmTheme` for themes. There is also support for [Prettier](https://prettier.io) for code formatting. ### Real-time Render for HTML & CSS You can not only collect snippets, but also see the rendering result for HTML and CSS in real time. Test the idea or just view the result. @@ -122,4 +138,4 @@ You can also [download](https://github.com/antonreshetov/massCode) massCode v1. [AGPL-3.0](https://github.com/massCodeIO/massCode/blob/master/LICENSE) -Copyright (c) 2019-present, [Anton Reshetov](https://github.com/antonreshetov). \ No newline at end of file +Copyright (c) 2019-present, [Anton Reshetov](https://github.com/antonreshetov). diff --git a/preview-matrix.png b/preview-matrix.png new file mode 100644 index 00000000..3857f2a6 Binary files /dev/null and b/preview-matrix.png differ diff --git a/src/renderer/assets/scss/themes.scss b/src/renderer/assets/scss/themes.scss index 8a360d50..93a71963 100644 --- a/src/renderer/assets/scss/themes.scss +++ b/src/renderer/assets/scss/themes.scss @@ -27,8 +27,8 @@ --color-button: hsl(44, 60%, 85%); --color-button-hover: var(--color-contrast-low-alt); - --color-button-action-hover: var(--color-contrast-lower-alt3); - + --color-button-action-hover: var(--color-contrast-lower-alt3); + --color-checkbox: var(--color-contrast-lower-alt); --color-input: var(--color-contrast-lower-alt); @@ -48,7 +48,7 @@ [data-theme='dark:one'] { --color-primary: hsl(215, 69%, 45%); - + --color-bg: hsl(220, 13%, 18%); --color-contrast-lower: hsl(220, 13%, 20%); @@ -57,12 +57,12 @@ --color-contrast-lower-alt3: hsl(220, 13%, 30%); --color-contrast-lower-low: hsl(220, 13%, 40%); --color-contrast-medium: hsl(220, 13%, 50%); - + --color-border: var(--color-contrast-lower-alt2); - + --color-snippet-list: var(--color-bg); --color-snippet-selected: var(--color-contrast-lower-alt); - + --color-sidebar: var(--color-bg); --color-sidebar-item-selected: var(--color-contrast-lower-alt); --color-sidebar-icon: var(--color-text); @@ -71,8 +71,8 @@ --color-button: var(--color-contrast-lower-alt); --color-button-hover: var(--color-contrast-lower-alt2); - --color-button-action: var(--color-contrast-low); - --color-button-action-hover: var(--color-contrast-lower-alt2); + --color-button-action: var(--color-contrast-low); + --color-button-action-hover: var(--color-contrast-lower-alt2); --color-input: var(--color-bg); @@ -85,7 +85,7 @@ --color-primary: hsl(215, 69%, 45%); // при конвертации в hsl цвет отличается, поэтому оставляем в hex - --color-bg: #282A36; + --color-bg: #282A36; --color-contrast-lower: hsl(231, 15%, 20%); --color-contrast-lower-alt: hsl(231, 15%, 22%); @@ -107,7 +107,7 @@ --color-button: var(--color-contrast-lower-alt); --color-button-hover: var(--color-contrast-lower-alt2); - --color-button-action: var(--color-contrast-low); + --color-button-action: var(--color-contrast-low); --color-button-action-hover: var(--color-contrast-lower-alt2); --color-input: var(--color-bg); @@ -143,7 +143,7 @@ --color-button: var(--color-contrast-lower-alt); --color-button-hover: var(--color-contrast-lower-alt2); - --color-button-action: var(--color-contrast-low); + --color-button-action: var(--color-contrast-low); --color-button-action-hover: var(--color-contrast-lower-alt2); --color-input: var(--color-bg); @@ -178,7 +178,7 @@ --color-button: var(--color-contrast-lower-alt); --color-button-hover: var(--color-contrast-lower-alt2); - --color-button-action: var(--color-contrast-low); + --color-button-action: var(--color-contrast-low); --color-button-action-hover: var(--color-contrast-lower-alt2); --color-input: var(--color-bg); @@ -214,7 +214,7 @@ --color-button: var(--color-contrast-lower-alt); --color-button-hover: var(--color-contrast-lower-alt2); - --color-button-action: var(--color-contrast-low); + --color-button-action: var(--color-contrast-low); --color-button-action-hover: var(--color-contrast-lower-alt2); --color-input: var(--color-bg); @@ -252,7 +252,7 @@ --color-button: var(--color-contrast-lower-alt); --color-button-hover: var(--color-contrast-lower-alt2); - --color-button-action: var(--color-contrast-low); + --color-button-action: var(--color-contrast-low); --color-button-action-hover: var(--color-contrast-lower-alt2); --color-input: var(--color-bg); @@ -289,7 +289,44 @@ --color-button: var(--color-contrast-lower-alt); --color-button-hover: var(--color-contrast-lower-alt2); - --color-button-action: var(--color-contrast-low); + --color-button-action: var(--color-contrast-low); + --color-button-action-hover: var(--color-contrast-lower-alt2); + + --color-input: var(--color-bg); + + --color-menu-selected: var(--color-contrast-lower-alt); + + --color-tag-delete: var(--color-contrast-lower-alt3); +} + +[data-theme='dark:matrix'] { + --color-primary: hsla(140, 100%, 50%, 0.414); + + // при конвертации в hsl цвет отличается, поэтому оставляем в hex + --color-bg: #000000; + + + --color-contrast-lower: hsla(140, 100%, 50%, 0.250); + --color-contrast-lower-alt: hsla(140, 100%, 50%, 0.250); + --color-contrast-lower-alt2: hsla(140, 100%, 50%, 0.250); + --color-contrast-lower-alt3: #000000; + --color-contrast-lower-low: #000000; + --color-contrast-medium: #000000; + + --color-snippet-list: var(--color-bg); + --color-snippet-selected: var(--color-contrast-lower-alt); + + --color-sidebar: var(--color-bg); + --color-sidebar-item-selected: var(--color-contrast-lower-alt); + --color-sidebar-icon: var(--color-text); + + --color-border: var(--color-contrast-lower-alt2); + + --color-text: hsl(140, 100%, 50%); + + --color-button: var(--color-contrast-lower-alt); + --color-button-hover: var(--color-contrast-lower-alt2); + --color-button-action: var(--color-contrast-low); --color-button-action-hover: var(--color-contrast-lower-alt2); --color-input: var(--color-bg); @@ -306,4 +343,4 @@ color: var(--color-text); } } -} \ No newline at end of file +} diff --git a/src/renderer/components/editor/themes.ts b/src/renderer/components/editor/themes.ts index 9c81bbff..c53efc31 100644 --- a/src/renderer/components/editor/themes.ts +++ b/src/renderer/components/editor/themes.ts @@ -84,6 +84,16 @@ export const themes: ThemeConfig[] = [ divider: '#1C2029' } }, + { + name: 'Matrix', + label: 'Matrix', + value: 'dark:matrix', + loader: () => import('./themes/matrix.tmTheme.json'), + gutterSettings: { + background: '#1C2029', + divider: '#1C2029' + } + }, { name: 'GitHub', label: 'GitHub', diff --git a/src/renderer/components/editor/themes/matrix.tmTheme.json b/src/renderer/components/editor/themes/matrix.tmTheme.json new file mode 100644 index 00000000..2dea03e1 --- /dev/null +++ b/src/renderer/components/editor/themes/matrix.tmTheme.json @@ -0,0 +1,843 @@ +{ + "author": "Kamil Mirończuk (https://github.com/Kamwebdev)", + "_note": "Based on https://github.com/enkia/enki-theme", + "semanticClass": "kamwebdev.theme.matrix", + "settings": [ + { + "settings": { + "guide": "#4f4f5e40", + "caret": "#DBC08A", + "findHighlight": "#ffa300", + "phantomCss": "", + "shadow": "#00000010", + "stackGuide": "#4f4f5e60", + "lineHighlight": "#00000030", + "gutterForeground": "#3b415caa", + "findHighlightForeground": "#000000", + "foreground": "#00FD61", + "activeGuide": "#363b54", + "background": "#00000000", + "popupCss": "", + "invisibles": "#4f4f5e", + "selection": "#9D599D40", + "selectionBorder": "#9D599D", + "inactiveSelection": "#282833", + "tagsOptions": "underline" + } + }, + { + "name": "Italics - Comments, Storage, Keyword Flow, Vue attributes, Decorators", + "scope": "comment, meta.var.expr storage.type, keyword.control.flow, meta.directive.vue punctuation.separator.key-value.html, meta.directive.vue entity.other.attribute-name.html, tag.decorator.js entity.name.tag.js, tag.decorator.js punctuation.definition.tag.js, storage.modifier", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Comment", + "scope": "comment, comment.block.documentation, punctuation.definition.comment", + "settings": { + "foreground": "#66b3d6" + } + }, + { + "name": "Comment Doc", + "scope": "comment.block.documentation variable, comment.block.documentation storage, comment.block.documentation punctuation, comment.block.documentation keyword, comment.block.documentation support, comment.block.documentation markup, comment.block.documentation markup.inline.raw.string.markdown, keyword.other.phpdoc.php", + "settings": { + "foreground": "#66b3d6" + } + }, + { + "name": "Number, Boolean, Undefined, Null", + "scope": "variable.other.constant, punctuation.definition.constant, constant.language, constant.numeric, support.constant", + "settings": { + "foreground": "#ff9e64" + } + }, + { + "name": "String, Symbols, Markup Heading", + "scope": "string, constant.other.symbol, constant.other.key, markup.heading, meta.attribute-selector", + "settings": { + "fontStyle": "", + "foreground": "#9ece6a" + } + }, + { + "name": "Colors", + "scope": "constant.other.color, constant.other.color.rgb-value.hex punctuation.definition.constant", + "settings": { + "foreground": "#9aa5ce" + } + }, + { + "name": "Invalid", + "scope": "invalid, invalid.illegal", + "settings": { + "foreground": "#ff5370" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Storage Type", + "scope": "storage.type", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Storage - modifier, var, const, let", + "scope": "meta.var.expr storage.type, storage.modifier", + "settings": { + "foreground": "#9d7cd8" + } + }, + { + "name": "Interpolation", + "scope": "punctuation.definition.template-expression, punctuation.section.embedded", + "settings": { + "foreground": "#7dcfff" + } + }, + { + "name": "Spread", + "scope": "keyword.operator.spread, keyword.operator.rest", + "settings": { + "fontStyle": "bold", + "foreground": "#f7768e" + } + }, + { + "name": "Operator, Misc", + "scope": "keyword.operator, keyword.control.as, keyword.other, keyword.operator.bitwise.shift, punctuation, punctuation.definition.constant.markdown, punctuation.definition.string, punctuation.support.type.property-name, text.html.vue-html meta.tag, punctuation.definition.keyword, punctuation.terminator.rule, punctuation.definition.entity, punctuation.definition.tag, punctuation.separator.inheritance.php, punctuation.definition.tag.html, keyword.other.template, keyword.other.substitution, entity.name.operator, text.html.vue meta.tag.block.any.html, text.html.vue meta.tag.inline.any.html, text.html.vue meta.tag.other.html, text.html.twig meta.tag.inline.any.html, text.html.twig meta.tag.block.any.html, text.html.twig meta.tag.structure.any.html, text.html.twig meta.tag.any.html", + "settings": { + "foreground": "#89ddff" + } + }, + { + "name": "Import, Export, From, Default", + "scope": "keyword.control.import, keyword.control.export, keyword.control.from, keyword.control.default, meta.import keyword.other", + "settings": { + "foreground": "#7dcfff" + } + }, + { + "name": "Keyword", + "scope": "keyword, keyword.control, keyword.other.important", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Keyword SQL", + "scope": "keyword.other.DML", + "settings": { + "foreground": "#7dcfff" + } + }, + { + "name": "Keyword Operator Logical, Arrow, Ternary, Comparison", + "scope": "keyword.operator.logical, storage.type.function, keyword.operator.bitwise, keyword.operator.ternary, keyword.operator.comparison, keyword.operator.relational, keyword.operator.or.regexp", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Tag", + "scope": "entity.name.tag, entity.name.tag support.class.component, meta.tag", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "Tag Punctuation", + "scope": "punctuation.definition.tag, punctuation.definition.tag.html, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html", + "settings": { + "foreground": "#ba3c97" + } + }, + { + "name": "Blade", + "scope": "keyword.blade, entity.name.function.blade", + "settings": { + "foreground": "#7aa2f7" + } + }, + { + "name": "PHP - Embedded Tag", + "scope": "punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "Smarty - Twig tag - Blade", + "scope": "punctuation.definition.variable.smarty, punctuation.section.embedded.begin.smarty, punctuation.section.embedded.end.smarty, meta.tag.template.value.twig, punctuation.section.tag.twig, meta.tag.expression.twig, punctuation.definition.tag.expression.twig, punctuation.definition.tag.output.twig, variable.parameter.smarty", + "settings": { + "foreground": "#7DCFFF" + } + }, + { + "name": "Smarty - Twig variable - function", + "scope": "variable.other.property.twig, support.function.twig, meta.function-call.twig, keyword.control.twig, keyword.control.smarty, keyword.operator.other.twig, keyword.operator.comparison.twig, support.function.functions.twig, support.function.functions.twig, keyword.operator.assignment.twig, support.function.filters.twig, support.function.built-in.smarty, keyword.operator.smarty, text.blade text.html.blade custom.compiler.blade.php punctuation.section.embedded.php entity.name.tag.block.any.html, text.blade text.html.blade custom.compiler.blade.php punctuation.section.embedded.php constant.other.inline-data.html, text.blade text.html.blade custom.compiler.blade.php support.function constant.other.inline-data.html", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "Globals - PHP Constants etc", + "scope": "constant.other.php, variable.other.global.safer, variable.other.global.safer punctuation.definition.variable, variable.other.global, variable.other.global punctuation.definition.variable, constant.other", + "settings": { + "foreground": "#e0af68" + } + }, + { + "name": "Variables", + "scope": "variable, support.variable, string constant.other.placeholder", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "Object Variable", + "scope": "variable.other.object, support.module.node", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "Object Key", + "scope": "meta.object-literal.key, meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js, string.alias.graphql, string.unquoted.graphql, string.unquoted.alias.graphql, meta.field.declaration.ts variable.object.property", + "settings": { + "foreground": "#73daca" + } + }, + { + "name": "Object Property", + "scope": "variable.other.property, support.variable.property, support.variable.property.dom, meta.function-call variable.other.object.property, variable.language.prototype, meta.property.object, variable.other.member", + "settings": { + "foreground": "#7dcfff" + } + }, + { + "name": "Object Property", + "scope": "variable.other.object.property", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "Object Literal Member lvl 3 (Vue Prop Validation)", + "scope": "meta.objectliteral meta.object.member meta.objectliteral meta.object.member meta.objectliteral meta.object.member meta.object-literal.key", + "settings": { + "foreground": "#41a6b5" + } + }, + { + "name": "C-related Block Level Variables", + "scope": "source.cpp meta.block variable.other", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "Other Variable", + "scope": "support.other.variable", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "Methods", + "scope": "meta.class-method.js entity.name.function.js, entity.name.method.js, variable.function.constructor, keyword.other.special-method, storage.type.cs", + "settings": { + "foreground": "#7aa2f7" + } + }, + { + "name": "Function Definition", + "scope": "entity.name.function, meta.function-call, meta.function-call entity.name.function, variable.function, meta.definition.method entity.name.function, meta.object-literal entity.name.function", + "settings": { + "foreground": "#7aa2f7" + } + }, + { + "name": "Function Argument", + "scope": "variable.parameter.function.language.special, variable.parameter, meta.function.parameters punctuation.definition.variable, meta.function.parameter variable", + "settings": { + "foreground": "#e0af68" + } + }, + { + "name": "Constant, Tag Attribute", + "scope": "keyword.other.type.php, storage.type.php, constant.character, constant.escape, keyword.other.unit", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Variable Definition", + "scope": "meta.definition.variable variable.other.constant, meta.definition.variable variable.other.readwrite, variable.other.declaration", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Inherited Class", + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "", + "foreground": "#bb9af7" + } + }, + { + "name": "Class, Support, DOM, etc", + "scope": "support.class, support.type, variable.other.readwrite.alias, support.orther.namespace.use.php, meta.use.php, support.other.namespace.php, support.type.sys-types, support.variable.dom, support.constant.math, support.type.object.module, support.constant.json, entity.name.namespace, meta.import.qualifier, entity.name.class", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "Class Name", + "scope": "entity.name", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "CSS Class and Support", + "scope": "source.css support.type.property-name, source.sass support.type.property-name, source.scss support.type.property-name, source.less support.type.property-name, source.stylus support.type.property-name, source.postcss support.type.property-name, support.type.property-name.css, support.type.vendored.property-name, support.type.map.key", + "settings": { + "foreground": "#7aa2f7" + } + }, + { + "name": "CSS Font", + "scope": "support.constant.font-name, meta.definition.variable", + "settings": { + "foreground": "#9ece6a" + } + }, + { + "name": "CSS Class", + "scope": "entity.other.attribute-name.class, meta.at-rule.mixin.scss entity.name.function.scss", + "settings": { + "foreground": "#9ece6a" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#fc7b7b" + } + }, + { + "name": "CSS Tag", + "scope": "entity.name.tag.css, entity.name.tag.reference, entity.name.tag.scss", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "CSS Tag Reference", + "scope": "entity.name.tag.reference", + "settings": { + "foreground": "#e0af68" + } + }, + { + "name": "CSS Property Separator", + "scope": "meta.property-list punctuation.separator.key-value", + "settings": { + "foreground": "#9abdf5" + } + }, + { + "name": "CSS Punctuation", + "scope": "meta.property-list, punctuation.definition.entity.css", + "settings": { + "foreground": "#e0af68" + } + }, + { + "name": "SCSS @", + "scope": "meta.at-rule.mixin keyword.control.at-rule.mixin, meta.at-rule.include entity.name.function.scss, meta.at-rule.include keyword.control.at-rule.include", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "SCSS Mixins, Extends, Include Keyword", + "scope": "keyword.control.at-rule.include punctuation.definition.keyword, keyword.control.at-rule.mixin punctuation.definition.keyword, meta.at-rule.include keyword.control.at-rule.include, keyword.control.at-rule.extend punctuation.definition.keyword, meta.at-rule.extend keyword.control.at-rule.extend, entity.other.attribute-name.placeholder.css punctuation.definition.entity.css, meta.at-rule.media keyword.control.at-rule.media, meta.at-rule.mixin keyword.control.at-rule.mixin, meta.at-rule.function keyword.control.at-rule.function, keyword.control punctuation.definition.keyword, meta.at-rule.import.scss entity.other.attribute-name.placeholder.scss punctuation.definition.entity.scss, meta.at-rule.import.scss keyword.control.at-rule.import.scss", + "settings": { + "foreground": "#9d7cd8" + } + }, + { + "name": "SCSS Include Mixin Argument", + "scope": "meta.property-list meta.at-rule.include", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "CSS value", + "scope": "support.constant.property-value", + "settings": { + "foreground": "#ff9e64" + } + }, + { + "name": "Sub-methods", + "scope": "entity.name.module.js, variable.import.parameter.js, variable.other.class.js", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "Language methods", + "scope": "variable.language", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "Variable punctuation", + "scope": "variable.other punctuation.definition.variable", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "Keyword this with Punctuation, ES7 Bind Operator", + "scope": "source.js constant.other.object.key.js string.unquoted.label.js, variable.language.this punctuation.definition.variable, keyword.other.this", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "HTML Attributes", + "scope": "entity.other.attribute-name, text.html.basic entity.other.attribute-name.html, text.html.basic entity.other.attribute-name, text.blade entity.other.attribute-name.class, text.html.smarty entity.other.attribute-name.class", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Vue Template attributes", + "scope": "meta.directive.vue punctuation.separator.key-value.html, meta.directive.vue entity.other.attribute-name.html", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Vue Template attribute separator", + "scope": "meta.directive.vue punctuation.separator.key-value.html", + "settings": { + "foreground": "#89ddff" + } + }, + { + "name": "CSS IDs", + "scope": "source.sass keyword.control", + "settings": { + "foreground": "#7aa2f7" + } + }, + { + "name": "CSS psuedo selectors", + "scope": "entity.other.attribute-name.pseudo-class, entity.other.attribute-name.pseudo-element, entity.other.attribute-name.placeholder, meta.property-list meta.property-value", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#449dab" + } + }, + { + "name": "Deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#914c54" + } + }, + { + "name": "Changed", + "scope": "markup.changed", + "settings": { + "foreground": "#6183bb" + } + }, + { + "name": "Regular Expressions", + "scope": "string.regexp", + "settings": { + "foreground": "#b4f9f8" + } + }, + { + "name": "Regular Expressions - Punctuation", + "scope": "punctuation.definition.group", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "Regular Expressions - Character Class", + "scope": "constant.other.character-class.regexp", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "Regular Expressions - Character Class Set", + "scope": "constant.other.character-class.set.regexp, punctuation.definition.character-class.regexp", + "settings": { + "foreground": "#e0af68" + } + }, + { + "name": "Regular Expressions - Quantifier", + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#89ddff" + } + }, + { + "name": "Regular Expressions - Backslash", + "scope": "constant.character.escape.backslash", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "Escape Characters", + "scope": "constant.character.escape", + "settings": { + "foreground": "#89ddff" + } + }, + { + "name": "Decorators", + "scope": "tag.decorator.js entity.name.tag.js, tag.decorator.js punctuation.definition.tag.js", + "settings": { + "foreground": "#7aa2f7" + } + }, + { + "name": "CSS Units", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "JSON Key - Level 0", + "scope": "source.json meta.mapping.key.json string.quoted.double.json, source.json meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#7aa2f7" + } + }, + { + "name": "JSON Key - Level 1", + "scope": "source.json meta.mapping.value.json meta.sequence.json meta.mapping.key.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "JSON Key - Level 2", + "scope": "source.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.mapping.key.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#7dcfff" + } + }, + { + "name": "JSON Key - Level 3", + "scope": "source.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.key.json string.quoted.double.json, 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.array.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#bb9af7" + } + }, + { + "name": "JSON Key - Level 4", + "scope": "source.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.key.json string.quoted.double.json, 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.array.json meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#e0af68" + } + }, + { + "name": "JSON Key - Level 5", + "scope": "source.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.key.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "JSON Key - Level 6", + "scope": "source.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.key.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#73daca" + } + }, + { + "name": "JSON Key - Level 7", + "scope": "source.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.key.json string.quoted.double.json", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "JSON Key - Level 8", + "scope": "source.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.value.json meta.sequence.json meta.mapping.key.json string.quoted.double.json punctuation.definition.string.end.json", + "settings": { + "foreground": "#9ece6a" + } + }, + { + "name": "JSON Key - value", + "scope": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json, 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 string.quoted.double.json, 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.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json", + "settings": { + "foreground": "#9ece6a" + } + }, + { + "name": "Plain Punctuation", + "scope": "punctuation.definition.list_item.markdown", + "settings": { + "foreground": "#9abdf5" + } + }, + { + "name": "Block Punctuation", + "scope": "meta.block, meta.brace, punctuation.definition.block, punctuation.definition.use, punctuation.definition.group.shell, punctuation.definition.class, punctuation.definition.begin.bracket, punctuation.definition.end.bracket, punctuation.definition.parameters, punctuation.definition.arguments, punctuation.definition.dictionary, punctuation.definition.array, punctuation.section", + "settings": { + "foreground": "#9abdf5" + } + }, + { + "name": "Markdown - Plain", + "scope": "meta.jsx.children, meta.embedded.block", + "settings": { + "foreground": "#c0caf5" + } + }, + { + "name": "HTML text", + "scope": "text.html", + "settings": { + "foreground": "#00FD61" + } + }, + { + "name": "Markdown - Markup Raw Inline", + "scope": "text.html.markdown markup.inline.raw.markdown", + "settings": { + "foreground": "#00FD61" + } + }, + { + "name": "Markdown - Markup Raw Inline Punctuation", + "scope": "text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown", + "settings": { + "foreground": "#4E5579" + } + }, + { + "name": "Markdown - Heading 1", + "scope": "heading.1.markdown entity.name, heading.1.markdown punctuation.definition.heading.markdown", + "settings": { + "fontStyle": "bold", + "foreground": "#89ddff" + } + }, + { + "name": "Markdown - Heading 2", + "scope": "heading.2.markdown entity.name, heading.2.markdown punctuation.definition.heading.markdown", + "settings": { + "fontStyle": "bold", + "foreground": "#61bdf2" + } + }, + { + "name": "Markdown - Heading 3", + "scope": "heading.3.markdown entity.name, heading.3.markdown punctuation.definition.heading.markdown", + "settings": { + "fontStyle": "bold", + "foreground": "#7aa2f7" + } + }, + { + "name": "Markdown - Heading 4", + "scope": "heading.4.markdown entity.name, heading.4.markdown punctuation.definition.heading.markdown", + "settings": { + "fontStyle": "bold", + "foreground": "#6d91de" + } + }, + { + "name": "Markdown - Heading 5", + "scope": "heading.5.markdown entity.name, heading.5.markdown punctuation.definition.heading.markdown", + "settings": { + "fontStyle": "bold", + "foreground": "#9aa5ce" + } + }, + { + "name": "Markdown - Heading 6", + "scope": "heading.6.markdown entity.name, heading.6.markdown punctuation.definition.heading.markdown", + "settings": { + "fontStyle": "bold", + "foreground": "#747ca1" + } + }, + { + "name": "Markup - Italic", + "scope": "markup.italic, markup.italic punctuation", + "settings": { + "fontStyle": "italic", + "foreground": "#c0caf5" + } + }, + { + "name": "Markup - Bold", + "scope": "markup.bold, markup.bold punctuation", + "settings": { + "fontStyle": "bold", + "foreground": "#c0caf5" + } + }, + { + "name": "Markup - Bold-Italic", + "scope": "markup.bold markup.italic, markup.bold markup.italic punctuation", + "settings": { + "fontStyle": "bold italic", + "foreground": "#c0caf5" + } + }, + { + "name": "Markup - Underline", + "scope": "markup.underline, markup.underline punctuation", + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Markdown - Blockquote", + "scope": "markup.quote punctuation.definition.blockquote.markdown", + "settings": { + "foreground": "#4e5579" + } + }, + { + "name": "Markup - Quote", + "scope": "markup.quote", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown - Link", + "scope": "string.other.link, markup.underline.link, constant.other.reference.link.markdown, string.other.link.description.title.markdown", + "settings": { + "foreground": "#73daca" + } + }, + { + "name": "Markdown - Fenced Code Block", + "scope": "markup.fenced_code.block.markdown, markup.inline.raw.string.markdown, variable.language.fenced.markdown", + "settings": { + "foreground": "#00FD61" + } + }, + { + "name": "Markdown - Code Block Indented", + "scope": "markup.raw.block.markdown", + "settings": { + "foreground": "#00FD61" + } + }, + { + "name": "Markdown - Separator", + "scope": "meta.separator", + "settings": { + "fontStyle": "bold", + "foreground": "#444b6a" + } + }, + { + "name": "Markup - Table", + "scope": "markup.table", + "settings": { + "foreground": "#c0cefc" + } + }, + { + "name": "Token - Info", + "scope": "token.info-token", + "settings": { + "foreground": "#0db9d7" + } + }, + { + "name": "Token - Warn", + "scope": "token.warn-token", + "settings": { + "foreground": "#ffdb69" + } + }, + { + "name": "Token - Error", + "scope": "token.error-token", + "settings": { + "foreground": "#db4b4b" + } + }, + { + "name": "Token - Debug", + "scope": "token.debug-token", + "settings": { + "foreground": "#b267e6" + } + }, + { + "name": "Apache Tag", + "scope": "entity.tag.apacheconf", + "settings": { + "foreground": "#f7768e" + } + }, + { + "name": "Preprocessor", + "scope": "meta.preprocessor", + "settings": { + "foreground": "#73daca" + } + }, + { + "name": "ENV value", + "scope": "source.env", + "settings": { + "foreground": "#7aa2f7" + } + } + ], + "name": "Matrix", + "colorSpaceName": "sRGB", + "uuid": "06f855e3-9fb7-4fb1-b790-aef06065f341" +} diff --git a/src/shared/types/renderer/store/app.d.ts b/src/shared/types/renderer/store/app.d.ts index c7d7c963..2fffbfd1 100644 --- a/src/shared/types/renderer/store/app.d.ts +++ b/src/shared/types/renderer/store/app.d.ts @@ -8,6 +8,7 @@ export type Theme = | 'dark:monokai' | 'dark:one' | 'dark:tokyo-night' + | 'dark:matrix' | 'light:github' | 'light:material' | 'light:solarized'