├── .gitignore ├── .vscode └── launch.json ├── .vscodeignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── biome.json ├── bun.lockb ├── icon.png ├── package.json ├── preview.webp ├── scripts └── build.ts ├── src ├── colors.ts ├── moonlight-ii.json ├── moonlight.json └── ui.json ├── tests ├── clj.clj ├── css.css ├── js.js ├── python.py ├── screenshot.js └── vue.vue └── themes └── .gitignore /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .DS_Store -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "type": "extensionHost", 6 | "request": "launch", 7 | "name": "Launch Extension", 8 | "runtimeExecutable": "${execPath}", 9 | "args": ["--extensionDevelopmentPath=${workspaceFolder}"] 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | tests/ 2 | src/ 3 | build.js 4 | node_modules/ -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.11.1 2 | 3 | - Disable default semantic highlighting for Moonlight II 4 | - More closely match semantic tokens with original TM scopes (Python test) 5 | - Fix semantic function coloring consistency for all langs 6 | - Fix non-semantic python function call coloring in some situations 7 | - Fix operators being italicised incorrectly in italics variants 8 | - Markdown improvements for original Moonlight 9 | 10 | ## 0.11.0 11 | 12 | - Refreshed colors 13 | - Sync Moonlight editor UI colors with Moonlight II; both now actively supported 14 | - Fix inlay hint color tint 15 | - Enable semantic highlighting by default 16 | - [Moonlight II] Make string interpolation punctuation red 17 | 18 | ## 0.10.6 19 | 20 | - Add semantic colors for Go (#37) 21 | - Fix selection and border color 22 | 23 | ## 0.10.5 24 | 25 | - Change debugging background color for better contrast (#23) 26 | - Make borders in the sideBarSections and terminal split more visible (#32) 27 | 28 | ## 0.10.4 29 | 30 | ### Moonlight II 31 | 32 | - Made `sky-blue` color darker and more obviously different from `cyan` 33 | - Made `badge` color the same as `activityBarBadge` (`dark-blue`) 34 | - Made `dark-blue` darker 35 | 36 | ## 0.10.3 37 | 38 | ### Moonlight II 39 | 40 | - Improve GitLens colors 41 | - Darken notification background color 42 | - Tweak `gray-3` 43 | - Improve scrollbar colors 44 | - Fix `contrastBorder` 45 | - Fix button colors 46 | - Fix tree indent stroke color 47 | - Darken checkbox background color 48 | 49 | ## 0.10.2 50 | 51 | ### Moonlight II 52 | 53 | - Various color tweaks 54 | - Improve Haskell syntax highlighting 55 | - Improve terminal colors 56 | - Improve `editorOverviewRuler` colors to match git decorations 57 | - CSS property values are pink and all punctuation is cyan 58 | 59 | ## 0.10.1 60 | 61 | ### Moonlight II 62 | 63 | - Fix terminal `ansiBlack` color 64 | - Fix `editorSuggestWidget` selected background and text colors 65 | - Tweak sky blue color 66 | 67 | ## 0.10.0 68 | 69 | ### Moonlight II 70 | 71 | Themes are now auto-generated. 72 | 73 | - UI colors slightly desaturated to make syntax stand out more 74 | - Various color tweaks 75 | - Fix focus background in lists 76 | - Array punctuation cyan 77 | - Entity types orange 78 | - Better function colors 79 | - Panel border 80 | - Fix warning colors 81 | 82 | ## 0.9.0 83 | 84 | ### Moonlight II 85 | 86 | - JSON key colors altered 87 | - Objects are yellow 88 | - Object property access is now greyed rather than cyan 89 | - Function calls and function definitions are distinguished with different blues 90 | - Control keywords are cyan instead of purple 91 | - Entity types and regexes are now bright cyan to distinguish them from punctuation or constants 92 | 93 | ## 0.8.3 94 | 95 | ### Moonlight II 96 | 97 | - Fix Moonlight II being the same as Italic variant 98 | 99 | ## 0.8.2 100 | 101 | ### Moonlight II 102 | 103 | - Improve PHP support 104 | - Fix Vue template `=` character being colored red instead of cyan 105 | - Fix support variables being slightly darker than normal variables 106 | - Make all keywords italicized in Italic variant 107 | - `Infinity` and `NaN` colored as numbers 108 | - Change punctuation color scopes 109 | 110 | ## 0.8.1 111 | 112 | - Minor fixes to Moonlight II for certain scopes 113 | 114 | ## 0.8.0 115 | 116 | - Introduce a new theme - Moonlight II 117 | - Change list focus background to different color for readability 118 | - New preview image 119 | 120 | ## 0.7.0 121 | 122 | - New preview image 123 | - Change main blue hue to be slightly closer to cyan than purple 124 | - Make `constant.language` light red rather than pink 125 | - Template literal punctuation made red 126 | - `keyword.flow` made a pale blue instead of bright purple 127 | - Comparison and logical operators made purple 128 | 129 | ## 0.6.0 130 | 131 | - Various color tweaks 132 | 133 | ## 0.5.0 134 | 135 | - New preview image 136 | - Made background colors less saturated so blues stand out more 137 | - Object property colors altered 138 | - Changed flow keywords to a brighter purple for emphasis and are now italic in the italic theme 139 | - Reds made less pink 140 | - Git diff colors increased in visibility, untracked made same color as strings 141 | - Various editor UI improvements 142 | - Types color improved 143 | 144 | ## 0.4.0 145 | 146 | - Regex color improvements 147 | - Base foreground color tinted to correct color 148 | - Cursor color made blue 149 | - Made non-editor UI colors slightly darker with dark borders 150 | - Changed the aqua foreground color used everywhere to blue 151 | - List view/focus background made blue 152 | - Slight widget/scroll indicator shadows 153 | - Active tab border made blue 154 | - Better find highlight match colors 155 | - Bracket match border made blue 156 | 157 | ## 0.3.1 158 | 159 | - `Infinity` and `NaN` made orange (numbers) 160 | - Distinguish JSON key level 0 and 1 161 | - Remove array scope from object literal brace highlighting 162 | - Improved CSS highlighting consistency (property names, values, keyframes) 163 | - Markdown inline code made less grey 164 | - Other minor adjustments 165 | 166 | ## 0.3.0 167 | 168 | - Add HTML doctype as purple 169 | - Change JSON key colors so they never conflict with the value, limit color changes to 6 levels deep 170 | - Sync italic theme UI colors with standard 171 | - Fix HTML text color, same as React JSX Children 172 | 173 | ## 0.2.2 174 | 175 | - Increase visibility of line numbers and line highlight 176 | - Increase visibility of bottom bar text 177 | 178 | ## 0.2.1 179 | 180 | - JSON key level colors added to Italic theme version 181 | - Corrected theme names in .json files 182 | 183 | ## 0.2.0 184 | 185 | - Added icon 186 | - Improved preview code 187 | - Background made slightly darker and more saturated 188 | - `default` keyword made blue 189 | - JSON key level colors changed 190 | 191 | ## 0.1.0 192 | 193 | - Initial release 194 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 atomiks 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Moonlight 🌌 2 | 3 | Preview 4 | 5 | ## Variants 6 | 7 | - Moonlight (regular and italics) 8 | - Moonlight II (regular and italics) 9 | 10 | ## Installation 11 | 12 | 1. Install [Visual Studio Code](https://code.visualstudio.com/) 13 | 2. Launch Visual Studio Code 14 | 3. Choose **Extensions** from menu 15 | 4. Search for `atomiks.moonlight` 16 | 5. Click **Install** to install it 17 | 6. Click **Reload** to reload the Code 18 | 7. From the menu bar click: Code > Preferences > Color Theme > Pick your Moonlight variant 19 | 20 | ## Semantic highlighting 21 | 22 | Semantic highlighting is enabled by default for `Moonlight`, but not `Moonlight II`. 23 | To change the setting, add the following to your settings.json: 24 | 25 | ```json 26 | "editor.semanticHighlighting.enabled": true 27 | ``` 28 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", 3 | "vcs": { 4 | "root": ".", 5 | "enabled": true, 6 | "clientKind": "git" 7 | }, 8 | "files": { 9 | "include": [ 10 | "./**/*.ts", 11 | "./**/*.js", 12 | "./**/*.cjs", 13 | "./**/*.mjs", 14 | "./**/*.jsx", 15 | "./**/*.tsx", 16 | "./**/*.d.ts", 17 | "./**/*.json", 18 | "./**/*.jsonc" 19 | ], 20 | "ignore": ["node_modules", "dist", "_"], 21 | "ignoreUnknown": true 22 | }, 23 | "organizeImports": { 24 | "enabled": false 25 | }, 26 | "formatter": { 27 | "enabled": true, 28 | "lineWidth": 80, 29 | "indentWidth": 2, 30 | "indentStyle": "space", 31 | "formatWithErrors": true, 32 | "include": [ 33 | "./**/*.ts", 34 | "./**/*.js", 35 | "./**/*.cjs", 36 | "./**/*.mjs", 37 | "./**/*.jsx", 38 | "./**/*.tsx", 39 | "./**/*.d.ts", 40 | "./**/*.json", 41 | "./**/*.jsonc" 42 | ] 43 | }, 44 | "linter": { 45 | "enabled": true, 46 | "rules": { 47 | "all": true, 48 | "style": { 49 | "useBlockStatements": "off", 50 | "useSelfClosingElements": "off", 51 | "noUnusedTemplateLiteral": "off" 52 | }, 53 | "a11y": { "noSvgWithoutTitle": "off" }, 54 | "nursery": { "noUnusedImports": "off" }, 55 | "performance": { "noAccumulatingSpread": "off" }, 56 | "correctness": { "noUndeclaredVariables": "off" }, 57 | "suspicious": { 58 | "noExplicitAny": "off", 59 | "noEmptyInterface": "off", 60 | "noConfusingVoidType": "off" 61 | }, 62 | "complexity": { 63 | "useLiteralKeys": "off", 64 | "noUselessFragments": "off", 65 | "noBannedTypes": "off", 66 | "noForEach": "off" 67 | }, 68 | "security": { 69 | "noDangerouslySetInnerHtml": "off" 70 | } 71 | } 72 | }, 73 | "json": { 74 | "parser": { 75 | "allowComments": true 76 | }, 77 | "formatter": { 78 | "enabled": true 79 | } 80 | }, 81 | "javascript": { 82 | "parser": { 83 | "unsafeParameterDecoratorsEnabled": true 84 | }, 85 | "formatter": { 86 | "enabled": true, 87 | "lineWidth": 80, 88 | "indentWidth": 2, 89 | "indentStyle": "space", 90 | "quoteStyle": "single", 91 | "trailingComma": "all", 92 | "semicolons": "always", 93 | "jsxQuoteStyle": "double", 94 | "quoteProperties": "asNeeded", 95 | "arrowParentheses": "always" 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomiks/moonlight-vscode-theme/05c2cdb1fbd65b6e58ab0e8abdea0db7619f2acf/bun.lockb -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomiks/moonlight-vscode-theme/05c2cdb1fbd65b6e58ab0e8abdea0db7619f2acf/icon.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "moonlight", 3 | "displayName": "Moonlight", 4 | "description": "A VS Code theme with bubblegum colors on a moonlit background.", 5 | "version": "0.11.1", 6 | "publisher": "atomiks", 7 | "type": "module", 8 | "license": "MIT", 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/atomiks/moonlight-vscode-theme" 12 | }, 13 | "keywords": ["Theme", "Dark Theme", "Moonlight", "Night Theme"], 14 | "scripts": { 15 | "publish": "vsce publish", 16 | "build": "bun scripts/build.ts", 17 | "format": "npx @biomejs/biome format **/*.{ts,js} --write" 18 | }, 19 | "galleryBanner": { 20 | "color": "#061526", 21 | "theme": "dark" 22 | }, 23 | "engines": { 24 | "vscode": "^1.17.0" 25 | }, 26 | "categories": ["Themes"], 27 | "icon": "icon.png", 28 | "contributes": { 29 | "themes": [ 30 | { 31 | "label": "Moonlight II", 32 | "uiTheme": "vs-dark", 33 | "path": "./themes/moonlight-ii.json" 34 | }, 35 | { 36 | "label": "Moonlight II Italic", 37 | "uiTheme": "vs-dark", 38 | "path": "./themes/moonlight-ii-italic.json" 39 | }, 40 | { 41 | "label": "Moonlight", 42 | "uiTheme": "vs-dark", 43 | "path": "./themes/moonlight.json" 44 | }, 45 | { 46 | "label": "Moonlight Italic", 47 | "uiTheme": "vs-dark", 48 | "path": "./themes/moonlight-italic.json" 49 | } 50 | ] 51 | }, 52 | "devDependencies": { 53 | "@biomejs/biome": "^1.5.1", 54 | "prettier": "^3.1.1", 55 | "vsce": "^2.15.0" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomiks/moonlight-vscode-theme/05c2cdb1fbd65b6e58ab0e8abdea0db7619f2acf/preview.webp -------------------------------------------------------------------------------- /scripts/build.ts: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs'; 2 | import { colors } from '../src/colors'; 3 | import ui from '../src/ui.json'; 4 | 5 | ['moonlight', 'moonlight-ii'].forEach((theme) => { 6 | let srcString = fs.readFileSync(`./src/${theme}.json`, 'utf-8'); 7 | 8 | const json = JSON.parse(srcString); 9 | Object.assign(json, { colors: ui.colors }); 10 | srcString = JSON.stringify(json, null, 2); 11 | 12 | Object.entries(colors).forEach(([colorVar, hexStr]) => { 13 | srcString = srcString.replace(new RegExp(`\\{${colorVar}}`, 'g'), hexStr); 14 | }); 15 | 16 | ['normal', 'italic'].forEach((style) => { 17 | const builtString = srcString.replace(/{fontStyle}/g, style); 18 | fs.writeFileSync( 19 | `./themes/${theme}${style === 'italic' ? '-italic.json' : '.json'}`, 20 | builtString, 21 | ); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /src/colors.ts: -------------------------------------------------------------------------------- 1 | export const colors = { 2 | lightRed: '#ff98a4', 3 | red: '#ff757f', 4 | darkRed: '#ff5370', 5 | lightOrange: '#f8b576', 6 | orange: '#ff966c', 7 | darkOrange: '#fc7b7b', 8 | yellow: '#ffc777', 9 | green: '#c3e88d', 10 | lightTeal: '#7af8ca', 11 | teal: '#3ad7c7', 12 | lightCyan: '#b4f9f8', 13 | cyan: '#78dbff', 14 | sky: '#60bdff', 15 | blue: '#7cafff', 16 | darkBlue: '#3d6fe0', 17 | darkestBlue: '#3b63cf', 18 | indigo: '#af9fff', 19 | purple: '#c4a2ff', 20 | pink: '#fca7ea', 21 | darkPink: '#fd8aca', 22 | saturatedGray: '#7a88cf', 23 | desaturatedGray: '#979bb6', 24 | gray11: '#d5def8', 25 | gray10: '#c8d3f5', 26 | gray9: '#b4c2f0', 27 | gray8: '#a9b8e8', 28 | gray7: '#828bb8', 29 | gray6: '#444a73', 30 | gray5: '#2f334d', 31 | gray4: '#222436', 32 | gray3: '#1e2030', 33 | gray2: '#191a2a', 34 | gray1: '#131421', 35 | } as const; 36 | -------------------------------------------------------------------------------- /src/moonlight-ii.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "vscode://schemas/color-theme", 3 | "name": "moonlight-ii", 4 | "type": "dark", 5 | "semanticHighlighting": false, 6 | "semanticTokenColors": { 7 | "function": "{blue}", 8 | "method.declaration": "{blue}", 9 | "function.defaultLibrary": "{sky}", 10 | "method": "{sky}", 11 | "variable.defaultLibrary": "{yellow}", 12 | "property": "{gray8}", 13 | "property.declaration": "{teal}", 14 | "property.readonly": "{lightOrange}", 15 | "class.builtin": "{orange}", 16 | "selfParameter": "{red}", 17 | "module": "{gray10}" 18 | }, 19 | "tokenColors": [ 20 | { 21 | "name": "Comment", 22 | "scope": [ 23 | "comment", 24 | "punctuation.definition.comment", 25 | "string.quoted.docstring" 26 | ], 27 | "settings": { 28 | "foreground": "{saturatedGray}", 29 | "fontStyle": "{fontStyle}" 30 | } 31 | }, 32 | { 33 | "name": "Variables and Plain Text", 34 | "scope": [ 35 | "variable", 36 | "support.variable", 37 | "string constant.other.placeholder", 38 | "text.html" 39 | ], 40 | "settings": { 41 | "foreground": "{gray10}" 42 | } 43 | }, 44 | 45 | { 46 | "name": "DOM Variables", 47 | "scope": [ 48 | "support.variable.dom", 49 | "support.constant.math", 50 | "support.type.object.module", 51 | "support.variable.object.process", 52 | "support.constant.json" 53 | ], 54 | "settings": { 55 | "foreground": "{yellow}" 56 | } 57 | }, 58 | { 59 | "name": "Nil", 60 | "scope": ["constant.language.undefined", "constant.language.null"], 61 | "settings": { 62 | "foreground": "{desaturatedGray}" 63 | } 64 | }, 65 | { 66 | "name": "PHP Constants", 67 | "scope": ["constant.other.php"], 68 | "settings": { 69 | "foreground": "{yellow}" 70 | } 71 | }, 72 | { 73 | "name": "Colors", 74 | "scope": ["constant.other.color"], 75 | "settings": { 76 | "foreground": "#ffffff" 77 | } 78 | }, 79 | { 80 | "name": "Invalid", 81 | "scope": ["invalid", "invalid.illegal"], 82 | "settings": { 83 | "foreground": "{darkRed}" 84 | } 85 | }, 86 | { 87 | "name": "Invalid deprecated", 88 | "scope": ["invalid.deprecated"], 89 | "settings": { 90 | "foreground": "{purple}" 91 | } 92 | }, 93 | { 94 | "name": "Keyword, Storage", 95 | "scope": [ 96 | "keyword", 97 | "storage.type", 98 | "storage.modifier", 99 | "keyword.other.important" 100 | ], 101 | "settings": { 102 | "foreground": "{purple}", 103 | "fontStyle": "{fontStyle}" 104 | } 105 | }, 106 | { 107 | "name": "Keyword, Storage", 108 | "scope": ["keyword.control", "storage"], 109 | "settings": { 110 | "fontStyle": "{fontStyle}" 111 | } 112 | }, 113 | { 114 | "name": "Interpolation", 115 | "scope": [ 116 | "punctuation.definition.template-expression", 117 | "punctuation.section.embedded" 118 | ], 119 | "settings": { 120 | "foreground": "{cyan}" 121 | } 122 | }, 123 | { 124 | "name": "Spread", 125 | "scope": ["keyword.operator.spread", "keyword.operator.rest"], 126 | "settings": { 127 | "foreground": "{red}", 128 | "fontStyle": "bold" 129 | } 130 | }, 131 | { 132 | "name": "Operator, Misc", 133 | "scope": [ 134 | "keyword.operator", 135 | "keyword.control", 136 | "punctuation", 137 | "punctuation.definition.string", 138 | "punctuation.support.type.property-name", 139 | "text.html.vue-html meta.tag", 140 | "punctuation.definition.keyword", 141 | "punctuation.terminator.rule", 142 | "punctuation.definition.entity", 143 | "constant.other.color", 144 | "meta.tag", 145 | "punctuation.definition.tag", 146 | "punctuation.separator.inheritance.php", 147 | "punctuation.definition.block.tag", 148 | "punctuation.definition.tag.html", 149 | "punctuation.definition.tag.begin.html", 150 | "punctuation.definition.tag.end.html", 151 | "meta.property-list", 152 | "meta.brace.square", 153 | "keyword.other.template", 154 | "keyword.other.substitution", 155 | "string.other.begin.code", 156 | "string.other.end.code" 157 | ], 158 | "settings": { 159 | "foreground": "{cyan}", 160 | "fontStyle": "normal" 161 | } 162 | }, 163 | { 164 | "name": "Dark Punctuation", 165 | "scope": ["punctuation.definition.template-expression"], 166 | "settings": { 167 | "foreground": "{red}" 168 | } 169 | }, 170 | { 171 | "name": "Keyword Control", 172 | "scope": ["keyword.control"], 173 | "settings": { 174 | "fontStyle": "{fontStyle}" 175 | } 176 | }, 177 | 178 | { 179 | "name": "Tag", 180 | "scope": ["entity.name.tag", "meta.tag", "markup.deleted.git_gutter"], 181 | "settings": { 182 | "foreground": "{red}" 183 | } 184 | }, 185 | { 186 | "name": "Function, Special Method", 187 | "scope": [ 188 | "entity.name.function", 189 | "variable.function", 190 | "keyword.other.special-method", 191 | "meta.function-call.generic" 192 | ], 193 | "settings": { 194 | "foreground": "{blue}" 195 | } 196 | }, 197 | { 198 | "name": "Support Function", 199 | "scope": ["support.function", "meta.function-call entity.name.function"], 200 | "settings": { 201 | "foreground": "{sky}" 202 | } 203 | }, 204 | { 205 | "name": "C-related Block Level Variables", 206 | "scope": ["source.cpp meta.block variable.other"], 207 | "settings": { 208 | "foreground": "{red}" 209 | } 210 | }, 211 | { 212 | "name": "Other Variable, String Link", 213 | "scope": ["support.other.variable", "string.other.link"], 214 | "settings": { 215 | "foreground": "{red}" 216 | } 217 | }, 218 | { 219 | "name": "Constant, Function Argument, Tag Attribute, Embedded", 220 | "scope": [ 221 | "variable.other.constant", 222 | "constant.language", 223 | "keyword.other.type.php", 224 | "storage.type.php", 225 | "support.constant", 226 | "constant.character", 227 | "constant.escape", 228 | "keyword.other.unit" 229 | ], 230 | "settings": { 231 | "foreground": "{lightRed}" 232 | } 233 | }, 234 | { 235 | "name": "Number, Boolean", 236 | "scope": [ 237 | "constant.numeric", 238 | "constant.language.boolean", 239 | "constant.language.json", 240 | "constant.language.infinity", 241 | "constant.language.nan" 242 | ], 243 | "settings": { 244 | "foreground": "{orange}" 245 | } 246 | }, 247 | { 248 | "name": "Function Argument", 249 | "scope": [ 250 | "variable.parameter.function.language.special", 251 | "variable.parameter", 252 | "meta.function.parameter variable" 253 | ], 254 | "settings": { 255 | "foreground": "{pink}" 256 | } 257 | }, 258 | { 259 | "name": "String, Symbols, Inherited Class, Markup Heading", 260 | "scope": [ 261 | "string", 262 | "constant.other.symbol", 263 | "constant.other.key", 264 | "entity.other.inherited-class", 265 | "markup.heading", 266 | "markup.inserted.git_gutter", 267 | "meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js", 268 | "meta.attribute-selector", 269 | "markup.inline.raw.code" 270 | ], 271 | "settings": { 272 | "foreground": "{green}" 273 | } 274 | }, 275 | { 276 | "name": "Object", 277 | "scope": ["variable.other.object"], 278 | "settings": { 279 | "foreground": "{yellow}" 280 | } 281 | }, 282 | { 283 | "name": "Object Key", 284 | "scope": [ 285 | "meta.object-literal.key", 286 | "string.alias.graphql", 287 | "string.unquoted.graphql", 288 | "string.unquoted.alias.graphql", 289 | "meta.field.declaration.ts variable.object.property", 290 | "variable.object.property" 291 | ], 292 | "settings": { 293 | "foreground": "{teal}" 294 | } 295 | }, 296 | { 297 | "name": "Nested Object Property", 298 | "scope": ["meta.object.member", "variable.other.object.property"], 299 | "settings": { 300 | "foreground": "{gray8}" 301 | } 302 | }, 303 | { 304 | "name": "Object Property", 305 | "scope": [ 306 | "variable.other.property", 307 | "support.variable.property", 308 | "support.variable.property.dom" 309 | ], 310 | "settings": { 311 | "foreground": "{gray8}" 312 | } 313 | }, 314 | { 315 | "name": "Haskell Constants", 316 | "scope": ["source.haskell constant.other.haskell"], 317 | "settings": { 318 | "foreground": "{lightRed}" 319 | } 320 | }, 321 | { 322 | "name": "Haskell Imports", 323 | "scope": ["source.haskell meta.import.haskell entity.name.namespace"], 324 | "settings": { 325 | "foreground": "{gray10}" 326 | } 327 | }, 328 | { 329 | "name": "Types Fixes", 330 | "scope": [ 331 | "source.haskell storage.type", 332 | "source.c storage.type", 333 | "source.java storage.type" 334 | ], 335 | "settings": { 336 | "foreground": "{yellow}" 337 | } 338 | }, 339 | { 340 | "name": "Lambda Arrow", 341 | "scope": ["storage.type.function"], 342 | "settings": { 343 | "foreground": "{purple}" 344 | } 345 | }, 346 | { 347 | "name": "Class, Support", 348 | "scope": [ 349 | "entity.name", 350 | "support.type", 351 | "support.class", 352 | "support.orther.namespace.use.php", 353 | "meta.use.php", 354 | "support.other.namespace.php", 355 | "markup.changed.git_gutter", 356 | "support.type.sys-types" 357 | ], 358 | "settings": { 359 | "foreground": "{yellow}" 360 | } 361 | }, 362 | { 363 | "name": "Entity types", 364 | "scope": ["support.type"], 365 | "settings": { 366 | "foreground": "{orange}" 367 | } 368 | }, 369 | { 370 | "name": "CSS Class and Support", 371 | "scope": [ 372 | "source.css support.type.property-name", 373 | "source.sass support.type.property-name", 374 | "source.scss support.type.property-name", 375 | "source.less support.type.property-name", 376 | "source.stylus support.type.property-name", 377 | "source.postcss support.type.property-name", 378 | "support.type.property-name.css", 379 | "support.type.vendored.property-name" 380 | ], 381 | "settings": { 382 | "foreground": "{blue}" 383 | } 384 | }, 385 | { 386 | "name": "Sub-methods", 387 | "scope": [ 388 | "entity.name.module.js", 389 | "variable.import.parameter.js", 390 | "variable.other.class.js" 391 | ], 392 | "settings": { 393 | "foreground": "{red}" 394 | } 395 | }, 396 | { 397 | "name": "Language methods", 398 | "scope": ["variable.language"], 399 | "settings": { 400 | "foreground": "{red}", 401 | "fontStyle": "{fontStyle}" 402 | } 403 | }, 404 | { 405 | "name": "entity.name.method.js", 406 | "scope": ["entity.name.method.js"], 407 | "settings": { 408 | "foreground": "{blue}", 409 | "fontStyle": "{fontStyle}" 410 | } 411 | }, 412 | { 413 | "name": "meta.method.js", 414 | "scope": [ 415 | "meta.class-method.js entity.name.function.js", 416 | "variable.function.constructor" 417 | ], 418 | "settings": { 419 | "foreground": "{blue}" 420 | } 421 | }, 422 | { 423 | "name": "Attributes", 424 | "scope": ["entity.other.attribute-name"], 425 | "settings": { 426 | "foreground": "{purple}", 427 | "fontStyle": "{fontStyle}" 428 | } 429 | }, 430 | { 431 | "name": "HTML Attributes", 432 | "scope": [ 433 | "text.html.basic entity.other.attribute-name.html", 434 | "text.html.basic entity.other.attribute-name" 435 | ], 436 | "settings": { 437 | "foreground": "{yellow}" 438 | } 439 | }, 440 | { 441 | "name": "HTML Doctype", 442 | "scope": [ 443 | "meta.tag.metadata.doctype entity.name.tag", 444 | "meta.tag.metadata.doctype entity.other.attribute-name" 445 | ], 446 | "settings": { 447 | "foreground": "{purple}", 448 | "fontStyle": "{fontStyle}" 449 | } 450 | }, 451 | { 452 | "name": "CSS Classes", 453 | "scope": ["entity.other.attribute-name.class"], 454 | "settings": { 455 | "foreground": "{yellow}" 456 | } 457 | }, 458 | { 459 | "name": "CSS ID's", 460 | "scope": ["source.sass keyword.control"], 461 | "settings": { 462 | "foreground": "{blue}" 463 | } 464 | }, 465 | { 466 | "name": "CSS psuedo selectors", 467 | "scope": [ 468 | "entity.other.attribute-name.pseudo-class", 469 | "entity.other.attribute-name.pseudo-element" 470 | ], 471 | "settings": { 472 | "foreground": "{teal}" 473 | } 474 | }, 475 | { 476 | "name": "CSS Property value", 477 | "scope": ["support.constant.property-value"], 478 | "settings": { 479 | "foreground": "{pink}" 480 | } 481 | }, 482 | { 483 | "name": "Inserted", 484 | "scope": ["markup.inserted"], 485 | "settings": { 486 | "foreground": "{green}" 487 | } 488 | }, 489 | { 490 | "name": "Deleted", 491 | "scope": ["markup.deleted"], 492 | "settings": { 493 | "foreground": "{red}" 494 | } 495 | }, 496 | { 497 | "name": "Changed", 498 | "scope": ["markup.changed"], 499 | "settings": { 500 | "foreground": "{purple}" 501 | } 502 | }, 503 | { 504 | "name": "Regular Expressions", 505 | "scope": ["string.regexp"], 506 | "settings": { 507 | "foreground": "{lightCyan}" 508 | } 509 | }, 510 | { 511 | "name": "Regular Expressions - Punctuation", 512 | "scope": ["punctuation.definition.group"], 513 | "settings": { 514 | "foreground": "{red}" 515 | } 516 | }, 517 | { 518 | "name": "Regular Expressions - Character Class", 519 | "scope": [ 520 | "constant.other.character-class.regexp", 521 | "keyword.control.anchor.regexp" 522 | ], 523 | "settings": { 524 | "foreground": "{purple}" 525 | } 526 | }, 527 | { 528 | "name": "Regular Expressions - Character Class Set", 529 | "scope": ["constant.other.character-class.set.regexp"], 530 | "settings": { 531 | "foreground": "{yellow}" 532 | } 533 | }, 534 | { 535 | "name": "Regular Expressions - Quantifier", 536 | "scope": ["keyword.operator.quantifier.regexp"], 537 | "settings": { 538 | "foreground": "{pink}" 539 | } 540 | }, 541 | { 542 | "name": "Escape Characters", 543 | "scope": ["constant.character.escape"], 544 | "settings": { 545 | "foreground": "{cyan}" 546 | } 547 | }, 548 | { 549 | "name": "URL", 550 | "scope": ["*url*", "*link*", "*uri*"], 551 | "settings": { 552 | "fontStyle": "underline" 553 | } 554 | }, 555 | { 556 | "name": "Decorators", 557 | "scope": [ 558 | "meta.decorator.js", 559 | "tag.decorator.js entity.name.tag.js", 560 | "tag.decorator.js punctuation.definition.tag.js" 561 | ], 562 | "settings": { 563 | "foreground": "{blue}", 564 | "fontStyle": "{fontStyle}" 565 | } 566 | }, 567 | { 568 | "name": "CSS Units", 569 | "scope": ["keyword.other.unit"], 570 | "settings": { 571 | "foreground": "{darkOrange}" 572 | } 573 | }, 574 | { 575 | "name": "ES7 Bind Operator", 576 | "scope": [ 577 | "source.js constant.other.object.key.js string.unquoted.label.js" 578 | ], 579 | "settings": { 580 | "foreground": "{red}" 581 | } 582 | }, 583 | { 584 | "name": "JSON Key - Level 0", 585 | "scope": [ 586 | "source.json meta.structure.dictionary.json support.type.property-name.json" 587 | ], 588 | "settings": { 589 | "foreground": "{blue}" 590 | } 591 | }, 592 | { 593 | "name": "JSON Key - Level 1", 594 | "scope": [ 595 | "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" 596 | ], 597 | "settings": { 598 | "foreground": "{purple}" 599 | } 600 | }, 601 | { 602 | "name": "JSON Key - Level 2", 603 | "scope": [ 604 | "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" 605 | ], 606 | "settings": { 607 | "foreground": "{pink}" 608 | } 609 | }, 610 | { 611 | "name": "JSON Key - Level 3", 612 | "scope": [ 613 | "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" 614 | ], 615 | "settings": { 616 | "foreground": "{sky}" 617 | } 618 | }, 619 | { 620 | "name": "JSON Key - Level 4", 621 | "scope": [ 622 | "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" 623 | ], 624 | "settings": { 625 | "foreground": "{yellow}" 626 | } 627 | }, 628 | { 629 | "name": "JSON Key - Level 5", 630 | "scope": [ 631 | "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" 632 | ], 633 | "settings": { 634 | "foreground": "{red}" 635 | } 636 | }, 637 | { 638 | "name": "JSON Key - Level 6", 639 | "scope": [ 640 | "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" 641 | ], 642 | "settings": { 643 | "foreground": "{blue}" 644 | } 645 | }, 646 | { 647 | "name": "Plain Punctuation", 648 | "scope": ["punctuation.definition.list_item.markdown"], 649 | "settings": { 650 | "foreground": "{gray7}" 651 | } 652 | }, 653 | { 654 | "name": "Block Punctuation", 655 | "scope": [ 656 | "meta.block", 657 | "meta.brace", 658 | "punctuation.definition.block", 659 | "punctuation.definition.parameters", 660 | "punctuation.section.function" 661 | ], 662 | "settings": { 663 | "foreground": "{gray8}" 664 | } 665 | }, 666 | { 667 | "name": "Markdown - Plain", 668 | "scope": ["meta.jsx.children", "meta.embedded.block"], 669 | "settings": { 670 | "foreground": "{gray9}" 671 | } 672 | }, 673 | { 674 | "name": "Markdown - Markup Raw Inline", 675 | "scope": ["text.html.markdown markup.inline.raw.markdown"], 676 | "settings": { 677 | "foreground": "{purple}" 678 | } 679 | }, 680 | { 681 | "name": "Markdown - Markup Raw Inline Punctuation", 682 | "scope": [ 683 | "text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown" 684 | ], 685 | "settings": { 686 | "foreground": "{cyan}" 687 | } 688 | }, 689 | { 690 | "name": "Markdown - Heading punctuation", 691 | "scope": [ 692 | "markdown.heading", 693 | "markup.heading | markup.heading entity.name", 694 | "markup.heading.markdown punctuation.definition.heading.markdown" 695 | ], 696 | "settings": { 697 | "foreground": "{cyan}" 698 | } 699 | }, 700 | { 701 | "name": "Markup - Italic", 702 | "scope": ["markup.italic"], 703 | "settings": { 704 | "fontStyle": "italic", 705 | "foreground": "{red}" 706 | } 707 | }, 708 | { 709 | "name": "Markup - Bold", 710 | "scope": ["markup.bold", "markup.bold string"], 711 | "settings": { 712 | "fontStyle": "bold", 713 | "foreground": "{red}" 714 | } 715 | }, 716 | { 717 | "name": "Markup - Bold-Italic", 718 | "scope": [ 719 | "markup.bold markup.italic", 720 | "markup.italic markup.bold", 721 | "markup.quote markup.bold", 722 | "markup.bold markup.italic string", 723 | "markup.italic markup.bold string", 724 | "markup.quote markup.bold string" 725 | ], 726 | "settings": { 727 | "fontStyle": "bold", 728 | "foreground": "{red}" 729 | } 730 | }, 731 | { 732 | "name": "Markup - Underline", 733 | "scope": ["markup.underline"], 734 | "settings": { 735 | "fontStyle": "underline", 736 | "foreground": "{orange}" 737 | } 738 | }, 739 | { 740 | "name": "Markdown - Blockquote", 741 | "scope": ["markup.quote punctuation.definition.blockquote.markdown"], 742 | "settings": { 743 | "foreground": "{cyan}" 744 | } 745 | }, 746 | { 747 | "name": "Markup - Quote", 748 | "scope": ["markup.quote"], 749 | "settings": { 750 | "fontStyle": "italic" 751 | } 752 | }, 753 | { 754 | "name": "Markdown - Link", 755 | "scope": ["string.other.link.title.markdown"], 756 | "settings": { 757 | "foreground": "{blue}" 758 | } 759 | }, 760 | { 761 | "name": "Markdown - Link Description", 762 | "scope": ["string.other.link.description.title.markdown"], 763 | "settings": { 764 | "foreground": "{purple}" 765 | } 766 | }, 767 | { 768 | "name": "Markdown - Link Anchor", 769 | "scope": ["constant.other.reference.link.markdown"], 770 | "settings": { 771 | "foreground": "{yellow}" 772 | } 773 | }, 774 | { 775 | "name": "Markup - Raw Block", 776 | "scope": ["markup.raw.block"], 777 | "settings": { 778 | "foreground": "{purple}" 779 | } 780 | }, 781 | { 782 | "name": "Markdown - Fenced Bode Block Variable", 783 | "scope": [ 784 | "markup.fenced_code.block.markdown", 785 | "markup.inline.raw.string.markdown" 786 | ], 787 | "settings": { 788 | "foreground": "{cyan}" 789 | } 790 | }, 791 | { 792 | "name": "Markdown - Fenced Language", 793 | "scope": ["variable.language.fenced.markdown"], 794 | "settings": { 795 | "foreground": "{cyan}" 796 | } 797 | }, 798 | { 799 | "name": "Markdown - Separator", 800 | "scope": ["meta.separator"], 801 | "settings": { 802 | "fontStyle": "bold", 803 | "foreground": "{cyan}" 804 | } 805 | }, 806 | { 807 | "name": "Markup - Table", 808 | "scope": ["markup.table"], 809 | "settings": { 810 | "foreground": "{gray7}" 811 | } 812 | }, 813 | { 814 | "scope": "token.info-token", 815 | "settings": { 816 | "foreground": "{sky}" 817 | } 818 | }, 819 | { 820 | "scope": "token.warn-token", 821 | "settings": { 822 | "foreground": "{yellow}" 823 | } 824 | }, 825 | { 826 | "scope": "token.error-token", 827 | "settings": { 828 | "foreground": "{red}" 829 | } 830 | }, 831 | { 832 | "scope": "token.debug-token", 833 | "settings": { 834 | "foreground": "{purple}" 835 | } 836 | }, 837 | { 838 | "name": "Go package name", 839 | "scope": "source.go entity.name.package", 840 | "settings": { 841 | "foreground": "{gray10}" 842 | } 843 | }, 844 | { 845 | "name": "Go package imports", 846 | "scope": "source.go entity.name.import", 847 | "settings": { 848 | "foreground": "{green}" 849 | } 850 | }, 851 | { 852 | "name": "Go constant placeholder", 853 | "scope": ["source.go constant.other.placeholder"], 854 | "settings": { 855 | "foreground": "{lightRed}" 856 | } 857 | }, 858 | { 859 | "name": "Go language constant", 860 | "scope": ["source.go constant.language"], 861 | "settings": { 862 | "foreground": "{purple}" 863 | } 864 | }, 865 | { 866 | "name": "Go types", 867 | "scope": ["source.go storage.type"], 868 | "settings": { 869 | "foreground": "{teal}", 870 | "fontStyle": "{fontStyle}" 871 | } 872 | }, 873 | { 874 | "name": "Go variable declaration and assignment", 875 | "scope": [ 876 | "source.go variable.other.assignment", 877 | "source.go variable.other.declaration" 878 | ], 879 | "settings": { 880 | "foreground": "{lightRed}" 881 | } 882 | } 883 | ] 884 | } 885 | -------------------------------------------------------------------------------- /src/moonlight.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "vscode://schemas/color-theme", 3 | "name": "moonlight", 4 | "type": "dark", 5 | "semanticHighlighting": true, 6 | "semanticTokenColors": { 7 | "function": "{blue}", 8 | "method.declaration": "{blue}", 9 | "function.defaultLibrary": "{sky}", 10 | "method": "{sky}", 11 | "property": "{gray8}", 12 | "property.declaration": "{green}", 13 | "property.readonly": "{lightCyan}", 14 | "variable.defaultLibrary": "{yellow}", 15 | "class.builtin": "{orange}", 16 | "selfParameter": "{red}", 17 | "module": "{gray10}" 18 | }, 19 | "tokenColors": [ 20 | { 21 | "settings": { 22 | "background": "{gray4}", 23 | "foreground": "{gray10}" 24 | } 25 | }, 26 | { 27 | "name": "Comment", 28 | "scope": ["comment", "punctuation.definition.comment"], 29 | "settings": { 30 | "foreground": "{saturatedGray}", 31 | "fontStyle": "{fontStyle}" 32 | } 33 | }, 34 | { 35 | "name": "Variables", 36 | "scope": ["variable", "string constant.other.placeholder"], 37 | "settings": { 38 | "foreground": "{gray10}" 39 | } 40 | }, 41 | { 42 | "name": "PHP Constants", 43 | "scope": ["constant.other.php"], 44 | "settings": { 45 | "foreground": "{yellow}" 46 | } 47 | }, 48 | { 49 | "name": "Colors", 50 | "scope": ["constant.other.color"], 51 | "settings": { 52 | "foreground": "{gray10}" 53 | } 54 | }, 55 | { 56 | "name": "Text", 57 | "scope": ["text", "meta.jsx.children"], 58 | "settings": { 59 | "foreground": "{gray10}" 60 | } 61 | }, 62 | { 63 | "name": "Invalid", 64 | "scope": ["invalid", "invalid.illegal"], 65 | "settings": { 66 | "foreground": "{darkRed}" 67 | } 68 | }, 69 | { 70 | "name": "Invalid deprecated", 71 | "scope": ["invalid.deprecated"], 72 | "settings": { 73 | "foreground": "{indigo}" 74 | } 75 | }, 76 | { 77 | "name": "Keyword, Storage", 78 | "scope": ["keyword", "storage.type", "storage.modifier"], 79 | "settings": { 80 | "foreground": "{indigo}", 81 | "fontStyle": "{fontStyle}" 82 | } 83 | }, 84 | { 85 | "name": "Keyword Flow", 86 | "scope": ["keyword.control.flow"], 87 | "settings": { 88 | "foreground": "{cyan}", 89 | "fontStyle": "{fontStyle}" 90 | } 91 | }, 92 | { 93 | "name": "Operator, Misc", 94 | "scope": [ 95 | "keyword.control.import", 96 | "keyword.control.export", 97 | "keyword.control.from", 98 | "keyword.control.as", 99 | "keyword.control.default", 100 | "constant.other.color", 101 | "punctuation", 102 | "meta.tag", 103 | "meta.block", 104 | "punctuation.definition.tag", 105 | "punctuation.separator.inheritance.php", 106 | "punctuation.definition.tag.html", 107 | "keyword.other.template", 108 | "keyword.other.substitution", 109 | "keyword.operator", 110 | "meta.brace", 111 | "string.other.begin.code", 112 | "string.other.end.code" 113 | ], 114 | "settings": { 115 | "foreground": "{cyan}", 116 | "fontStyle": "normal" 117 | } 118 | }, 119 | { 120 | "name": "Dark Punctuation", 121 | "scope": ["punctuation.definition.template-expression"], 122 | "settings": { 123 | "foreground": "{red}" 124 | } 125 | }, 126 | { 127 | "name": "Other Operator", 128 | "scope": ["keyword.operator.logical", "keyword.operator.comparison"], 129 | "settings": { 130 | "foreground": "{indigo}" 131 | } 132 | }, 133 | { 134 | "name": "Spread/Rest Operator", 135 | "scope": ["keyword.operator.spread", "keyword.operator.rest"], 136 | "settings": { 137 | "foreground": "{red}", 138 | "fontStyle": "bold" 139 | } 140 | }, 141 | { 142 | "name": "Tag", 143 | "scope": [ 144 | "entity.name.tag", 145 | "meta.tag.sgml", 146 | "markup.deleted.git_gutter" 147 | ], 148 | "settings": { 149 | "foreground": "{red}" 150 | } 151 | }, 152 | { 153 | "name": "Function, Special Method", 154 | "scope": [ 155 | "entity.name.function", 156 | "variable.function", 157 | "keyword.other.special-method", 158 | "meta.function-call.generic" 159 | ], 160 | "settings": { 161 | "foreground": "{blue}" 162 | } 163 | }, 164 | { 165 | "name": "Support Function", 166 | "scope": ["support.function", "meta.function-call entity.name.function"], 167 | "settings": { 168 | "foreground": "{blue}" 169 | } 170 | }, 171 | { 172 | "name": "C-related Block Level Variables", 173 | "scope": ["source.cpp meta.block variable.other"], 174 | "settings": { 175 | "foreground": "{red}" 176 | } 177 | }, 178 | { 179 | "name": "Object Property", 180 | "scope": ["variable.other.object.property"], 181 | "settings": { 182 | "foreground": "{cyan}" 183 | } 184 | }, 185 | { 186 | "name": "Object Property - Last", 187 | "scope": ["support.variable.property", "variable.other.property"], 188 | "settings": { 189 | "foreground": "{gray8}" 190 | } 191 | }, 192 | { 193 | "name": "Object Literal Key", 194 | "scope": [ 195 | "meta.object-literal.key", 196 | "entity.name.label.js", 197 | "string.unquoted", 198 | "meta.field.declaration.ts variable.object.property", 199 | "variable.object.property" 200 | ], 201 | "settings": { 202 | "foreground": "{green}" 203 | } 204 | }, 205 | { 206 | "name": "DOM", 207 | "scope": [ 208 | "support.variable.dom", 209 | "support.constant.json", 210 | "support.constant.math" 211 | ], 212 | "settings": { 213 | "foreground": "{yellow}" 214 | } 215 | }, 216 | { 217 | "name": "Node", 218 | "scope": [ 219 | "support.variable.object.node", 220 | "support.variable.object.process" 221 | ], 222 | "settings": { 223 | "foreground": "{yellow}" 224 | } 225 | }, 226 | { 227 | "name": "Other Variable, String Link", 228 | "scope": ["support.other.variable", "string.other.link"], 229 | "settings": { 230 | "foreground": "{red}" 231 | } 232 | }, 233 | { 234 | "name": "Constant, Function Argument, Tag Attribute, Embedded", 235 | "scope": [ 236 | "constant.language", 237 | "support.constant", 238 | "constant.escape", 239 | "keyword.other.unit" 240 | ], 241 | "settings": { 242 | "foreground": "{lightRed}" 243 | } 244 | }, 245 | { 246 | "name": "Constant Character", 247 | "scope": ["constant.character"], 248 | "settings": { 249 | "foreground": "{red}" 250 | } 251 | }, 252 | { 253 | "name": "Number", 254 | "scope": [ 255 | "constant.numeric", 256 | "constant.language.infinity", 257 | "constant.language.nan" 258 | ], 259 | "settings": { 260 | "foreground": "{orange}" 261 | } 262 | }, 263 | { 264 | "name": "Undefined and Null", 265 | "scope": ["constant.language.undefined", "constant.language.null"], 266 | "settings": { 267 | "foreground": "{desaturatedGray}" 268 | } 269 | }, 270 | { 271 | "name": "Number, Constant, Function Argument, Tag Attribute, Embedded", 272 | "scope": [ 273 | "variable.parameter.function.language.special", 274 | "variable.parameter" 275 | ], 276 | "settings": { 277 | "foreground": "{pink}" 278 | } 279 | }, 280 | { 281 | "name": "String, Symbols, Inherited Class, Markup Heading", 282 | "scope": [ 283 | "string", 284 | "constant.other.symbol", 285 | "constant.other.key", 286 | "entity.other.inherited-class", 287 | "markup.heading", 288 | "markup.inserted.git_gutter", 289 | "meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js" 290 | ], 291 | "settings": { 292 | "fontStyle": "normal", 293 | "foreground": "{lightTeal}" 294 | } 295 | }, 296 | { 297 | "name": "Class, Support", 298 | "scope": [ 299 | "entity.name", 300 | "support.type", 301 | "support.class", 302 | "support.orther.namespace.use.php", 303 | "meta.use.php", 304 | "support.other.namespace.php", 305 | "markup.changed.git_gutter", 306 | "support.type.sys-types", 307 | "support.type.object.module" 308 | ], 309 | "settings": { 310 | "foreground": "{yellow}" 311 | } 312 | }, 313 | { 314 | "name": "JSX Component", 315 | "scope": ["support.class.component"], 316 | "settings": { 317 | "foreground": "{darkPink}" 318 | } 319 | }, 320 | { 321 | "name": "Entity Types", 322 | "scope": ["support.type"], 323 | "settings": { 324 | "foreground": "{orange}" 325 | } 326 | }, 327 | { 328 | "name": "CSS psuedo-element and psuedo-class", 329 | "scope": [ 330 | "entity.other.attribute-name.pseudo-class", 331 | "entity.other.attribute-name.pseudo-element" 332 | ], 333 | "settings": { 334 | "foreground": "{green}" 335 | } 336 | }, 337 | { 338 | "name": "CSS unit", 339 | "scope": ["keyword.other.unit"], 340 | "settings": { 341 | "foreground": "{lightRed}" 342 | } 343 | }, 344 | { 345 | "name": "Sub-methods", 346 | "scope": [ 347 | "entity.name.module.js", 348 | "variable.import.parameter.js", 349 | "variable.other.class.js" 350 | ], 351 | "settings": { 352 | "foreground": "{darkRed}" 353 | } 354 | }, 355 | { 356 | "name": "Language methods", 357 | "scope": ["variable.language"], 358 | "settings": { 359 | "foreground": "{red}" 360 | } 361 | }, 362 | { 363 | "name": "meta.method.js", 364 | "scope": [ 365 | "meta.class-method.js entity.name.function.js", 366 | "variable.function.constructor" 367 | ], 368 | "settings": { 369 | "foreground": "{blue}" 370 | } 371 | }, 372 | { 373 | "name": "Attributes", 374 | "scope": ["entity.other.attribute-name"], 375 | "settings": { 376 | "foreground": "{lightOrange}", 377 | "fontStyle": "{fontStyle}" 378 | } 379 | }, 380 | { 381 | "name": "HTML Attributes", 382 | "scope": [ 383 | "text.html.basic entity.other.attribute-name.html", 384 | "text.html.basic entity.other.attribute-name" 385 | ], 386 | "settings": { 387 | "foreground": "{lightOrange}", 388 | "fontStyle": "{fontStyle}" 389 | } 390 | }, 391 | { 392 | "name": "HTML Doctype", 393 | "scope": [ 394 | "meta.tag.metadata.doctype entity.name.tag", 395 | "meta.tag.metadata.doctype entity.other.attribute-name" 396 | ], 397 | "settings": { 398 | "foreground": "{indigo}", 399 | "fontStyle": "{fontStyle}" 400 | } 401 | }, 402 | { 403 | "name": "CSS Punctuation", 404 | "scope": ["source.css"], 405 | "settings": { 406 | "foreground": "{cyan}" 407 | } 408 | }, 409 | { 410 | "name": "CSS Classes", 411 | "scope": ["entity.other.attribute-name.class"], 412 | "settings": { 413 | "foreground": "{yellow}" 414 | } 415 | }, 416 | { 417 | "name": "CSS Property", 418 | "scope": ["support.type.property-name.css", "support.type.property-name"], 419 | "settings": { 420 | "foreground": "{blue}" 421 | } 422 | }, 423 | { 424 | "name": "CSS Unknown Property and Vendor Prefix", 425 | "scope": [ 426 | "meta.property-name.css", 427 | "meta.property-name.scss", 428 | "meta.property-name.less", 429 | "support.type.vendored.property-name" 430 | ], 431 | "settings": { 432 | "foreground": "{gray8}" 433 | } 434 | }, 435 | { 436 | "name": "CSS Value", 437 | "scope": [ 438 | "support.constant.property-value.css", 439 | "meta.property-value", 440 | "support.constant.font-name.css", 441 | "support.constant.vendored.property-value.css" 442 | ], 443 | "settings": { 444 | "foreground": "{lightCyan}" 445 | } 446 | }, 447 | { 448 | "name": "CSS Keyframes Name", 449 | "scope": [ 450 | "variable.parameter.keyframe-list", 451 | "meta.at-rule.keyframes entity.name.function" 452 | ], 453 | "settings": { 454 | "foreground": "{pink}" 455 | } 456 | }, 457 | { 458 | "name": "CSS Keyframe Offset", 459 | "scope": [ 460 | "entity.other.keyframe-offset", 461 | "meta.at-rule.keyframes entity.other.attribute-name" 462 | ], 463 | "settings": { 464 | "foreground": "{green}" 465 | } 466 | }, 467 | { 468 | "name": "CSS Strings", 469 | "scope": ["meta.attribute-selector", "markup.inline.raw.code"], 470 | "settings": { 471 | "foreground": "{lightTeal}" 472 | } 473 | }, 474 | { 475 | "name": "CSS ID's", 476 | "scope": ["source.sass keyword.control"], 477 | "settings": { 478 | "foreground": "{blue}" 479 | } 480 | }, 481 | { 482 | "name": "CSS Units", 483 | "scope": ["keyword.other.unit"], 484 | "settings": { 485 | "foreground": "{darkOrange}" 486 | } 487 | }, 488 | { 489 | "name": "Inserted", 490 | "scope": ["markup.inserted"], 491 | "settings": { 492 | "foreground": "{green}" 493 | } 494 | }, 495 | { 496 | "name": "Deleted", 497 | "scope": ["markup.deleted"], 498 | "settings": { 499 | "foreground": "{darkRed}" 500 | } 501 | }, 502 | { 503 | "name": "Changed", 504 | "scope": ["markup.changed"], 505 | "settings": { 506 | "foreground": "{indigo}" 507 | } 508 | }, 509 | { 510 | "name": "Regular Expressions", 511 | "scope": ["string.regexp"], 512 | "settings": { 513 | "foreground": "{lightCyan}" 514 | } 515 | }, 516 | { 517 | "name": "Regular Expressions - Character Class", 518 | "scope": ["constant.other.character-class.regexp"], 519 | "settings": { 520 | "foreground": "{green}" 521 | } 522 | }, 523 | { 524 | "name": "Regular Expressions - Character Class Set", 525 | "scope": ["constant.other.character-class.set.regexp"], 526 | "settings": { 527 | "foreground": "{yellow}" 528 | } 529 | }, 530 | { 531 | "name": "Regular Expressions - Quantifier", 532 | "scope": ["keyword.operator.quantifier.regexp"], 533 | "settings": { 534 | "foreground": "{pink}" 535 | } 536 | }, 537 | { 538 | "name": "Escape Characters", 539 | "scope": ["constant.character.escape"], 540 | "settings": { 541 | "foreground": "{cyan}" 542 | } 543 | }, 544 | { 545 | "name": "URL", 546 | "scope": ["*url*", "*link*", "*uri*"], 547 | "settings": { 548 | "fontStyle": "underline" 549 | } 550 | }, 551 | { 552 | "name": "Decorators", 553 | "scope": [ 554 | "meta.decorator.js", 555 | "tag.decorator.js entity.name.tag.js", 556 | "tag.decorator.js punctuation.definition.tag.js" 557 | ], 558 | "settings": { 559 | "foreground": "{blue}", 560 | "fontStyle": "{fontStyle}" 561 | } 562 | }, 563 | { 564 | "name": "ES7 Bind Operator", 565 | "scope": [ 566 | "source.js constant.other.object.key.js string.unquoted.label.js" 567 | ], 568 | "settings": { 569 | "foreground": "{red}", 570 | "fontStyle": "{fontStyle}" 571 | } 572 | }, 573 | { 574 | "name": "JSON Key - Level 0", 575 | "scope": [ 576 | "source.json meta.structure.dictionary.json support.type.property-name.json" 577 | ], 578 | "settings": { 579 | "foreground": "{blue}" 580 | } 581 | }, 582 | { 583 | "name": "JSON Key - Level 1", 584 | "scope": [ 585 | "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" 586 | ], 587 | "settings": { 588 | "foreground": "{green}" 589 | } 590 | }, 591 | { 592 | "name": "JSON Key - Level 2", 593 | "scope": [ 594 | "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" 595 | ], 596 | "settings": { 597 | "foreground": "{pink}" 598 | } 599 | }, 600 | { 601 | "name": "JSON Key - Level 3", 602 | "scope": [ 603 | "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" 604 | ], 605 | "settings": { 606 | "foreground": "{yellow}" 607 | } 608 | }, 609 | { 610 | "name": "JSON Key - Level 4", 611 | "scope": [ 612 | "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" 613 | ], 614 | "settings": { 615 | "foreground": "{sky}" 616 | } 617 | }, 618 | { 619 | "name": "JSON Key - Level 5", 620 | "scope": [ 621 | "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" 622 | ], 623 | "settings": { 624 | "foreground": "{red}" 625 | } 626 | }, 627 | { 628 | "name": "JSON Key - Level 6", 629 | "scope": [ 630 | "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" 631 | ], 632 | "settings": { 633 | "foreground": "{red}" 634 | } 635 | }, 636 | { 637 | "name": "Markdown", 638 | "scope": ["text.html.markdown", "meta.embedded.block"], 639 | "settings": { 640 | "foreground": "{gray10}" 641 | } 642 | }, 643 | { 644 | "name": "Markdown - Markup Raw Inline", 645 | "scope": ["text.html.markdown markup.inline.raw.markdown"], 646 | "settings": { 647 | "foreground": "{indigo}" 648 | } 649 | }, 650 | { 651 | "name": "Markdown - Markup Raw Inline Punctuation", 652 | "scope": [ 653 | "text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown" 654 | ], 655 | "settings": { 656 | "foreground": "{cyan}" 657 | } 658 | }, 659 | { 660 | "name": "Markdown - Heading Punctuation", 661 | "scope": [ 662 | "markdown.heading", 663 | "markup.heading | markup.heading entity.name", 664 | "markup.heading.markdown punctuation.definition.heading.markdown" 665 | ], 666 | "settings": { 667 | "foreground": "{cyan}" 668 | } 669 | }, 670 | { 671 | "name": "Markdown - Heading", 672 | "scope": ["entity.name.section.markdown"], 673 | "settings": { 674 | "foreground": "{blue}" 675 | } 676 | }, 677 | { 678 | "name": "Markup - Italic", 679 | "scope": ["markup.italic"], 680 | "settings": { 681 | "fontStyle": "italic", 682 | "foreground": "{red}" 683 | } 684 | }, 685 | { 686 | "name": "Markup - Bold", 687 | "scope": ["markup.bold", "markup.bold string"], 688 | "settings": { 689 | "fontStyle": "bold", 690 | "foreground": "{red}" 691 | } 692 | }, 693 | { 694 | "name": "Markup - Bold-Italic", 695 | "scope": [ 696 | "markup.bold markup.italic", 697 | "markup.italic markup.bold", 698 | "markup.quote markup.bold", 699 | "markup.bold markup.italic string", 700 | "markup.italic markup.bold string", 701 | "markup.quote markup.bold string" 702 | ], 703 | "settings": { 704 | "fontStyle": "bold", 705 | "foreground": "{red}" 706 | } 707 | }, 708 | { 709 | "name": "Markup - Underline", 710 | "scope": ["markup.underline"], 711 | "settings": { 712 | "fontStyle": "underline", 713 | "foreground": "{sky}" 714 | } 715 | }, 716 | { 717 | "name": "Markup - Strike", 718 | "scope": ["markup.strike"], 719 | "settings": { 720 | "fontStyle": "strike" 721 | } 722 | }, 723 | { 724 | "name": "Markdown - Blockquote", 725 | "scope": ["markup.quote punctuation.definition.blockquote.markdown"], 726 | "settings": { 727 | "foreground": "{gray8}" 728 | } 729 | }, 730 | { 731 | "name": "Markup - Quote", 732 | "scope": ["markup.quote"], 733 | "settings": { 734 | "fontStyle": "italic" 735 | } 736 | }, 737 | { 738 | "name": "Markdown - Link Text", 739 | "scope": ["string.other.link.title.markdown"], 740 | "settings": { 741 | "foreground": "{lightCyan}" 742 | } 743 | }, 744 | { 745 | "name": "Markdown - Link Anchor", 746 | "scope": ["constant.other.reference.link.markdown"], 747 | "settings": { 748 | "foreground": "{yellow}" 749 | } 750 | }, 751 | { 752 | "name": "Markup - Raw Block", 753 | "scope": ["markup.raw.block"], 754 | "settings": { 755 | "foreground": "{indigo}" 756 | } 757 | }, 758 | { 759 | "name": "Markdown - Fenced Bode Block Variable", 760 | "scope": [ 761 | "markup.fenced_code.block.markdown", 762 | "markup.inline.raw.string.markdown" 763 | ], 764 | "settings": { 765 | "foreground": "{cyan}" 766 | } 767 | }, 768 | { 769 | "name": "Markdown - Fenced Language", 770 | "scope": ["variable.language.fenced.markdown"], 771 | "settings": { 772 | "foreground": "{gray8}" 773 | } 774 | }, 775 | { 776 | "name": "Markdown - Separator", 777 | "scope": ["meta.separator"], 778 | "settings": { 779 | "fontStyle": "bold", 780 | "foreground": "{gray8}" 781 | } 782 | }, 783 | { 784 | "name": "Markup - Table", 785 | "scope": ["markup.table"], 786 | "settings": { 787 | "foreground": "{gray9}" 788 | } 789 | } 790 | ] 791 | } 792 | -------------------------------------------------------------------------------- /src/ui.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "vscode://schemas/color-theme", 3 | "colors": { 4 | "foreground":"{gray10}", 5 | "focusBorder":"{blue}aa", 6 | "contrastBorder":"{gray2}", 7 | "editorCursor.foreground":"{blue}", 8 | "editorRuler.foreground":"{gray6}bb", 9 | "scrollbar.shadow":"#00000022", 10 | "tree.indentGuidesStroke":"{gray7}66", 11 | "editorLink.activeForeground":"{gray10}", 12 | "selection.background":"{gray5}", 13 | "progressBar.background":"{blue}", 14 | "textLink.foreground":"{sky}", 15 | "textLink.activeForeground":"{cyan}", 16 | "editorLineNumber.foreground":"{gray6}", 17 | "editorLineNumber.activeForeground":"{gray7}", 18 | "editorBracketMatch.border":"{blue}bb", 19 | "editorBracketMatch.background":"{gray4}", 20 | "editorWhitespace.foreground":"{gray10}40", 21 | "editor.background":"{gray4}", 22 | "editor.foreground":"{gray10}", 23 | "editor.lineHighlightBackground":"{gray5}", 24 | "editor.selectionBackground":"{gray7}50", 25 | "editor.selectionHighlightBackground":"{gray6}", 26 | "editor.findMatchBackground":"{gray6}", 27 | "editor.findMatchBorder":"{cyan}", 28 | "editor.findMatchHighlightBackground":"{gray6}", 29 | "editorInlayHint.foreground":"{gray7}", 30 | "editorInlayHint.background":"{gray5}", 31 | "editorOverviewRuler.findMatchForeground":"{cyan}bb", 32 | "editorOverviewRuler.errorForeground":"{red}cc", 33 | "editorOverviewRuler.infoForeground":"{sky}66", 34 | "editorOverviewRuler.warningForeground":"{yellow}cc", 35 | "editorOverviewRuler.modifiedForeground":"{blue}66", 36 | "editorOverviewRuler.addedForeground":"{green}66", 37 | "editorOverviewRuler.deletedForeground":"{lightRed}66", 38 | "editorOverviewRuler.bracketMatchForeground":"{darkestBlue}bb", 39 | "editorOverviewRuler.border":"{gray4}", 40 | "editorHoverWidget.background":"{gray2}", 41 | "editorHoverWidget.border":"#000000aa", 42 | "editorIndentGuide.background":"{gray6}bb", 43 | "editorIndentGuide.activeBackground":"{gray7}aa", 44 | "editorGroupHeader.tabsBackground":"{gray3}", 45 | "editorGroup.border":"{gray2}", 46 | "editorGutter.modifiedBackground":"{blue}66", 47 | "editorGutter.addedBackground":"{green}66", 48 | "editorGutter.deletedBackground":"{darkRed}aa", 49 | "tab.activeBorder":"{blue}", 50 | "tab.activeModifiedBorder":"{gray7}", 51 | "tab.unfocusedActiveBorder":"{gray7}", 52 | "tab.activeForeground":"{gray10}", 53 | "tab.activeBackground":"{gray4}", 54 | "tab.inactiveForeground":"{gray7}", 55 | "tab.inactiveBackground":"{gray3}", 56 | "tab.unfocusedActiveForeground":"{gray10}", 57 | "tab.border":"{gray2}", 58 | "statusBar.noFolderBackground":"{gray4}", 59 | "statusBar.border":"{gray2}", 60 | "statusBar.background":"{gray3}", 61 | "statusBar.foreground":"{gray7}", 62 | "statusBar.debuggingBackground":"{blue}", 63 | "statusBar.debuggingForeground":"{gray1}", 64 | "statusBarItem.hoverBackground":"{gray7}20", 65 | "activityBar.background":"{gray3}", 66 | "activityBar.border":"{gray4}60", 67 | "activityBar.foreground":"{gray9}", 68 | "activityBarBadge.background":"{darkestBlue}", 69 | "activityBarBadge.foreground":"#ffffffee", 70 | "titleBar.activeBackground":"{gray3}", 71 | "titleBar.activeForeground":"{gray10}", 72 | "titleBar.inactiveBackground":"{gray3}", 73 | "titleBar.inactiveForeground":"{gray7}", 74 | "sideBar.background":"{gray3}", 75 | "sideBar.foreground":"{gray7}", 76 | "sideBar.border":"{gray2}", 77 | "titleBar.border":"{gray2}", 78 | "sideBarTitle.foreground":"{gray10}", 79 | "sideBarSectionHeader.background":"{gray3}", 80 | "sideBarSectionHeader.border":"{gray5}", 81 | "input.background":"{gray2}", 82 | "input.foreground":"{gray10}", 83 | "input.placeholderForeground":"{gray10}aa", 84 | "input.border":"#00000066", 85 | "inputValidation.errorBackground":"#c53b53", 86 | "inputValidation.errorForeground":"#ffffff", 87 | "inputValidation.errorBorder":"{darkRed}50", 88 | "inputValidation.infoBackground":"#446bbb", 89 | "inputValidation.infoForeground":"#ffffff", 90 | "inputValidation.infoBorder":"{blue}50", 91 | "inputValidation.warningBackground":"#ad7c43", 92 | "inputValidation.warningForeground":"#ffffff", 93 | "inputValidation.warningBorder":"{yellow}50", 94 | "dropdown.foreground":"{gray10}", 95 | "dropdown.background":"{gray5}", 96 | "dropdown.border":"#00000066", 97 | "list.hoverForeground":"{gray10}", 98 | "list.hoverBackground":"{gray4}", 99 | "list.activeSelectionBackground":"{gray5}", 100 | "list.activeSelectionForeground":"#ffffff", 101 | "list.inactiveSelectionForeground":"{gray10}", 102 | "list.inactiveSelectionBackground":"{gray5}", 103 | "list.focusBackground":"{gray4}", 104 | "list.focusForeground":"{gray10}", 105 | "list.highlightForeground":"{cyan}", 106 | "list.warningForeground":"{yellow}cc", 107 | "terminal.foreground":"{gray11}", 108 | "terminal.selectionBackground":"{gray10}44", 109 | "terminal.ansiWhite":"{gray10}", 110 | "terminal.ansiBlack":"#000000", 111 | "terminal.ansiBlue":"{blue}", 112 | "terminal.ansiCyan":"{cyan}", 113 | "terminal.ansiGreen":"{green}", 114 | "terminal.ansiMagenta":"{pink}", 115 | "terminal.ansiRed":"{red}", 116 | "terminal.ansiYellow":"{yellow}", 117 | "terminal.ansiBrightWhite":"{gray10}", 118 | "terminal.ansiBrightBlack":"{gray7}", 119 | "terminal.ansiBrightBlue":"{blue}", 120 | "terminal.ansiBrightCyan":"{cyan}", 121 | "terminal.ansiBrightGreen":"{green}", 122 | "terminal.ansiBrightMagenta":"{pink}", 123 | "terminal.ansiBrightRed":"{red}", 124 | "terminal.ansiBrightYellow":"{yellow}", 125 | "terminal.border":"{gray5}", 126 | "scrollbarSlider.background":"{gray7}30", 127 | "scrollbarSlider.hoverBackground":"{gray8}30", 128 | "scrollbarSlider.activeBackground":"{blue}", 129 | "minimap.findMatchHighlight":"{cyan}cc", 130 | "minimap.selectionHighlight":"{cyan}33", 131 | "minimapGutter.addedBackground":"{green}66", 132 | "minimapGutter.modifiedBackground":"{blue}66", 133 | "editorSuggestWidget.background":"{gray2}", 134 | "editorSuggestWidget.foreground":"{gray8}", 135 | "editorSuggestWidget.highlightForeground":"{cyan}", 136 | "editorSuggestWidget.selectedBackground":"{gray5}", 137 | "editorSuggestWidget.border":"#00000033", 138 | "editorError.foreground":"{darkRed}", 139 | "editorWarning.foreground":"{yellow}cc", 140 | "editorWidget.background":"{gray3}", 141 | "editorWidget.resizeBorder":"{blue}", 142 | "editorMarkerNavigation.background":"{gray10}05", 143 | "widget.shadow":"#00000033", 144 | "panel.border":"#00000033", 145 | "panel.background":"{gray3}", 146 | "panel.dropBackground":"{gray10}", 147 | "panelTitle.inactiveForeground":"{gray7}", 148 | "panelTitle.activeForeground":"{gray10}", 149 | "panelTitle.activeBorder":"{blue}", 150 | "terminalCursor.foreground":"{blue}", 151 | "diffEditor.insertedTextBackground":"{green}15", 152 | "diffEditor.removedTextBackground":"{darkRed}20", 153 | "notifications.background":"{gray5}", 154 | "notifications.foreground":"{gray10}", 155 | "notificationLink.foreground":"{blue}", 156 | "badge.background":"{darkestBlue}", 157 | "badge.foreground":"#ffffffee", 158 | "button.background":"{darkestBlue}", 159 | "button.hoverBackground":"{darkBlue}", 160 | "button.secondaryBackground": "{gray7}99", 161 | "button.secondaryHoverBackground": "{gray7}", 162 | "button.secondaryForeground": "#ffffff", 163 | "button.foreground":"#ffffff", 164 | "extensionButton.prominentBackground":"{darkestBlue}", 165 | "extensionButton.prominentHoverBackground":"{sky}cc", 166 | "peekView.border":"#00000030", 167 | "peekViewEditor.background":"{gray10}05", 168 | "peekViewTitle.background":"{gray10}05", 169 | "peekViewResult.background":"{gray10}05", 170 | "peekViewEditorGutter.background":"{gray10}05", 171 | "peekViewTitleDescription.foreground":"{gray10}60", 172 | "peekViewResult.matchHighlightBackground":"{gray7}50", 173 | "peekViewEditor.matchHighlightBackground":"{gray7}50", 174 | "debugToolBar.background":"{gray3}", 175 | "pickerGroup.foreground":"{blue}", 176 | "gitDecoration.deletedResourceForeground":"{darkRed}dd", 177 | "gitDecoration.conflictingResourceForeground":"{yellow}cc", 178 | "gitDecoration.modifiedResourceForeground":"{blue}ee", 179 | "gitDecoration.untrackedResourceForeground":"{lightTeal}cc", 180 | "gitDecoration.ignoredResourceForeground":"#777fabaa", 181 | "gitlens.trailingLineForegroundColor":"{gray7}aa", 182 | "editorCodeLens.foreground":"{gray7}", 183 | "peekViewResult.selectionBackground":"{gray7}70", 184 | "breadcrumb.background":"{gray4}", 185 | "breadcrumb.foreground":"{gray7}", 186 | "breadcrumb.focusForeground":"{gray10}", 187 | "breadcrumb.activeSelectionForeground":"{blue}", 188 | "breadcrumbPicker.background":"{gray3}", 189 | "menu.background":"{gray3}", 190 | "menu.foreground":"{gray10}", 191 | "menu.selectionBackground":"#00000050", 192 | "menu.selectionForeground":"{blue}", 193 | "menu.selectionBorder":"#00000030", 194 | "menu.separatorBackground":"{gray10}", 195 | "menubar.selectionBackground":"#00000030", 196 | "menubar.selectionForeground":"{blue}", 197 | "menubar.selectionBorder":"#00000030", 198 | "settings.dropdownForeground":"{gray10}", 199 | "settings.dropdownBackground":"{gray5}", 200 | "settings.dropdownBorder":"{gray2}", 201 | "settings.numberInputForeground":"{gray10}", 202 | "settings.numberInputBackground":"{gray2}", 203 | "settings.numberInputBorder":"#00000066", 204 | "settings.textInputForeground":"{gray10}", 205 | "settings.textInputBackground":"{gray2}", 206 | "settings.textInputBorder":"#00000066", 207 | "settings.headerForeground":"{blue}", 208 | "settings.modifiedItemIndicator":"{blue}", 209 | "settings.checkboxBackground":"{gray1}", 210 | "settings.checkboxForeground":"{gray10}", 211 | "settings.checkboxBorder":"#00000066" 212 | } 213 | } -------------------------------------------------------------------------------- /tests/clj.clj: -------------------------------------------------------------------------------- 1 | (defn vector 2 | "Creates a new vector containing the args." 3 | {:added "1.0" 4 | :static true} 5 | ([] []) 6 | ([a] [a]) 7 | ([a b] [a b]) 8 | ([a b c] [a b c]) 9 | ([a b c d] [a b c d]) 10 | ([a b c d e] [a b c d e]) 11 | ([a b c d e f] [a b c d e f]) 12 | ([a b c d e f & args] 13 | (. clojure.lang.LazilyPersistentVector (create (cons a (cons b (cons c (cons d (cons e (cons f args)))))))))) 14 | -------------------------------------------------------------------------------- /tests/css.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; 3 | } 4 | 5 | .className { 6 | position: relative; 7 | color: red; 8 | transform: translateX(100px); 9 | } 10 | 11 | .className:hover { 12 | opacity: 0.5 !important; 13 | } 14 | -------------------------------------------------------------------------------- /tests/js.js: -------------------------------------------------------------------------------- 1 | import { useState } from 'react'; 2 | import * as all from './module'; 3 | 4 | /** 5 | * Describes syntaxTests 6 | * @param {number} prop1 7 | * @param {string} prop2 8 | */ 9 | function syntaxTests({ prop1, prop2, ...rest }) { 10 | const boolean = true || false; 11 | const number = Infinity || NaN || 1e10 || 100000; 12 | const string = 'string'; 13 | const template = `template literal ${prop1}`; 14 | const nil = null || undefined; 15 | const regex = /(regex.+)|[a-zA-Z]/gi; 16 | const object = { type: { boolean }, value: number }; 17 | const array = [boolean, number, string, nil]; 18 | const deepPropertyAccess = object.type.boolean; 19 | const special = this || arguments; 20 | const fnCall = alert(string); 21 | const jsx = ( 22 | 23 |
Children: {string}
24 |
25 | ); 26 | 27 | let reassignable = null; 28 | if (reassignable) { 29 | reassignable = false; 30 | } 31 | 32 | return reassignable; 33 | } 34 | 35 | class App extends React.Component { 36 | constructor() {} 37 | @decorator 38 | method() { 39 | return this.state.hello; 40 | } 41 | } 42 | 43 | export default syntaxTests; 44 | -------------------------------------------------------------------------------- /tests/python.py: -------------------------------------------------------------------------------- 1 | import random 2 | import functools 3 | 4 | # Decorator for logging 5 | def debug(func): 6 | @functools.wraps(func) 7 | def wrapper(*args, **kwargs): 8 | result = func(*args, **kwargs) 9 | print(f"Function {func.__name__!r} returned {result!r}") 10 | return result 11 | return wrapper 12 | 13 | # A simple class with different methods and properties 14 | class Animal: 15 | def __init__(self, name): 16 | self._name = name 17 | 18 | @property 19 | def name(self): 20 | return self._name 21 | 22 | @name.setter 23 | def name(self, value): 24 | self._name = value 25 | 26 | def speak(self): 27 | raise NotImplementedError("Subclasses must implement this method") 28 | 29 | class Dog(Animal): 30 | def speak(self): 31 | return f"{self._name} says woof!" 32 | 33 | class Cat(Animal): 34 | def speak(self): 35 | return f"{self._name} says meow!" 36 | 37 | # A function that handles exceptions 38 | @debug 39 | def random_animal_speak(animals): 40 | try: 41 | choice = random.choice(animals) 42 | speak = choice.speak() 43 | except IndexError as e: 44 | print("No animals in the list!") 45 | except Exception as e: 46 | print(f"An error occurred: {e}") 47 | else: 48 | return speak 49 | finally: 50 | print("Function random_animal_speak() is done") 51 | 52 | # Using list comprehension, map and lambda 53 | animals = [Dog("Buddy"), Cat("Whiskers"), Dog("Rex")] 54 | animal_sounds = map(lambda animal: animal.speak(), animals) 55 | loud_sounds = [sound.upper() for sound in animal_sounds] 56 | 57 | # Main block 58 | if __name__ == "__main__": 59 | for sound in loud_sounds: 60 | print(sound) 61 | 62 | # Print a random animal's sound 63 | print(random_animal_speak(animals)) 64 | -------------------------------------------------------------------------------- /tests/screenshot.js: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import { Tooltip } from './Tooltip'; 3 | 4 | function Counter({ name }) { 5 | const [count, setCount] = React.useState(0); 6 | 7 | function onClick() { 8 | setCount((count) => count + 1); 9 | } 10 | 11 | return ( 12 | <> 13 |

14 | {name}'s count: {count} 15 |

16 | 17 | 20 | 21 | 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /tests/vue.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 25 | 26 | -------------------------------------------------------------------------------- /themes/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | */ 3 | !.gitignore --------------------------------------------------------------------------------