commit d8fc2bafdbf6328b82cd090b9ca2f4c3f6240875 Author: JISAUAY Date: Thu Jun 19 16:02:46 2025 -0500 init of custom darcula theme diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/.history/CHANGELOG_20190315121802.md b/.history/CHANGELOG_20190315121802.md new file mode 100644 index 0000000..7e26d48 --- /dev/null +++ b/.history/CHANGELOG_20190315121802.md @@ -0,0 +1,57 @@ +## v1.2.0 +- Update UI styles (workbench, editor, ...) + +## v1.1.3 +- Add python logical operator rule (#10) + +## v1.1.1 +- Fix const variable coloring (#11) + +## v1.1.0 +- Migrate to vscode theme json format +- Update UI styles + +## v1.0.13 +- Fix broken scss rules + +## v1.0.12 +- Fix broken `new Class()` colorization +- Fix broken return type parameters colorization +- Fix broken string template syntax colorization + +## v1.0.11 +- Fix broken rules since VSCode v1.9 + +## v1.0.10 +- Add missing support for .tsx files + +## v1.0.9 +- Revert background color to the default (fixes #3) +- Change the line highlight color according to the background color change + +## v1.0.8 +- Add icon for vscode extension +- Add triple-slash directive colorization +- Add regex capture group colorization +- Fix wrong operator colorization on file scoped code +- Change XML/HTML string color to match other string +- Change line highlight color & background color to match the original theme (fixes #2) + +## v1.0.7 +- Improve CSS/SCSS colorization + +## v1.0.6 +- Improve JSX/TSX colorization +- Improve regex class colorization + +## v1.0.5 +- Change JSX/TSX tag color to match the original theme +- Fix wrong operator colors inside function block +- Fix string quote color in template string syntax ``` `${'string'}` ``` + +## v1.0.4 +- Fix wrong highlight color for types inside arrow function block + +## v1.0.3 +- Fix wrong highlight color for block scoped variables. +- Add YAML syntax highligting. diff --git a/.history/CHANGELOG_20200720175928.md b/.history/CHANGELOG_20200720175928.md new file mode 100644 index 0000000..e2a25a1 --- /dev/null +++ b/.history/CHANGELOG_20200720175928.md @@ -0,0 +1,61 @@ +## v1.2.1 +- Add php variable rule (#15) +- Add dart class rule (#20) + +## v1.2.0 +- Update UI styles (workbench, editor, ...) + +## v1.1.3 +- Add python logical operator rule (#10) + +## v1.1.1 +- Fix const variable coloring (#11) + +## v1.1.0 +- Migrate to vscode theme json format +- Update UI styles + +## v1.0.13 +- Fix broken scss rules + +## v1.0.12 +- Fix broken `new Class()` colorization +- Fix broken return type parameters colorization +- Fix broken string template syntax colorization + +## v1.0.11 +- Fix broken rules since VSCode v1.9 + +## v1.0.10 +- Add missing support for .tsx files + +## v1.0.9 +- Revert background color to the default (fixes #3) +- Change the line highlight color according to the background color change + +## v1.0.8 +- Add icon for vscode extension +- Add triple-slash directive colorization +- Add regex capture group colorization +- Fix wrong operator colorization on file scoped code +- Change XML/HTML string color to match other string +- Change line highlight color & background color to match the original theme (fixes #2) + +## v1.0.7 +- Improve CSS/SCSS colorization + +## v1.0.6 +- Improve JSX/TSX colorization +- Improve regex class colorization + +## v1.0.5 +- Change JSX/TSX tag color to match the original theme +- Fix wrong operator colors inside function block +- Fix string quote color in template string syntax ``` `${'string'}` ``` + +## v1.0.4 +- Fix wrong highlight color for types inside arrow function block + +## v1.0.3 +- Fix wrong highlight color for block scoped variables. +- Add YAML syntax highligting. diff --git a/.history/README_20190315121802.md b/.history/README_20190315121802.md new file mode 100644 index 0000000..08f8852 --- /dev/null +++ b/.history/README_20190315121802.md @@ -0,0 +1,35 @@ +# Darcula + +[![Version](https://vsmarketplacebadge.apphb.com/version/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula) +[![Installs](https://vsmarketplacebadge.apphb.com/installs/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula) + +A theme extension for [Visual Studio Code](https://code.visualstudio.com) based on **Darcula** theme from [Jetbrains](https://www.jetbrains.com) IDEs. + +--- + +## Changelog + +See [CHANGELOG.md](./CHANGELOG.md) + +## Description + +- Mainly focused on HTML5 / CSS / JS (TS) development. +- **Not exactly same with the theme from Jetbrains IDE**. There are few modifications to match look and feel with VS Code IDE. +- Follows common textmate tokens (such as `entity.name.type`, `entity.name.function`, `variable.property`...) so try it on any languages and report issues on the GitHub repo. +- Any suggestions/contributions are welcomed! + + +## Setting + +- When installation completes, select **Darcula** as your color theme (Preferences → Workbench: Color Theme → **Darcula**) + +## Customizing + +- If you want to customize on top of this theme, use vscode's [color customization](https://code.visualstudio.com/docs/getstarted/themes#_customizing-a-color-theme) feature. + (Related Issue: [#9](https://github.com/rokoroku/vscode-theme-darcula/issues/9), [#15](https://github.com/rokoroku/vscode-theme-darcula/issues/15)) + +## Screenshot + +![Screenshot](https://github.com/rokoroku/vscode-theme-darcula/raw/master/screenshot.png) + +**Enjoy!** diff --git a/.history/README_20200720175929.md b/.history/README_20200720175929.md new file mode 100644 index 0000000..08f8852 --- /dev/null +++ b/.history/README_20200720175929.md @@ -0,0 +1,35 @@ +# Darcula + +[![Version](https://vsmarketplacebadge.apphb.com/version/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula) +[![Installs](https://vsmarketplacebadge.apphb.com/installs/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula) + +A theme extension for [Visual Studio Code](https://code.visualstudio.com) based on **Darcula** theme from [Jetbrains](https://www.jetbrains.com) IDEs. + +--- + +## Changelog + +See [CHANGELOG.md](./CHANGELOG.md) + +## Description + +- Mainly focused on HTML5 / CSS / JS (TS) development. +- **Not exactly same with the theme from Jetbrains IDE**. There are few modifications to match look and feel with VS Code IDE. +- Follows common textmate tokens (such as `entity.name.type`, `entity.name.function`, `variable.property`...) so try it on any languages and report issues on the GitHub repo. +- Any suggestions/contributions are welcomed! + + +## Setting + +- When installation completes, select **Darcula** as your color theme (Preferences → Workbench: Color Theme → **Darcula**) + +## Customizing + +- If you want to customize on top of this theme, use vscode's [color customization](https://code.visualstudio.com/docs/getstarted/themes#_customizing-a-color-theme) feature. + (Related Issue: [#9](https://github.com/rokoroku/vscode-theme-darcula/issues/9), [#15](https://github.com/rokoroku/vscode-theme-darcula/issues/15)) + +## Screenshot + +![Screenshot](https://github.com/rokoroku/vscode-theme-darcula/raw/master/screenshot.png) + +**Enjoy!** diff --git a/.history/themes/darcula_20200805110628.json b/.history/themes/darcula_20200805110628.json new file mode 100644 index 0000000..78ab39c --- /dev/null +++ b/.history/themes/darcula_20200805110628.json @@ -0,0 +1,474 @@ +{ + "type": "dark", + "colors": { + "editor.background": "#242424", + "editor.foreground": "#A9B7C6", + "editor.selectionBackground": "#204182cc", + "editor.lineHighlightBackground": "#ffffff0b", + "editor.activeLineNumber.foreground": "#A9B7C6", + "editorGutter.background": "#ffffff0b", + "titleBar.activeBackground": "#ffffff1a", + "titleBar.inactiveBackground": "#ffffff10", + "titleBar.activeForeground": "#A9B7C6", + "sideBar.border": "#ffffff1a", + "sideBar.background": "#242424", + "statusBar.foreground": "#A9B7C6", + "statusBar.background": "#ffffff1a", + "tab.activeBackground": "#ffffff1a", + "tab.inactiveBackground": "#ffffff0b", + "tab.activeBorder": "#0c7d9d", + "editorSuggestWidget.background": "#303030", + "editorSuggestWidget.highlightForeground": "#cc6e2f", + "editorSuggestWidget.selectedBackground": "#204182cc", + "badge.background": "#ffffff1a", + "activityBar.background": "#ffffff1a", + "activityBarBadge.background": "#007acc" + }, + "tokenColors": [ + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#808080" + } + }, + { + "name": "Operator Keywords", + "scope": "keyword.operator,keyword.operator.logical,keyword.operator.relational,keyword.operator.assignment,keyword.operator.comparison,keyword.operator.ternary,keyword.operator.arithmetic,keyword.operator.spread", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Strings", + "scope": "string,string.character.escape,string.template.quoted,string.template.quoted.punctuation,string.template.quoted.punctuation.single,string.template.quoted.punctuation.double,string.type.declaration.annotation,string.template.quoted.punctuation.tag", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "String Interpolation Begin and End", + "scope": "punctuation.definition.template-expression.begin,punctuation.definition.template-expression.end", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "String Interpolation Body", + "scope": "expression.string,meta.template.expression", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "Built-in constant", + "scope": "constant.language,variable.language", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "User-defined constant", + "scope": "constant.character, constant.other", + "settings": { + "foreground": "#9876AA" + } + }, + { + "name": "Keyword", + "scope": "keyword,keyword.operator.new,keyword.operator.delete,keyword.operator.static,keyword.operator.this,keyword.operator.expression", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Types, Class Types", + "scope": "entity.name.type,meta.return.type,meta.type.annotation,meta.type.parameters,support.type.primitive", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "Storage type", + "scope": "storage,storage.type,storage.modifier,storage.arrow", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Class constructor", + "scope": "class.instance.constructor,new.expr entity.name.type", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Function", + "scope": "support.function, entity.name.function", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Function Types", + "scope": "annotation.meta.ts, annotation.meta.tsx", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Function Argument", + "scope": "variable.parameter, operator.rest.parameters", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Variable, Property", + "scope": "variable.property,variable.other.property,variable.other.object.property,variable.object.property,support.variable.property", + "settings": { + "foreground": "#9876AA" + } + }, + { + "name": "Module Name", + "scope": "quote.module", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Tag name", + "scope": "punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end, entity.name.tag", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Object Keys", + "scope": "meta.object-literal.key", + "settings": { + "foreground": "#9876AA" + } + }, + { + "name": "TypeScript Class Modifiers", + "scope": "storage.modifier.ts", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "TypeScript Type Casting", + "scope": "ts.cast.expr,ts.meta.entity.class.method.new.expr.cast,ts.meta.entity.type.name.new.expr.cast,ts.meta.entity.type.name.var-single-variable.annotation,tsx.cast.expr,tsx.meta.entity.class.method.new.expr.cast,tsx.meta.entity.type.name.new.expr.cast,tsx.meta.entity.type.name.var-single-variable.annotation", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "TypeScript Type Declaration", + "scope": "ts.meta.type.support,ts.meta.type.entity.name,ts.meta.class.inherited-class,tsx.meta.type.support,tsx.meta.type.entity.name,tsx.meta.class.inherited-class,type-declaration,enum-declaration", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "TypeScript Method Declaration", + "scope": "function-declaration,method-declaration,method-overload-declaration,type-fn-type-parameters", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Documentation Block", + "scope": "comment.block.documentation", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "Documentation Highlight (JSDoc)", + "scope": "storage.type.class.jsdoc", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Import-Export-All (*) Keyword", + "scope": "constant.language.import-export-all", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Object Key Seperator", + "scope": "objectliteral.key.separator, punctuation.separator.key-value", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Regex", + "scope": "regex", + "settings": { + "fontStyle": " italic" + } + }, + { + "name": "Typescript Namespace", + "scope": "ts.meta.entity.name.namespace,tsx.meta.entity.name.namespace", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Regex Character-class", + "scope": "regex.character-class", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Class Name", + "scope": "entity.name.type.class", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Class Inheritances", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "Documentation Entity", + "scope": "entity.name.type.instance.jsdoc", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "YAML entity", + "scope": "yaml.entity.name,yaml.string.entity.name", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "YAML string value", + "scope": "yaml.string.out", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Ignored (Exceptions Rules)", + "scope": "meta.brace.square.ts,block.support.module,block.support.type.module,block.support.function.variable,punctuation.definition.typeparameters.begin,punctuation.definition.typeparameters.end", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Regex", + "scope": "string.regexp", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Regex Group/Set", + "scope": "punctuation.definition.group.regexp,punctuation.definition.character-class.regexp", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Regex Character Class", + "scope": "constant.other.character-class.regexp, constant.character.escape.ts", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Regex Or Operator", + "scope": "expr.regex.or.operator", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Tag string", + "scope": "string.template.tag,string.template.punctuation.tag,string.quoted.punctuation.tag,string.quoted.embedded.tag, string.quoted.double.tag", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "Tag function parenthesis", + "scope": "tag.punctuation.begin.arrow.parameters.embedded,tag.punctuation.end.arrow.parameters.embedded", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "Object-literal key class", + "scope": "object-literal.object.member.key.field.other,object-literal.object.member.key.accessor,object-literal.object.member.key.array.brace.square", + "settings": { + "foreground": "#A9B7C6" + } + }, + { + "name": "CSS Property-value", + "scope": "property-list.property-value,property-list.constant", + "settings": { + "foreground": "#A5C261" + } + }, + { + "name": "CSS Property variable", + "scope": "support.type.property-name.variable.css,support.type.property-name.variable.scss,variable.scss", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "CSS Property entity", + "scope": "entity.other.attribute-name.class.css,entity.other.attribute-name.class.scss,entity.other.attribute-name.parent-selector-suffix.css,entity.other.attribute-name.parent-selector-suffix.scss", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "CSS Property-value", + "scope": "property-list.property-value.rgb-value, keyword.other.unit.css,keyword.other.unit.scss", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "CSS Property-value function", + "scope": "property-list.property-value.function", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "CSS constant variables", + "scope": "support.constant.property-value.css,support.constant.property-value.scss", + "settings": { + "foreground": "#A5C261" + } + }, + { + "name": "CSS Tag", + "scope": "css.entity.name.tag,scss.entity.name.tag", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "CSS ID, Selector", + "scope": "meta.selector.css, entity.attribute-name.id, entity.other.attribute-name.pseudo-class.css,entity.other.attribute-name.pseudo-element.css", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "CSS Keyword", + "scope": "keyword.scss,keyword.css", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Triple-slash Directive Tag", + "scope": "triple-slash.tag", + "settings": { + "foreground": "#A9B7C6", + "fontStyle": "italic" + } + }, + { + "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" + } + }, + { + "name": "Python operators", + "scope": "keyword.operator.logical.python", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Dart class type", + "scope": "support.class.dart", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "PHP variables", + "scope": ["variable.language.php", "variable.other.php"], + "settings": { + "foreground": "#9876AA" + } + }, + { + "name": "PHP variables", + "scope": ["variable.other.property.php"], + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "PHP variables", + "scope": ["support.variable.property.php"], + "settings": { + "foreground": "#FFC66D" + } + } + ] +} diff --git a/.vsixmanifest b/.vsixmanifest new file mode 100644 index 0000000..ff8b563 --- /dev/null +++ b/.vsixmanifest @@ -0,0 +1,44 @@ + + + + + Darcula Theme + A theme extension for VS Code based on Darcula theme from Jetbrains IDEs + theme,color-theme + Themes + Public + + + + + + + + + + + + + + + + + + + + + + + + extension/LICENSE.txt + extension/icon.png + + + + + + + + + + diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..017d58e --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,61 @@ +## v1.2.1 +- Add php variable rule (#15) +- Add dart class rule (#20) + +## v1.2.0 +- Update UI styles (workbench, editor, ...) + +## v1.1.3 +- Add python logical operator rule (#10) + +## v1.1.1 +- Fix const variable coloring (#11) + +## v1.1.0 +- Migrate to vscode theme json format +- Update UI styles + +## v1.0.13 +- Fix broken scss rules + +## v1.0.12 +- Fix broken `new Class()` colorization +- Fix broken return type parameters colorization +- Fix broken string template syntax colorization + +## v1.0.11 +- Fix broken rules since VSCode v1.9 + +## v1.0.10 +- Add missing support for .tsx files + +## v1.0.9 +- Revert background color to the default (fixes [#3](https://github.com/rokoroku/vscode-theme-darcula/issues/3)) +- Change the line highlight color according to the background color change + +## v1.0.8 +- Add icon for vscode extension +- Add triple-slash directive colorization +- Add regex capture group colorization +- Fix wrong operator colorization on file scoped code +- Change XML/HTML string color to match other string +- Change line highlight color & background color to match the original theme (fixes [#2](https://github.com/rokoroku/vscode-theme-darcula/issues/2)) + +## v1.0.7 +- Improve CSS/SCSS colorization + +## v1.0.6 +- Improve JSX/TSX colorization +- Improve regex class colorization + +## v1.0.5 +- Change JSX/TSX tag color to match the original theme +- Fix wrong operator colors inside function block +- Fix string quote color in template string syntax ``` `${'string'}` ``` + +## v1.0.4 +- Fix wrong highlight color for types inside arrow function block + +## v1.0.3 +- Fix wrong highlight color for block scoped variables. +- Add YAML syntax highligting. diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..317ec27 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Youngrok Kim + +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/README.md b/README.md new file mode 100644 index 0000000..20e58f9 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Darcula + +[![Version](https://vsmarketplacebadge.apphb.com/version/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula) +[![Installs](https://vsmarketplacebadge.apphb.com/installs/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula) + +A theme extension for [Visual Studio Code](https://code.visualstudio.com) based on **Darcula** theme from [Jetbrains](https://www.jetbrains.com) IDEs. + +--- + +## Changelog + +See [CHANGELOG.md](https://github.com/rokoroku/vscode-theme-darcula/blob/master/./CHANGELOG.md) + +## Description + +- Mainly focused on HTML5 / CSS / JS (TS) development. +- **Not exactly same with the theme from Jetbrains IDE**. There are few modifications to match look and feel with VS Code IDE. +- Follows common textmate tokens (such as `entity.name.type`, `entity.name.function`, `variable.property`...) so try it on any languages and report issues on the GitHub repo. +- Any suggestions/contributions are welcomed! + + +## Setting + +- When installation completes, select **Darcula** as your color theme (Preferences → Workbench: Color Theme → **Darcula**) + +## Customizing + +- If you want to customize on top of this theme, use vscode's [color customization](https://code.visualstudio.com/docs/getstarted/themes#_customizing-a-color-theme) feature. + (Related Issue: [#9](https://github.com/rokoroku/vscode-theme-darcula/issues/9), [#15](https://github.com/rokoroku/vscode-theme-darcula/issues/15)) + +## Screenshot + +![Screenshot](https://github.com/rokoroku/vscode-theme-darcula/raw/master/screenshot.png) + +**Enjoy!** diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..fbae381 Binary files /dev/null and b/icon.png differ diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..aa9d7e0 --- /dev/null +++ b/icon.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..e99eaec --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "vscode-theme-darcula", + "displayName": "Darcula Theme", + "description": "A theme extension for VS Code based on Darcula theme from Jetbrains IDEs", + "version": "1.2.3", + "publisher": "rokoroku", + "scripts": { + "publish": "vsce publish" + }, + "repository": { + "type": "git", + "url": "https://github.com/rokoroku/vscode-theme-darcula" + }, + "engines": { + "vscode": "*" + }, + "categories": [ + "Themes" + ], + "icon": "icon.png", + "contributes": { + "themes": [ + { + "label": "Darcula", + "uiTheme": "vs-dark", + "path": "./themes/darcula.json" + } + ] + }, + "__metadata": { + "id": "ec2271c0-9d6d-44c5-93e5-7e8cda744f21", + "publisherId": "99720f95-61af-4d5e-9133-3cc10f4f30ea", + "publisherDisplayName": "rokoroku", + "targetPlatform": "undefined", + "isApplicationScoped": false, + "updated": false, + "isPreReleaseVersion": false, + "installedTimestamp": 1680821869132, + "preRelease": false, + "size": 48557 + } +} \ No newline at end of file diff --git a/themes/darcula.json b/themes/darcula.json new file mode 100644 index 0000000..f248105 --- /dev/null +++ b/themes/darcula.json @@ -0,0 +1,543 @@ +{ + "type": "dark", + "semanticHighlighting": true, + "colors": { + "editor.background": "#242424", + "editor.foreground": "#cccccc", + "editor.selectionBackground": "#204182cc", + "editor.lineHighlightBackground": "#ffffff0b", + "editor.activeLineNumber.foreground": "#cccccc", + "editorGutter.background": "#ffffff0b", + "titleBar.activeBackground": "#ffffff1a", + "titleBar.inactiveBackground": "#ffffff10", + "titleBar.activeForeground": "#cccccc", + "sideBar.border": "#ffffff1a", + "sideBar.background": "#242424", + "statusBar.foreground": "#cccccc", + "statusBar.background": "#ffffff1a", + "tab.activeBackground": "#ffffff1a", + "tab.inactiveBackground": "#ffffff0b", + "tab.activeBorder": "#0c7d9d", + "editorSuggestWidget.background": "#303030", + "editorSuggestWidget.highlightForeground": "#cc6e2f", + "editorSuggestWidget.selectedBackground": "#204182cc", + "badge.background": "#ffffff1a", + "activityBar.background": "#ffffff1a", + "activityBarBadge.background": "#007acc" + }, + "semanticTokenColors": { + "class.typeHint.builtin": { + "foreground": "#CF7379" + }, + "class" : { + "foreground" : "#89C543" + } + }, + "tokenColors": [ + { + "name" : "Python Type", + "scope" : "support.type.python", + "settings" : { + "foreground" : "#CF7379" + } + }, + { + "name" : "Python Type 2", + "scope" : [ + "entity.name.type.class.python.builtin", + "entity.name.type.class.builtin", + "class.builtin", + "class.typeHint.builtin" + ], + "settings" : { + "foreground" : "#CF7379" + } + }, + { + "name" : "Python Self", + "scope" : "variable.parameter.function.language.special.self.python", + "settings" : { + "foreground": "#C9FF4A", + "fontStyle": "bold" + } + }, + { + "name" : "Python module", + "scope" : "entity.name.namespace", + "settings" : { + "foreground" : "#d64a53" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#707070" + } + }, + { + "name": "Operator Keywords", + "scope": "keyword.operator,keyword.operator.logical,keyword.operator.relational,keyword.operator.assignment,keyword.operator.comparison,keyword.operator.ternary,keyword.operator.arithmetic,keyword.operator.spread", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Strings", + "scope": "string,string.character.escape,string.template.quoted,string.template.quoted.punctuation,string.template.quoted.punctuation.single,string.template.quoted.punctuation.double,string.type.declaration.annotation,string.template.quoted.punctuation.tag", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "String Interpolation Begin and End", + "scope": "punctuation.definition.template-expression.begin,punctuation.definition.template-expression.end", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "String Interpolation Body", + "scope": "expression.string,meta.template.expression", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "Built-in constant", + "scope": "constant.language,variable.language", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "User-defined constant", + "scope": "constant.character, constant.other", + "settings": { + "foreground": "#9E7BB0" + } + }, + { + "name": "Keyword", + "scope": "keyword,keyword.operator.new,keyword.operator.delete,keyword.operator.static,keyword.operator.this,keyword.operator.expression", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Storage type", + "scope": "storage,storage.type,storage.modifier,storage.arrow", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Class constructor", + "scope": "class.instance.constructor,new.expr entity.name.type", + "settings": { + "foreground": "#FDB137" + } + }, + { + "name": "Function", + "scope": "support.function, entity.name.function", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Python function call", + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Python variable params", + "scope": "variable.parameter.function-call.python", + "settings": { + "foreground": "#9E7BB0" + } + }, + { + "name": "Function Types", + "scope": "annotation.meta.ts, annotation.meta.tsx", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Python Class", + "scope": [ + "class.declaration:python", + "entity.name.type.class.python", + "class.typeHint", + "meta.item-access.arguments.python" + ], + "settings": { + "foreground": "#89C543" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#D50" + } + }, + { + "name": "Function Argument", + "scope": "variable.parameter, operator.rest.parameters", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Variable, Property", + "scope": "variable.property,variable.other.property,variable.other.object.property,variable.object.property,support.variable.property", + "settings": { + "foreground": "#9E7BB0" + } + }, + { + "name": "Module Name", + "scope": "quote.module", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Tag name", + "scope": "punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end, entity.name.tag", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Object Keys", + "scope": "meta.object-literal.key", + "settings": { + "foreground": "#9E7BB0" + } + }, + { + "name": "TypeScript Class Modifiers", + "scope": "storage.modifier.ts", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "TypeScript Type Casting", + "scope": "ts.cast.expr,ts.meta.entity.class.method.new.expr.cast,ts.meta.entity.type.name.new.expr.cast,ts.meta.entity.type.name.var-single-variable.annotation,tsx.cast.expr,tsx.meta.entity.class.method.new.expr.cast,tsx.meta.entity.type.name.new.expr.cast,tsx.meta.entity.type.name.var-single-variable.annotation", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "TypeScript Type Declaration", + "scope": "ts.meta.type.support,ts.meta.type.entity.name,ts.meta.class.inherited-class,tsx.meta.type.support,tsx.meta.type.entity.name,tsx.meta.class.inherited-class,type-declaration,enum-declaration", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "TypeScript Method Declaration", + "scope": "function-declaration,method-declaration,method-overload-declaration,type-fn-type-parameters", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Documentation Block", + "scope": "comment.block.documentation", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "Documentation Highlight (JSDoc)", + "scope": "storage.type.class.jsdoc", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Import-Export-All (*) Keyword", + "scope": "constant.language.import-export-all", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Object Key Seperator", + "scope": "objectliteral.key.separator, punctuation.separator.key-value", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Regex", + "scope": "regex", + "settings": { + "fontStyle": " italic" + } + }, + { + "name": "Typescript Namespace", + "scope": "ts.meta.entity.name.namespace,tsx.meta.entity.name.namespace", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Regex Character-class", + "scope": "regex.character-class", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Class Inheritances", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "Documentation Entity", + "scope": "entity.name.type.instance.jsdoc", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "YAML entity", + "scope": "yaml.entity.name,yaml.string.entity.name", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "YAML string value", + "scope": "yaml.string.out", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Ignored (Exceptions Rules)", + "scope": "meta.brace.square.ts,block.support.module,block.support.type.module,block.support.function.variable,punctuation.definition.typeparameters.begin,punctuation.definition.typeparameters.end", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Regex", + "scope": "string.regexp", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Regex Group/Set", + "scope": "punctuation.definition.group.regexp,punctuation.definition.character-class.regexp", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "Regex Character Class", + "scope": "constant.other.character-class.regexp, constant.character.escape.ts", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Regex Or Operator", + "scope": "expr.regex.or.operator", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Tag string", + "scope": "string.template.tag,string.template.punctuation.tag,string.quoted.punctuation.tag,string.quoted.embedded.tag, string.quoted.double.tag", + "settings": { + "foreground": "#6A8759" + } + }, + { + "name": "Tag function parenthesis", + "scope": "tag.punctuation.begin.arrow.parameters.embedded,tag.punctuation.end.arrow.parameters.embedded", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "Object-literal key class", + "scope": "object-literal.object.member.key.field.other,object-literal.object.member.key.accessor,object-literal.object.member.key.array.brace.square", + "settings": { + "foreground": "#CCCCCC" + } + }, + { + "name": "CSS Property-value", + "scope": "property-list.property-value,property-list.constant", + "settings": { + "foreground": "#A5C261" + } + }, + { + "name": "CSS Property variable", + "scope": "support.type.property-name.variable.css,support.type.property-name.variable.scss,variable.scss", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "CSS Property entity", + "scope": "entity.other.attribute-name.class.css,entity.other.attribute-name.class.scss,entity.other.attribute-name.parent-selector-suffix.css,entity.other.attribute-name.parent-selector-suffix.scss", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "CSS Property-value", + "scope": "property-list.property-value.rgb-value, keyword.other.unit.css,keyword.other.unit.scss", + "settings": { + "foreground": "#7A9EC2" + } + }, + { + "name": "CSS Property-value function", + "scope": "property-list.property-value.function", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "CSS constant variables", + "scope": "support.constant.property-value.css,support.constant.property-value.scss", + "settings": { + "foreground": "#A5C261" + } + }, + { + "name": "CSS Tag", + "scope": "css.entity.name.tag,scss.entity.name.tag", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "CSS ID, Selector", + "scope": "meta.selector.css, entity.attribute-name.id, entity.other.attribute-name.pseudo-class.css,entity.other.attribute-name.pseudo-element.css", + "settings": { + "foreground": "#FFC66D" + } + }, + { + "name": "CSS Keyword", + "scope": "keyword.scss,keyword.css", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Triple-slash Directive Tag", + "scope": "triple-slash.tag", + "settings": { + "foreground": "#CCCCCC", + "fontStyle": "italic" + } + }, + { + "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" + } + }, + { + "name": "Python operators", + "scope": "keyword.operator.logical.python", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "Dart class type", + "scope": "support.class.dart", + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "PHP variables", + "scope": ["variable.language.php", "variable.other.php"], + "settings": { + "foreground": "#9E7BB0" + } + }, + { + "name": "Perl specific", + "scope": ["variable.other.readwrite.perl"], + "settings": { + "foreground": "#9E7BB0" + } + }, + { + "name": "PHP variables", + "scope": ["variable.other.property.php"], + "settings": { + "foreground": "#CC8242" + } + }, + { + "name": "PHP variables", + "scope": ["support.variable.property.php"], + "settings": { + "foreground": "#FFC66D" + } + } + ] +}