From 162f8660ec5275624fa000277685f8f2bcec215a Mon Sep 17 00:00:00 2001 From: Ivan Harasta Date: Thu, 18 Mar 2021 15:52:45 +0100 Subject: [PATCH] Initial commit --- .gitattributes | 3 + .gitignore | 2 + .prettierrc | 18 ++ .vscodeignore | 4 + CHANGELOG.md | 9 + README.md | 16 + package.json | 21 ++ themes/theme-color-theme.json | 529 ++++++++++++++++++++++++++++++++++ vsc-extension-quickstart.md | 28 ++ 9 files changed, 630 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .prettierrc create mode 100644 .vscodeignore create mode 100644 CHANGELOG.md create mode 100644 README.md create mode 100644 package.json create mode 100644 themes/theme-color-theme.json create mode 100644 vsc-extension-quickstart.md diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..13bc9c2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# Set default behavior to automatically normalize line endings. +* text=auto + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aeee732 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +*.vsix diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..2db8674 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,18 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxBracketSameLine": true, + "jsxSingleQuote": false, + "printWidth": 120, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": false, + "singleQuote": true, + "tabWidth": 4, + "trailingComma": "es5", + "useTabs": false, + "vueIndentScriptAndStyle": false +} diff --git a/.vscodeignore b/.vscodeignore new file mode 100644 index 0000000..f369b5e --- /dev/null +++ b/.vscodeignore @@ -0,0 +1,4 @@ +.vscode/** +.vscode-test/** +.gitignore +vsc-extension-quickstart.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0cddadd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Change Log + +All notable changes to the "theme" extension will be documented in this file. + +Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. + +## [Unreleased] + +- Initial release diff --git a/README.md b/README.md new file mode 100644 index 0000000..48a62cf --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# README + +## This is the README for your extension "theme" + +You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts: + +- Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux) +- Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux) +- Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets + +### For more information + +- [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown) +- [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/) + +**Enjoy!** diff --git a/package.json b/package.json new file mode 100644 index 0000000..8709cec --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "theme", + "displayName": "theme", + "description": "My custom theme", + "version": "0.0.1", + "engines": { + "vscode": "^1.54.0" + }, + "categories": [ + "Themes" + ], + "contributes": { + "themes": [ + { + "label": "theme", + "uiTheme": "vs-dark", + "path": "./themes/theme-color-theme.json" + } + ] + } +} diff --git a/themes/theme-color-theme.json b/themes/theme-color-theme.json new file mode 100644 index 0000000..ce9d463 --- /dev/null +++ b/themes/theme-color-theme.json @@ -0,0 +1,529 @@ +{ + "name": "theme", + "type": "dark", + "colors": { + "editor.background": "#263238", + "editor.foreground": "#eeffff", + "activityBarBadge.background": "#007acc", + "sideBarTitle.foreground": "#bbbbbb" + }, + "tokenColors": [ + { + "name": "Comment", + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "fontStyle": "italic", + "foreground": "#546E7A" + } + }, + { + "name": "Variables", + "scope": ["variable", "string constant.other.placeholder"], + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Colors", + "scope": ["constant.other.color"], + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Invalid", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#FF5370" + } + }, + { + "name": "Keyword, Storage", + "scope": ["keyword", "storage.type", "storage.modifier"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Operator, Misc", + "scope": [ + "keyword.control", + "constant.other.color", + "punctuation", + "meta.tag", + "punctuation.definition.tag", + "punctuation.separator.inheritance.php", + "punctuation.definition.tag.html", + "punctuation.definition.tag.begin.html", + "punctuation.definition.tag.end.html", + "punctuation.section.embedded", + "keyword.other.template", + "keyword.other.substitution" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Tag", + "scope": ["entity.name.tag", "meta.tag.sgml", "markup.deleted.git_gutter"], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function, Special Method", + "scope": [ + "entity.name.function", + "meta.function-call", + "variable.function", + "support.function", + "keyword.other.special-method" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Block Level Variables", + "scope": ["meta.block variable.other"], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Other Variable, String Link", + "scope": ["support.other.variable", "string.other.link"], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Number, Constant, Function Argument, Tag Attribute, Embedded", + "scope": [ + "constant.numeric", + "constant.language", + "support.constant", + "constant.character", + "constant.escape", + "variable.parameter", + "keyword.other.unit", + "keyword.other" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "String, Symbols, Inherited Class, Markup Heading", + "scope": [ + "string", + "constant.other.symbol", + "constant.other.key", + "entity.other.inherited-class", + "markup.heading", + "markup.inserted.git_gutter", + "meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js" + ], + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Class, Support", + "scope": [ + "entity.name", + "support.type", + "support.class", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "markup.changed.git_gutter", + "support.type.sys-types" + ], + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Entity Types", + "scope": ["support.type"], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "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" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Sub-methods", + "scope": ["entity.name.module.js", "variable.import.parameter.js", "variable.other.class.js"], + "settings": { + "foreground": "#FF5370" + } + }, + { + "name": "Language methods", + "scope": ["variable.language"], + "settings": { + "fontStyle": "italic", + "foreground": "#FF5370" + } + }, + { + "name": "entity.name.method.js", + "scope": ["entity.name.method.js"], + "settings": { + "fontStyle": "italic", + "foreground": "#82AAFF" + } + }, + { + "name": "meta.method.js", + "scope": ["meta.class-method.js entity.name.function.js", "variable.function.constructor"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Attributes", + "scope": ["entity.other.attribute-name"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "HTML Attributes", + "scope": [ + "text.html.basic entity.other.attribute-name.html", + "text.html.basic entity.other.attribute-name" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS Classes", + "scope": ["entity.other.attribute-name.class"], + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS ID's", + "scope": ["source.sass keyword.control"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Inserted", + "scope": ["markup.inserted"], + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Deleted", + "scope": ["markup.deleted"], + "settings": { + "foreground": "#FF5370" + } + }, + { + "name": "Changed", + "scope": ["markup.changed"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Regular Expressions", + "scope": ["string.regexp"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Escape Characters", + "scope": ["constant.character.escape"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Decorators", + "scope": ["tag.decorator.js entity.name.tag.js", "tag.decorator.js punctuation.definition.tag.js"], + "settings": { + "fontStyle": "italic", + "foreground": "#82AAFF" + } + }, + { + "name": "ES7 Bind Operator", + "scope": ["source.js constant.other.object.key.js string.unquoted.label.js"], + "settings": { + "fontStyle": "italic", + "foreground": "#FF5370" + } + }, + { + "name": "JSON Key - Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - 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": "#FFCB6B" + } + }, + { + "name": "JSON Key - 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": "#F78C6C" + } + }, + { + "name": "JSON Key - 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": "#FF5370" + } + }, + { + "name": "JSON Key - Level 4", + "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 meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C17E70" + } + }, + { + "name": "JSON Key - Level 5", + "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 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": "#82AAFF" + } + }, + { + "name": "JSON Key - Level 6", + "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 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": "#f07178" + } + }, + { + "name": "JSON Key - Level 7", + "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 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 meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 8", + "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 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 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": "#C3E88D" + } + }, + { + "name": "Markdown - Plain", + "scope": ["text.html.markdown", "punctuation.definition.list_item.markdown"], + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Markdown - Markup Raw Inline", + "scope": ["text.html.markdown markup.inline.raw.markdown"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Markdown - Markup Raw Inline Punctuation", + "scope": ["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"], + "settings": { + "foreground": "#65737E" + } + }, + { + "name": "Markdown - Heading", + "scope": [ + "markdown.heading", + "markup.heading | markup.heading entity.name", + "markup.heading.markdown punctuation.definition.heading.markdown" + ], + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markup - Italic", + "scope": ["markup.italic"], + "settings": { + "fontStyle": "italic", + "foreground": "#f07178" + } + }, + { + "name": "Markup - Bold", + "scope": ["markup.bold", "markup.bold string"], + "settings": { + "fontStyle": "bold", + "foreground": "#f07178" + } + }, + { + "name": "Markup - Bold-Italic", + "scope": [ + "markup.bold markup.italic", + "markup.italic markup.bold", + "markup.quote markup.bold", + "markup.bold markup.italic string", + "markup.italic markup.bold string", + "markup.quote markup.bold string" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f07178" + } + }, + { + "name": "Markup - Underline", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline", + "foreground": "#F78C6C" + } + }, + { + "name": "Markdown - Blockquote", + "scope": ["markup.quote punctuation.definition.blockquote.markdown"], + "settings": { + "foreground": "#65737E" + } + }, + { + "name": "Markup - Quote", + "scope": ["markup.quote"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown - Link", + "scope": ["string.other.link.title.markdown"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Markdown - Link Description", + "scope": ["string.other.link.description.title.markdown"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Markdown - Link Anchor", + "scope": ["constant.other.reference.link.markdown"], + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Markup - Raw Block", + "scope": ["markup.raw.block"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Markdown - Raw Block Fenced", + "scope": ["markup.raw.block.fenced.markdown"], + "settings": { + "foreground": "#00000050" + } + }, + { + "name": "Markdown - Fenced Bode Block", + "scope": ["punctuation.definition.fenced.markdown"], + "settings": { + "foreground": "#00000050" + } + }, + { + "name": "Markdown - Fenced Bode Block Variable", + "scope": [ + "markup.raw.block.fenced.markdown", + "variable.language.fenced.markdown", + "punctuation.section.class.end" + ], + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Markdown - Fenced Language", + "scope": ["variable.language.fenced.markdown"], + "settings": { + "foreground": "#65737E" + } + }, + { + "name": "Markdown - Separator", + "scope": ["meta.separator"], + "settings": { + "fontStyle": "bold", + "foreground": "#65737E" + } + }, + { + "name": "Markup - Table", + "scope": ["markup.table"], + "settings": { + "foreground": "#EEFFFF" + } + } + ] +} diff --git a/vsc-extension-quickstart.md b/vsc-extension-quickstart.md new file mode 100644 index 0000000..c0e09b6 --- /dev/null +++ b/vsc-extension-quickstart.md @@ -0,0 +1,28 @@ +# Welcome to your VS Code Extension + +## What's in the folder + +- This folder contains all of the files necessary for your color theme extension. +- `package.json` - this is the manifest file that defines the location of the theme file and specifies the base theme of the theme. +- `themes/theme-color-theme.json` - the color theme definition file. + +## Get up and running straight away + +- Press `F5` to open a new window with your extension loaded. +- Open `File > Preferences > Color Themes` and pick your color theme. +- Open a file that has a language associated. The languages' configured grammar will tokenize the text and assign 'scopes' to the tokens. To examine these scopes, invoke the `Inspect TM Scopes` command from the Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) . + +## Make changes + +- Changes to the theme file are automatically applied to the Extension Development Host window. + +## Adopt your theme to Visual Studio Code + +- The token colorization is done based on standard TextMate themes. Colors are matched against one or more scopes. + +To learn more about scopes and how they're used, check out the [color theme](https://code.visualstudio.com/api/extension-guides/color-theme) documentation. + +## Install your extension + +- To start using your extension with Visual Studio Code copy it into the `/.vscode/extensions` folder and restart Code. +- To share your extension with the world, read on https://code.visualstudio.com/docs about publishing an extension.