diff --git a/ports/vscode/CHANGELOG.md b/ports/vscode/CHANGELOG.md new file mode 100644 index 0000000..69d86a0 --- /dev/null +++ b/ports/vscode/CHANGELOG.md @@ -0,0 +1,9 @@ +# Change Log + +All notable changes to the "ferra-color-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/ports/vscode/LICENSE.md b/ports/vscode/LICENSE.md new file mode 100644 index 0000000..a8d9dc2 --- /dev/null +++ b/ports/vscode/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Casper Rogild Storm + +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/ports/vscode/README.md b/ports/vscode/README.md new file mode 100644 index 0000000..1d60b37 --- /dev/null +++ b/ports/vscode/README.md @@ -0,0 +1,16 @@ +# ferra-color-theme README + +## Working with Markdown + +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, 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/ports/vscode/package.json b/ports/vscode/package.json new file mode 100644 index 0000000..17d8984 --- /dev/null +++ b/ports/vscode/package.json @@ -0,0 +1,25 @@ +{ + "name": "ferra-color-theme", + "displayName": "Ferra Color Theme", + "description": "Ferra color theme, ported to VS Code", + "version": "0.0.1", + "engines": { + "vscode": "^1.103.0" + }, + "categories": [ + "Themes" + ], + "repository": { + "type": "git", + "url": "https://github.com/casperstorm/ferra" + }, + "contributes": { + "themes": [ + { + "label": "Ferra Color Theme", + "uiTheme": "vs-dark", + "path": "./themes/ferra-color-theme.json" + } + ] + } +} diff --git a/ports/vscode/themes/ferra-color-theme.json b/ports/vscode/themes/ferra-color-theme.json new file mode 100644 index 0000000..f5de984 --- /dev/null +++ b/ports/vscode/themes/ferra-color-theme.json @@ -0,0 +1,811 @@ +{ + "name": "Ferra", + "type": "dark", + "colors": { + "editor.background": "#2b292d", + "editor.foreground": "#d1d1e0", + "activityBar.background": "#2b292d", + "activityBar.foreground": "#d1d1e0", + "activityBar.inactiveForeground": "#6f5d63", + "activityBar.border": "#383539", + "activityBarBadge.background": "#e06b75", + "activityBarBadge.foreground": "#2b292d", + "sideBar.background": "#383539", + "sideBar.foreground": "#d1d1e0", + "sideBar.border": "#4d424b", + "sideBarTitle.foreground": "#ffa07a", + "sideBarSectionHeader.background": "#4d424b", + "sideBarSectionHeader.foreground": "#d1d1e0", + "list.activeSelectionBackground": "#6f5d63", + "list.activeSelectionForeground": "#d1d1e0", + "list.inactiveSelectionBackground": "#4d424b", + "list.inactiveSelectionForeground": "#d1d1e0", + "list.hoverBackground": "#4d424b", + "list.focusBackground": "#6f5d63", + "tree.indentGuidesStroke": "#6f5d63", + "statusBar.background": "#2b292d", + "statusBar.foreground": "#d1d1e0", + "statusBar.border": "#383539", + "statusBar.debuggingBackground": "#e06b75", + "statusBar.debuggingForeground": "#2b292d", + "statusBar.noFolderBackground": "#2b292d", + "statusBarItem.hoverBackground": "#4d424b", + "titleBar.activeBackground": "#2b292d", + "titleBar.activeForeground": "#d1d1e0", + "titleBar.inactiveBackground": "#2b292d", + "titleBar.inactiveForeground": "#6f5d63", + "titleBar.border": "#383539", + "menubar.selectionBackground": "#4d424b", + "menubar.selectionForeground": "#d1d1e0", + "menu.background": "#383539", + "menu.foreground": "#d1d1e0", + "menu.selectionBackground": "#6f5d63", + "menu.selectionForeground": "#d1d1e0", + "menu.separatorBackground": "#4d424b", + "input.background": "#383539", + "input.foreground": "#d1d1e0", + "input.border": "#6f5d63", + "input.placeholderForeground": "#6f5d63", + "inputOption.activeBackground": "#e06b75", + "inputOption.activeForeground": "#2b292d", + "inputValidation.errorBackground": "#e06b75", + "inputValidation.errorBorder": "#e06b75", + "inputValidation.warningBackground": "#f5d76e", + "inputValidation.warningBorder": "#f5d76e", + "dropdown.background": "#383539", + "dropdown.foreground": "#d1d1e0", + "dropdown.border": "#6f5d63", + "button.background": "#ffa07a", + "button.foreground": "#2b292d", + "button.hoverBackground": "#f6b6c9", + "checkbox.background": "#383539", + "checkbox.foreground": "#d1d1e0", + "checkbox.border": "#6f5d63", + "badge.background": "#e06b75", + "badge.foreground": "#2b292d", + "progressBar.background": "#ffa07a", + "breadcrumb.background": "#2b292d", + "breadcrumb.foreground": "#6f5d63", + "breadcrumb.focusForeground": "#d1d1e0", + "breadcrumb.activeSelectionForeground": "#ffa07a", + "breadcrumbPicker.background": "#383539", + "editor.findMatchBackground": "#f5d76e50", + "editor.findMatchHighlightBackground": "#f5d76e30", + "editor.findRangeHighlightBackground": "#6f5d6330", + "editor.hoverHighlightBackground": "#6f5d6330", + "editor.inactiveSelectionBackground": "#6f5d6330", + "editor.lineHighlightBackground": "#38353950", + "editor.rangeHighlightBackground": "#6f5d6320", + "editor.selectionBackground": "#6f5d6350", + "editor.selectionHighlightBackground": "#6f5d6330", + "editor.wordHighlightBackground": "#6f5d6330", + "editor.wordHighlightStrongBackground": "#6f5d6350", + "editorBracketMatch.background": "#6f5d6350", + "editorBracketMatch.border": "#b1b695", + "editorCursor.foreground": "#ffa07a", + "editorError.foreground": "#e06b75", + "editorGroup.border": "#4d424b", + "editorGroup.dropBackground": "#6f5d6350", + "editorGroupHeader.noTabsBackground": "#2b292d", + "editorGroupHeader.tabsBackground": "#2b292d", + "editorGroupHeader.tabsBorder": "#383539", + "editorGutter.addedBackground": "#b1b695", + "editorGutter.deletedBackground": "#e06b75", + "editorGutter.modifiedBackground": "#f5d76e", + "editorHoverWidget.background": "#383539", + "editorHoverWidget.border": "#6f5d63", + "editorIndentGuide.activeBackground1": "#6f5d63", + "editorIndentGuide.background1": "#4d424b", + "editorInfo.foreground": "#fecdb2", + "editorLightBulb.foreground": "#f5d76e", + "editorLineNumber.foreground": "#6f5d63", + "editorLineNumber.activeForeground": "#d1d1e0", + "editorLink.activeForeground": "#ffa07a", + "editorMarkerNavigation.background": "#383539", + "editorMarkerNavigationError.background": "#e06b75", + "editorMarkerNavigationWarning.background": "#f5d76e", + "editorRuler.foreground": "#4d424b", + "editorSuggestWidget.background": "#383539", + "editorSuggestWidget.border": "#6f5d63", + "editorSuggestWidget.foreground": "#d1d1e0", + "editorSuggestWidget.highlightForeground": "#ffa07a", + "editorSuggestWidget.selectedBackground": "#6f5d63", + "editorWarning.foreground": "#f5d76e", + "editorWhitespace.foreground": "#4d424b", + "editorWidget.background": "#383539", + "editorWidget.border": "#6f5d63", + "peekView.border": "#ffa07a", + "peekViewEditor.background": "#383539", + "peekViewEditor.matchHighlightBackground": "#f5d76e50", + "peekViewResult.background": "#2b292d", + "peekViewResult.fileForeground": "#d1d1e0", + "peekViewResult.lineForeground": "#6f5d63", + "peekViewResult.matchHighlightBackground": "#f5d76e50", + "peekViewResult.selectionBackground": "#6f5d63", + "peekViewResult.selectionForeground": "#d1d1e0", + "peekViewTitle.background": "#4d424b", + "peekViewTitleDescription.foreground": "#6f5d63", + "peekViewTitleLabel.foreground": "#d1d1e0", + "tab.activeBackground": "#2b292d", + "tab.activeForeground": "#d1d1e0", + "tab.border": "#383539", + "tab.activeBorder": "#ffa07a", + "tab.unfocusedActiveBorder": "#6f5d63", + "tab.inactiveBackground": "#383539", + "tab.inactiveForeground": "#6f5d63", + "tab.unfocusedActiveForeground": "#b1b695", + "tab.unfocusedInactiveForeground": "#6f5d63", + "tab.hoverBackground": "#4d424b", + "tab.unfocusedHoverBackground": "#4d424b", + "tab.activeModifiedBorder": "#f6b6c9", + "tab.inactiveModifiedBorder": "#6f5d63", + "tab.unfocusedActiveModifiedBorder": "#6f5d63", + "tab.unfocusedInactiveModifiedBorder": "#4d424b", + "scrollbar.shadow": "#2b292d", + "scrollbarSlider.activeBackground": "#6f5d6380", + "scrollbarSlider.background": "#4d424b80", + "scrollbarSlider.hoverBackground": "#6f5d6350", + "widget.shadow": "#2b292d80", + "panel.background": "#2b292d", + "panel.border": "#383539", + "panelTitle.activeBorder": "#ffa07a", + "panelTitle.activeForeground": "#d1d1e0", + "panelTitle.inactiveForeground": "#6f5d63", + "terminal.background": "#2b292d", + "terminal.foreground": "#d1d1e0", + "terminal.ansiBlack": "#2b292d", + "terminal.ansiBlue": "#fecdb2", + "terminal.ansiBrightBlack": "#6f5d63", + "terminal.ansiBrightBlue": "#fecdb2", + "terminal.ansiBrightCyan": "#b1b695", + "terminal.ansiBrightGreen": "#b1b695", + "terminal.ansiBrightMagenta": "#f6b6c9", + "terminal.ansiBrightRed": "#e06b75", + "terminal.ansiBrightWhite": "#d1d1e0", + "terminal.ansiBrightYellow": "#f5d76e", + "terminal.ansiCyan": "#b1b695", + "terminal.ansiGreen": "#b1b695", + "terminal.ansiMagenta": "#f6b6c9", + "terminal.ansiRed": "#e06b75", + "terminal.ansiWhite": "#d1d1e0", + "terminal.ansiYellow": "#f5d76e", + "gitDecoration.addedResourceForeground": "#b1b695", + "gitDecoration.modifiedResourceForeground": "#f5d76e", + "gitDecoration.deletedResourceForeground": "#e06b75", + "gitDecoration.untrackedResourceForeground": "#fecdb2", + "gitDecoration.ignoredResourceForeground": "#6f5d63", + "gitDecoration.conflictingResourceForeground": "#f6b6c9", + "gitDecoration.submoduleResourceForeground": "#ffa07a", + "debugToolBar.background": "#383539", + "debugToolBar.border": "#6f5d63", + "notifications.background": "#383539", + "notifications.foreground": "#d1d1e0", + "notifications.border": "#6f5d63", + "notificationCenter.border": "#6f5d63", + "notificationCenterHeader.foreground": "#d1d1e0", + "notificationCenterHeader.background": "#4d424b", + "notificationToast.border": "#6f5d63", + "notificationsErrorIcon.foreground": "#e06b75", + "notificationsWarningIcon.foreground": "#f5d76e", + "notificationsInfoIcon.foreground": "#fecdb2", + "pickerGroup.border": "#6f5d63", + "pickerGroup.foreground": "#ffa07a", + "quickInput.background": "#383539", + "quickInput.foreground": "#d1d1e0", + "quickInputTitle.background": "#4d424b", + "settings.headerForeground": "#d1d1e0", + "settings.modifiedItemIndicator": "#ffa07a", + "welcomePage.background": "#2b292d" + }, + "tokenColors": [ + { + "name": "Comment", + "scope": [ + "comment", + "punctuation.definition.comment" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#6f5d63" + } + }, + { + "name": "Variables", + "scope": [ + "variable", + "string constant.other.placeholder" + ], + "settings": { + "foreground": "#d1d1e0" + } + }, + { + "name": "Colors", + "scope": [ + "constant.other.color" + ], + "settings": { + "foreground": "#fecdb2" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e06b75" + } + }, + { + "name": "Keyword, Storage", + "scope": [ + "keyword", + "storage.type", + "storage.modifier" + ], + "settings": { + "foreground": "#f6b6c9" + } + }, + { + "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": "#ffa07a" + } + }, + { + "name": "Tag", + "scope": [ + "entity.name.tag", + "meta.tag.sgml", + "markup.deleted.git_gutter" + ], + "settings": { + "foreground": "#e06b75" + } + }, + { + "name": "Function, Special Method", + "scope": [ + "entity.name.function", + "meta.function-call", + "variable.function", + "support.function", + "keyword.other.special-method" + ], + "settings": { + "foreground": "#fecdb2" + } + }, + { + "name": "Block Level Variables", + "scope": [ + "meta.block variable.other" + ], + "settings": { + "foreground": "#d1d1e0" + } + }, + { + "name": "Other Variable, String Link", + "scope": [ + "support.other.variable", + "string.other.link" + ], + "settings": { + "foreground": "#d1d1e0" + } + }, + { + "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": "#f5d76e" + } + }, + { + "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": "#b1b695" + } + }, + { + "name": "Class, Support", + "scope": [ + "entity.name", + "support.type", + "support.class", + "support.other.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "markup.changed.git_gutter", + "support.type.sys-types" + ], + "settings": { + "foreground": "#ffa07a" + } + }, + { + "name": "Entity Types", + "scope": [ + "support.type" + ], + "settings": { + "foreground": "#fecdb2" + } + }, + { + "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": "#fecdb2" + } + }, + { + "name": "Sub-methods", + "scope": [ + "entity.name.module.js", + "variable.import.parameter.js", + "variable.other.class.js" + ], + "settings": { + "foreground": "#e06b75" + } + }, + { + "name": "Language methods", + "scope": [ + "variable.language" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#e06b75" + } + }, + { + "name": "entity.name.method.js", + "scope": [ + "entity.name.method.js" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#fecdb2" + } + }, + { + "name": "meta.method.js", + "scope": [ + "meta.class-method.js entity.name.function.js", + "variable.function.constructor" + ], + "settings": { + "foreground": "#fecdb2" + } + }, + { + "name": "Attributes", + "scope": [ + "entity.other.attribute-name" + ], + "settings": { + "foreground": "#f6b6c9" + } + }, + { + "name": "HTML Attributes", + "scope": [ + "text.html.basic entity.other.attribute-name.html", + "text.html.basic entity.other.attribute-name" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f5d76e" + } + }, + { + "name": "CSS Classes", + "scope": [ + "entity.other.attribute-name.class" + ], + "settings": { + "foreground": "#f5d76e" + } + }, + { + "name": "CSS ID's", + "scope": [ + "source.sass keyword.control" + ], + "settings": { + "foreground": "#fecdb2" + } + }, + { + "name": "Inserted", + "scope": [ + "markup.inserted" + ], + "settings": { + "foreground": "#b1b695" + } + }, + { + "name": "Deleted", + "scope": [ + "markup.deleted" + ], + "settings": { + "foreground": "#e06b75" + } + }, + { + "name": "Changed", + "scope": [ + "markup.changed" + ], + "settings": { + "foreground": "#f6b6c9" + } + }, + { + "name": "Regular Expressions", + "scope": [ + "string.regexp" + ], + "settings": { + "foreground": "#ffa07a" + } + }, + { + "name": "Escape Characters", + "scope": [ + "constant.character.escape" + ], + "settings": { + "foreground": "#ffa07a" + } + }, + { + "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": "#fecdb2" + } + }, + { + "name": "ES7 Bind Operator", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#e06b75" + } + }, + { + "name": "JSON Key - Level 0", + "scope": [ + "source.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#f6b6c9" + } + }, + { + "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": "#f5d76e" + } + }, + { + "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": "#ffa07a" + } + }, + { + "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": "#e06b75" + } + }, + { + "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": "#fecdb2" + } + }, + { + "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": "#b1b695" + } + }, + { + "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": "#f6b6c9" + } + }, + { + "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": "#f5d76e" + } + }, + { + "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": "#b1b695" + } + }, + { + "name": "Markdown - Plain", + "scope": [ + "text.html.markdown", + "punctuation.definition.list_item.markdown" + ], + "settings": { + "foreground": "#d1d1e0" + } + }, + { + "name": "Markdown - Markup Raw Inline", + "scope": [ + "text.html.markdown markup.inline.raw.markdown" + ], + "settings": { + "foreground": "#f6b6c9" + } + }, + { + "name": "Markdown - Markup Raw Inline Punctuation", + "scope": [ + "text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown" + ], + "settings": { + "foreground": "#ffa07a" + } + }, + { + "name": "Markdown - Heading", + "scope": [ + "markdown.heading", + "markup.heading | markup.heading entity.name", + "markup.heading.markdown punctuation.definition.heading.markdown" + ], + "settings": { + "foreground": "#b1b695" + } + }, + { + "name": "Markup - Italic", + "scope": [ + "markup.italic" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f6b6c9" + } + }, + { + "name": "Markup - Bold", + "scope": [ + "markup.bold", + "markup.bold string" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f6b6c9" + } + }, + { + "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": "#f6b6c9" + } + }, + { + "name": "Markup - Underline", + "scope": [ + "markup.underline" + ], + "settings": { + "fontStyle": "underline", + "foreground": "#ffa07a" + } + }, + { + "name": "Markup - Quote", + "scope": [ + "markup.quote" + ], + "settings": { + "foreground": "#6f5d63", + "fontStyle": "italic" + } + }, + { + "name": "Markdown - Blockquote", + "scope": [ + "markup.quote punctuation.definition.blockquote.markdown" + ], + "settings": { + "foreground": "#ffa07a" + } + }, + { + "name": "Markup - Link", + "scope": [ + "markup.underline.link" + ], + "settings": { + "foreground": "#fecdb2" + } + }, + { + "name": "Markdown - Link Description", + "scope": [ + "string.other.link.description.title.markdown" + ], + "settings": { + "foreground": "#f6b6c9" + } + }, + { + "name": "Markdown - Link Anchor", + "scope": [ + "constant.other.reference.link.markdown" + ], + "settings": { + "foreground": "#f5d76e" + } + }, + { + "name": "Markup - Raw Block", + "scope": [ + "markup.raw.block" + ], + "settings": { + "foreground": "#f6b6c9" + } + }, + { + "name": "Markdown - Fenced Bode Block", + "scope": [ + "punctuation.definition.fenced.markdown" + ], + "settings": { + "foreground": "#6f5d63" + } + }, + { + "name": "Markdown - Fenced Bode Block Variable", + "scope": [ + "markup.raw.block.fenced.markdown", + "variable.language.fenced.markdown", + "punctuation.section.class.end" + ], + "settings": { + "foreground": "#d1d1e0" + } + }, + { + "name": "Markdown - Fenced Language", + "scope": [ + "variable.language.fenced.markdown" + ], + "settings": { + "foreground": "#6f5d63" + } + }, + { + "name": "Markdown - Separator", + "scope": [ + "meta.separator" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#6f5d63" + } + }, + { + "name": "Markup - Table", + "scope": [ + "markup.table" + ], + "settings": { + "foreground": "#d1d1e0" + } + } + ] +} diff --git a/ports/vscode/vsc-extension-quickstart.md b/ports/vscode/vsc-extension-quickstart.md new file mode 100644 index 0000000..8fc0bf0 --- /dev/null +++ b/ports/vscode/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/Ferra Color 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 the color theme picker with the `File > Preferences > Theme > Color Theme` menu item, or use the `Preferences: Color Theme command (Ctrl+K Ctrl+T)` and pick your 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/api/working-with-extensions/publishing-extension about publishing an extension.