commit e80df15909f9fc76877e1b753224fe903f981779 Author: Stefano Pigozzi Date: Mon Jan 10 15:37:02 2022 +0100 Works pretty well! 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/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..0e191b5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +// A launch configuration that launches the extension inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ] + } + ] +} \ No newline at end of file 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..719763d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Change Log + +All notable changes to the "steffula" 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..e1680ff --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# README +## This is the README for your extension "steffula" +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..742e0e5 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "steffula", + "displayName": "Steffula", + "description": "Steffo's Ultimate Color Theme", + "version": "0.0.1", + "engines": { + "vscode": "^1.63.0" + }, + "categories": [ + "Themes" + ], + "contributes": { + "themes": [ + { + "label": "Steffula", + "uiTheme": "vs-dark", + "path": "./themes/Steffula-color-theme.json" + } + ] + } +} \ No newline at end of file diff --git a/themes/Steffula-color-theme.json b/themes/Steffula-color-theme.json new file mode 100644 index 0000000..c39f50b --- /dev/null +++ b/themes/Steffula-color-theme.json @@ -0,0 +1,541 @@ +{ + "name": "Steffula", + "type": "dark", + "colors": { + "editor.background": "#2b2b2b", + "editor.foreground": "#a9b7c6", + + "activityBar.background": "#3e434c", + "sideBar.background": "#3e434c", + }, + "tokenColors": [ + { + "name": "Base", + "scope": [ + "source", + "log", + "meta.attribute.python", + ], + "settings": { + "foreground": "#a9b7c6", + } + }, + + // Programming languages + { + "name": "Comment", + "scope": [ + "comment", + "punctuation.definition.comment", + ], + "settings": { + "foreground": "#505050", + } + }, + { + "name": "Keywords", + "scope": [ + "keyword", + "keyword.control.flow", + "keyword.other.special-method.dockerfile", + "storage", + "entity.name.tag.html", + "entity.name.tag.xml", + "entity.name.tag.js", + "entity.name.tag.ts", + "support.class.component", + "storage.modifier.async", + "storage.modifier.pointer", + "storage.modifier.const", + "storage.modifier.static", + "storage.modifier.specifier.const", + "storage.modifier.specifier.static", + "storage.type.class", + "storage.type.function", + "storage.type.namespace", + "storage.type.rust", + "storage.type.js", + "storage.type.ts", + "storage.type.modifier.final", + "storage.type.modifier.access.public.cpp", + "storage.type.modifier.access.protected.cpp", + "storage.type.modifier.access.private.cpp", + "storage.type.modifier.access.control.public.cpp", + "storage.type.modifier.access.control.protected.cpp", + "storage.type.modifier.access.control.private.cpp", + "constant.language.import-export-all", + ], + "settings": { + "foreground": "#ff9340", + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation.definition", + "punctuation.accessor", + "punctuation.squarebracket", + "punctuation.curlybrace", + "punctuation.terminator", + "punctuation.parenthesis", + "punctuation.brackets", + "punctuation.section", + "punctuation.separator", + "punctuation.comma", + "punctuation.semi", + "meta.brace", + "meta.tag.xml", + "meta.function.calc", + "meta.environment-variable.ruby", + "storage.type.function.arrow", + "storage.modifier.reference", + "storage.modifier.chomping-indicator" + ], + "settings": { + "foreground": "#cc7832", + } + }, + { + "name": "Namespace", + "scope": [ + "entity.name.type.module", + "entity.name.namespace", + "entity.name.module", + "entity.name.scope-resolution", + ], + "settings": { + "foreground": "#ffbb44", + } + }, + { + "name": "Class", + "scope": [ + "entity.name.type", + "storage.type", + "storage.modifier", + "support.type", + "support.class", + "keyword.type", + "entity.other.inherited-class", + ], + "settings": { + "foreground": "#b5ffff", + } + }, + { + "name": "Type alias", + "scope": [ + "entity.name.type.alias", + ], + "settings": { + "foreground": "#00ffaa", + } + }, + { + "name": "Function", + "scope": [ + "entity.name.function", + "support.function.target", + "meta.function-call.generic", + "entity.name.function.decorator", + "support.function", + "entity.name.operator", + "entity.name.function.cs", + "entity.name.function.js", + "entity.name.function.ts", + "entity.name.function.call", + "entity.name.function.member", + "entity.name.variable.property.cs", + "entity.other.attribute-name.class.mixin", + ], + "settings": { + "foreground": "#e6e68a", + } + }, + { + "name": "Enum", + "scope": [ + "entity.name.type.enum", + "entity.name.variable.enum-member", + ], + "settings": { + "foreground": "#ca77ff", + } + }, + { + "name": "Variable", + "scope": [ + "variable", + "constant.language", + "support.variable", + "entity.name.variable", + "meta.use", + "constant.other.caps", + ], + "settings": { + "foreground": "#dcaf88", + } + }, + { + "name": "Special", + "scope": [ + "support.function.magic", + "support.variable.magic", + "keyword.other.this", + "keyword.other.crate", + "keyword.other.special-method", + "variable.parameter.function.language.special", + "variable.language", + ], + "settings": { + "foreground": "#db88db", + } + }, + { + "name": "Literal / Token", + "scope": [ + "constant", + "punctuation.definition.constant", + "keyword.other.unit", + "support.type.builtin", + "string.unquoted", + "entity.type.commodity", + ], + "settings": { + "foreground": "#6897bb", + } + }, + { + "name": "String", + "scope": [ + "string", + "punctuation.definition.string", + ], + "settings": { + "foreground": "#438c5c", + } + }, + { + "name": "Byte-string", + "scope": [ + "string.quoted.binary", + ], + "settings": { + "foreground": "#a7c261", + } + }, + { + "name": "Doc-string", + "scope": [ + "string.quoted.docstring", + ], + "settings": { + "foreground": "#629755", + } + }, + { + "name": "String escape", + "scope": [ + "constant.character.escape", + ], + "settings": { + "foreground": "#a5c261", + } + }, + { + "name": "Format string contents", + "scope": [ + "constant.character.format.placeholder", + "entity.name.tag.mustache", + ], + "settings": { + "foreground": "#86ffff", + } + }, + { + "name": "Format options", + "scope": [ + "storage.type.format", + "storage.type.string.python", + ], + "settings": { + "foreground": "#597aff", + } + }, + { + "name": "Dictionary key", + "scope": [ + "keyword.key", + "keyword.other.definition.ini", + "entity.other.attribute-name", + "entity.name.tag", + "keyword.operator.tag", + "meta.object-literal.key", + "meta.object.member", + "support.type.property-name", + "support.type.metaclass", + "string.other.option", + "variable.css", + "variable.parameter.function-call.python", + "constant.other.symbol.hashkey", + ], + "settings": { + "foreground": "#ff6736", + } + }, + { + "name": "Metadata", + "scope": [ + "meta.tag.preprocessor", + "meta.attribute", + "entity.name.function.decorator", + "entity.name.function.macro", + "punctuation.definition.decorator", + "comment.line.number-sign.shebang", + "keyword.control.at-rule", + "keyword.control.directive", + "meta.preprocessor", + "punctuation.definition.directive", + ], + "settings": { + "foreground": "#bbb529", + } + }, + + // Markup languages + { + "name": "Heading", + "scope": [ + "heading", + ], + "settings": { + "foreground": "#99ffff", + } + }, + { + "name": "Bold", + "scope": [ + "markup.bold", + ], + "settings": { + "foreground": "#ffbc82", + } + }, + { + "name": "Italic", + "scope": [ + "markup.italic", + ], + "settings": { + "foreground": "#ffbc82", + } + }, + { + "name": "Underline", + "scope": [ + "markup.underline", + ], + "settings": { + "foreground": "#ffbc82", + } + }, + { + "name": "Link text", + "scope": [ + "meta.link", + "meta.image", + "string.other.link", + ], + "settings": { + "foreground": "#00d0ff", + } + }, + { + "name": "Link URL", + "scope": [ + "markup.underline.link", + "keyword.operator.link", + "variable.parameter.url", + ], + "settings": { + "foreground": "#2a7ede", + } + }, + { + "name": "Code block", + "scope": [ + "markup.fenced_code", + "markup.inline.raw", + ], + "settings": { + "foreground": "#808080", + } + }, + { + "name": "Code block language", + "scope": [ + "markup.fenced_code.block.language", + "fenced_code.block.language", // Markdown plugin bug? + ], + "settings": { + "foreground": "#bbb529", + } + }, + { + "name": "Quote / Greentext", + "scope": [ + "markup.quote", + ], + "settings": { + "foreground": "#639656", + } + }, + + // Logging languages + { + "name": "Error", + "scope": [ + "log.error", + ], + "settings": { + "foreground": "#ffa6a6", + } + }, + { + "name": "Warning", + "scope": [ + "log.warn", + "log.warning", + ], + "settings": { + "foreground": "#ffffa6", + } + }, + { + "name": "Info", + "scope": [ + "log.info", + ], + "settings": { + "foreground": "#99eeff", + } + }, + { + "name": "Verbose", + "scope": [ + "log.verbose", + ], + "settings": { + "foreground": "#a8a8ff", + } + }, + { + "name": "Debug", + "scope": [ + "log.debug", + ], + "settings": { + "foreground": "#ca77ff", + } + }, + { + "name": "Date", + "scope": [ + "log.date", + "constant.numeric.date", + ], + "settings": { + "foreground": "#6897bb", + } + }, + + // Configuration languages + { + "name": "Section titles", + "scope": [ + "meta.tag.table.toml", + "entity.name.section.group-title", + ], + "settings": { + "foreground": "#ff9340", + } + }, + + // Stylesheets + { + "name": "Tag selector", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.wildcard.css", + ], + "settings": { + "foreground": "#00ff32", + } + }, + { + "name": "Attribute selector", + "scope": [ + "meta.attribute-selector", + ], + "settings": { + "foreground": "#ff9340", + } + }, + { + "name": "Class selector", + "scope": [ + "entity.other.attribute-name.class", + ], + "settings": { + "foreground": "#fcff00", + } + }, + { + "name": "ID selector", + "scope": [ + "entity.other.attribute-name.id", + ], + "settings": { + "foreground": "#00ffff", + } + }, + { + "name": "Pseudo-class selector", + "scope": [ + "entity.other.attribute-name.pseudo-class", + ], + "settings": { + "foreground": "#ca77ff", + } + }, + { + "name": "Pseudo-element selector", + "scope": [ + "entity.other.attribute-name.pseudo-element", + ], + "settings": { + "foreground": "#ff00ff", + } + }, + { + "name": "Parent selector", + "scope": [ + "entity.other.attribute-name.parent-selector", + ], + "settings": { + "foreground": "#00ffaa", + } + }, + + // Invalid stuff + { + "name": "Invalid", + "scope": [ + "invalid", + ], + "settings": { + "foreground": "#ff5252", + } + } + ], +} \ No newline at end of file diff --git a/vsc-extension-quickstart.md b/vsc-extension-quickstart.md new file mode 100644 index 0000000..4609939 --- /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/Steffula-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 `Developer: Inspect Editor Tokens and 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.