├── scripts ├── lint ├── start ├── build └── push ├── .gitignore ├── assets ├── icon.png └── screenshot.png ├── .vscodeignore ├── .vscode ├── tasks.json └── launch.json ├── README.md ├── LICENSE ├── package.json ├── themes └── nova.json └── src └── index.js /scripts/lint: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | eslint . 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | out/ 4 | npm-debug.log 5 | *.vsix 6 | themes/ -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rebornix/vscode-nova/HEAD/assets/icon.png -------------------------------------------------------------------------------- /scripts/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | watch 'npm run build' src 5 | -------------------------------------------------------------------------------- /assets/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rebornix/vscode-nova/HEAD/assets/screenshot.png -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/**/* 2 | .gitignore 3 | src/**/* 4 | out/tests/**/* 5 | **/*.js.map 6 | *.vsix 7 | -------------------------------------------------------------------------------- /scripts/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | mkdir -p themes 4 | echo "" > themes/nova.json 5 | node src/index.js >> themes/nova.json 6 | -------------------------------------------------------------------------------- /scripts/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | if [[ $# -eq 0 ]] ; then 5 | echo 'A Semantic Versioning option of `major` `minor` or `patch` is required' 6 | exit 1 7 | fi 8 | 9 | npm run build 10 | git add -A 11 | git commit || true 12 | npm version $1 13 | git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD) 14 | git push --tags 15 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "0.1.0", 5 | "command": "npm", 6 | "isShellCommand": true, 7 | "showOutput": "always", 8 | "suppressTaskName": true, 9 | "tasks": [ 10 | { 11 | "taskName": "build", 12 | "args": ["run", "build"] 13 | } 14 | 15 | ] 16 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vscode-nova 2 | Nova color scheme syntax plugin for Visual Studio Code. All credits to [@AC_Design](https://twitter.com/AC_Design) [@iammerrick](http://merrickchristensen.com/) [@trevordmiller](http://www.trevordmiller.com/). 3 | 4 | ![Screenshot](./assets/screenshot.png?raw=true "Screenshot") 5 | 6 | **See the [documentation website](https://trevordmiller.com/projects/nova) for more information** 7 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Launch Extension", 6 | "type": "extensionHost", 7 | "request": "launch", 8 | "runtimeExecutable": "${execPath}", 9 | "args": [ 10 | "--extensionDevelopmentPath=${workspaceRoot}" 11 | ], 12 | "stopOnEntry": false, 13 | "sourceMaps": true, 14 | "outDirs": [ 15 | "${workspaceRoot}/out/**/*.js" 16 | ], 17 | "preLaunchTask": "build" 18 | }, 19 | { 20 | "type": "node", 21 | "request": "launch", 22 | "name": "Launch Program", 23 | "program": "${workspaceFolder}/src/index.js" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Trevor D. Miller 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nova", 3 | "displayName": "nova", 4 | "description": "Nova theme for Visual Studio Code", 5 | "version": "0.2.2", 6 | "publisher": "rebornix", 7 | "icon": "assets/icon.png", 8 | "galleryBanner": { 9 | "color": "#445660", 10 | "theme": "dark" 11 | }, 12 | "engines": { 13 | "vscode": "^1.1.0" 14 | }, 15 | "scripts": { 16 | "build": "scripts/build" 17 | }, 18 | "devDependencies": { 19 | "eslint": "3.5.0", 20 | "watch": "0.19.2" 21 | }, 22 | "dependencies": { 23 | "nova-colors": "2.1.5" 24 | }, 25 | "categories": [ 26 | "Themes" 27 | ], 28 | "repository": { 29 | "type": "git", 30 | "url": "https://github.com/rebornix/vscode-nova.git" 31 | }, 32 | "bugs": { 33 | "url": "https://github.com/rebornix/vscode-nova/issues" 34 | }, 35 | "contributes": { 36 | "themes": [ 37 | { 38 | "label": "Nova", 39 | "uiTheme": "vs-dark", 40 | "path": "./themes/nova.json" 41 | } 42 | ] 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /themes/nova.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "$schema": "vscode://schemas/color-theme", 4 | "name": "Nova", 5 | "colors": { 6 | "activityBarBadge.background": "#7FC1CA", 7 | "activityBarBadge.foreground": "#3C4C55", 8 | "badge.background": "#7FC1CA", 9 | "badge.foreground": "#3C4C55", 10 | "button.background": "#7FC1CA", 11 | "button.foreground": "#3C4C55", 12 | "debugToolBar.background": "#1E272C", 13 | "debugExceptionWidget.background": "#DF8C8C", 14 | "debugExceptionWidget.border": "#DF8C8C", 15 | "dropdown.foreground": "#7FC1CA", 16 | "editor.background": "#3C4C55", 17 | "editor.foreground": "#C5D4DD", 18 | "editorLineNumber.activeForeground": "#7FC1CA", 19 | "editor.lineHighlightBackground": "#556873", 20 | "editor.selectionBackground": "#6A7D89", 21 | "editor.findMatchBackground": "#6A7D89", 22 | "editor.wordHighlightBackground": "#556873", 23 | "editor.findRangeHighlightBackground": "#556873", 24 | "editor.inactiveSelectionBackground": "#556873", 25 | "editor.wordHighlightStrongBackground": "#556874", 26 | "editor.findMatchHighlightBackground": "#6A7D89", 27 | "editorLineNumber.foreground": "#6A7D89", 28 | "editorGroup.background": "#1E272C", 29 | "editorGroupHeader.noTabsBackground": "#1E272C", 30 | "editorGroupHeader.tabsBackground": "#1E272C", 31 | "editorWidget.border": "#3C4C55", 32 | "editorWidget.background": "#3C4C55", 33 | "editorGroup.border": "#899BA6", 34 | "extensionButton.prominentBackground": "#7FC1CA", 35 | "extensionButton.prominentForeground": "#3C4C55", 36 | "extensionButton.prominentHoverBackground": "#7FC1CA", 37 | "sideBar.background": "#1E272C", 38 | "scrollbar.shadow": "#3C4C55", 39 | "activityBar.background": "#1E272C", 40 | "tab.activeBackground": "#3C4C55", 41 | "tab.activeForeground": "#7FC1CA", 42 | "tab.inactiveBackground": "#1E272C", 43 | "tab.inactiveForeground": "#6A7D89", 44 | "tab.border": "#1E272C", 45 | "tab.activeBorder": "#3C4C55", 46 | "panelTitle.activeForeground": "#7FC1CA", 47 | "scrollbarSlider.background": "#7FC1CA", 48 | "list.activeSelectionBackground": "#7FC1CA", 49 | "list.activeSelectionForeground": "#3C4C55", 50 | "list.inactiveSelectionBackground": "#3C4C55", 51 | "list.inactiveSelectionForeground": "#7FC1CA", 52 | "list.hoverBackground": "#6A7D89", 53 | "list.focusBackground": "#1E272C", 54 | "list.focusForeground": "#7FC1CA", 55 | "list.highlightForeground": "#7FC1CA", 56 | "progressBar.background": "#7FC1CA", 57 | "input.background": "#556873", 58 | "input.border": "#556873", 59 | "input.foreground": "#7FC1CA", 60 | "input.placeholderForeground": "#d8dee9", 61 | "inputValidation.errorBackground": "#DF8C8C", 62 | "inputValidation.errorBorder": "#DF8C8C", 63 | "editorIndentGuide.background": "#556873", 64 | "inputOption.activeBorder": "#7FC1CA", 65 | "notification.errorBackground": "#DF8C8C", 66 | "notification.errorForeground": "#3C4C55", 67 | "notification.warningBackground": "#F2C38F", 68 | "notification.warningForeground": "#3C4C55", 69 | "notification.background": "#3C4C55", 70 | "notification.buttonBackground": "#556873", 71 | "peekViewTitle.background": "#1E272C", 72 | "peekView.border": "#1E272C", 73 | "peekViewEditor.background": "#3C4C55", 74 | "peekViewResult.background": "#1E272C", 75 | "peekViewResult.selectionBackground": "#7FC1CA", 76 | "peekViewResult.selectionForeground": "#3C4C55", 77 | "panelTitle.activeBorder": "#7FC1CA", 78 | "statusBar.background": "#1E272C", 79 | "statusBar.debuggingBackground": "#DF8C8C", 80 | "terminal.background": "#3C4C55", 81 | "terminal.foreground": "#C5D4DD", 82 | "terminal.ansiBlack": "#3C4C55", 83 | "terminal.ansiRed": "#DF8C8C", 84 | "terminal.ansiGreen": "#A8CE93", 85 | "terminal.ansiYellow": "#DADA93", 86 | "terminal.ansiBlue": "#83AFE5", 87 | "terminal.ansiMagenta": "#9A93E1", 88 | "terminal.ansiCyan": "#7FC1CA", 89 | "terminal.ansiWhite": "#C5D4DD", 90 | "terminal.ansiBrightBlack": "#899BA6", 91 | "terminal.ansiBrightMagenta": "#D18EC2", 92 | "terminal.ansiBrightWhite": "#E6EEF3", 93 | "titleBar.activeBackground": "#1E272C", 94 | "widget.shadow": "#00000066", 95 | "diffEditor.insertedTextBackground": "#A8CE930C", 96 | "diffEditor.insertedTextBorder": "#A8CE93", 97 | "diffEditor.removedTextBackground": "#DF8C8C0C", 98 | "diffEditor.removedTextBorder": "#DF8C8C", 99 | "editorHoverWidget.background": "#556873", 100 | "editorHoverWidget.border": "#3C4C55", 101 | "editorSuggestWidget.highlightForeground": "#7FC1CA", 102 | "editorSuggestWidget.background": "#556873", 103 | "editorSuggestWidget.border": "#556873", 104 | "editorSuggestWidget.selectedBackground": "#6A7D89", 105 | "editorOverviewRuler.addedForeground": "#A8CE93", 106 | "editorOverviewRuler.deletedForeground": "#DF8C8C", 107 | "editorOverviewRuler.modifiedForeground": "#F2C38F", 108 | "editorGutter.addedBackground": "#A8CE93", 109 | "editorGutter.deletedBackground": "#DF8C8C", 110 | "editorGutter.modifiedBackground": "#83AFE5" 111 | }, 112 | "tokenColors": [ 113 | { 114 | "scope": "emphasis", 115 | "settings": { 116 | "fontStyle": "italic", 117 | "foreground": "#D18EC2" 118 | } 119 | }, 120 | { 121 | "scope": "strong", 122 | "settings": { 123 | "fontStyle": "bold" 124 | } 125 | }, 126 | { 127 | "scope": [ 128 | "comment", 129 | "meta.selector" 130 | ], 131 | "settings": { 132 | "foreground": "#899BA6" 133 | } 134 | }, 135 | { 136 | "scope": [ 137 | "constant.language", 138 | "constant.numeric", 139 | "string", 140 | "markup.inline.raw", 141 | "meta.brace.square" 142 | ], 143 | "settings": { 144 | "foreground": "#7FC1CA" 145 | } 146 | }, 147 | { 148 | "scope": "entity.name.tag.css", 149 | "settings": { 150 | "foreground": "#F2C38F" 151 | } 152 | }, 153 | { 154 | "scope": [ 155 | "entity.other.attribute-name.class.css", 156 | "entity.other.attribute-name.class.mixin.css", 157 | "entity.other.attribute-name.id.css", 158 | "entity.other.attribute-name.parent-selector.css", 159 | "entity.other.attribute-name.pseudo-class.css", 160 | "entity.other.attribute-name.pseudo-element.css", 161 | "source.css.less entity.other.attribute-name.id", 162 | "entity.other.attribute-name.attribute.scss", 163 | "entity.other.attribute-name.scss" 164 | ], 165 | "settings": { 166 | "foreground": "#D18EC2" 167 | } 168 | }, 169 | { 170 | "scope": "markup", 171 | "settings": { 172 | "foreground": "#D18EC2" 173 | } 174 | }, 175 | { 176 | "scope": "markup.underline", 177 | "settings": { 178 | "fontStyle": "underline" 179 | } 180 | }, 181 | { 182 | "scope": "markup.bold", 183 | "settings": { 184 | "fontStyle": "bold" 185 | } 186 | }, 187 | { 188 | "scope": "markup.italic", 189 | "settings": { 190 | "fontStyle": "italic" 191 | } 192 | }, 193 | { 194 | "scope": "markup.heading", 195 | "settings": { 196 | "fontStyle": "bold", 197 | "foreground": "#F2C38F" 198 | } 199 | }, 200 | { 201 | "scope": "storage", 202 | "settings": { 203 | "foreground": "#A8CE93" 204 | } 205 | }, 206 | { 207 | "name": "String interpolation", 208 | "scope": [ 209 | "header", 210 | "markup.heading.markdown", 211 | "beginning.punctuation.definition.quote.markdown", 212 | "beginning.punctuation.definition.list.markdown", 213 | "punctuation.definition.tag", 214 | "punctuation.definition.template-expression.begin", 215 | "punctuation.definition.template-expression.end", 216 | "punctuation.section.embedded", 217 | "punctuation.definition.block", 218 | "entity.name.tag.tsx", 219 | "meta.brace.round", 220 | "storage.type.function.arrow" 221 | ], 222 | "settings": { 223 | "foreground": "#F2C38F" 224 | } 225 | }, 226 | { 227 | "scope": [ 228 | "support.function", 229 | "entity.name.function", 230 | "keyword.operator.assignment" 231 | ], 232 | "settings": { 233 | "foreground": "#DADA93" 234 | } 235 | }, 236 | { 237 | "scope": [ 238 | "variable.language", 239 | "keyword", 240 | "support.class", 241 | "entity.name.class", 242 | "entity.name.type.class" 243 | ], 244 | "settings": { 245 | "foreground": "#9A93E1" 246 | } 247 | }, 248 | { 249 | "scope": [ 250 | "entity.other.attribute-name.tsx", 251 | "support.type.property-name", 252 | "meta.object-literal.key", 253 | "entity.name.function", 254 | "entity.name.tag", 255 | "meta.definition.variable", 256 | "meta.function.expression", 257 | "variable.parameter", 258 | "variable.other.readwrite source", 259 | "variable.other.readwrite.alias", 260 | "variable.other.object" 261 | ], 262 | "settings": { 263 | "foreground": "#83AFE5" 264 | } 265 | }, 266 | { 267 | "scope": "support.variable.property", 268 | "settings": { 269 | "foreground": "#C5D4DD" 270 | } 271 | } 272 | ] 273 | } -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const nova = require('nova-colors') 2 | 3 | const sourceString =`{ 4 | "$schema": "vscode://schemas/color-theme", 5 | "name": "Nova", 6 | "colors": { 7 | "activityBarBadge.background": "#7FC1CA", 8 | "activityBarBadge.foreground": "#3C4C55", 9 | "badge.background": "#7FC1CA", 10 | "badge.foreground": "#3C4C55", 11 | "button.background": "#7FC1CA", 12 | "button.foreground": "#3C4C55", 13 | "debugToolBar.background": "#1E272C", 14 | "debugExceptionWidget.background": "#DF8C8C", 15 | "debugExceptionWidget.border": "#DF8C8C", 16 | "dropdown.foreground": "#7FC1CA", 17 | "editor.background": "${nova.uiGroups.background}", 18 | "editor.foreground": "${nova.uiGroups.foreground}", 19 | "editorLineNumber.activeForeground": "#7FC1CA", 20 | "editor.lineHighlightBackground": "#556873", 21 | "editor.selectionBackground": "#6A7D89", 22 | "editor.findMatchBackground": "#6A7D89", 23 | "editor.wordHighlightBackground": "#556873", 24 | "editor.findRangeHighlightBackground": "#556873", 25 | "editor.inactiveSelectionBackground": "#556873", 26 | "editor.wordHighlightStrongBackground": "#556874", 27 | "editor.findMatchHighlightBackground": "#6A7D89", 28 | "editorLineNumber.foreground": "#6A7D89", 29 | "editorGroup.background": "#1E272C", 30 | "editorGroupHeader.noTabsBackground": "#1E272C", 31 | "editorGroupHeader.tabsBackground": "#1E272C", 32 | "editorWidget.border": "${nova.uiGroups.background}", 33 | "editorWidget.background": "${nova.uiGroups.background}", 34 | "editorGroup.border": "#899BA6", 35 | "extensionButton.prominentBackground": "#7FC1CA", 36 | "extensionButton.prominentForeground": "#3C4C55", 37 | "extensionButton.prominentHoverBackground": "#7FC1CA", 38 | "sideBar.background": "#1E272C", 39 | "scrollbar.shadow": "${nova.uiGroups.background}", 40 | "activityBar.background": "#1E272C", 41 | "tab.activeBackground": "${nova.uiGroups.background}", 42 | "tab.activeForeground": "#7FC1CA", 43 | "tab.inactiveBackground": "#1E272C", 44 | "tab.inactiveForeground": "#6A7D89", 45 | "tab.border": "#1E272C", 46 | "tab.activeBorder": "${nova.uiGroups.background}", 47 | "panelTitle.activeForeground": "#7FC1CA", 48 | "scrollbarSlider.background": "#7FC1CA", 49 | "list.activeSelectionBackground": "#7FC1CA", 50 | "list.activeSelectionForeground": "#3C4C55", 51 | "list.inactiveSelectionBackground": "#3C4C55", 52 | "list.inactiveSelectionForeground": "#7FC1CA", 53 | "list.hoverBackground": "#6A7D89", 54 | "list.focusBackground": "#1E272C", 55 | "list.focusForeground": "#7FC1CA", 56 | "list.highlightForeground": "#7FC1CA", 57 | "progressBar.background": "#7FC1CA", 58 | "input.background": "#556873", 59 | "input.border": "#556873", 60 | "input.foreground": "#7FC1CA", 61 | "input.placeholderForeground": "#d8dee9", 62 | "inputValidation.errorBackground": "#DF8C8C", 63 | "inputValidation.errorBorder": "#DF8C8C", 64 | "editorIndentGuide.background": "#556873", 65 | "inputOption.activeBorder": "#7FC1CA", 66 | "notification.errorBackground": "#DF8C8C", 67 | "notification.errorForeground": "#3C4C55", 68 | "notification.warningBackground": "#F2C38F", 69 | "notification.warningForeground": "#3C4C55", 70 | "notification.background": "#3C4C55", 71 | "notification.buttonBackground": "#556873", 72 | "peekViewTitle.background": "#1E272C", 73 | "peekView.border": "#1E272C", 74 | "peekViewEditor.background": "#3C4C55", 75 | "peekViewResult.background": "#1E272C", 76 | "peekViewResult.selectionBackground": "#7FC1CA", 77 | "peekViewResult.selectionForeground": "#3C4C55", 78 | "panelTitle.activeBorder": "#7FC1CA", 79 | "statusBar.background": "#1E272C", 80 | "statusBar.debuggingBackground": "#DF8C8C", 81 | "terminal.background": "#3C4C55", 82 | "terminal.foreground": "#C5D4DD", 83 | "terminal.ansiBlack": "#3C4C55", 84 | "terminal.ansiRed": "#DF8C8C", 85 | "terminal.ansiGreen": "#A8CE93", 86 | "terminal.ansiYellow": "#DADA93", 87 | "terminal.ansiBlue": "#83AFE5", 88 | "terminal.ansiMagenta": "#9A93E1", 89 | "terminal.ansiCyan": "#7FC1CA", 90 | "terminal.ansiWhite": "#C5D4DD", 91 | "terminal.ansiBrightBlack": "#899BA6", 92 | "terminal.ansiBrightMagenta": "#D18EC2", 93 | "terminal.ansiBrightWhite": "#E6EEF3", 94 | "titleBar.activeBackground": "#1E272C", 95 | "widget.shadow": "#00000066", 96 | "diffEditor.insertedTextBackground": "#A8CE930C", 97 | "diffEditor.insertedTextBorder": "#A8CE93", 98 | "diffEditor.removedTextBackground": "#DF8C8C0C", 99 | "diffEditor.removedTextBorder": "#DF8C8C", 100 | "editorHoverWidget.background": "#556873", 101 | "editorHoverWidget.border": "#3C4C55", 102 | "editorSuggestWidget.highlightForeground": "#7FC1CA", 103 | "editorSuggestWidget.background": "#556873", 104 | "editorSuggestWidget.border": "#556873", 105 | "editorSuggestWidget.selectedBackground": "#6A7D89", 106 | "editorOverviewRuler.addedForeground": "#A8CE93", 107 | "editorOverviewRuler.deletedForeground": "#DF8C8C", 108 | "editorOverviewRuler.modifiedForeground": "#F2C38F", 109 | "editorGutter.addedBackground": "#A8CE93", 110 | "editorGutter.deletedBackground": "#DF8C8C", 111 | "editorGutter.modifiedBackground": "#83AFE5" 112 | }, 113 | "tokenColors": [ 114 | { 115 | "scope": "emphasis", 116 | "settings": { 117 | "fontStyle": "italic", 118 | "foreground": "${nova.syntaxGroups.emphasis}" 119 | } 120 | }, 121 | { 122 | "scope": "strong", 123 | "settings": { 124 | "fontStyle": "bold" 125 | } 126 | }, 127 | { 128 | "scope": [ 129 | "comment", 130 | "meta.selector" 131 | ], 132 | "settings": { 133 | "foreground": "${nova.default.grays.gray4}" 134 | } 135 | }, 136 | { 137 | "scope": [ 138 | "constant.language", 139 | "constant.numeric", 140 | "string", 141 | "markup.inline.raw", 142 | "meta.brace.square" 143 | ], 144 | "settings": { 145 | "foreground": "${nova.syntaxGroups.constant}" 146 | } 147 | }, 148 | { 149 | "scope": "entity.name.tag.css", 150 | "settings": { 151 | "foreground": "${nova.syntaxGroups.special}" 152 | } 153 | }, 154 | { 155 | "scope": [ 156 | "entity.other.attribute-name.class.css", 157 | "entity.other.attribute-name.class.mixin.css", 158 | "entity.other.attribute-name.id.css", 159 | "entity.other.attribute-name.parent-selector.css", 160 | "entity.other.attribute-name.pseudo-class.css", 161 | "entity.other.attribute-name.pseudo-element.css", 162 | "source.css.less entity.other.attribute-name.id", 163 | "entity.other.attribute-name.attribute.scss", 164 | "entity.other.attribute-name.scss" 165 | ], 166 | "settings": { 167 | "foreground": "${nova.syntaxGroups.emphasis}" 168 | } 169 | }, 170 | { 171 | "scope": "markup", 172 | "settings": { 173 | "foreground": "${nova.syntaxGroups.emphasis}" 174 | } 175 | }, 176 | { 177 | "scope": "markup.underline", 178 | "settings": { 179 | "fontStyle": "underline" 180 | } 181 | }, 182 | { 183 | "scope": "markup.bold", 184 | "settings": { 185 | "fontStyle": "bold" 186 | } 187 | }, 188 | { 189 | "scope": "markup.italic", 190 | "settings": { 191 | "fontStyle": "italic" 192 | } 193 | }, 194 | { 195 | "scope": "markup.heading", 196 | "settings": { 197 | "fontStyle": "bold", 198 | "foreground": "${nova.syntaxGroups.special}" 199 | } 200 | }, 201 | { 202 | "scope": "storage", 203 | "settings": { 204 | "foreground": "${nova.syntaxGroups.type}" 205 | } 206 | }, 207 | { 208 | "name": "String interpolation", 209 | "scope": [ 210 | "header", 211 | "markup.heading.markdown", 212 | "beginning.punctuation.definition.quote.markdown", 213 | "beginning.punctuation.definition.list.markdown", 214 | "punctuation.definition.tag", 215 | "punctuation.definition.template-expression.begin", 216 | "punctuation.definition.template-expression.end", 217 | "punctuation.section.embedded", 218 | "punctuation.definition.block", 219 | "entity.name.tag.tsx", 220 | "meta.brace.round", 221 | "storage.type.function.arrow" 222 | ], 223 | "settings": { 224 | "foreground": "${nova.syntaxGroups.special}" 225 | } 226 | }, 227 | { 228 | "scope": [ 229 | "support.function", 230 | "entity.name.function", 231 | "keyword.operator.assignment" 232 | ], 233 | "settings": { 234 | "foreground": "${nova.syntaxGroups.statement}" 235 | } 236 | }, 237 | { 238 | "scope": [ 239 | "variable.language", 240 | "keyword", 241 | "support.class", 242 | "entity.name.class", 243 | "entity.name.type.class" 244 | ], 245 | "settings": { 246 | "foreground": "${nova.syntaxGroups.global}" 247 | } 248 | }, 249 | { 250 | "scope": [ 251 | "entity.other.attribute-name.tsx", 252 | "support.type.property-name", 253 | "meta.object-literal.key", 254 | "entity.name.function", 255 | "entity.name.tag", 256 | "meta.definition.variable", 257 | "meta.function.expression", 258 | "variable.parameter", 259 | "variable.other.readwrite source", 260 | "variable.other.readwrite.alias", 261 | "variable.other.object" 262 | ], 263 | "settings": { 264 | "foreground": "${nova.syntaxGroups.identifier}" 265 | } 266 | }, 267 | { 268 | "scope": "support.variable.property", 269 | "settings": { 270 | "foreground": "${nova.default.grays.gray5}" 271 | } 272 | } 273 | ] 274 | }` 275 | 276 | process.stdout.write(sourceString) 277 | --------------------------------------------------------------------------------