├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .vscode ├── launch.json └── settings.json ├── .vscodeignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── after-c#.png ├── after-dart.png ├── before-c#.png ├── before-dart.png ├── demo ├── .editorconfig ├── .vscode │ └── settings.json ├── checkbox_with_label.test.js ├── clojure.clj ├── clojurescript.cljs ├── cplusplus-header.h ├── cplusplus-source.cc ├── csharp.cs ├── css.css ├── elm.elm ├── flutter.dart ├── html.html ├── issue-91.jsx ├── issue-91.tsx ├── js.js ├── json.json ├── markdown.md ├── mdx.mdx ├── newfile.js ├── php.php ├── powershell.ps1 ├── pug.pug ├── python.py ├── react.js ├── reacthook.js ├── ruby.rb ├── statelessfunctionalreact.js ├── stylus.styl ├── tsx.tsx ├── vuedemo.vue └── yml.yml ├── first-screen.jpg ├── light-owl-full.jpg ├── night-owl-2.0.1.vsix ├── owl-icon.png ├── package.json ├── preview.jpg ├── preview.png ├── themes ├── Night Owl-Light-color-theme-noitalic.json ├── Night Owl-Light-color-theme.json ├── Night Owl-color-theme-noitalic.json └── Night Owl-color-theme.json ├── three-dark.jpg ├── three-light.jpg └── vsc-extension-quickstart.md /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [sdras] 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Please make sure you're using the latest version of the plugin before submitting an issue** 8 | 9 | **Screenshots** 10 | If applicable, add screenshots to help explain your problem, it helps us debug faster. 11 | 12 | If you are submitting a bug report in a language not currently in demo folder, a PR to this folder with the language helps us track it down. 13 | 14 | Thanks! 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Describe the solution you'd like** 8 | A clear and concise description of what you want to happen. 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | If so, a clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### OSX ### 2 | *.DS_Store 3 | .AppleDouble 4 | .LSOverride 5 | 6 | # Icon must end with two 7 | Icon 8 | # Thumbnails 9 | ._* 10 | # Files that might appear in the root of a volume 11 | .DocumentRevisions-V100 12 | .fseventsd 13 | .Spotlight-V100 14 | .TemporaryItems 15 | .Trashes 16 | .VolumeIcon.icns 17 | .com.apple.timemachine.donotpresent 18 | # Directories potentially created on remote AFP share 19 | .AppleDB 20 | .AppleDesktop 21 | Network Trash Folder 22 | Temporary Items 23 | .apdisk 24 | 25 | ### Node ### 26 | # Logs 27 | logs 28 | *.log 29 | npm-debug.log* 30 | 31 | # Runtime data 32 | pids 33 | *.pid 34 | *.seed 35 | *.pid.lock 36 | 37 | # Directory for instrumented libs generated by jscoverage/JSCover 38 | lib-cov 39 | 40 | # Coverage directory used by tools like istanbul 41 | coverage 42 | 43 | # nyc test coverage 44 | .nyc_output 45 | 46 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 47 | .grunt 48 | 49 | # node-waf configuration 50 | .lock-wscript 51 | 52 | # Compiled binary addons (http://nodejs.org/api/addons.html) 53 | build/Release 54 | 55 | # Dependency directories 56 | node_modules 57 | jspm_packages 58 | 59 | # Optional npm cache directory 60 | .npm 61 | 62 | # Optional eslint cache 63 | .eslintcache 64 | 65 | # Optional REPL history 66 | .node_repl_history 67 | 68 | # Output of 'npm pack' 69 | *.tgz 70 | 71 | # Yarn Integrity file 72 | .yarn-integrity 73 | 74 | # Nuxt build 75 | .nuxt 76 | 77 | # Nuxt generate 78 | dist -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that launches the extension inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | 9 | { 10 | "name": "Extension", 11 | "type": "extensionHost", 12 | "request": "launch", 13 | "runtimeExecutable": "${execPath}", 14 | "args": [ 15 | "--extensionDevelopmentPath=${workspaceFolder}" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.linting.pylintEnabled": false, 3 | } 4 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | .gitignore 4 | vsc-extension-quickstart.md 5 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to the "night-owl" extension are be documented in this file. 4 | 5 | # "2.1.1 6 | 7 | - Add Ghostty theme links 8 | - Revert bracket highlight, low contrast issue 9 | 10 | # "2.1.0 11 | 12 | - Update this keyword for higher contrast 13 | - Update line highlight background to be more obvious 14 | - Update readme with extension collision 15 | 16 | # "2.0.2 17 | 18 | - Update readme with more versions 19 | - Update some highlight and illegibility across dark and light themes 20 | - Add VS Code badge 21 | 22 | # "2.0.1 23 | 24 | - update readme 25 | - update branch name 26 | 27 | ## "2.0.0" 28 | 29 | - change strings 30 | - turn a base color less neon green 31 | - turn off semantic highlighting 32 | 33 | ## "1.2.1" 34 | 35 | - fix italic/non-italic inconsistencies 36 | 37 | ## "1.2.0" 38 | 39 | - fix dart files 40 | - update demo files, add in react hook example 41 | - fix contrast on popups 42 | - add in more ports to readme 43 | 44 | ## "1.1.4" 45 | 46 | - fix typescript variable keyword highlighting inside classes 47 | 48 | ## "1.1.3" 49 | 50 | ### Light 51 | 52 | - Update Go too-light function calls 53 | 54 | ### Dark 55 | 56 | - make selection background in search more legible 57 | 58 | ## "1.1.2" 59 | 60 | ### Light Theme 61 | 62 | - make selection background darker 63 | - make code comments darker 64 | 65 | ## "1.1.1" 66 | 67 | ### Light Theme 68 | 69 | - fix the find match background 70 | - fix the badge background to not be so distracting 71 | - fix keyword other unit css bright yellow 72 | - fix the too-bright-orange 73 | - fix the too-light turquoise, give it some contrast from the purple 74 | - fix up invalid illegal, make it not white so you can read it 75 | - stop all the weird border error lines 76 | 77 | ### Dark theme 78 | 79 | - fix up terminal selection background 80 | 81 | ## "1.1.0" 82 | 83 | - Light theme no italics introduced 84 | - Fix bug in empty editor view 85 | 86 | ## "1.0.1" 87 | 88 | - Updated readme with new screenshots, including light theme 89 | 90 | ## "1.0.0" 91 | 92 | - Light theme introduced 93 | - C++ support 94 | - Fix active selection background bug 95 | - Fix Markdown Header bug 96 | 97 | ## "0.5.0" 98 | 99 | - Better Closure support 100 | - Better Powershell support 101 | - Update notification toasts so you can see them better 102 | - Make Proptypes stand out a bit more 103 | - Fix bottom statusbar foreground 104 | - Make inactive tab less distracting 105 | - Make object.other.property more pronounced 106 | - Update editorGroup.emptyBackground from deprecated version 107 | - Make contrast between function keyword stronger 108 | - Fix bug in markdown punctuation 109 | - Make a difference between current highlighted and searched-for keyword 110 | - Update JSON key to be less barfy 111 | 112 | ## "0.4.3" 113 | 114 | - Update README: vs code => visual studio code 115 | 116 | ## "0.4.2" 117 | 118 | - Update warn widget color 119 | - Fix misnamed theme 120 | - Remove italics from git diff in no italics theme 121 | - Add symbol highlighting 122 | 123 | ## "0.4.1" 124 | 125 | - Improved TypeScript support 126 | - Changed active panel coloring 127 | 128 | ## "0.4.0" 129 | 130 | - Make cursor more visible 131 | - Added basic react in TS support 132 | - Fix ts and js differences 133 | - Lighter color for active indent guide 134 | 135 | ## "0.3.2" 136 | 137 | - Fix scss/sass variables 138 | - Update readme to mention ported versions 139 | - Fix badge color 140 | - Update readme to specify how to make more contrast in sidebar 141 | - Make line number contrast more strong 142 | - Fix typescript 'import' and 'from' reserved words color 143 | - Fix PHP accessing property color 144 | 145 | ## "0.3.1" 146 | 147 | - Return conditionals to their original state so that they don't stand out so much 148 | 149 | ## "0.3.0" 150 | 151 | - Do a ton of keyword refinements, mainly across JavaScript and Ruby 152 | 153 | ## "0.2.6" 154 | 155 | - Register italic alternate in package.json 156 | - Fix editor ruler color 157 | - More consistent italic in different scope 158 | 159 | ## "0.2.5" 160 | 161 | - Update the inactive titlebar to be the same color as inactive tab 162 | - Match the html in React to regular HTML 163 | - Start creating a no italics theme 164 | 165 | ## "0.2.4" 166 | 167 | - Remove operator italics 168 | 169 | ## "0.2.3" 170 | 171 | - Update terminal colors for testing, tweaks 172 | - Fix a python blue for consistency 173 | 174 | ## "0.2.2" 175 | 176 | - Update terminal colors for testing 177 | 178 | ## "0.2.1" 179 | 180 | - Revert activity bar background change 181 | 182 | ## "0.2.0" 183 | 184 | - Fix more overuse of italics 185 | - Section highlight and placeholder fixes 186 | - More contrast for React component tags 187 | - Fix top bar color 188 | - Fix block scope/editor indent lack of border 189 | - Operator color continuity 190 | - Fix peek result color contrast 191 | 192 | ## "0.1.8" 193 | 194 | - Fix overuse of italics 195 | - Fix bug in prompts 196 | - Update Ruby highlighting 197 | 198 | ## "0.1.7" 199 | 200 | - Make .gitignored files have less contrast 201 | - Make modified files a bright blue instead of bright yellow 202 | - Fix similar keyword highlight for some files 203 | - Function arrows no longer italicized 204 | - Codelense highlight not as distracting 205 | 206 | ## "0.1.6" 207 | 208 | - Fix terminal blacks 209 | - Fix inactive tabs when there are two panes 210 | - Minor tweaks to JSON to match bracket pairs 211 | 212 | ## "0.1.4 / 0.1.5" 213 | 214 | - Make scrollbar transparent 215 | 216 | ## "0.1.3" 217 | 218 | - Update terminal division 219 | 220 | ## "0.1.2" 221 | 222 | - Define clarity between active and inactive tabs 223 | - Make scrollbar visible 224 | - Make comments more legible 225 | 226 | ## "0.1.0" 227 | 228 | - Initial release 229 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to CONTRIBUTING.md 2 | 3 | First off, thanks for taking the time to contribute! ❤️ 4 | 5 | Contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for to collaborate. 6 | 7 | 8 | ## Table of Contents 9 | 10 | - [Code of Conduct](#code-of-conduct) 11 | - [I Have a Question](#i-have-a-question) 12 | - [I Want To Contribute](#i-want-to-contribute) 13 | - [Reporting Bugs](#reporting-bugs) 14 | - [Suggesting Enhancements](#suggesting-enhancements) 15 | - [Submitting a PR](#submitting-a-pr) 16 | 17 | ## Code of Conduct 18 | 19 | This project and everyone participating in it is governed by the 20 | [CONTRIBUTING.md Code of Conduct](blob/master/CODE_OF_CONDUCT.md). 21 | By participating, you are expected to uphold this code. 22 | 23 | 24 | ## I Have a Question 25 | 26 | > If you want to ask a question, we assume that you have read the available [Documentation](). 27 | 28 | Before you ask a question, it is best to search for existing [Issues](/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first. 29 | 30 | If you then still feel the need to ask a question and need clarification, we recommend the following: 31 | 32 | - Open an [Issue](/issues/new). 33 | - Provide as much context as you can about what you're running into. 34 | - Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant. 35 | 36 | We will then take care of the issue as soon as possible. 37 | 38 | 39 | 40 | ## I Want To Contribute 41 | 42 | ### Reporting Bugs 43 | 44 | 45 | #### Before Submitting a Bug Report 46 | 47 | A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible. 48 | 49 | - Make sure that you are using the latest version. 50 | - Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the [documentation](). If you are looking for support, you might want to check [this section](#i-have-a-question)). 51 | - To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](issues?q=label%3Abug). 52 | - There are times that things break locally due to either other extensions orupstream issues in VS Code. Please try to see if the issue exists in other themes (likely an issue with VS Code itself), and disable other extensions to see if the issue persists. 53 | 54 | 55 | #### How Do I Submit a Good Bug Report? 56 | 57 | > You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to <>. 58 | 59 | 60 | We use GitHub issues to track bugs and errors. If you run into an issue with the project: 61 | 62 | - Open an [Issue](/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.) 63 | - Explain the behavior you would expect and the actual behavior. 64 | - Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case. 65 | - Provide the information you collected in the previous section. 66 | 67 | 68 | ### Suggesting Enhancements 69 | 70 | Enhancements are welcome! However, due to the nature of a theme, some requests may be subjective, and we may not want to implement them because it could steer the theme away from its intended purpose. 71 | 72 | 73 | ### Submitting a PR 74 | 75 | When submitting a PR, please reference the issue by number. If there is no issue, please create one. Please provide a screenshot of the changes you are making, both before and after. 76 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Sarah Drasner 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 | # Night Owl 🌌 2 | 3 | ![VS Code Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/sdras.night-owl) 4 | ![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/sdras.night-owl) 5 | [![Preview in vscode.dev](https://img.shields.io/badge/preview%20in-vscode.dev-blue)](https://vscode.dev/theme/sdras.night-owl) 6 | 7 | 8 | A Visual Studio Code theme for the night owls out there. Fine-tuned for those of us who like to code late into the night. Color choices have taken into consideration what is accessible to people with colorblindness and in low-light circumstances. Decisions were also based on meaningful contrast for reading comprehension and for optimal razzle dazzle. ✨ 9 | 10 | As of 1.0.0, there's a Light Owl Theme too! Color balanced from the Dark version for easy viewing in daylight. 🌅 11 | 12 | About this theme, and some of the considerations made while creating it (as well as _how_ to create it should you want to make your own): [https://css-tricks.com/creating-a-vs-code-theme/](https://css-tricks.com/creating-a-vs-code-theme/) 13 | 14 | ## Night Owl 15 | 16 | ![First Screen](first-screen.jpg) 17 | ![Night Owl Frameworks](three-dark.jpg) 18 | 19 | ## Light Owl 20 | 21 | ![First Screen Light](light-owl-full.jpg) 22 | ![Light Owl Frameworks](three-light.jpg) 23 | 24 | # Installation 25 | 26 | 1. Install [Visual Studio Code](https://code.visualstudio.com/) 27 | 2. Launch Visual Studio Code 28 | 3. Choose **Extensions** from menu 29 | 4. Search for `night owl` 30 | 5. Click **Install** to install it 31 | 6. Click **Reload** to reload the Code 32 | 7. From the menu bar click: Code > Preferences > Color Theme > **Night Owl** 33 | 34 | ## Disable Italics 35 | 36 | If you wish to disable italics, there is now a no-italic theme available. You will have access to both, select **Night Owl No Italics** as your color theme. 37 | 38 | ## Other versions 39 | 40 | The community is awesome and has ported this theme over to other environments. 41 | 42 | #### Dark Theme 43 | 44 | - Hyper: [https://github.com/pbomb/hyper-night-owl](https://github.com/pbomb/hyper-night-owl) 45 | - iTerm2 46 | 1. [https://github.com/nickcernis/iterm2-night-owl](https://github.com/nickcernis/iterm2-night-owl) 47 | 2. [https://github.com/jsit/night-owl-iterm2-theme](https://github.com/jsit/night-owl-iterm2-theme) 48 | 3. [https://github.com/florianeckerstorfer/night-owl-itermcolors](https://github.com/florianeckerstorfer/night-owl-itermcolors) 49 | 4. [https://github.com/andrewfluck/night-owl-iterm2](https://github.com/andrewfluck/night-owl-iterm2) 50 | - Xresources: [https://github.com/alochaus/night-owl-xresources-theme](https://github.com/alochaus/night-owl-xresources-theme) 51 | - Atom: [https://atom.io/themes/night-owl-vs-code-syntax](https://atom.io/themes/night-owl-vs-code-syntax) 52 | - Jetbrains: [https://github.com/xdrop/night-owl-jetbrains](https://github.com/xdrop/night-owl-jetbrains) 53 | - Emacs: [https://github.com/aaronjensen/night-owl-emacs](https://github.com/aaronjensen/night-owl-emacs) 54 | - Vim 55 | 1. [https://github.com/Khaledgarbaya/night-owl-vim-theme](https://github.com/Khaledgarbaya/night-owl-vim-theme) 56 | 2. [https://github.com/haishanh/night-owl.vim](https://github.com/haishanh/night-owl.vim) 57 | - Pygments [https://github.com/liamdawson/nightowl-pygments-style](https://github.com/liamdawson/nightowl-pygments-style) 58 | - Alfred: [https://github.com/jbharat/night-owl-alfred-theme](https://github.com/jbharat/night-owl-alfred-theme) 59 | - Ulauncher: [https://github.com/christoph-fricke/ulauncher-night-owl-theme](https://github.com/christoph-fricke/ulauncher-night-owl-theme) 60 | - TextMate [https://github.com/batpigandme/night-owlish](https://github.com/batpigandme/night-owlish/tree/master/tmTheme) 61 | - Ace Editor [https://github.com/batpigandme/night-owlish](https://github.com/batpigandme/night-owlish/tree/master/aceTheme) 62 | - RStudio [https://github.com/batpigandme/night-owlish](https://github.com/batpigandme/night-owlish/tree/master/rstheme) 63 | - Insomnia [https://github.com/yoannfleurydev/insomnia-plugin-night-owl-theme](https://github.com/yoannfleurydev/insomnia-plugin-night-owl-theme) 64 | - Sublime Text 3 [https://github.com/VonHeikemen/night-owl-sublime-scheme](https://github.com/VonHeikemen/night-owl-sublime-scheme) 65 | - Slack [https://github.com/clouby/night-owl-slack](https://github.com/clouby/night-owl-slack) 66 | - Xcode [https://github.com/stealthanthrax/xcode-Night-Owl](https://github.com/stealthanthrax/xcode-Night-Owl) 67 | - Visual Studio 2019: [https://github.com/kai-oswald/NightOwl-VS-Theme](https://github.com/kai-oswald/NightOwl-VS-Theme) 68 | - Visual Studio 2022: [https://github.com/SumitKar01/NightOwl-Theme-VS-2022](https://github.com/SumitKar01/NightOwl-Theme-VS-2022) 69 | - Prism [https://github.com/SaraVieira/prism-theme-night-owl](https://github.com/SaraVieira/prism-theme-night-owl) 70 | - Windows Terminal [https://github.com/edurojasr/Windows_Terminal_Theme_Night_Owl](https://github.com/edurojasr/Windows_Terminal_Theme_Night_Owl) 71 | - Alacritty: [https://github.com/alacritty/alacritty](https://github.com/alacritty/alacritty/wiki/Color-schemes) 72 | - Terminology: [https://github.com/LividJava/night-owl-terminology](https://github.com/LividJava/night-owl-terminology) 73 | - Gnome Terminal: [https://github.com/edurojasr/night-owl-gnome-terminal](https://github.com/edurojasr/night-owl-gnome-terminal) 74 | - Kitty [https://github.com/Glazy/night-owl-kitty-theme](https://github.com/Glazy/night-owl-kitty-theme) 75 | - Ghostty [https://github.com/m1yon/ghostty-night-owl](https://github.com/m1yon/ghostty-night-owl) 76 | 77 | #### Light Theme 78 | 79 | - iTerm2: [https://github.com/fcaldera/night-owl-light-iterm2](https://github.com/fcaldera/night-owl-light-iterm2) 80 | - Vim: [https://github.com/macguirerintoul/night_owl_light.vim](https://github.com/macguirerintoul/night_owl_light.vim) 81 | - Tilix: [https://github.com/johanhammar/light-owl-tilix](https://github.com/johanhammar/light-owl-tilix) 82 | - Alacritty: [https://github.com/nik27/night-owl-alacritty-theme](https://github.com/nik27/night-owl-alacritty-theme) 83 | - Ghostty: [https://github.com/m1yon/ghostty-night-owl](https://github.com/m1yon/ghostty-night-owl) 84 | 85 | ## Separate the Editor from the Sidebar 86 | 87 | This theme uses contrast sparingly so that when it's applied, it's more meaningful. This can help reduce noise and improve your ability to scan. However, some of the decisions may not work for everyone. One such decision that some disagree on is whether or not to have a separation between the editor and sidebar, and the amount of contrast. If you wish for this to have more visual significance, please paste this into your user settings preferences. These are my recommendations for these settings but you can use whatever colors you wish. ☺️ 88 | 89 | ``` 90 | "workbench.colorCustomizations": { 91 | "[Night Owl]": { 92 | "activityBar.background": "#000C1D", 93 | "activityBar.border": "#102a44", 94 | "editorGroup.border": "#102a44", 95 | "sideBar.background": "#001122", 96 | "sideBar.border": "#102a44", 97 | "sideBar.foreground": "#8BADC1" 98 | }, 99 | "[Night Owl (No Italics)]": { 100 | "activityBar.background": "#000C1D", 101 | "activityBar.border": "#102a44", 102 | "editorGroup.border": "#102a44", 103 | "sideBar.background": "#001122", 104 | "sideBar.border": "#102a44", 105 | "sideBar.foreground": "#8BADC1" 106 | } 107 | }, 108 | ``` 109 | 110 | ## Preferences shown in the preview 111 | 112 | The font in the preview image is Dank Mono, [available here](https://philpl.gumroad.com/l/dank-mono). Editor settings to activate font ligatures: 113 | 114 | ``` 115 | "editor.fontFamily": "Dank Mono", 116 | "editor.fontLigatures": true, 117 | ``` 118 | 119 | ## Misc 120 | 121 | This is my first foray into creating a theme, so if you see something amiss, please feel free to [file an issue](https://github.com/sdras/night-owl-vscode-theme/issues)! I'm sure there are things I missed. 122 | 123 | If you use [the VS Code Babel extension](https://marketplace.visualstudio.com/items?itemName=mgmcdermott.vscode-language-babel), you may see some inconsistencies in color for JSX, that's not coming from this theme. 124 | 125 | Any relevant changes for each version are documented in the changelog. Please update and check the changelog before filing any issues, as they may have already been taken care of. 126 | 127 | This palette was inspired in part by Material Palenight [Theme](https://marketplace.visualstudio.com/items?itemName=whizkydee.material-palenight-theme), and the accessibility idea was inspired in part by Solarized [Themes](http://ethanschoonover.com/solarized) 128 | -------------------------------------------------------------------------------- /after-c#.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/after-c#.png -------------------------------------------------------------------------------- /after-dart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/after-dart.png -------------------------------------------------------------------------------- /before-c#.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/before-c#.png -------------------------------------------------------------------------------- /before-dart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/before-dart.png -------------------------------------------------------------------------------- /demo/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_size = 2 8 | indent_style = space 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /demo/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.linting.enabled": false 3 | } -------------------------------------------------------------------------------- /demo/checkbox_with_label.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import * as TestUtils from 'react-dom/test-utils'; 4 | import CheckboxWithLabel from '../CheckboxWithLabel'; 5 | 6 | it('CheckboxWithLabel changes the text after click', () => { 7 | // Render a checkbox with label in the document 8 | const checkbox = TestUtils.renderIntoDocument( 9 | 10 | ) 11 | 12 | const checkboxNode = ReactDOM.findDOMNode(checkbox) 13 | 14 | // Verify that it's Off by default 15 | expect(checkboxNode.textContent).toEqual('Off') 16 | 17 | // Simulate a click and verify that it is now On 18 | TestUtils.Simulate.change( 19 | TestUtils.findRenderedDOMComponentWithTag(checkbox, 'input') 20 | ) 21 | expect(checkboxNode.textContent).toEqual('On') 22 | }) -------------------------------------------------------------------------------- /demo/clojure.clj: -------------------------------------------------------------------------------- 1 | (ns hello.world.clojure) 2 | 3 | (defn sum [& numbers] 4 | (if (empty? numbers) 5 | 0 6 | (reduce + 0 numbers))) 7 | 8 | (defn print-name [{:keys [first last age]}] 9 | (println (str "Your name is " first " " last " and you are " age " years old."))) 10 | 11 | (defn set-age [person new-age] 12 | (assoc person :age new-age)) 13 | 14 | (defn hello-world [] 15 | (let [john {:first "John" :last "Smith" :age 65} 16 | jack {:first "Jack" :last "Road" :age 76} 17 | george {:first "George" :last "Way" :age 23} 18 | george-junior (assoc george :age 6) 19 | all-persons [john jack george george-junior]] 20 | 21 | (doseq [person all-persons] 22 | (print-name person)) 23 | 24 | (println (str "Total age is: " (apply sum (map :age all-persons)))))) 25 | 26 | (hello-world) 27 | -------------------------------------------------------------------------------- /demo/clojurescript.cljs: -------------------------------------------------------------------------------- 1 | (ns hello.world.clojurescript 2 | (:require [reagent.core :as r]) 3 | 4 | (def counter (r/atom 0)) 5 | (def text-component-style {:background-color :grey 6 | :border "1px solid black" 7 | :padding "5px"}) 8 | 9 | (defn counter-clicked [] 10 | (.log js/console "You clicked the counter component.") 11 | (swap! counter inc)) 12 | 13 | (defn text-counter [text] 14 | [:div {:on-click counter-clicked 15 | :style text-component-style}) 16 | (str text @counter]) 17 | 18 | (defn main-component [] 19 | [:div 20 | [:p {:style {:color :red}} "Hello world! Click the element below:"] 21 | [text-counter "Clicked: "]]) 22 | -------------------------------------------------------------------------------- /demo/cplusplus-header.h: -------------------------------------------------------------------------------- 1 | // Copyright 2012 the V8 project authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef V8_API_H_ 6 | #define V8_API_H_ 7 | 8 | #include "include/v8-testing.h" 9 | #include "src/contexts.h" 10 | #include "src/debug/debug-interface.h" 11 | #include "src/detachable-vector.h" 12 | #include "src/heap/factory.h" 13 | #include "src/isolate.h" 14 | #include "src/objects.h" 15 | #include "src/objects/bigint.h" 16 | #include "src/objects/js-collection.h" 17 | #include "src/objects/js-generator.h" 18 | #include "src/objects/js-promise.h" 19 | #include "src/objects/js-proxy.h" 20 | #include "src/objects/module.h" 21 | #include "src/objects/shared-function-info.h" 22 | 23 | #include "src/objects/templates.h" 24 | 25 | namespace v8 { 26 | 27 | // Constants used in the implementation of the API. The most natural thing 28 | // would usually be to place these with the classes that use them, but 29 | // we want to keep them out of v8.h because it is an externally 30 | // visible file. 31 | class Consts { 32 | public: 33 | enum TemplateType { 34 | FUNCTION_TEMPLATE = 0, 35 | OBJECT_TEMPLATE = 1 36 | }; 37 | }; 38 | 39 | template 40 | inline T ToCData(v8::internal::Object* obj); 41 | 42 | template <> 43 | inline v8::internal::Address ToCData(v8::internal::Object* obj); 44 | 45 | template 46 | inline v8::internal::Handle FromCData( 47 | v8::internal::Isolate* isolate, T obj); 48 | 49 | template <> 50 | inline v8::internal::Handle FromCData( 51 | v8::internal::Isolate* isolate, v8::internal::Address obj); 52 | 53 | class ApiFunction { 54 | public: 55 | explicit ApiFunction(v8::internal::Address addr) : addr_(addr) { } 56 | v8::internal::Address address() { return addr_; } 57 | private: 58 | v8::internal::Address addr_; 59 | }; 60 | 61 | 62 | 63 | class RegisteredExtension { 64 | public: 65 | explicit RegisteredExtension(Extension* extension); 66 | static void Register(RegisteredExtension* that); 67 | static void UnregisterAll(); 68 | Extension* extension() { return extension_; } 69 | RegisteredExtension* next() { return next_; } 70 | static RegisteredExtension* first_extension() { return first_extension_; } 71 | private: 72 | Extension* extension_; 73 | RegisteredExtension* next_; 74 | static RegisteredExtension* first_extension_; 75 | }; 76 | 77 | #define OPEN_HANDLE_LIST(V) \ 78 | V(Template, TemplateInfo) \ 79 | V(FunctionTemplate, FunctionTemplateInfo) \ 80 | V(ObjectTemplate, ObjectTemplateInfo) \ 81 | V(Signature, FunctionTemplateInfo) \ 82 | V(AccessorSignature, FunctionTemplateInfo) \ 83 | V(Data, Object) \ 84 | V(RegExp, JSRegExp) \ 85 | V(Object, JSReceiver) \ 86 | V(Array, JSArray) \ 87 | V(Map, JSMap) \ 88 | V(Set, JSSet) \ 89 | V(ArrayBuffer, JSArrayBuffer) \ 90 | V(ArrayBufferView, JSArrayBufferView) \ 91 | V(TypedArray, JSTypedArray) \ 92 | V(Uint8Array, JSTypedArray) \ 93 | V(Uint8ClampedArray, JSTypedArray) \ 94 | V(Int8Array, JSTypedArray) \ 95 | V(Uint16Array, JSTypedArray) \ 96 | V(Int16Array, JSTypedArray) \ 97 | V(Uint32Array, JSTypedArray) \ 98 | V(Int32Array, JSTypedArray) \ 99 | V(Float32Array, JSTypedArray) \ 100 | V(Float64Array, JSTypedArray) \ 101 | V(DataView, JSDataView) \ 102 | V(SharedArrayBuffer, JSArrayBuffer) \ 103 | V(Name, Name) \ 104 | V(String, String) \ 105 | V(Symbol, Symbol) \ 106 | V(Script, JSFunction) \ 107 | V(UnboundModuleScript, SharedFunctionInfo) \ 108 | V(UnboundScript, SharedFunctionInfo) \ 109 | V(Module, Module) \ 110 | V(Function, JSReceiver) \ 111 | V(Message, JSMessageObject) \ 112 | V(Context, Context) \ 113 | V(External, Object) \ 114 | V(StackTrace, FixedArray) \ 115 | V(StackFrame, StackFrameInfo) \ 116 | V(Proxy, JSProxy) \ 117 | V(debug::GeneratorObject, JSGeneratorObject) \ 118 | V(debug::Script, Script) \ 119 | V(debug::WeakMap, JSWeakMap) \ 120 | V(Promise, JSPromise) \ 121 | V(Primitive, Object) \ 122 | V(PrimitiveArray, FixedArray) \ 123 | V(BigInt, BigInt) \ 124 | V(ScriptOrModule, Script) 125 | 126 | class Utils { 127 | public: 128 | static inline bool ApiCheck(bool condition, 129 | const char* location, 130 | const char* message) { 131 | if (!condition) Utils::ReportApiFailure(location, message); 132 | return condition; 133 | } 134 | static void ReportOOMFailure(v8::internal::Isolate* isolate, 135 | const char* location, bool is_heap_oom); 136 | 137 | static inline Local ToLocal( 138 | v8::internal::Handle obj); 139 | static inline Local ToLocal( 140 | v8::internal::Handle obj); 141 | static inline Local ToLocal( 142 | v8::internal::Handle obj); 143 | static inline Local ToLocal( 144 | v8::internal::Handle obj); 145 | static inline Local ToLocal( 146 | v8::internal::Handle obj); 147 | static inline Local ToLocal( 148 | v8::internal::Handle obj); 149 | static inline Local ToLocal( 150 | v8::internal::Handle obj); 151 | static inline Local ToLocal( 152 | v8::internal::Handle obj); 153 | static inline Local ToLocal( 154 | v8::internal::Handle obj); 155 | static inline Local ToLocal( 156 | v8::internal::Handle obj); 157 | static inline Local ToLocal( 158 | v8::internal::Handle obj); 159 | static inline Local ToLocal( 160 | v8::internal::Handle obj); 161 | static inline Local ToLocal( 162 | v8::internal::Handle obj); 163 | static inline Local ToLocal( 164 | v8::internal::Handle obj); 165 | static inline Local ToLocal( 166 | v8::internal::Handle obj); 167 | static inline Local ToLocal( 168 | v8::internal::Handle obj); 169 | static inline Local ToLocal( 170 | v8::internal::Handle obj); 171 | static inline Local ToLocal( 172 | v8::internal::Handle obj); 173 | static inline Local ToLocalUint8Array( 174 | v8::internal::Handle obj); 175 | static inline Local ToLocalUint8ClampedArray( 176 | v8::internal::Handle obj); 177 | static inline Local ToLocalInt8Array( 178 | v8::internal::Handle obj); 179 | static inline Local ToLocalUint16Array( 180 | v8::internal::Handle obj); 181 | static inline Local ToLocalInt16Array( 182 | v8::internal::Handle obj); 183 | static inline Local ToLocalUint32Array( 184 | v8::internal::Handle obj); 185 | static inline Local ToLocalInt32Array( 186 | v8::internal::Handle obj); 187 | static inline Local ToLocalFloat32Array( 188 | v8::internal::Handle obj); 189 | static inline Local ToLocalFloat64Array( 190 | v8::internal::Handle obj); 191 | static inline Local ToLocalBigInt64Array( 192 | v8::internal::Handle obj); 193 | static inline Local ToLocalBigUint64Array( 194 | v8::internal::Handle obj); 195 | 196 | static inline Local ToLocalShared( 197 | v8::internal::Handle obj); 198 | 199 | static inline Local MessageToLocal( 200 | v8::internal::Handle obj); 201 | static inline Local PromiseToLocal( 202 | v8::internal::Handle obj); 203 | static inline Local StackTraceToLocal( 204 | v8::internal::Handle obj); 205 | static inline Local StackFrameToLocal( 206 | v8::internal::Handle obj); 207 | static inline Local NumberToLocal( 208 | v8::internal::Handle obj); 209 | static inline Local IntegerToLocal( 210 | v8::internal::Handle obj); 211 | static inline Local Uint32ToLocal( 212 | v8::internal::Handle obj); 213 | static inline Local ToLocal( 214 | v8::internal::Handle obj); 215 | static inline Local ToLocal( 216 | v8::internal::Handle obj); 217 | static inline Local ToLocal( 218 | v8::internal::Handle obj); 219 | static inline Local SignatureToLocal( 220 | v8::internal::Handle obj); 221 | static inline Local AccessorSignatureToLocal( 222 | v8::internal::Handle obj); 223 | static inline Local ExternalToLocal( 224 | v8::internal::Handle obj); 225 | static inline Local CallableToLocal( 226 | v8::internal::Handle obj); 227 | static inline Local ToLocalPrimitive( 228 | v8::internal::Handle obj); 229 | static inline Local ToLocal( 230 | v8::internal::Handle obj); 231 | static inline Local ScriptOrModuleToLocal( 232 | v8::internal::Handle obj); 233 | 234 | #define DECLARE_OPEN_HANDLE(From, To) \ 235 | static inline v8::internal::Handle \ 236 | OpenHandle(const From* that, bool allow_empty_handle = false); 237 | 238 | OPEN_HANDLE_LIST(DECLARE_OPEN_HANDLE) 239 | 240 | #undef DECLARE_OPEN_HANDLE 241 | 242 | template 243 | static inline Local Convert(v8::internal::Handle obj); 244 | 245 | template 246 | static inline v8::internal::Handle OpenPersistent( 247 | const v8::Persistent& persistent) { 248 | return v8::internal::Handle( 249 | reinterpret_cast(persistent.val_)); 250 | } 251 | 252 | template 253 | static inline v8::internal::Handle OpenPersistent( 254 | v8::Persistent* persistent) { 255 | return OpenPersistent(*persistent); 256 | } 257 | 258 | template 259 | static inline v8::internal::Handle OpenHandle(v8::Local handle) { 260 | return OpenHandle(*handle); 261 | } 262 | 263 | private: 264 | static void ReportApiFailure(const char* location, const char* message); 265 | }; 266 | 267 | 268 | template 269 | inline T* ToApi(v8::internal::Handle obj) { 270 | return reinterpret_cast(obj.location()); 271 | } 272 | 273 | template 274 | inline v8::Local ToApiHandle( 275 | v8::internal::Handle obj) { 276 | return Utils::Convert(obj); 277 | } 278 | 279 | 280 | template 281 | inline bool ToLocal(v8::internal::MaybeHandle maybe, 282 | Local* local) { 283 | v8::internal::Handle handle; 284 | if (maybe.ToHandle(&handle)) { 285 | *local = Utils::Convert(handle); 286 | return true; 287 | } 288 | return false; 289 | } 290 | 291 | namespace internal { 292 | 293 | class V8_EXPORT_PRIVATE DeferredHandles { 294 | public: 295 | ~DeferredHandles(); 296 | 297 | private: 298 | DeferredHandles(Object** first_block_limit, Isolate* isolate) 299 | : next_(nullptr), 300 | previous_(nullptr), 301 | first_block_limit_(first_block_limit), 302 | isolate_(isolate) { 303 | isolate->LinkDeferredHandles(this); 304 | } 305 | 306 | void Iterate(RootVisitor* v); 307 | 308 | std::vector blocks_; 309 | DeferredHandles* next_; 310 | DeferredHandles* previous_; 311 | Object** first_block_limit_; 312 | Isolate* isolate_; 313 | 314 | friend class HandleScopeImplementer; 315 | friend class Isolate; 316 | }; 317 | 318 | 319 | // This class is here in order to be able to declare it a friend of 320 | // HandleScope. Moving these methods to be members of HandleScope would be 321 | // neat in some ways, but it would expose internal implementation details in 322 | // our public header file, which is undesirable. 323 | // 324 | // An isolate has a single instance of this class to hold the current thread's 325 | // data. In multithreaded V8 programs this data is copied in and out of storage 326 | // so that the currently executing thread always has its own copy of this 327 | // data. 328 | class HandleScopeImplementer { 329 | public: 330 | explicit HandleScopeImplementer(Isolate* isolate) 331 | : isolate_(isolate), 332 | microtask_context_(nullptr), 333 | spare_(nullptr), 334 | call_depth_(0), 335 | microtasks_depth_(0), 336 | microtasks_suppressions_(0), 337 | entered_contexts_count_(0), 338 | entered_context_count_during_microtasks_(0), 339 | #ifdef DEBUG 340 | debug_microtasks_depth_(0), 341 | #endif 342 | microtasks_policy_(v8::MicrotasksPolicy::kAuto), 343 | last_handle_before_deferred_block_(nullptr) { 344 | } 345 | 346 | ~HandleScopeImplementer() { 347 | DeleteArray(spare_); 348 | } 349 | 350 | // Threading support for handle data. 351 | static int ArchiveSpacePerThread(); 352 | char* RestoreThread(char* from); 353 | char* ArchiveThread(char* to); 354 | void FreeThreadResources(); 355 | 356 | // Garbage collection support. 357 | void Iterate(v8::internal::RootVisitor* v); 358 | static char* Iterate(v8::internal::RootVisitor* v, char* data); 359 | 360 | inline internal::Object** GetSpareOrNewBlock(); 361 | inline void DeleteExtensions(internal::Object** prev_limit); 362 | 363 | // Call depth represents nested v8 api calls. 364 | inline void IncrementCallDepth() {call_depth_++;} 365 | inline void DecrementCallDepth() {call_depth_--;} 366 | inline bool CallDepthIsZero() { return call_depth_ == 0; } 367 | 368 | // Microtasks scope depth represents nested scopes controlling microtasks 369 | // invocation, which happens when depth reaches zero. 370 | inline void IncrementMicrotasksScopeDepth() {microtasks_depth_++;} 371 | inline void DecrementMicrotasksScopeDepth() {microtasks_depth_--;} 372 | inline int GetMicrotasksScopeDepth() { return microtasks_depth_; } 373 | 374 | // Possibly nested microtasks suppression scopes prevent microtasks 375 | // from running. 376 | inline void IncrementMicrotasksSuppressions() {microtasks_suppressions_++;} 377 | inline void DecrementMicrotasksSuppressions() {microtasks_suppressions_--;} 378 | inline bool HasMicrotasksSuppressions() { return !!microtasks_suppressions_; } 379 | 380 | #ifdef DEBUG 381 | // In debug we check that calls not intended to invoke microtasks are 382 | // still correctly wrapped with microtask scopes. 383 | inline void IncrementDebugMicrotasksScopeDepth() {debug_microtasks_depth_++;} 384 | inline void DecrementDebugMicrotasksScopeDepth() {debug_microtasks_depth_--;} 385 | inline bool DebugMicrotasksScopeDepthIsZero() { 386 | return debug_microtasks_depth_ == 0; 387 | } 388 | #endif 389 | 390 | inline void set_microtasks_policy(v8::MicrotasksPolicy policy); 391 | inline v8::MicrotasksPolicy microtasks_policy() const; 392 | 393 | inline void EnterContext(Handle context); 394 | inline void LeaveContext(); 395 | inline bool LastEnteredContextWas(Handle context); 396 | 397 | // Returns the last entered context or an empty handle if no 398 | // contexts have been entered. 399 | inline Handle LastEnteredContext(); 400 | 401 | inline void EnterMicrotaskContext(Handle context); 402 | inline void LeaveMicrotaskContext(); 403 | inline Handle MicrotaskContext(); 404 | inline bool MicrotaskContextIsLastEnteredContext() const { 405 | return microtask_context_ && 406 | entered_context_count_during_microtasks_ == entered_contexts_.size(); 407 | } 408 | 409 | inline void SaveContext(Context* context); 410 | inline Context* RestoreContext(); 411 | inline bool HasSavedContexts(); 412 | 413 | inline DetachableVector* blocks() { return &blocks_; } 414 | Isolate* isolate() const { return isolate_; } 415 | 416 | void ReturnBlock(Object** block) { 417 | DCHECK_NOT_NULL(block); 418 | if (spare_ != nullptr) DeleteArray(spare_); 419 | spare_ = block; 420 | } 421 | 422 | private: 423 | void ResetAfterArchive() { 424 | blocks_.detach(); 425 | entered_contexts_.detach(); 426 | saved_contexts_.detach(); 427 | microtask_context_ = nullptr; 428 | entered_context_count_during_microtasks_ = 0; 429 | spare_ = nullptr; 430 | last_handle_before_deferred_block_ = nullptr; 431 | call_depth_ = 0; 432 | } 433 | 434 | void Free() { 435 | DCHECK(blocks_.empty()); 436 | DCHECK(entered_contexts_.empty()); 437 | DCHECK(saved_contexts_.empty()); 438 | DCHECK(!microtask_context_); 439 | 440 | blocks_.free(); 441 | entered_contexts_.free(); 442 | saved_contexts_.free(); 443 | if (spare_ != nullptr) { 444 | DeleteArray(spare_); 445 | spare_ = nullptr; 446 | } 447 | DCHECK_EQ(call_depth_, 0); 448 | } 449 | 450 | void BeginDeferredScope(); 451 | DeferredHandles* Detach(Object** prev_limit); 452 | 453 | Isolate* isolate_; 454 | DetachableVector blocks_; 455 | // Used as a stack to keep track of entered contexts. 456 | DetachableVector entered_contexts_; 457 | // Used as a stack to keep track of saved contexts. 458 | DetachableVector saved_contexts_; 459 | Context* microtask_context_; 460 | Object** spare_; 461 | int call_depth_; 462 | int microtasks_depth_; 463 | int microtasks_suppressions_; 464 | size_t entered_contexts_count_; 465 | size_t entered_context_count_during_microtasks_; 466 | #ifdef DEBUG 467 | int debug_microtasks_depth_; 468 | #endif 469 | v8::MicrotasksPolicy microtasks_policy_; 470 | Object** last_handle_before_deferred_block_; 471 | // This is only used for threading support. 472 | HandleScopeData handle_scope_data_; 473 | 474 | void IterateThis(RootVisitor* v); 475 | char* RestoreThreadHelper(char* from); 476 | char* ArchiveThreadHelper(char* to); 477 | 478 | friend class DeferredHandles; 479 | friend class DeferredHandleScope; 480 | friend class HandleScopeImplementerOffsets; 481 | 482 | DISALLOW_COPY_AND_ASSIGN(HandleScopeImplementer); 483 | }; 484 | 485 | class HandleScopeImplementerOffsets { 486 | public: 487 | enum Offsets { 488 | kMicrotaskContext = offsetof(HandleScopeImplementer, microtask_context_), 489 | kEnteredContexts = offsetof(HandleScopeImplementer, entered_contexts_), 490 | kEnteredContextsCount = 491 | offsetof(HandleScopeImplementer, entered_contexts_count_), 492 | kEnteredContextCountDuringMicrotasks = offsetof( 493 | HandleScopeImplementer, entered_context_count_during_microtasks_) 494 | }; 495 | 496 | private: 497 | DISALLOW_IMPLICIT_CONSTRUCTORS(HandleScopeImplementerOffsets); 498 | }; 499 | 500 | const int kHandleBlockSize = v8::internal::KB - 2; // fit in one page 501 | 502 | 503 | void HandleScopeImplementer::set_microtasks_policy( 504 | v8::MicrotasksPolicy policy) { 505 | microtasks_policy_ = policy; 506 | } 507 | 508 | 509 | v8::MicrotasksPolicy HandleScopeImplementer::microtasks_policy() const { 510 | return microtasks_policy_; 511 | } 512 | 513 | 514 | void HandleScopeImplementer::SaveContext(Context* context) { 515 | saved_contexts_.push_back(context); 516 | } 517 | 518 | 519 | Context* HandleScopeImplementer::RestoreContext() { 520 | Context* last_context = saved_contexts_.back(); 521 | saved_contexts_.pop_back(); 522 | return last_context; 523 | } 524 | 525 | 526 | bool HandleScopeImplementer::HasSavedContexts() { 527 | return !saved_contexts_.empty(); 528 | } 529 | 530 | 531 | void HandleScopeImplementer::EnterContext(Handle context) { 532 | entered_contexts_.push_back(*context); 533 | entered_contexts_count_ = entered_contexts_.size(); 534 | } 535 | 536 | void HandleScopeImplementer::LeaveContext() { 537 | entered_contexts_.pop_back(); 538 | entered_contexts_count_ = entered_contexts_.size(); 539 | } 540 | 541 | bool HandleScopeImplementer::LastEnteredContextWas(Handle context) { 542 | return !entered_contexts_.empty() && entered_contexts_.back() == *context; 543 | } 544 | 545 | void HandleScopeImplementer::EnterMicrotaskContext(Handle context) { 546 | DCHECK(!microtask_context_); 547 | microtask_context_ = *context; 548 | entered_context_count_during_microtasks_ = entered_contexts_.size(); 549 | } 550 | 551 | void HandleScopeImplementer::LeaveMicrotaskContext() { 552 | microtask_context_ = nullptr; 553 | entered_context_count_during_microtasks_ = 0; 554 | } 555 | 556 | // If there's a spare block, use it for growing the current scope. 557 | internal::Object** HandleScopeImplementer::GetSpareOrNewBlock() { 558 | internal::Object** block = 559 | (spare_ != nullptr) ? spare_ 560 | : NewArray(kHandleBlockSize); 561 | spare_ = nullptr; 562 | return block; 563 | } 564 | 565 | 566 | void HandleScopeImplementer::DeleteExtensions(internal::Object** prev_limit) { 567 | while (!blocks_.empty()) { 568 | internal::Object** block_start = blocks_.back(); 569 | internal::Object** block_limit = block_start + kHandleBlockSize; 570 | 571 | // SealHandleScope may make the prev_limit to point inside the block. 572 | if (block_start <= prev_limit && prev_limit <= block_limit) { 573 | #ifdef ENABLE_HANDLE_ZAPPING 574 | internal::HandleScope::ZapRange(prev_limit, block_limit); 575 | #endif 576 | break; 577 | } 578 | 579 | blocks_.pop_back(); 580 | #ifdef ENABLE_HANDLE_ZAPPING 581 | internal::HandleScope::ZapRange(block_start, block_limit); 582 | #endif 583 | if (spare_ != nullptr) { 584 | DeleteArray(spare_); 585 | } 586 | spare_ = block_start; 587 | } 588 | DCHECK((blocks_.empty() && prev_limit == nullptr) || 589 | (!blocks_.empty() && prev_limit != nullptr)); 590 | } 591 | 592 | // Interceptor functions called from generated inline caches to notify 593 | // CPU profiler that external callbacks are invoked. 594 | void InvokeAccessorGetterCallback( 595 | v8::Local property, 596 | const v8::PropertyCallbackInfo& info, 597 | v8::AccessorNameGetterCallback getter); 598 | 599 | void InvokeFunctionCallback(const v8::FunctionCallbackInfo& info, 600 | v8::FunctionCallback callback); 601 | 602 | class Testing { 603 | public: 604 | static v8::Testing::StressType stress_type() { return stress_type_; } 605 | static void set_stress_type(v8::Testing::StressType stress_type) { 606 | stress_type_ = stress_type; 607 | } 608 | 609 | private: 610 | static v8::Testing::StressType stress_type_; 611 | }; 612 | 613 | } // namespace internal 614 | } // namespace v8 615 | 616 | #endif // V8_API_H_ 617 | -------------------------------------------------------------------------------- /demo/csharp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace NightOwl.demo 8 | { 9 | public class CSharp 10 | { 11 | private readonly string _testField; 12 | 13 | public string TestProperty { get; set; } 14 | 15 | #region RegionTest 16 | public string Getter => TestProperty; 17 | 18 | public CSharp(string testField) 19 | { 20 | _testField = testField; 21 | string text = $"{TestProperty} this is a text string"; 22 | int number = 1; 23 | } 24 | 25 | #endregion 26 | 27 | /// 28 | /// Hello this is an xml comment 29 | /// 30 | /// param comment 31 | /// 32 | public async Task TestMethod(string testParam) 33 | { 34 | for(var i = 0; i <= 5; i++) 35 | { 36 | testParam.Trim(); 37 | _testField?.Trim(); 38 | 39 | var enumVal = (int)TestEnum.TestValue; 40 | 41 | 42 | // Hello this is a normal comment 43 | new List().Where(c => c == "Test"); 44 | } 45 | 46 | return await Task.FromResult(testParam); 47 | } 48 | } 49 | 50 | public enum TestEnum 51 | { 52 | TestValue 53 | } 54 | } -------------------------------------------------------------------------------- /demo/css.css: -------------------------------------------------------------------------------- 1 | .someClass { 2 | font-family: serif; 3 | } 4 | 5 | #someID { 6 | background: yellow; 7 | } 8 | 9 | main { 10 | margin-top: 20px; 11 | } 12 | -------------------------------------------------------------------------------- /demo/elm.elm: -------------------------------------------------------------------------------- 1 | main : Program Never Model Msg 2 | main = 3 | program 4 | { init = init 5 | , view = view 6 | , update = update 7 | , subscriptions = subscriptions 8 | } -------------------------------------------------------------------------------- /demo/flutter.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart' as material; 2 | 3 | void main(){ 4 | runApp( 5 | new MaterialApp( 6 | home: new MyButton(), 7 | ) 8 | ); 9 | } 10 | 11 | class MyButton extends StatefulWidget{ 12 | @override 13 | MyButtonState createState() => new MyButtonState(); 14 | } 15 | 16 | class MyButtonState extends State{ 17 | String flutterText = ""; 18 | List collection = ['Flutter', 'is', 'great']; 19 | int index = 0; 20 | 21 | void changeText(){ 22 | setState( 23 | () { 24 | flutterText = collection[index]; 25 | index++; 26 | index = index % 3; 27 | } 28 | ); 29 | } 30 | 31 | @override 32 | Widget build(BuildContext context){ 33 | return new Scaffold( 34 | appBar: new AppBar( 35 | title: new Text("Stateful Widget"), 36 | backgroundColor: Colors.orangeAccent, 37 | ), 38 | body: Center( 39 | child: new Column( 40 | mainAxisAlignment: MainAxisAlignment.center, 41 | children: [ 42 | new Text( 43 | flutterText, 44 | style: new TextStyle(fontSize: 40.0) 45 | ), 46 | new Padding( 47 | padding: new EdgeInsets.all(10.0) 48 | ), 49 | new RaisedButton( 50 | child: new Text( 51 | "Update", 52 | style: new TextStyle(color: Colors.white) 53 | ), 54 | color: Colors.blueAccent, 55 | onPressed: changeText, 56 | ) 57 | ], 58 | ) 59 | ) 60 | ); 61 | } 62 | } -------------------------------------------------------------------------------- /demo/html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 |
Tacos Tacos
13 | 14 |

Tacos tacos tacos

15 | 16 | 17 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /demo/issue-91.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import calculate from '../logic/calculate' 3 | import './App.css' 4 | import ButtonPanel from './ButtonPanel' 5 | import Display from './Display' 6 | 7 | class App extends React.Component { 8 | constructor(props) { 9 | super(props) 10 | this.state = { 11 | total: null 12 | } 13 | } 14 | 15 | handleClick = buttonName => { 16 | this.setState(calculate(this.state, buttonName)) 17 | } 18 | 19 | render() { 20 | return ( 21 |
22 | Tacos 23 | 24 | 25 |
26 | ) 27 | } 28 | } 29 | export default App 30 | -------------------------------------------------------------------------------- /demo/issue-91.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import calculate from '../logic/calculate' 3 | import './App.css' 4 | import ButtonPanel from './ButtonPanel' 5 | import Display from './Display' 6 | 7 | class App extends React.Component { 8 | constructor(props) { 9 | super(props) 10 | this.state = { 11 | total: null 12 | } 13 | } 14 | 15 | handleClick = buttonName => { 16 | this.setState(calculate(this.state, buttonName)) 17 | } 18 | 19 | render() { 20 | return ( 21 |
22 | Tacos 23 | 24 | 25 |
26 | ) 27 | } 28 | } 29 | export default App 30 | -------------------------------------------------------------------------------- /demo/js.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | class Sale { 3 | constructor(price) { 4 | ;[this.decoratorsList, this.price] = [[], price] 5 | } 6 | 7 | decorate(decorator) { 8 | if (!Sale[decorator]) throw new Error(`decorator not exist: ${decorator}`) 9 | this.decoratorsList.push(Sale[decorator]) 10 | } 11 | 12 | getPrice() { 13 | for (let decorator of this.decoratorsList) { 14 | this.price = decorator(this.price) 15 | } 16 | return this.price.toFixed(2) 17 | } 18 | 19 | static quebec(price) { 20 | // this is a comment 21 | return price + price * 7.5 / 100 22 | } 23 | 24 | static fedtax(price) { 25 | return price + price * 5 / 100 26 | } 27 | } 28 | 29 | let sale = new Sale(100) 30 | sale.decorate('fedtax') 31 | sale.decorate('quebec') 32 | console.log(sale.getPrice()) //112.88 33 | 34 | getPrice() 35 | 36 | //deeply nested 37 | 38 | async function asyncCall() { 39 | var result = await resolveAfter2Seconds(); 40 | } 41 | 42 | const options = { 43 | connections: { 44 | compression: false 45 | } 46 | } 47 | 48 | for (let i = 0; i < 10; i++) { 49 | continue; 50 | } 51 | 52 | if (true) { } 53 | 54 | while (true) { } 55 | 56 | switch (2) { 57 | case 2: 58 | break; 59 | default: 60 | break; 61 | } 62 | 63 | class EditFishForm extends Component { 64 | static propTypes = { 65 | updateFish: PropTypes.func, 66 | deleteFish: PropTypes.func, 67 | index: PropTypes.string, 68 | fish: PropTypes.shape({ 69 | image: PropTypes.string, 70 | name: PropTypes.string.isRequired 71 | }) 72 | } 73 | } -------------------------------------------------------------------------------- /demo/json.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "es6": true, 4 | "mocha": true, 5 | "node": true 6 | }, 7 | "extends": "eslint:recommended", 8 | "rules": { 9 | "indent": ["error", 2], 10 | "linebreak-style": ["error", "unix"], 11 | "quotes": ["error", "single"], 12 | "semi": ["error", "always"] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /demo/markdown.md: -------------------------------------------------------------------------------- 1 | # Night Owl Theme 2 | 3 | > Night Owl theme for VS Code. 4 | 5 | ![Preview](images/preview.gif) 6 | 7 | # Installation 8 | 9 | 1. Install [Visual Studio Code](https://code.visualstudio.com/) 10 | 2. Launch Visual Studio Code 11 | 3. Choose **Extensions** from menu 12 | 4. Search for `night-owl` 13 | 5. Click **Install** to install it 14 | 6. Click **Reload** to reload the Code 15 | 7. File > Preferences > Color Theme > **Night Owl** 16 | 17 | -[ ] check check 12 12 18 | -[ ] check check 12 12 19 | 20 | Heading 1 21 | ======== 22 | 23 | Heading 2 24 | -------------- 25 | 26 | ### Heading 3 27 | -------------------------------------------------------------------------------- /demo/mdx.mdx: -------------------------------------------------------------------------------- 1 | import Comp from "./comp"; 2 | 3 | # Night Owl Theme 4 | 5 | > Night Owl theme for VS Code. 6 | 7 | ## Heading 2 8 | 9 | ### Heading 3 10 | 11 | A **VS Code dark** theme for contrast for nighttime coding. 12 | 13 | import Comp from "./comp"; 14 | 15 | export function Local(props) { 16 | return ; 17 | } 18 | 19 | ![Preview](images/preview.gif) 20 | 21 | # Installation 22 | 23 | 1. Install [Visual Studio Code](https://code.visualstudio.com/) 24 | 2. Launch Visual Studio Code 25 | 3. Choose **Extensions** from menu 26 | 4. Search for `night-owl` 27 | 5. Click **Install** to install it 28 | 6. Click **Reload** to reload the Code 29 | 7. File > Preferences > Color Theme > **Night Owl** 30 | 31 | -[ ] check check 12 12 -[ ] check check 12 12 32 | -------------------------------------------------------------------------------- /demo/newfile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/demo/newfile.js -------------------------------------------------------------------------------- /demo/php.php: -------------------------------------------------------------------------------- 1 | pdo = new PDO($GLOBALS['db_dsn'], $GLOBALS['db_username'], $GLOBALS['db_password']); 11 | $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 | $this->pdo->query("CREATE TABLE hello (what VARCHAR(50) NOT NULL)"); 13 | } 14 | public function tearDown() 15 | { 16 | $this->pdo->query("DROP TABLE hello"); 17 | } 18 | public function testHelloWorld() 19 | { 20 | $helloWorld = new HelloWorld($this->pdo); 21 | $this->assertEquals('Hello World', $helloWorld->hello()); 22 | } 23 | public function testHello() 24 | { 25 | $helloWorld = new HelloWorld($this->pdo); 26 | $this->assertEquals('Hello Bar', $helloWorld->hello('Bar')); 27 | } 28 | public function testWhat() 29 | { 30 | $helloWorld = new HelloWorld($this->pdo); 31 | $this->assertFalse($helloWorld->what()); 32 | $helloWorld->hello('Bar'); 33 | $this->assertEquals('Bar', $helloWorld->what()); 34 | } 35 | } 36 | ?> -------------------------------------------------------------------------------- /demo/powershell.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | Provisions a example powershell function 4 | .EXAMPLE 5 | PS C:\> .\powershell.ps1 -Argument1 "hola soy un texto" 6 | #> 7 | [CmdletBinding()] 8 | param( 9 | [Parameter(Mandatory = $true, HelpMessage = "This argument is required")] 10 | [String] 11 | $textParameter 12 | ) 13 | 14 | try { 15 | #almost every function is called like this: 16 | Write-Host "Initializing example function" 17 | Write-Host "The parameter is " $textParameter -ForegroundColor Red 18 | 19 | #this are variables 20 | $customArray = @( 21 | @{ 22 | Id = 1; 23 | Value = "I'm an option"; 24 | }, 25 | @{ 26 | Id = 2; 27 | Value = "Option No. 2"; 28 | } 29 | ) 30 | 31 | foreach ($option in $customArray) { 32 | Write-Host "Iterating options:" $option.Value 33 | } 34 | 35 | $collectionWithItems = New-Object System.Collections.ArrayList 36 | $temp = New-Object System.Object 37 | $temp | Add-Member -MemberType NoteProperty -Name "Title" -Value "Custom Object Title 1" 38 | $temp | Add-Member -MemberType NoteProperty -Name "Subject" -Value "Delegación del plan de acción [Folio_PlandeAccion]" 39 | $temp | Add-Member -MemberType NoteProperty -Name "Body" -Value "
This s a note example, with lots of text
40 |

 
41 |
It happens to be in html format, but is just text the property couldnt't know
42 |

 
43 |
It's up for the one who uses me to render me correctly. Or not.
" 44 | $collectionWithItems.Add($temp) | Out-Null 45 | Write-Host "My collection has" $collectionWithItems.Count "item(s)" -ForegroundColor Green 46 | 47 | #Calling some other scripts. Sometimes its nice to have a "master" script and call subscripts with other functions / actions 48 | .\otherscript.ps1 "Parameter ?" 49 | .\thisonewithoutparams.ps1 50 | 51 | #little bit of SharePoint *the original issue* :D 52 | $web = Get-SPWeb http://mysharepointsite 53 | $list = $web.Lists["ListName"] 54 | $query = New-Object Microsoft.SharePoint.SPQuery 55 | $query.Query= "CAMLQuery here" 56 | $query.ViewFields= "" 57 | $query.ViewFieldsOnly= $true 58 | $listitems = $list.GetItems($query); 59 | foreach($item in $listitems) { 60 | if($item -ne $null) { 61 | Write-Host "There is an elmeent in the list, id" $item.ID 62 | } 63 | } 64 | } 65 | catch { 66 | Write-Host -ForegroundColor Red "Exception Type: $($_.Exception.GetType().FullName)" 67 | Write-Host -ForegroundColor Red "Exception Message: $($_.Exception.Message)" 68 | } 69 | -------------------------------------------------------------------------------- /demo/pug.pug: -------------------------------------------------------------------------------- 1 | 2 | html(lang="en") 3 | 4 | head 5 | meta(charset="UTF-8") 6 | meta(name="viewport", content="width=device-width, initial-scale=1.0") 7 | meta(http-equiv="X-UA-Compatible", content="ie=edge") 8 | title Document 9 | 10 | body 11 | h1 Pug 12 | -------------------------------------------------------------------------------- /demo/python.py: -------------------------------------------------------------------------------- 1 | from collections import deque 2 | 3 | 4 | def topo(G, ind=None, Q=[1]): 5 | if ind == None: 6 | ind = [0] * (len(G) + 1) # this is a comment 7 | for u in G: 8 | for v in G[u]: 9 | ind[v] += 1 10 | Q = deque() 11 | for i in G: 12 | if ind[i] == 0: 13 | Q.append(i) 14 | if len(Q) == 0: 15 | return 16 | v = Q.popleft() 17 | print(v) 18 | for w in G[v]: 19 | ind[w] -= 1 20 | if ind[w] == 0: 21 | Q.append(w) 22 | topo(G, ind, Q) 23 | 24 | 25 | class SomeClass: 26 | def create_arr(self): # An instance method 27 | self.arr = [] 28 | 29 | def insert_to_arr(self, value): #An instance method 30 | self.arr.append(value) 31 | 32 | @classmethod 33 | def class_method(cls): 34 | print("the class method was called") 35 | -------------------------------------------------------------------------------- /demo/react.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import calculate from '../logic/calculate'; 3 | import './App.css'; 4 | import ButtonPanel from './ButtonPanel'; 5 | import Display from './Display'; 6 | 7 | class App extends React.Component { 8 | constructor(props) { 9 | super(props) 10 | this.state = { 11 | total: null, 12 | next: null, 13 | operation: null 14 | } 15 | } 16 | 17 | handleClick = buttonName => { 18 | this.setState(calculate(this.state, buttonName)) 19 | } 20 | 21 | render() { 22 | return ( 23 |
24 | Tacos 25 | 26 | 27 |
28 | ) 29 | } 30 | } 31 | export default App 32 | -------------------------------------------------------------------------------- /demo/reacthook.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from 'react'; 2 | 3 | function Example() { 4 | const [count, setCount] = useState(0); 5 | 6 | // Similar to componentDidMount and componentDidUpdate: 7 | useEffect(() => { 8 | // Update the document title using the browser API 9 | document.title = `You clicked ${count} times`; 10 | }); 11 | 12 | return ( 13 |
14 |

You clicked {count} times

15 | 18 |
19 | ); 20 | } -------------------------------------------------------------------------------- /demo/ruby.rb: -------------------------------------------------------------------------------- 1 | module ExampleModule 2 | class ExampleClass::ScopeResolution < NewScope::Operator 3 | include Another::Scoped::Module 4 | 5 | def initialize(options) 6 | @@class_var = options[:class] 7 | @instance_var = options[:instance] 8 | 9 | config.data = [] 10 | config.actions = [] 11 | 12 | new.run 13 | end 14 | 15 | def method_examples 16 | method_with_args(:arg) 17 | method_no_args 18 | # method defined on base ruby object 19 | method(:array_access) 20 | end 21 | 22 | def array_access 23 | array = ([1, 2] << 3).uniq 24 | array[1] 25 | array[dynamic_key] 26 | end 27 | 28 | def blocks 29 | yield if block_given? 30 | [1].each do |num| 31 | do_something 32 | end 33 | 34 | [2].each { |num| do_something } 35 | lambda { do_something } 36 | ->(arg1) { do_something} 37 | Proc.new { |arg| do_something } 38 | end 39 | 40 | def hash_access 41 | symbol_hash = { 42 | key1: 'info', 43 | key2: 'info', 44 | }.compact 45 | 46 | string_hash = { 47 | method_key => 'info', 48 | 'key2' => 'info', 49 | } 50 | 51 | symbol_hash[:key1] 52 | string_hash['key2'] 53 | end 54 | 55 | def output 56 | puts 'Output here' 57 | pp 'Output here' 58 | end 59 | 60 | def self.class_method 61 | return "I am a class method!" 62 | end 63 | 64 | class << self 65 | def another_private_method(arg1, default_arg = {}, **args, &block); end 66 | end 67 | 68 | private 69 | 70 | def other_method(*args) 71 | puts "doing other stuff #{42}" 72 | end 73 | 74 | def self.private 75 | [1, 2, 3].each do |item| 76 | puts item 77 | end 78 | end 79 | 80 | private_class_method :private 81 | 82 | private 83 | 84 | def user_params 85 | params.require(:user).permit(:username, :email, :password) 86 | params.pluck(:user) 87 | end 88 | end 89 | end 90 | 91 | ExampleModule::ExampleClass::ScopeResolution 92 | example_instance = ExampleModule::ExampleClass::ScopeResolution.new(:arg) 93 | 94 | example_instance.method(:arg) do 95 | puts 'yielding in block!' 96 | end -------------------------------------------------------------------------------- /demo/statelessfunctionalreact.js: -------------------------------------------------------------------------------- 1 | // I use this syntax when my component fits on one line 2 | const ListItem = props =>
  • {props.item.name}
  • 3 | 4 | // I use this when my component has no logic outside JSX 5 | const List = ({ items }) => ( 6 |
      {items.map(item => )}
    7 | ) 8 | 9 | // I use this when the component needs logic outside JSX. 10 | const Body = props => { 11 | let items = transformItems(props.rawItems) 12 | return ( 13 |
    14 |

    {props.header}

    15 | 16 |
    17 | ) 18 | } 19 | 20 | const Foo = () =>
    21 |
    22 |
    23 | 24 | // This is equivalent to the last example 25 | function Page(props, context) { 26 | return ( 27 |
    28 | 29 |
    30 | ) 31 | } 32 | // propTypes and contextTypes are supported 33 | Page.propTypes = { 34 | rawItems: React.PropTypes.array.isRequired 35 | } 36 | -------------------------------------------------------------------------------- /demo/stylus.styl: -------------------------------------------------------------------------------- 1 | .someClass { 2 | font-family: serif; 3 | } 4 | 5 | #someID { 6 | background: yellow; 7 | } 8 | 9 | main { 10 | margin-top: 20px; 11 | } 12 | 13 | .someotherclass { 14 | padding: 20px; 15 | box-shadow: 0 0 0 2px inset; 16 | } 17 | -------------------------------------------------------------------------------- /demo/tsx.tsx: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, OnDestroy } from '@angular/core' 2 | import { Person, SearchService } from '../shared' 3 | import { ActivatedRoute } from '@angular/router' 4 | import { Subscription } from 'rxjs' 5 | 6 | @Component({ 7 | selector: 'app-search', 8 | templateUrl: './search.component.html', 9 | styleUrls: ['./search.component.css'] 10 | }) 11 | export class SearchComponent implements OnInit, OnDestroy { 12 | query: string 13 | searchResults: Array 14 | sub: Subscription 15 | 16 | constructor( 17 | private searchService: SearchService, 18 | private route: ActivatedRoute 19 | ) {} 20 | 21 | ngOnInit() { 22 | this.sub = this.route.params.subscribe(params => { 23 | if (params['term']) { 24 | this.query = decodeURIComponent(params['term']) 25 | this.search() 26 | } 27 | }) 28 | } 29 | 30 | search(): void { 31 | this.searchService.search(this.query).subscribe( 32 | (data: any) => { 33 | this.searchResults = data 34 | }, 35 | error => console.log(error) 36 | ) 37 | } 38 | 39 | ngOnDestroy() { 40 | if (this.sub) { 41 | this.sub.unsubscribe() 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /demo/vuedemo.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 33 | 34 | -------------------------------------------------------------------------------- /demo/yml.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | install: 5 | - npm install 6 | script: 7 | - npm test 8 | after_script: 9 | - npm run coveralls 10 | notifications: 11 | email: 12 | on_success: never 13 | on_failure: always 14 | -------------------------------------------------------------------------------- /first-screen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/first-screen.jpg -------------------------------------------------------------------------------- /light-owl-full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/light-owl-full.jpg -------------------------------------------------------------------------------- /night-owl-2.0.1.vsix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/night-owl-2.0.1.vsix -------------------------------------------------------------------------------- /owl-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/owl-icon.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "night-owl", 3 | "displayName": "Night Owl", 4 | "description": "A VS Code theme for the night owls out there. Now introducing Light Owl theme for daytime usage. Decisions were based on meaningful contrast for reading comprehension and for optimal razzle dazzle. ✨", 5 | "version": "2.1.1", 6 | "publisher": "sdras", 7 | "license": "SEE LICENSE IN LICENSE.md", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/sdras/night-owl-vscode-theme" 11 | }, 12 | "keywords": [ 13 | "Theme", 14 | "Dark Theme", 15 | "Light Theme", 16 | "Night Owl", 17 | "Night Theme", 18 | "Light Owl", 19 | "Snow Owl", 20 | "Early Bird", 21 | "Accessible Theme" 22 | ], 23 | "scripts": { 24 | "publish": "vsce publish" 25 | }, 26 | "galleryBanner": { 27 | "color": "#061526", 28 | "theme": "dark" 29 | }, 30 | "engines": { 31 | "vscode": "^1.17.0" 32 | }, 33 | "categories": [ 34 | "Themes" 35 | ], 36 | "icon": "owl-icon.png", 37 | "contributes": { 38 | "themes": [ 39 | { 40 | "label": "Night Owl", 41 | "uiTheme": "vs-dark", 42 | "path": "./themes/Night Owl-color-theme.json" 43 | }, 44 | { 45 | "label": "Night Owl (No Italics)", 46 | "uiTheme": "vs-dark", 47 | "path": "./themes/Night Owl-color-theme-noitalic.json" 48 | }, 49 | { 50 | "label": "Night Owl Light", 51 | "uiTheme": "vs", 52 | "path": "./themes/Night Owl-Light-color-theme.json" 53 | }, 54 | { 55 | "label": "Night Owl Light (No Italics)", 56 | "uiTheme": "vs", 57 | "path": "./themes/Night Owl-Light-color-theme-noitalic.json" 58 | } 59 | ] 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/preview.jpg -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/preview.png -------------------------------------------------------------------------------- /themes/Night Owl-Light-color-theme-noitalic.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Night Owl Light", 3 | "type": "light", 4 | "semanticHighlighting": false, 5 | "colors": { 6 | "foreground": "#403f53", 7 | "focusBorder": "#93A1A1", 8 | "errorForeground": "#403f53", 9 | "selection.background": "#7a8181ad", 10 | "descriptionForeground": "#403f53", 11 | "widget.shadow": "#d9d9d9", 12 | "titleBar.activeBackground": "#F0F0F0", 13 | "notifications.background": "#F0F0F0", 14 | "notifications.foreground": "#403f53", 15 | "notificationLink.foreground": "#994cc3", 16 | "notifications.border": "#CCCCCC", 17 | "notificationCenter.border": "#CCCCCC", 18 | "notificationToast.border": "#CCCCCC", 19 | "notificationCenterHeader.foreground": "#403f53", 20 | "notificationCenterHeader.background": "#F0F0F0", 21 | "button.background": "#2AA298", 22 | "button.foreground": "#F0F0F0", 23 | "dropdown.background": "#F0F0F0", 24 | "dropdown.foreground": "#403f53", 25 | "dropdown.border": "#d9d9d9", 26 | "input.background": "#F0F0F0", 27 | "input.foreground": "#403f53", 28 | "input.border": "#d9d9d9", 29 | "input.placeholderForeground": "#93A1A1", 30 | "inputOption.activeBorder": "#2AA298", 31 | "inputValidation.infoBorder": "#D0D0D0", 32 | "inputValidation.infoBackground": "#F0F0F0", 33 | "inputValidation.warningBackground": "#daaa01", 34 | "inputValidation.warningBorder": "#E0AF02", 35 | "inputValidation.errorBackground": "#f76e6e", 36 | "inputValidation.errorBorder": "#de3d3b", 37 | "badge.background": "#2AA298", 38 | "badge.foreground": "#F0F0F0", 39 | "progressBar.background": "#2AA298", 40 | "list.activeSelectionBackground": "#d3e8f8", 41 | "list.activeSelectionForeground": "#403f53", 42 | "list.inactiveSelectionBackground": "#E0E7EA", 43 | "list.inactiveSelectionForeground": "#403f53", 44 | "list.focusBackground": "#d3e8f8", 45 | "list.hoverBackground": "#d3e8f8", 46 | "list.focusForeground": "#403f53", 47 | "list.hoverForeground": "#403f53", 48 | "list.highlightForeground": "#403f53", 49 | "list.errorForeground": "#E64D49", 50 | "list.warningForeground": "#daaa01", 51 | "activityBar.background": "#F0F0F0", 52 | "activityBar.foreground": "#403f53", 53 | "activityBar.dropBackground": "#D0D0D0", 54 | "activityBarBadge.background": "#403f53", 55 | "activityBarBadge.foreground": "#F0F0F0", 56 | "activityBar.border": "#F0F0F0", 57 | "sideBar.background": "#F0F0F0", 58 | "sideBar.foreground": "#403f53", 59 | "sideBarTitle.foreground": "#403f53", 60 | "sideBar.border": "#F0F0F0", 61 | "scrollbar.shadow": "#CCCCCC", 62 | "tab.border": "#F0F0F0", 63 | "tab.activeBackground": "#F6F6F6", 64 | "tab.activeForeground": "#403f53", 65 | "tab.inactiveForeground": "#403f53", 66 | "tab.inactiveBackground": "#F0F0F0", 67 | "editorGroup.border": "#F0F0F0", 68 | "editorGroup.background": "#F6F6F6", 69 | "editorGroupHeader.tabsBackground": "#F0F0F0", 70 | "editorGroupHeader.tabsBorder": "#F0F0F0", 71 | "editorGroupHeader.noTabsBackground": "#F0F0F0", 72 | "tab.activeModifiedBorder": "#2AA298", 73 | "tab.inactiveModifiedBorder": "#93A1A1", 74 | "tab.unfocusedActiveModifiedBorder": "#93A1A1", 75 | "tab.unfocusedInactiveModifiedBorder": "#93A1A1", 76 | "editor.background": "#FBFBFB", 77 | "editor.foreground": "#403f53", 78 | "editorCursor.foreground": "#90A7B2", 79 | "editorLineNumber.foreground": "#90A7B2", 80 | "editorLineNumber.activeForeground": "#403f53", 81 | "editor.selectionBackground": "#E0E0E0", 82 | "editor.selectionHighlightBackground": "#339cec33", 83 | "editor.wordHighlightBackground": "#339cec33", 84 | "editor.wordHighlightStrongBackground": "#007dd659", 85 | "editor.findMatchBackground": "#93A1A16c", 86 | "editor.findMatchHighlightBackground": "#93a1a16c", 87 | "editor.findRangeHighlightBackground": "#7497a633", 88 | "editor.hoverHighlightBackground": "#339cec33", 89 | "editor.lineHighlightBackground": "#F0F0F0", 90 | "editor.rangeHighlightBackground": "#7497a633", 91 | "editorWhitespace.foreground": "#d9d9d9", 92 | "editorIndentGuide.background": "#d9d9d9", 93 | "editorCodeLens.foreground": "#403f53", 94 | "editorError.foreground": "#E64D49", 95 | "editorError.border": "#FBFBFB", 96 | "editorWarning.foreground": "#daaa01", 97 | "editorWarning.border": "#daaa01", 98 | "editorGutter.addedBackground": "#49d0c5", 99 | "editorGutter.modifiedBackground": "#6fbef6", 100 | "editorGutter.deletedBackground": "#f76e6e", 101 | "editorRuler.foreground": "#d9d9d9", 102 | "editorOverviewRuler.errorForeground": "#E64D49", 103 | "editorOverviewRuler.warningForeground": "#daaa01", 104 | "editorInlayHint.background": "#F0F0F0", 105 | "editorInlayHint.foreground": "#403f53", 106 | "editorWidget.background": "#F0F0F0", 107 | "editorWidget.border": "#d9d9d9", 108 | "editorSuggestWidget.background": "#F0F0F0", 109 | "editorSuggestWidget.foreground": "#403f53", 110 | "editorSuggestWidget.highlightForeground": "#403f53", 111 | "editorSuggestWidget.selectedBackground": "#d3e8f8", 112 | "editorSuggestWidget.border": "#d9d9d9", 113 | "editorHoverWidget.background": "#F0F0F0", 114 | "editorHoverWidget.border": "#d9d9d9", 115 | "debugExceptionWidget.background": "#F0F0F0", 116 | "debugExceptionWidget.border": "#d9d9d9", 117 | "editorMarkerNavigation.background": "#D0D0D0", 118 | "editorMarkerNavigationError.background": "#f76e6e", 119 | "editorMarkerNavigationWarning.background": "#daaa01", 120 | "debugToolBar.background": "#F0F0F0", 121 | "pickerGroup.border": "#d9d9d9", 122 | "pickerGroup.foreground": "#403f53", 123 | "extensionButton.prominentBackground": "#2AA298", 124 | "extensionButton.prominentForeground": "#F0F0F0", 125 | "statusBar.background": "#F0F0F0", 126 | "statusBar.border": "#F0F0F0", 127 | "statusBar.debuggingBackground": "#F0F0F0", 128 | "statusBar.debuggingForeground": "#403f53", 129 | "statusBar.foreground": "#403f53", 130 | "statusBar.noFolderBackground": "#F0F0F0", 131 | "statusBar.noFolderForeground": "#403f53", 132 | "panel.background": "#F0F0F0", 133 | "panel.border": "#d9d9d9", 134 | "peekView.border": "#d9d9d9", 135 | "peekViewEditor.background": "#F6F6F6", 136 | "peekViewEditorGutter.background": "#F6F6F6", 137 | "peekViewEditor.matchHighlightBackground": "#49d0c5", 138 | "peekViewResult.background": "#F0F0F0", 139 | "peekViewResult.fileForeground": "#403f53", 140 | "peekViewResult.lineForeground": "#403f53", 141 | "peekViewResult.matchHighlightBackground": "#49d0c5", 142 | "peekViewResult.selectionBackground": "#E0E7EA", 143 | "peekViewResult.selectionForeground": "#403f53", 144 | "peekViewTitle.background": "#F0F0F0", 145 | "peekViewTitleLabel.foreground": "#403f53", 146 | "peekViewTitleDescription.foreground": "#403f53", 147 | "terminal.ansiBrightBlack": "#403f53", 148 | "terminal.ansiBlack": "#403f53", 149 | "terminal.ansiBrightBlue": "#288ed7", 150 | "terminal.ansiBlue": "#288ed7", 151 | "terminal.ansiBrightCyan": "#2AA298", 152 | "terminal.ansiCyan": "#2AA298", 153 | "terminal.ansiBrightGreen": "#08916a", 154 | "terminal.ansiGreen": "#08916a", 155 | "terminal.ansiBrightMagenta": "#d6438a", 156 | "terminal.ansiMagenta": "#d6438a", 157 | "terminal.ansiBrightRed": "#de3d3b", 158 | "terminal.ansiRed": "#de3d3b", 159 | "terminal.ansiBrightWhite": "#93A1A1", 160 | "terminal.ansiWhite": "#93A1A1", 161 | "terminal.ansiBrightYellow": "#daaa01", 162 | "terminal.ansiYellow": "#E0AF02", 163 | "terminal.background": "#F6F6F6", 164 | "terminal.foreground": "#403f53" 165 | }, 166 | "tokenColors": [ 167 | { 168 | "name": "Changed", 169 | "scope": [ 170 | "markup.changed", 171 | "meta.diff.header.git", 172 | "meta.diff.header.from-file", 173 | "meta.diff.header.to-file" 174 | ], 175 | "settings": { 176 | "foreground": "#a2bffc" 177 | } 178 | }, 179 | { 180 | "name": "Deleted", 181 | "scope": "markup.deleted.diff", 182 | "settings": { 183 | "foreground": "#EF535090" 184 | } 185 | }, 186 | { 187 | "name": "Inserted", 188 | "scope": "markup.inserted.diff", 189 | "settings": { 190 | "foreground": "#4876d6ff" 191 | } 192 | }, 193 | { 194 | "name": "Global settings", 195 | "settings": { 196 | "background": "#011627", 197 | "foreground": "#403f53" 198 | } 199 | }, 200 | { 201 | "name": "Comment", 202 | "scope": ["comment", "punctuation.definition.comment"], 203 | "settings": { 204 | "foreground": "#989fb1" 205 | } 206 | }, 207 | { 208 | "name": "String", 209 | "scope": "string", 210 | "settings": { 211 | "foreground": "#4876d6" 212 | } 213 | }, 214 | { 215 | "name": "String Quoted", 216 | "scope": ["string.quoted", "variable.other.readwrite.js"], 217 | "settings": { 218 | "foreground": "#c96765" 219 | } 220 | }, 221 | { 222 | "name": "Support Constant Math", 223 | "scope": "support.constant.math", 224 | "settings": { 225 | "foreground": "#4876d6" 226 | } 227 | }, 228 | { 229 | "name": "Number", 230 | "scope": ["constant.numeric", "constant.character.numeric"], 231 | "settings": { 232 | "foreground": "#aa0982", 233 | "fontStyle": "" 234 | } 235 | }, 236 | { 237 | "name": "Built-in constant", 238 | "scope": [ 239 | "constant.language", 240 | "punctuation.definition.constant", 241 | "variable.other.constant" 242 | ], 243 | "settings": { 244 | "foreground": "#4876d6" 245 | } 246 | }, 247 | { 248 | "name": "User-defined constant", 249 | "scope": ["constant.character", "constant.other"], 250 | "settings": { 251 | "foreground": "#4876d6" 252 | } 253 | }, 254 | { 255 | "name": "Constant Character Escape", 256 | "scope": "constant.character.escape", 257 | "settings": { 258 | "foreground": "#aa0982" 259 | } 260 | }, 261 | { 262 | "name": "RegExp String", 263 | "scope": ["string.regexp", "string.regexp keyword.other"], 264 | "settings": { 265 | "foreground": "#5ca7e4" 266 | } 267 | }, 268 | { 269 | "name": "Comma in functions", 270 | "scope": "meta.function punctuation.separator.comma", 271 | "settings": { 272 | "foreground": "#5f7e97" 273 | } 274 | }, 275 | { 276 | "name": "Variable", 277 | "scope": "variable", 278 | "settings": { 279 | "foreground": "#4876d6" 280 | } 281 | }, 282 | { 283 | "name": "Keyword", 284 | "scope": ["punctuation.accessor", "keyword"], 285 | "settings": { 286 | "foreground": "#994cc3" 287 | } 288 | }, 289 | { 290 | "name": "Storage", 291 | "scope": [ 292 | "storage", 293 | "meta.var.expr", 294 | "meta.class meta.method.declaration meta.var.expr storage.type.js", 295 | "storage.type.property.js", 296 | "storage.type.property.ts", 297 | "storage.type.property.tsx" 298 | ], 299 | "settings": { 300 | "foreground": "#994cc3" 301 | } 302 | }, 303 | { 304 | "name": "Storage type", 305 | "scope": "storage.type", 306 | "settings": { 307 | "foreground": "#994cc3" 308 | } 309 | }, 310 | { 311 | "name": "Storage type", 312 | "scope": "storage.type.function.arrow.js", 313 | "settings": { 314 | "fontStyle": "" 315 | } 316 | }, 317 | { 318 | "name": "Class name", 319 | "scope": ["entity.name.class", "meta.class entity.name.type.class"], 320 | "settings": { 321 | "foreground": "#111111" 322 | } 323 | }, 324 | { 325 | "name": "Inherited class", 326 | "scope": "entity.other.inherited-class", 327 | "settings": { 328 | "foreground": "#4876d6" 329 | } 330 | }, 331 | { 332 | "name": "Function name", 333 | "scope": "entity.name.function", 334 | "settings": { 335 | "foreground": "#994cc3" 336 | } 337 | }, 338 | { 339 | "name": "Meta Tag", 340 | "scope": ["punctuation.definition.tag", "meta.tag"], 341 | "settings": { 342 | "foreground": "#994cc3" 343 | } 344 | }, 345 | { 346 | "name": "HTML Tag names", 347 | "scope": [ 348 | "entity.name.tag", 349 | "meta.tag.other.html", 350 | "meta.tag.other.js", 351 | "meta.tag.other.tsx", 352 | "entity.name.tag.tsx", 353 | "entity.name.tag.js", 354 | "entity.name.tag", 355 | "meta.tag.js", 356 | "meta.tag.tsx", 357 | "meta.tag.html" 358 | ], 359 | "settings": { 360 | "foreground": "#994cc3" 361 | } 362 | }, 363 | { 364 | "name": "Tag attribute", 365 | "scope": "entity.other.attribute-name", 366 | "settings": { 367 | "foreground": "#4876d6" 368 | } 369 | }, 370 | { 371 | "name": "Entity Name Tag Custom", 372 | "scope": "entity.name.tag.custom", 373 | "settings": { 374 | "foreground": "#4876d6" 375 | } 376 | }, 377 | { 378 | "name": "Library (function & constant)", 379 | "scope": ["support.function", "support.constant"], 380 | "settings": { 381 | "foreground": "#4876d6" 382 | } 383 | }, 384 | { 385 | "name": "Support Constant Property Value meta", 386 | "scope": "support.constant.meta.property-value", 387 | "settings": { 388 | "foreground": "#0c969b" 389 | } 390 | }, 391 | { 392 | "name": "Library class/type", 393 | "scope": ["support.type", "support.class"], 394 | "settings": { 395 | "foreground": "#4876d6" 396 | } 397 | }, 398 | { 399 | "name": "Support Variable DOM", 400 | "scope": "support.variable.dom", 401 | "settings": { 402 | "foreground": "#4876d6" 403 | } 404 | }, 405 | { 406 | "name": "Invalid", 407 | "scope": "invalid", 408 | "settings": { 409 | "foreground": "#ff2c83" 410 | } 411 | }, 412 | { 413 | "name": "Invalid deprecated", 414 | "scope": "invalid.deprecated", 415 | "settings": { 416 | "foreground": "#d3423e" 417 | } 418 | }, 419 | { 420 | "name": "Keyword Operator", 421 | "scope": "keyword.operator", 422 | "settings": { 423 | "foreground": "#0c969b", 424 | "fontStyle": "" 425 | } 426 | }, 427 | { 428 | "name": "Keyword Operator Relational", 429 | "scope": "keyword.operator.relational", 430 | "settings": { 431 | "foreground": "#994cc3" 432 | } 433 | }, 434 | { 435 | "name": "Keyword Operator Assignment", 436 | "scope": "keyword.operator.assignment", 437 | "settings": { 438 | "foreground": "#994cc3" 439 | } 440 | }, 441 | { 442 | "name": "Keyword Operator Arithmetic", 443 | "scope": "keyword.operator.arithmetic", 444 | "settings": { 445 | "foreground": "#994cc3" 446 | } 447 | }, 448 | { 449 | "name": "Keyword Operator Bitwise", 450 | "scope": "keyword.operator.bitwise", 451 | "settings": { 452 | "foreground": "#994cc3" 453 | } 454 | }, 455 | { 456 | "name": "Keyword Operator Increment", 457 | "scope": "keyword.operator.increment", 458 | "settings": { 459 | "foreground": "#994cc3" 460 | } 461 | }, 462 | { 463 | "name": "Keyword Operator Ternary", 464 | "scope": "keyword.operator.ternary", 465 | "settings": { 466 | "foreground": "#994cc3" 467 | } 468 | }, 469 | { 470 | "name": "Double-Slashed Comment", 471 | "scope": "comment.line.double-slash", 472 | "settings": { 473 | "foreground": "#939dbb" 474 | } 475 | }, 476 | { 477 | "name": "Object", 478 | "scope": "object", 479 | "settings": { 480 | "foreground": "#cdebf7" 481 | } 482 | }, 483 | { 484 | "name": "Null", 485 | "scope": "constant.language.null", 486 | "settings": { 487 | "foreground": "#bc5454" 488 | } 489 | }, 490 | { 491 | "name": "Meta Brace", 492 | "scope": "meta.brace", 493 | "settings": { 494 | "foreground": "#403f53" 495 | } 496 | }, 497 | { 498 | "name": "Meta Delimiter Period", 499 | "scope": "meta.delimiter.period", 500 | "settings": { 501 | "foreground": "#994cc3" 502 | } 503 | }, 504 | { 505 | "name": "Punctuation Definition String", 506 | "scope": "punctuation.definition.string", 507 | "settings": { 508 | "foreground": "#111111" 509 | } 510 | }, 511 | { 512 | "name": "Punctuation Definition String Markdown", 513 | "scope": "punctuation.definition.string.begin.markdown", 514 | "settings": { 515 | "foreground": "#bc5454" 516 | } 517 | }, 518 | { 519 | "name": "Boolean", 520 | "scope": "constant.language.boolean", 521 | "settings": { 522 | "foreground": "#bc5454" 523 | } 524 | }, 525 | { 526 | "name": "Object Comma", 527 | "scope": "object.comma", 528 | "settings": { 529 | "foreground": "#ffffff" 530 | } 531 | }, 532 | { 533 | "name": "Variable Parameter Function", 534 | "scope": "variable.parameter.function", 535 | "settings": { 536 | "foreground": "#0c969b", 537 | "fontStyle": "" 538 | } 539 | }, 540 | { 541 | "name": "Support Type Property Name & entity name tags", 542 | "scope": [ 543 | "support.type.vendor.property-name", 544 | "support.constant.vendor.property-value", 545 | "support.type.property-name", 546 | "meta.property-list entity.name.tag" 547 | ], 548 | "settings": { 549 | "foreground": "#0c969b", 550 | "fontStyle": "" 551 | } 552 | }, 553 | { 554 | "name": "Entity Name tag reference in stylesheets", 555 | "scope": "meta.property-list entity.name.tag.reference", 556 | "settings": { 557 | "foreground": "#57eaf1" 558 | } 559 | }, 560 | { 561 | "name": "Constant Other Color RGB Value Punctuation Definition Constant", 562 | "scope": "constant.other.color.rgb-value punctuation.definition.constant", 563 | "settings": { 564 | "foreground": "#aa0982" 565 | } 566 | }, 567 | { 568 | "name": "Constant Other Color", 569 | "scope": "constant.other.color", 570 | "settings": { 571 | "foreground": "#aa0982" 572 | } 573 | }, 574 | { 575 | "name": "Keyword Other Unit", 576 | "scope": "keyword.other.unit", 577 | "settings": { 578 | "foreground": "#aa0982" 579 | } 580 | }, 581 | { 582 | "name": "Meta Selector", 583 | "scope": "meta.selector", 584 | "settings": { 585 | "foreground": "#994cc3" 586 | } 587 | }, 588 | { 589 | "name": "Entity Other Attribute Name Id", 590 | "scope": "entity.other.attribute-name.id", 591 | "settings": { 592 | "foreground": "#aa0982" 593 | } 594 | }, 595 | { 596 | "name": "Meta Property Name", 597 | "scope": "meta.property-name", 598 | "settings": { 599 | "foreground": "#0c969b" 600 | } 601 | }, 602 | { 603 | "name": "Doctypes", 604 | "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], 605 | "settings": { 606 | "foreground": "#994cc3" 607 | } 608 | }, 609 | { 610 | "name": "Punctuation Definition Parameters", 611 | "scope": "punctuation.definition.parameters", 612 | "settings": { 613 | "foreground": "#111111" 614 | } 615 | }, 616 | { 617 | "name": "Keyword Control Operator", 618 | "scope": "keyword.control.operator", 619 | "settings": { 620 | "foreground": "#0c969b" 621 | } 622 | }, 623 | { 624 | "name": "Keyword Operator Logical", 625 | "scope": "keyword.operator.logical", 626 | "settings": { 627 | "foreground": "#994cc3", 628 | "fontStyle": "" 629 | } 630 | }, 631 | { 632 | "name": "Variable Instances", 633 | "scope": [ 634 | "variable.instance", 635 | "variable.other.instance", 636 | "variable.readwrite.instance", 637 | "variable.other.readwrite.instance", 638 | "variable.other.property" 639 | ], 640 | "settings": { 641 | "foreground": "#0c969b" 642 | } 643 | }, 644 | { 645 | "name": "Variable Property Other object property", 646 | "scope": ["variable.other.object.property"], 647 | "settings": { 648 | "foreground": "#111111" 649 | } 650 | }, 651 | { 652 | "name": "Variable Property Other object", 653 | "scope": ["variable.other.object.js"], 654 | "settings": { 655 | "fontStyle": "" 656 | } 657 | }, 658 | { 659 | "name": "Entity Name Function", 660 | "scope": ["entity.name.function"], 661 | "settings": { 662 | "foreground": "#4876d6" 663 | } 664 | }, 665 | { 666 | "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby", 667 | "scope": [ 668 | "keyword.operator.comparison", 669 | "keyword.control.flow.js", 670 | "keyword.control.flow.ts", 671 | "keyword.control.flow.tsx", 672 | "keyword.control.ruby", 673 | "keyword.control.module.ruby", 674 | "keyword.control.class.ruby", 675 | "keyword.control.def.ruby", 676 | "keyword.control.loop.js", 677 | "keyword.control.loop.ts", 678 | "keyword.control.import.js", 679 | "keyword.control.import.ts", 680 | "keyword.control.import.tsx", 681 | "keyword.control.from.js", 682 | "keyword.control.from.ts", 683 | "keyword.control.from.tsx", 684 | "keyword.operator.instanceof.js", 685 | "keyword.operator.expression.instanceof.ts", 686 | "keyword.operator.expression.instanceof.tsx" 687 | ], 688 | "settings": { 689 | "foreground": "#994cc3" 690 | } 691 | }, 692 | { 693 | "name": "Keyword Control Conditional", 694 | "scope": [ 695 | "keyword.control.conditional.js", 696 | "keyword.control.conditional.ts", 697 | "keyword.control.switch.js", 698 | "keyword.control.switch.ts" 699 | ], 700 | "settings": { 701 | "foreground": "#994cc3", 702 | "fontStyle": "" 703 | } 704 | }, 705 | { 706 | "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords", 707 | "scope": [ 708 | "support.constant", 709 | "keyword.other.special-method", 710 | "keyword.other.new", 711 | "keyword.other.debugger", 712 | "keyword.control" 713 | ], 714 | "settings": { 715 | "foreground": "#0c969b" 716 | } 717 | }, 718 | { 719 | "name": "Support Function", 720 | "scope": "support.function", 721 | "settings": { 722 | "foreground": "#4876d6" 723 | } 724 | }, 725 | { 726 | "name": "Invalid Broken", 727 | "scope": "invalid.broken", 728 | "settings": { 729 | "foreground": "#aa0982" 730 | } 731 | }, 732 | { 733 | "name": "Invalid Unimplemented", 734 | "scope": "invalid.unimplemented", 735 | "settings": { 736 | "foreground": "#8BD649" 737 | } 738 | }, 739 | { 740 | "name": "Invalid Illegal", 741 | "scope": "invalid.illegal", 742 | "settings": { 743 | "foreground": "#c96765" 744 | } 745 | }, 746 | { 747 | "name": "Language Variable", 748 | "scope": "variable.language", 749 | "settings": { 750 | "foreground": "#0c969b" 751 | } 752 | }, 753 | { 754 | "name": "Support Variable Property", 755 | "scope": "support.variable.property", 756 | "settings": { 757 | "foreground": "#0c969b" 758 | } 759 | }, 760 | { 761 | "name": "Variable Function", 762 | "scope": "variable.function", 763 | "settings": { 764 | "foreground": "#4876d6" 765 | } 766 | }, 767 | { 768 | "name": "Variable Interpolation", 769 | "scope": "variable.interpolation", 770 | "settings": { 771 | "foreground": "#ec5f67" 772 | } 773 | }, 774 | { 775 | "name": "Meta Function Call", 776 | "scope": "meta.function-call", 777 | "settings": { 778 | "foreground": "#4876d6" 779 | } 780 | }, 781 | { 782 | "name": "Punctuation Section Embedded", 783 | "scope": "punctuation.section.embedded", 784 | "settings": { 785 | "foreground": "#d3423e" 786 | } 787 | }, 788 | { 789 | "name": "Punctuation Tweaks", 790 | "scope": [ 791 | "punctuation.terminator.expression", 792 | "punctuation.definition.arguments", 793 | "punctuation.definition.array", 794 | "punctuation.section.array", 795 | "meta.array" 796 | ], 797 | "settings": { 798 | "foreground": "#403f53" 799 | } 800 | }, 801 | { 802 | "name": "More Punctuation Tweaks", 803 | "scope": [ 804 | "punctuation.definition.list.begin", 805 | "punctuation.definition.list.end", 806 | "punctuation.separator.arguments", 807 | "punctuation.definition.list" 808 | ], 809 | "settings": { 810 | "foreground": "#111111" 811 | } 812 | }, 813 | { 814 | "name": "Template Strings", 815 | "scope": "string.template meta.template.expression", 816 | "settings": { 817 | "foreground": "#d3423e" 818 | } 819 | }, 820 | { 821 | "name": "Backtics(``) in Template Strings", 822 | "scope": "string.template punctuation.definition.string", 823 | "settings": { 824 | "foreground": "#403f53" 825 | } 826 | }, 827 | { 828 | "name": "Italics", 829 | "scope": "italic", 830 | "settings": { 831 | "foreground": "#994cc3", 832 | "fontStyle": "italic" 833 | } 834 | }, 835 | { 836 | "name": "Bold", 837 | "scope": "bold", 838 | "settings": { 839 | "foreground": "#4876d6", 840 | "fontStyle": "bold" 841 | } 842 | }, 843 | { 844 | "name": "Quote", 845 | "scope": "quote", 846 | "settings": { 847 | "foreground": "#697098" 848 | } 849 | }, 850 | { 851 | "name": "Raw Code", 852 | "scope": "raw", 853 | "settings": { 854 | "foreground": "#0c969b" 855 | } 856 | }, 857 | { 858 | "name": "CoffeScript Variable Assignment", 859 | "scope": "variable.assignment.coffee", 860 | "settings": { 861 | "foreground": "#31e1eb" 862 | } 863 | }, 864 | { 865 | "name": "CoffeScript Parameter Function", 866 | "scope": "variable.parameter.function.coffee", 867 | "settings": { 868 | "foreground": "#403f53" 869 | } 870 | }, 871 | { 872 | "name": "CoffeeScript Assignments", 873 | "scope": "variable.assignment.coffee", 874 | "settings": { 875 | "foreground": "#0c969b" 876 | } 877 | }, 878 | { 879 | "name": "C# Readwrite Variables", 880 | "scope": "variable.other.readwrite.cs", 881 | "settings": { 882 | "foreground": "#403f53" 883 | } 884 | }, 885 | { 886 | "name": "C# Classes & Storage types", 887 | "scope": ["entity.name.type.class.cs", "storage.type.cs"], 888 | "settings": { 889 | "foreground": "#4876d6" 890 | } 891 | }, 892 | { 893 | "name": "C# Namespaces", 894 | "scope": "entity.name.type.namespace.cs", 895 | "settings": { 896 | "foreground": "#0c969b" 897 | } 898 | }, 899 | { 900 | "name": "Tag names in Stylesheets", 901 | "scope": [ 902 | "entity.name.tag.css", 903 | "entity.name.tag.less", 904 | "entity.name.tag.custom.css", 905 | "support.constant.property-value.css" 906 | ], 907 | "settings": { 908 | "foreground": "#c96765", 909 | "fontStyle": "" 910 | } 911 | }, 912 | { 913 | "name": "Wildcard(*) selector in Stylesheets", 914 | "scope": [ 915 | "entity.name.tag.wildcard.css", 916 | "entity.name.tag.wildcard.less", 917 | "entity.name.tag.wildcard.scss", 918 | "entity.name.tag.wildcard.sass" 919 | ], 920 | "settings": { 921 | "foreground": "#0c969b" 922 | } 923 | }, 924 | { 925 | "name": "CSS Keyword Other Unit", 926 | "scope": "keyword.other.unit.css", 927 | "settings": { 928 | "foreground": "#4876d6" 929 | } 930 | }, 931 | { 932 | "name": "Attribute Name for CSS", 933 | "scope": [ 934 | "meta.attribute-selector.css entity.other.attribute-name.attribute", 935 | "variable.other.readwrite.js" 936 | ], 937 | "settings": { 938 | "foreground": "#aa0982" 939 | } 940 | }, 941 | { 942 | "name": "Elixir Classes", 943 | "scope": [ 944 | "source.elixir support.type.elixir", 945 | "source.elixir meta.module.elixir entity.name.class.elixir" 946 | ], 947 | "settings": { 948 | "foreground": "#4876d6" 949 | } 950 | }, 951 | { 952 | "name": "Elixir Functions", 953 | "scope": "source.elixir entity.name.function", 954 | "settings": { 955 | "foreground": "#4876d6" 956 | } 957 | }, 958 | { 959 | "name": "Elixir Constants", 960 | "scope": [ 961 | "source.elixir constant.other.symbol.elixir", 962 | "source.elixir constant.other.keywords.elixir" 963 | ], 964 | "settings": { 965 | "foreground": "#4876d6" 966 | } 967 | }, 968 | { 969 | "name": "Elixir String Punctuations", 970 | "scope": "source.elixir punctuation.definition.string", 971 | "settings": { 972 | "foreground": "#4876d6" 973 | } 974 | }, 975 | { 976 | "name": "Elixir", 977 | "scope": [ 978 | "source.elixir variable.other.readwrite.module.elixir", 979 | "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" 980 | ], 981 | "settings": { 982 | "foreground": "#4876d6" 983 | } 984 | }, 985 | { 986 | "name": "Elixir Binary Punctuations", 987 | "scope": "source.elixir .punctuation.binary.elixir", 988 | "settings": { 989 | "foreground": "#994cc3" 990 | } 991 | }, 992 | { 993 | "name": "Closure Constant Keyword", 994 | "scope": "constant.keyword.clojure", 995 | "settings": { 996 | "foreground": "#0c969b" 997 | } 998 | }, 999 | { 1000 | "name": "Go Function Calls", 1001 | "scope": "source.go meta.function-call.go", 1002 | "settings": { 1003 | "foreground": "#0c969b" 1004 | } 1005 | }, 1006 | { 1007 | "name": "Go Keywords", 1008 | "scope": [ 1009 | "source.go keyword.package.go", 1010 | "source.go keyword.import.go", 1011 | "source.go keyword.function.go", 1012 | "source.go keyword.type.go", 1013 | "source.go keyword.struct.go", 1014 | "source.go keyword.interface.go", 1015 | "source.go keyword.const.go", 1016 | "source.go keyword.var.go", 1017 | "source.go keyword.map.go", 1018 | "source.go keyword.channel.go", 1019 | "source.go keyword.control.go" 1020 | ], 1021 | "settings": { 1022 | "foreground": "#994cc3" 1023 | } 1024 | }, 1025 | { 1026 | "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", 1027 | "scope": [ 1028 | "source.go constant.language.go", 1029 | "source.go constant.other.placeholder.go" 1030 | ], 1031 | "settings": { 1032 | "foreground": "#bc5454" 1033 | } 1034 | }, 1035 | { 1036 | "name": "C++ Functions", 1037 | "scope": [ 1038 | "entity.name.function.preprocessor.cpp", 1039 | "entity.scope.name.cpp" 1040 | ], 1041 | "settings": { 1042 | "foreground": "#0c969bff" 1043 | } 1044 | }, 1045 | { 1046 | "name": "C++ Meta Namespace", 1047 | "scope": ["meta.namespace-block.cpp"], 1048 | "settings": { 1049 | "foreground": "#111111" 1050 | } 1051 | }, 1052 | { 1053 | "name": "C++ Language Primitive Storage", 1054 | "scope": ["storage.type.language.primitive.cpp"], 1055 | "settings": { 1056 | "foreground": "#bc5454" 1057 | } 1058 | }, 1059 | { 1060 | "name": "C++ Preprocessor Macro", 1061 | "scope": ["meta.preprocessor.macro.cpp"], 1062 | "settings": { 1063 | "foreground": "#403f53" 1064 | } 1065 | }, 1066 | { 1067 | "name": "C++ Variable Parameter", 1068 | "scope": ["variable.parameter"], 1069 | "settings": { 1070 | "foreground": "#111111" 1071 | } 1072 | }, 1073 | { 1074 | "name": "Powershell Variables", 1075 | "scope": ["variable.other.readwrite.powershell"], 1076 | "settings": { 1077 | "foreground": "#4876d6" 1078 | } 1079 | }, 1080 | { 1081 | "name": "Powershell Function", 1082 | "scope": ["support.function.powershell"], 1083 | "settings": { 1084 | "foreground": "#0c969bff" 1085 | } 1086 | }, 1087 | { 1088 | "name": "ID Attribute Name in HTML", 1089 | "scope": "entity.other.attribute-name.id.html", 1090 | "settings": { 1091 | "foreground": "#4876d6" 1092 | } 1093 | }, 1094 | { 1095 | "name": "HTML Punctuation Definition Tag", 1096 | "scope": "punctuation.definition.tag.html", 1097 | "settings": { 1098 | "foreground": "#994cc3" 1099 | } 1100 | }, 1101 | { 1102 | "name": "HTML Doctype", 1103 | "scope": "meta.tag.sgml.doctype.html", 1104 | "settings": { 1105 | "foreground": "#994cc3" 1106 | } 1107 | }, 1108 | { 1109 | "name": "JavaScript Classes", 1110 | "scope": "meta.class entity.name.type.class.js", 1111 | "settings": { 1112 | "foreground": "#111111" 1113 | } 1114 | }, 1115 | { 1116 | "name": "JavaScript Method Declaration e.g. `constructor`", 1117 | "scope": "meta.method.declaration storage.type.js", 1118 | "settings": { 1119 | "foreground": "#4876d6" 1120 | } 1121 | }, 1122 | { 1123 | "name": "JavaScript Terminator", 1124 | "scope": "terminator.js", 1125 | "settings": { 1126 | "foreground": "#403f53" 1127 | } 1128 | }, 1129 | { 1130 | "name": "JavaScript Meta Punctuation Definition", 1131 | "scope": "meta.js punctuation.definition.js", 1132 | "settings": { 1133 | "foreground": "#403f53" 1134 | } 1135 | }, 1136 | { 1137 | "name": "Entity Names in Code Documentations", 1138 | "scope": [ 1139 | "entity.name.type.instance.jsdoc", 1140 | "entity.name.type.instance.phpdoc" 1141 | ], 1142 | "settings": { 1143 | "foreground": "#5f7e97" 1144 | } 1145 | }, 1146 | { 1147 | "name": "Other Variables in Code Documentations", 1148 | "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], 1149 | "settings": { 1150 | "foreground": "#78ccf0" 1151 | } 1152 | }, 1153 | { 1154 | "name": "JavaScript module imports and exports", 1155 | "scope": [ 1156 | "variable.other.meta.import.js", 1157 | "meta.import.js variable.other", 1158 | "variable.other.meta.export.js", 1159 | "meta.export.js variable.other" 1160 | ], 1161 | "settings": { 1162 | "foreground": "#403f53" 1163 | } 1164 | }, 1165 | { 1166 | "name": "JavaScript Variable Parameter Function", 1167 | "scope": "variable.parameter.function.js", 1168 | "settings": { 1169 | "foreground": "#7986E7" 1170 | } 1171 | }, 1172 | { 1173 | "name": "JavaScript[React] Variable Other Object", 1174 | "scope": [ 1175 | "variable.other.object.js", 1176 | "variable.other.object.jsx", 1177 | "variable.object.property.js", 1178 | "variable.object.property.jsx" 1179 | ], 1180 | "settings": { 1181 | "foreground": "#403f53" 1182 | } 1183 | }, 1184 | { 1185 | "name": "JavaScript Variables", 1186 | "scope": ["variable.js", "variable.other.js"], 1187 | "settings": { 1188 | "foreground": "#403f53" 1189 | } 1190 | }, 1191 | { 1192 | "name": "JavaScript Entity Name Type", 1193 | "scope": ["entity.name.type.js", "entity.name.type.module.js"], 1194 | "settings": { 1195 | "foreground": "#111111", 1196 | "fontStyle": "" 1197 | } 1198 | }, 1199 | { 1200 | "name": "JavaScript Support Classes", 1201 | "scope": "support.class.js", 1202 | "settings": { 1203 | "foreground": "#403f53" 1204 | } 1205 | }, 1206 | { 1207 | "name": "JSON Property Names", 1208 | "scope": "support.type.property-name.json", 1209 | "settings": { 1210 | "foreground": "#0c969b" 1211 | } 1212 | }, 1213 | { 1214 | "name": "JSON Support Constants", 1215 | "scope": "support.constant.json", 1216 | "settings": { 1217 | "foreground": "#4876d6" 1218 | } 1219 | }, 1220 | { 1221 | "name": "JSON Property values (string)", 1222 | "scope": "meta.structure.dictionary.value.json string.quoted.double", 1223 | "settings": { 1224 | "foreground": "#c789d6" 1225 | } 1226 | }, 1227 | { 1228 | "name": "Strings in JSON values", 1229 | "scope": "string.quoted.double.json punctuation.definition.string.json", 1230 | "settings": { 1231 | "foreground": "#0c969b" 1232 | } 1233 | }, 1234 | { 1235 | "name": "Specific JSON Property values like null", 1236 | "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", 1237 | "settings": { 1238 | "foreground": "#bc5454" 1239 | } 1240 | }, 1241 | { 1242 | "name": "JavaScript Other Variable", 1243 | "scope": "variable.other.object.js", 1244 | "settings": { 1245 | "foreground": "#0c969b" 1246 | } 1247 | }, 1248 | { 1249 | "name": "Ruby Variables", 1250 | "scope": ["variable.other.ruby"], 1251 | "settings": { 1252 | "foreground": "#403f53" 1253 | } 1254 | }, 1255 | { 1256 | "name": "Ruby Class", 1257 | "scope": ["entity.name.type.class.ruby"], 1258 | "settings": { 1259 | "foreground": "#c96765" 1260 | } 1261 | }, 1262 | { 1263 | "name": "Ruby Hashkeys", 1264 | "scope": "constant.language.symbol.hashkey.ruby", 1265 | "settings": { 1266 | "foreground": "#0c969b" 1267 | } 1268 | }, 1269 | { 1270 | "name": "Ruby Symbols", 1271 | "scope": "constant.language.symbol.ruby", 1272 | "settings": { 1273 | "foreground": "#0c969b" 1274 | } 1275 | }, 1276 | { 1277 | "name": "LESS Tag names", 1278 | "scope": "entity.name.tag.less", 1279 | "settings": { 1280 | "foreground": "#994cc3" 1281 | } 1282 | }, 1283 | { 1284 | "name": "LESS Keyword Other Unit", 1285 | "scope": "keyword.other.unit.css", 1286 | "settings": { 1287 | "foreground": "#0c969b" 1288 | } 1289 | }, 1290 | { 1291 | "name": "Attribute Name for LESS", 1292 | "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", 1293 | "settings": { 1294 | "foreground": "#aa0982" 1295 | } 1296 | }, 1297 | { 1298 | "name": "Markdown Headings", 1299 | "scope": [ 1300 | "markup.heading", 1301 | "markup.heading.setext.1", 1302 | "markup.heading.setext.2" 1303 | ], 1304 | "settings": { 1305 | "foreground": "#4876d6" 1306 | } 1307 | }, 1308 | { 1309 | "name": "Markdown Italics", 1310 | "scope": "markup.italic", 1311 | "settings": { 1312 | "foreground": "#994cc3", 1313 | "fontStyle": "italic" 1314 | } 1315 | }, 1316 | { 1317 | "name": "Markdown Bold", 1318 | "scope": "markup.bold", 1319 | "settings": { 1320 | "foreground": "#4876d6", 1321 | "fontStyle": "bold" 1322 | } 1323 | }, 1324 | { 1325 | "name": "Markdown Quote + others", 1326 | "scope": "markup.quote", 1327 | "settings": { 1328 | "foreground": "#697098" 1329 | } 1330 | }, 1331 | { 1332 | "name": "Markdown Raw Code + others", 1333 | "scope": "markup.inline.raw", 1334 | "settings": { 1335 | "foreground": "#0c969b" 1336 | } 1337 | }, 1338 | { 1339 | "name": "Markdown Links", 1340 | "scope": ["markup.underline.link", "markup.underline.link.image"], 1341 | "settings": { 1342 | "foreground": "#ff869a" 1343 | } 1344 | }, 1345 | { 1346 | "name": "Markdown Link Title and Description", 1347 | "scope": [ 1348 | "string.other.link.title.markdown", 1349 | "string.other.link.description.markdown" 1350 | ], 1351 | "settings": { 1352 | "foreground": "#403f53" 1353 | } 1354 | }, 1355 | { 1356 | "name": "Markdown Punctuation", 1357 | "scope": [ 1358 | "punctuation.definition.string.markdown", 1359 | "punctuation.definition.string.begin.markdown", 1360 | "punctuation.definition.string.end.markdown", 1361 | "meta.link.inline.markdown punctuation.definition.string" 1362 | ], 1363 | "settings": { 1364 | "foreground": "#4876d6" 1365 | } 1366 | }, 1367 | { 1368 | "name": "Markdown MetaData Punctuation", 1369 | "scope": ["punctuation.definition.metadata.markdown"], 1370 | "settings": { 1371 | "foreground": "#0c969b" 1372 | } 1373 | }, 1374 | { 1375 | "name": "Markdown List Punctuation", 1376 | "scope": ["beginning.punctuation.definition.list.markdown"], 1377 | "settings": { 1378 | "foreground": "#4876d6" 1379 | } 1380 | }, 1381 | { 1382 | "name": "Markdown Inline Raw String", 1383 | "scope": "markup.inline.raw.string.markdown", 1384 | "settings": { 1385 | "foreground": "#4876d6" 1386 | } 1387 | }, 1388 | { 1389 | "name": "PHP Variables", 1390 | "scope": ["variable.other.php", "variable.other.property.php"], 1391 | "settings": { 1392 | "foreground": "#111111" 1393 | } 1394 | }, 1395 | { 1396 | "name": "Support Classes in PHP", 1397 | "scope": "support.class.php", 1398 | "settings": { 1399 | "foreground": "#111111" 1400 | } 1401 | }, 1402 | { 1403 | "name": "Punctuations in PHP function calls", 1404 | "scope": "meta.function-call.php punctuation", 1405 | "settings": { 1406 | "foreground": "#403f53" 1407 | } 1408 | }, 1409 | { 1410 | "name": "PHP Global Variables", 1411 | "scope": "variable.other.global.php", 1412 | "settings": { 1413 | "foreground": "#4876d6" 1414 | } 1415 | }, 1416 | { 1417 | "name": "Declaration Punctuation in PHP Global Variables", 1418 | "scope": "variable.other.global.php punctuation.definition.variable", 1419 | "settings": { 1420 | "foreground": "#4876d6" 1421 | } 1422 | }, 1423 | { 1424 | "name": "Language Constants in Python", 1425 | "scope": "constant.language.python", 1426 | "settings": { 1427 | "foreground": "#bc5454" 1428 | } 1429 | }, 1430 | { 1431 | "name": "Python Function Parameter and Arguments", 1432 | "scope": [ 1433 | "variable.parameter.function.python", 1434 | "meta.function-call.arguments.python" 1435 | ], 1436 | "settings": { 1437 | "foreground": "#4876d6" 1438 | } 1439 | }, 1440 | { 1441 | "name": "Python Function Call", 1442 | "scope": [ 1443 | "meta.function-call.python", 1444 | "meta.function-call.generic.python" 1445 | ], 1446 | "settings": { 1447 | "foreground": "#0c969b" 1448 | } 1449 | }, 1450 | { 1451 | "name": "Punctuations in Python", 1452 | "scope": "punctuation.python", 1453 | "settings": { 1454 | "foreground": "#403f53" 1455 | } 1456 | }, 1457 | { 1458 | "name": "Decorator Functions in Python", 1459 | "scope": "entity.name.function.decorator.python", 1460 | "settings": { 1461 | "foreground": "#4876d6" 1462 | } 1463 | }, 1464 | { 1465 | "name": "Python Language Variable", 1466 | "scope": "source.python variable.language.special", 1467 | "settings": { 1468 | "foreground": "#aa0982" 1469 | } 1470 | }, 1471 | { 1472 | "name": "Python import control keyword", 1473 | "scope": "keyword.control", 1474 | "settings": { 1475 | "foreground": "#994cc3" 1476 | } 1477 | }, 1478 | { 1479 | "name": "SCSS Variable", 1480 | "scope": [ 1481 | "variable.scss", 1482 | "variable.sass", 1483 | "variable.parameter.url.scss", 1484 | "variable.parameter.url.sass" 1485 | ], 1486 | "settings": { 1487 | "foreground": "#4876d6" 1488 | } 1489 | }, 1490 | { 1491 | "name": "Variables in SASS At-Rules", 1492 | "scope": [ 1493 | "source.css.scss meta.at-rule variable", 1494 | "source.css.sass meta.at-rule variable" 1495 | ], 1496 | "settings": { 1497 | "foreground": "#4876d6" 1498 | } 1499 | }, 1500 | { 1501 | "name": "Variables in SASS At-Rules", 1502 | "scope": [ 1503 | "source.css.scss meta.at-rule variable", 1504 | "source.css.sass meta.at-rule variable" 1505 | ], 1506 | "settings": { 1507 | "foreground": "#111111" 1508 | } 1509 | }, 1510 | { 1511 | "name": "Attribute Name for SASS", 1512 | "scope": [ 1513 | "meta.attribute-selector.scss entity.other.attribute-name.attribute", 1514 | "meta.attribute-selector.sass entity.other.attribute-name.attribute" 1515 | ], 1516 | "settings": { 1517 | "foreground": "#aa0982" 1518 | } 1519 | }, 1520 | { 1521 | "name": "Tag names in SASS", 1522 | "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], 1523 | "settings": { 1524 | "foreground": "#0c969b" 1525 | } 1526 | }, 1527 | { 1528 | "name": "SASS Keyword Other Unit", 1529 | "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"], 1530 | "settings": { 1531 | "foreground": "#994cc3" 1532 | } 1533 | }, 1534 | { 1535 | "name": "TypeScript[React] Variables and Object Properties", 1536 | "scope": [ 1537 | "variable.other.readwrite.alias.ts", 1538 | "variable.other.readwrite.alias.tsx", 1539 | "variable.other.readwrite.ts", 1540 | "variable.other.readwrite.tsx", 1541 | "variable.other.object.ts", 1542 | "variable.other.object.tsx", 1543 | "variable.object.property.ts", 1544 | "variable.object.property.tsx", 1545 | "variable.other.ts", 1546 | "variable.other.tsx", 1547 | "variable.tsx", 1548 | "variable.ts" 1549 | ], 1550 | "settings": { 1551 | "foreground": "#403f53" 1552 | } 1553 | }, 1554 | { 1555 | "name": "TypeScript[React] Entity Name Types", 1556 | "scope": ["entity.name.type.ts", "entity.name.type.tsx"], 1557 | "settings": { 1558 | "foreground": "#111111" 1559 | } 1560 | }, 1561 | { 1562 | "name": "TypeScript[React] Node Classes", 1563 | "scope": ["support.class.node.ts", "support.class.node.tsx"], 1564 | "settings": { 1565 | "foreground": "#4876d6" 1566 | } 1567 | }, 1568 | { 1569 | "name": "TypeScript[React] Entity Name Types as Parameters", 1570 | "scope": [ 1571 | "meta.type.parameters.ts entity.name.type", 1572 | "meta.type.parameters.tsx entity.name.type" 1573 | ], 1574 | "settings": { 1575 | "foreground": "#5f7e97" 1576 | } 1577 | }, 1578 | { 1579 | "name": "TypeScript[React] Import/Export Punctuations", 1580 | "scope": [ 1581 | "meta.import.ts punctuation.definition.block", 1582 | "meta.import.tsx punctuation.definition.block", 1583 | "meta.export.ts punctuation.definition.block", 1584 | "meta.export.tsx punctuation.definition.block" 1585 | ], 1586 | "settings": { 1587 | "foreground": "#403f53" 1588 | } 1589 | }, 1590 | { 1591 | "name": "TypeScript[React] Punctuation Decorators", 1592 | "scope": [ 1593 | "meta.decorator punctuation.decorator.ts", 1594 | "meta.decorator punctuation.decorator.tsx" 1595 | ], 1596 | "settings": { 1597 | "foreground": "#4876d6" 1598 | } 1599 | }, 1600 | { 1601 | "name": "TypeScript[React] Punctuation Decorators", 1602 | "scope": "meta.tag.js meta.jsx.children.tsx", 1603 | "settings": { 1604 | "foreground": "#4876d6" 1605 | } 1606 | }, 1607 | { 1608 | "name": "YAML Entity Name Tags", 1609 | "scope": "entity.name.tag.yaml", 1610 | "settings": { 1611 | "foreground": "#111111" 1612 | } 1613 | }, 1614 | { 1615 | "name": "JavaScript Variable Other ReadWrite", 1616 | "scope": ["variable.other.readwrite.js", "variable.parameter"], 1617 | "settings": { 1618 | "foreground": "#403f53" 1619 | } 1620 | }, 1621 | { 1622 | "name": "Support Class Component", 1623 | "scope": ["support.class.component.js", "support.class.component.tsx"], 1624 | "settings": { 1625 | "foreground": "#aa0982", 1626 | "fontStyle": "" 1627 | } 1628 | }, 1629 | { 1630 | "name": "Text nested in React tags", 1631 | "scope": [ 1632 | "meta.jsx.children", 1633 | "meta.jsx.children.js", 1634 | "meta.jsx.children.tsx" 1635 | ], 1636 | "settings": { 1637 | "foreground": "#403f53" 1638 | } 1639 | }, 1640 | { 1641 | "name": "TypeScript Classes", 1642 | "scope": "meta.class entity.name.type.class.tsx", 1643 | "settings": { 1644 | "foreground": "#111111" 1645 | } 1646 | }, 1647 | { 1648 | "name": "TypeScript Entity Name Type", 1649 | "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"], 1650 | "settings": { 1651 | "foreground": "#111111" 1652 | } 1653 | }, 1654 | { 1655 | "name": "TypeScript Class Variable Keyword", 1656 | "scope": [ 1657 | "meta.class.ts meta.var.expr.ts storage.type.ts", 1658 | "meta.class.tsx meta.var.expr.tsx storage.type.tsx" 1659 | ], 1660 | "settings": { 1661 | "foreground": "#C792EA" 1662 | } 1663 | }, 1664 | { 1665 | "name": "TypeScript Method Declaration e.g. `constructor`", 1666 | "scope": [ 1667 | "meta.method.declaration storage.type.ts", 1668 | "meta.method.declaration storage.type.tsx" 1669 | ], 1670 | "settings": { 1671 | "foreground": "#4876d6" 1672 | } 1673 | }, 1674 | { 1675 | "name": "normalize font style of certain components", 1676 | "scope": [ 1677 | "meta.property-list.css meta.property-value.css variable.other.less", 1678 | "meta.property-list.scss variable.scss", 1679 | "meta.property-list.sass variable.sass", 1680 | "meta.brace", 1681 | "keyword.operator.operator", 1682 | "keyword.operator.or.regexp", 1683 | "keyword.operator.expression.in", 1684 | "keyword.operator.relational", 1685 | "keyword.operator.assignment", 1686 | "keyword.operator.comparison", 1687 | "keyword.operator.type", 1688 | "keyword.operator", 1689 | "keyword", 1690 | "punctuation.definintion.string", 1691 | "punctuation", 1692 | "variable.other.readwrite.js", 1693 | "storage.type", 1694 | "source.css", 1695 | "string.quoted" 1696 | ], 1697 | "settings": { 1698 | "fontStyle": "" 1699 | } 1700 | } 1701 | ] 1702 | } 1703 | -------------------------------------------------------------------------------- /themes/Night Owl-Light-color-theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Night Owl Light", 3 | "type": "light", 4 | "semanticHighlighting": false, 5 | "colors": { 6 | // Base 7 | "foreground": "#403f53", 8 | "focusBorder": "#93A1A1", 9 | "errorForeground": "#403f53", 10 | "selection.background": "#7a8181ad", 11 | "descriptionForeground": "#403f53", 12 | "widget.shadow": "#d9d9d9", 13 | "titleBar.activeBackground": "#F0F0F0", 14 | // Notifications 15 | "notifications.background": "#F0F0F0", 16 | "notifications.foreground": "#403f53", 17 | "notificationLink.foreground": "#994cc3", 18 | "notifications.border": "#CCCCCC", 19 | "notificationCenter.border": "#CCCCCC", 20 | "notificationToast.border": "#CCCCCC", 21 | "notificationCenterHeader.foreground": "#403f53", 22 | "notificationCenterHeader.background": "#F0F0F0", 23 | // Buttons 24 | "button.background": "#2AA298", 25 | "button.foreground": "#F0F0F0", 26 | // Dropdown 27 | "dropdown.background": "#F0F0F0", 28 | "dropdown.foreground": "#403f53", 29 | "dropdown.border": "#d9d9d9", 30 | // Input 31 | "input.background": "#F0F0F0", 32 | "input.foreground": "#403f53", 33 | "input.border": "#d9d9d9", 34 | "input.placeholderForeground": "#93A1A1", 35 | "inputOption.activeBorder": "#2AA298", 36 | "inputValidation.infoBorder": "#D0D0D0", 37 | "inputValidation.infoBackground": "#F0F0F0", 38 | "inputValidation.warningBackground": "#daaa01", 39 | "inputValidation.warningBorder": "#E0AF02", 40 | "inputValidation.errorBackground": "#f76e6e", 41 | "inputValidation.errorBorder": "#de3d3b", 42 | // Badge 43 | "badge.background": "#2AA298", 44 | "badge.foreground": "#F0F0F0", 45 | // Progress Bar 46 | "progressBar.background": "#2AA298", 47 | // List and Trees 48 | "list.activeSelectionBackground": "#d3e8f8", 49 | "list.activeSelectionForeground": "#403f53", 50 | "list.inactiveSelectionBackground": "#E0E7EA", 51 | "list.inactiveSelectionForeground": "#403f53", 52 | "list.focusBackground": "#d3e8f8", 53 | "list.hoverBackground": "#d3e8f8", 54 | "list.focusForeground": "#403f53", 55 | "list.hoverForeground": "#403f53", 56 | "list.highlightForeground": "#403f53", 57 | "list.errorForeground": "#E64D49", 58 | "list.warningForeground": "#daaa01", 59 | // Activity Bar 60 | "activityBar.background": "#F0F0F0", 61 | "activityBar.foreground": "#403f53", 62 | "activityBar.dropBackground": "#D0D0D0", 63 | "activityBarBadge.background": "#403f53", 64 | "activityBarBadge.foreground": "#F0F0F0", 65 | "activityBar.border": "#F0F0F0", 66 | // Side Bar 67 | "sideBar.background": "#F0F0F0", 68 | "sideBar.foreground": "#403f53", 69 | "sideBarTitle.foreground": "#403f53", 70 | "sideBar.border": "#F0F0F0", 71 | // Scroll Bar 72 | "scrollbar.shadow": "#CCCCCC", 73 | // Tabs 74 | "tab.border": "#F0F0F0", 75 | "tab.activeBackground": "#F6F6F6", 76 | "tab.activeForeground": "#403f53", 77 | "tab.inactiveForeground": "#403f53", 78 | "tab.inactiveBackground": "#F0F0F0", 79 | "editorGroup.border": "#F0F0F0", 80 | "editorGroup.background": "#F6F6F6", 81 | "editorGroupHeader.tabsBackground": "#F0F0F0", 82 | "editorGroupHeader.tabsBorder": "#F0F0F0", 83 | "editorGroupHeader.noTabsBackground": "#F0F0F0", 84 | "tab.activeModifiedBorder": "#2AA298", 85 | "tab.inactiveModifiedBorder": "#93A1A1", 86 | "tab.unfocusedActiveModifiedBorder": "#93A1A1", 87 | "tab.unfocusedInactiveModifiedBorder": "#93A1A1", 88 | // Editor 89 | "editor.background": "#FBFBFB", 90 | "editor.foreground": "#403f53", 91 | "editorCursor.foreground": "#90A7B2", 92 | "editorLineNumber.foreground": "#90A7B2", 93 | "editorLineNumber.activeForeground": "#403f53", 94 | "editor.selectionBackground": "#E0E0E0", 95 | "editor.selectionHighlightBackground": "#339cec33", 96 | "editor.wordHighlightBackground": "#339cec33", 97 | "editor.wordHighlightStrongBackground": "#007dd659", 98 | "editor.findMatchBackground": "#93A1A16c", 99 | "editor.findMatchHighlightBackground": "#93a1a16c", 100 | "editor.findRangeHighlightBackground": "#7497a633", 101 | "editor.hoverHighlightBackground": "#339cec33", 102 | "editor.lineHighlightBackground": "#F0F0F0", 103 | "editor.rangeHighlightBackground": "#7497a633", 104 | "editorWhitespace.foreground": "#d9d9d9", 105 | "editorIndentGuide.background": "#d9d9d9", 106 | "editorCodeLens.foreground": "#403f53", 107 | "editorError.foreground": "#E64D49", 108 | "editorError.border": "#FBFBFB", 109 | "editorWarning.foreground": "#daaa01", 110 | "editorWarning.border": "#daaa01", 111 | "editorGutter.addedBackground": "#49d0c5", 112 | "editorGutter.modifiedBackground": "#6fbef6", 113 | "editorGutter.deletedBackground": "#f76e6e", 114 | "editorRuler.foreground": "#d9d9d9", 115 | "editorOverviewRuler.errorForeground": "#E64D49", 116 | "editorOverviewRuler.warningForeground": "#daaa01", 117 | "editorInlayHint.background": "#F0F0F0", 118 | "editorInlayHint.foreground": "#403f53", 119 | // Editor Widget 120 | "editorWidget.background": "#F0F0F0", 121 | "editorWidget.border": "#d9d9d9", 122 | "editorSuggestWidget.background": "#F0F0F0", 123 | "editorSuggestWidget.foreground": "#403f53", 124 | "editorSuggestWidget.highlightForeground": "#403f53", 125 | "editorSuggestWidget.selectedBackground": "#d3e8f8", 126 | "editorSuggestWidget.border": "#d9d9d9", 127 | "editorHoverWidget.background": "#F0F0F0", 128 | "editorHoverWidget.border": "#d9d9d9", 129 | "debugExceptionWidget.background": "#F0F0F0", 130 | "debugExceptionWidget.border": "#d9d9d9", 131 | "editorMarkerNavigation.background": "#D0D0D0", 132 | "editorMarkerNavigationError.background": "#f76e6e", 133 | "editorMarkerNavigationWarning.background": "#daaa01", 134 | // Debug 135 | "debugToolBar.background": "#F0F0F0", 136 | // Picker Group 137 | "pickerGroup.border": "#d9d9d9", 138 | "pickerGroup.foreground": "#403f53", 139 | // Extension 140 | "extensionButton.prominentBackground": "#2AA298", 141 | "extensionButton.prominentForeground": "#F0F0F0", 142 | // Status Bar 143 | "statusBar.background": "#F0F0F0", 144 | "statusBar.border": "#F0F0F0", 145 | "statusBar.debuggingBackground": "#F0F0F0", 146 | "statusBar.debuggingForeground": "#403f53", 147 | "statusBar.foreground": "#403f53", 148 | "statusBar.noFolderBackground": "#F0F0F0", 149 | "statusBar.noFolderForeground": "#403f53", 150 | // Panel 151 | "panel.background": "#F0F0F0", 152 | "panel.border": "#d9d9d9", 153 | // Peek View 154 | "peekView.border": "#d9d9d9", 155 | "peekViewEditor.background": "#F6F6F6", 156 | "peekViewEditorGutter.background": "#F6F6F6", 157 | "peekViewEditor.matchHighlightBackground": "#49d0c5", 158 | "peekViewResult.background": "#F0F0F0", 159 | "peekViewResult.fileForeground": "#403f53", 160 | "peekViewResult.lineForeground": "#403f53", 161 | "peekViewResult.matchHighlightBackground": "#49d0c5", 162 | "peekViewResult.selectionBackground": "#E0E7EA", 163 | "peekViewResult.selectionForeground": "#403f53", 164 | "peekViewTitle.background": "#F0F0F0", 165 | "peekViewTitleLabel.foreground": "#403f53", 166 | "peekViewTitleDescription.foreground": "#403f53", 167 | // Terminal 168 | "terminal.ansiBrightBlack": "#403f53", 169 | "terminal.ansiBlack": "#403f53", 170 | "terminal.ansiBrightBlue": "#288ed7", 171 | "terminal.ansiBlue": "#288ed7", 172 | "terminal.ansiBrightCyan": "#2AA298", 173 | "terminal.ansiCyan": "#2AA298", 174 | "terminal.ansiBrightGreen": "#08916a", 175 | "terminal.ansiGreen": "#08916a", 176 | "terminal.ansiBrightMagenta": "#d6438a", 177 | "terminal.ansiMagenta": "#d6438a", 178 | "terminal.ansiBrightRed": "#de3d3b", 179 | "terminal.ansiRed": "#de3d3b", 180 | "terminal.ansiBrightWhite": "#93A1A1", 181 | "terminal.ansiWhite": "#93A1A1", 182 | "terminal.ansiBrightYellow": "#daaa01", 183 | "terminal.ansiYellow": "#E0AF02", 184 | "terminal.background": "#F6F6F6", 185 | "terminal.foreground": "#403f53" 186 | }, 187 | "tokenColors": [ 188 | { 189 | "name": "Changed", 190 | "scope": [ 191 | "markup.changed", 192 | "meta.diff.header.git", 193 | "meta.diff.header.from-file", 194 | "meta.diff.header.to-file" 195 | ], 196 | "settings": { 197 | "foreground": "#a2bffc", 198 | "fontStyle": "italic" 199 | } 200 | }, 201 | { 202 | "name": "Deleted", 203 | "scope": "markup.deleted.diff", 204 | "settings": { 205 | "foreground": "#EF535090", 206 | "fontStyle": "italic" 207 | } 208 | }, 209 | { 210 | "name": "Inserted", 211 | "scope": "markup.inserted.diff", 212 | "settings": { 213 | "foreground": "#4876d6ff", 214 | "fontStyle": "italic" 215 | } 216 | }, 217 | { 218 | "name": "Global settings", 219 | "settings": { 220 | "background": "#011627", 221 | "foreground": "#403f53" 222 | } 223 | }, 224 | { 225 | "name": "Comment", 226 | "scope": ["comment", "punctuation.definition.comment"], 227 | "settings": { 228 | "foreground": "#989fb1", 229 | "fontStyle": "italic" 230 | } 231 | }, 232 | { 233 | "name": "String", 234 | "scope": "string", 235 | "settings": { 236 | "foreground": "#4876d6" 237 | } 238 | }, 239 | { 240 | "name": "String Quoted", 241 | "scope": ["string.quoted", "variable.other.readwrite.js"], 242 | "settings": { 243 | "foreground": "#c96765" 244 | } 245 | }, 246 | { 247 | "name": "Support Constant Math", 248 | "scope": "support.constant.math", 249 | "settings": { 250 | "foreground": "#4876d6" 251 | } 252 | }, 253 | { 254 | "name": "Number", 255 | "scope": ["constant.numeric", "constant.character.numeric"], 256 | "settings": { 257 | "foreground": "#aa0982", 258 | "fontStyle": "" 259 | } 260 | }, 261 | { 262 | "name": "Built-in constant", 263 | "scope": [ 264 | "constant.language", 265 | "punctuation.definition.constant", 266 | "variable.other.constant" 267 | ], 268 | "settings": { 269 | "foreground": "#4876d6" 270 | } 271 | }, 272 | { 273 | "name": "User-defined constant", 274 | "scope": ["constant.character", "constant.other"], 275 | "settings": { 276 | "foreground": "#4876d6" 277 | } 278 | }, 279 | { 280 | "name": "Constant Character Escape", 281 | "scope": "constant.character.escape", 282 | "settings": { 283 | "foreground": "#aa0982" 284 | } 285 | }, 286 | { 287 | "name": "RegExp String", 288 | "scope": ["string.regexp", "string.regexp keyword.other"], 289 | "settings": { 290 | "foreground": "#5ca7e4" 291 | } 292 | }, 293 | { 294 | "name": "Comma in functions", 295 | "scope": "meta.function punctuation.separator.comma", 296 | "settings": { 297 | "foreground": "#5f7e97" 298 | } 299 | }, 300 | { 301 | "name": "Variable", 302 | "scope": "variable", 303 | "settings": { 304 | "foreground": "#4876d6" 305 | } 306 | }, 307 | { 308 | "name": "Keyword", 309 | "scope": ["punctuation.accessor", "keyword"], 310 | "settings": { 311 | "foreground": "#994cc3", 312 | "fontStyle": "italic" 313 | } 314 | }, 315 | { 316 | "name": "Storage", 317 | "scope": [ 318 | "storage", 319 | "meta.var.expr", 320 | "meta.class meta.method.declaration meta.var.expr storage.type.js", 321 | "storage.type.property.js", 322 | "storage.type.property.ts", 323 | "storage.type.property.tsx" 324 | ], 325 | "settings": { 326 | "foreground": "#994cc3", 327 | "fontStyle": "italic" 328 | } 329 | }, 330 | { 331 | "name": "Storage type", 332 | "scope": "storage.type", 333 | "settings": { 334 | "foreground": "#994cc3" 335 | } 336 | }, 337 | { 338 | "name": "Storage type", 339 | "scope": "storage.type.function.arrow.js", 340 | "settings": { 341 | "fontStyle": "" 342 | } 343 | }, 344 | { 345 | "name": "Class name", 346 | "scope": ["entity.name.class", "meta.class entity.name.type.class"], 347 | "settings": { 348 | "foreground": "#111111" 349 | } 350 | }, 351 | { 352 | "name": "Inherited class", 353 | "scope": "entity.other.inherited-class", 354 | "settings": { 355 | "foreground": "#4876d6" 356 | } 357 | }, 358 | { 359 | "name": "Function name", 360 | "scope": "entity.name.function", 361 | "settings": { 362 | "foreground": "#994cc3", 363 | "fontStyle": "italic" 364 | } 365 | }, 366 | { 367 | "name": "Meta Tag", 368 | "scope": ["punctuation.definition.tag", "meta.tag"], 369 | "settings": { 370 | "foreground": "#994cc3" 371 | } 372 | }, 373 | { 374 | "name": "HTML Tag names", 375 | "scope": [ 376 | "entity.name.tag", 377 | "meta.tag.other.html", 378 | "meta.tag.other.js", 379 | "meta.tag.other.tsx", 380 | "entity.name.tag.tsx", 381 | "entity.name.tag.js", 382 | "entity.name.tag", 383 | "meta.tag.js", 384 | "meta.tag.tsx", 385 | "meta.tag.html" 386 | ], 387 | "settings": { 388 | "foreground": "#994cc3", 389 | "fontStyle": "" 390 | } 391 | }, 392 | { 393 | "name": "Tag attribute", 394 | "scope": "entity.other.attribute-name", 395 | "settings": { 396 | "fontStyle": "italic", 397 | "foreground": "#4876d6" 398 | } 399 | }, 400 | { 401 | "name": "Entity Name Tag Custom", 402 | "scope": "entity.name.tag.custom", 403 | "settings": { 404 | "foreground": "#4876d6" 405 | } 406 | }, 407 | { 408 | "name": "Library (function & constant)", 409 | "scope": ["support.function", "support.constant"], 410 | "settings": { 411 | "foreground": "#4876d6" 412 | } 413 | }, 414 | { 415 | "name": "Support Constant Property Value meta", 416 | "scope": "support.constant.meta.property-value", 417 | "settings": { 418 | "foreground": "#0c969b" 419 | } 420 | }, 421 | { 422 | "name": "Library class/type", 423 | "scope": ["support.type", "support.class"], 424 | "settings": { 425 | "foreground": "#4876d6" 426 | } 427 | }, 428 | { 429 | "name": "Support Variable DOM", 430 | "scope": "support.variable.dom", 431 | "settings": { 432 | "foreground": "#4876d6" 433 | } 434 | }, 435 | { 436 | "name": "Invalid", 437 | "scope": "invalid", 438 | "settings": { 439 | "foreground": "#ff2c83" 440 | } 441 | }, 442 | { 443 | "name": "Invalid deprecated", 444 | "scope": "invalid.deprecated", 445 | "settings": { 446 | "foreground": "#d3423e" 447 | } 448 | }, 449 | { 450 | "name": "Keyword Operator", 451 | "scope": "keyword.operator", 452 | "settings": { 453 | "foreground": "#0c969b", 454 | "fontStyle": "" 455 | } 456 | }, 457 | { 458 | "name": "Keyword Operator Relational", 459 | "scope": "keyword.operator.relational", 460 | "settings": { 461 | "foreground": "#994cc3", 462 | "fontStyle": "italic" 463 | } 464 | }, 465 | { 466 | "name": "Keyword Operator Assignment", 467 | "scope": "keyword.operator.assignment", 468 | "settings": { 469 | "foreground": "#994cc3" 470 | } 471 | }, 472 | { 473 | "name": "Keyword Operator Arithmetic", 474 | "scope": "keyword.operator.arithmetic", 475 | "settings": { 476 | "foreground": "#994cc3" 477 | } 478 | }, 479 | { 480 | "name": "Keyword Operator Bitwise", 481 | "scope": "keyword.operator.bitwise", 482 | "settings": { 483 | "foreground": "#994cc3" 484 | } 485 | }, 486 | { 487 | "name": "Keyword Operator Increment", 488 | "scope": "keyword.operator.increment", 489 | "settings": { 490 | "foreground": "#994cc3" 491 | } 492 | }, 493 | { 494 | "name": "Keyword Operator Ternary", 495 | "scope": "keyword.operator.ternary", 496 | "settings": { 497 | "foreground": "#994cc3" 498 | } 499 | }, 500 | { 501 | "name": "Double-Slashed Comment", 502 | "scope": "comment.line.double-slash", 503 | "settings": { 504 | "foreground": "#939dbb" 505 | } 506 | }, 507 | { 508 | "name": "Object", 509 | "scope": "object", 510 | "settings": { 511 | "foreground": "#cdebf7" 512 | } 513 | }, 514 | { 515 | "name": "Null", 516 | "scope": "constant.language.null", 517 | "settings": { 518 | "foreground": "#bc5454" 519 | } 520 | }, 521 | { 522 | "name": "Meta Brace", 523 | "scope": "meta.brace", 524 | "settings": { 525 | "foreground": "#403f53" 526 | } 527 | }, 528 | { 529 | "name": "Meta Delimiter Period", 530 | "scope": "meta.delimiter.period", 531 | "settings": { 532 | "foreground": "#994cc3", 533 | "fontStyle": "italic" 534 | } 535 | }, 536 | { 537 | "name": "Punctuation Definition String", 538 | "scope": "punctuation.definition.string", 539 | "settings": { 540 | "foreground": "#111111" 541 | } 542 | }, 543 | { 544 | "name": "Punctuation Definition String Markdown", 545 | "scope": "punctuation.definition.string.begin.markdown", 546 | "settings": { 547 | "foreground": "#bc5454" 548 | } 549 | }, 550 | { 551 | "name": "Boolean", 552 | "scope": "constant.language.boolean", 553 | "settings": { 554 | "foreground": "#bc5454" 555 | } 556 | }, 557 | { 558 | "name": "Object Comma", 559 | "scope": "object.comma", 560 | "settings": { 561 | "foreground": "#ffffff" 562 | } 563 | }, 564 | { 565 | "name": "Variable Parameter Function", 566 | "scope": "variable.parameter.function", 567 | "settings": { 568 | "foreground": "#0c969b", 569 | "fontStyle": "" 570 | } 571 | }, 572 | { 573 | "name": "Support Type Property Name & entity name tags", 574 | "scope": [ 575 | "support.type.vendor.property-name", 576 | "support.constant.vendor.property-value", 577 | "support.type.property-name", 578 | "meta.property-list entity.name.tag" 579 | ], 580 | "settings": { 581 | "foreground": "#0c969b", 582 | "fontStyle": "" 583 | } 584 | }, 585 | { 586 | "name": "Entity Name tag reference in stylesheets", 587 | "scope": "meta.property-list entity.name.tag.reference", 588 | "settings": { 589 | "foreground": "#57eaf1" 590 | } 591 | }, 592 | { 593 | "name": "Constant Other Color RGB Value Punctuation Definition Constant", 594 | "scope": "constant.other.color.rgb-value punctuation.definition.constant", 595 | "settings": { 596 | "foreground": "#aa0982" 597 | } 598 | }, 599 | { 600 | "name": "Constant Other Color", 601 | "scope": "constant.other.color", 602 | "settings": { 603 | "foreground": "#aa0982" 604 | } 605 | }, 606 | { 607 | "name": "Keyword Other Unit", 608 | "scope": "keyword.other.unit", 609 | "settings": { 610 | "foreground": "#aa0982" 611 | } 612 | }, 613 | { 614 | "name": "Meta Selector", 615 | "scope": "meta.selector", 616 | "settings": { 617 | "foreground": "#994cc3", 618 | "fontStyle": "italic" 619 | } 620 | }, 621 | { 622 | "name": "Entity Other Attribute Name Id", 623 | "scope": "entity.other.attribute-name.id", 624 | "settings": { 625 | "foreground": "#aa0982" 626 | } 627 | }, 628 | { 629 | "name": "Meta Property Name", 630 | "scope": "meta.property-name", 631 | "settings": { 632 | "foreground": "#0c969b" 633 | } 634 | }, 635 | { 636 | "name": "Doctypes", 637 | "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], 638 | "settings": { 639 | "foreground": "#994cc3", 640 | "fontStyle": "italic" 641 | } 642 | }, 643 | { 644 | "name": "Punctuation Definition Parameters", 645 | "scope": "punctuation.definition.parameters", 646 | "settings": { 647 | "foreground": "#111111" 648 | } 649 | }, 650 | { 651 | "name": "Keyword Control Operator", 652 | "scope": "keyword.control.operator", 653 | "settings": { 654 | "foreground": "#0c969b" 655 | } 656 | }, 657 | { 658 | "name": "Keyword Operator Logical", 659 | "scope": "keyword.operator.logical", 660 | "settings": { 661 | "foreground": "#994cc3", 662 | "fontStyle": "" 663 | } 664 | }, 665 | { 666 | "name": "Variable Instances", 667 | "scope": [ 668 | "variable.instance", 669 | "variable.other.instance", 670 | "variable.readwrite.instance", 671 | "variable.other.readwrite.instance", 672 | "variable.other.property" 673 | ], 674 | "settings": { 675 | "foreground": "#0c969b" 676 | } 677 | }, 678 | { 679 | "name": "Variable Property Other object property", 680 | "scope": ["variable.other.object.property"], 681 | "settings": { 682 | "foreground": "#111111", 683 | "fontStyle": "italic" 684 | } 685 | }, 686 | { 687 | "name": "Variable Property Other object", 688 | "scope": ["variable.other.object.js"], 689 | "settings": { 690 | "fontStyle": "" 691 | } 692 | }, 693 | { 694 | "name": "Entity Name Function", 695 | "scope": ["entity.name.function"], 696 | "settings": { 697 | "foreground": "#4876d6", 698 | "fontStyle": "italic" 699 | } 700 | }, 701 | { 702 | "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby", 703 | "scope": [ 704 | "keyword.operator.comparison", 705 | "keyword.control.flow.js", 706 | "keyword.control.flow.ts", 707 | "keyword.control.flow.tsx", 708 | "keyword.control.ruby", 709 | "keyword.control.module.ruby", 710 | "keyword.control.class.ruby", 711 | "keyword.control.def.ruby", 712 | "keyword.control.loop.js", 713 | "keyword.control.loop.ts", 714 | "keyword.control.import.js", 715 | "keyword.control.import.ts", 716 | "keyword.control.import.tsx", 717 | "keyword.control.from.js", 718 | "keyword.control.from.ts", 719 | "keyword.control.from.tsx", 720 | "keyword.operator.instanceof.js", 721 | "keyword.operator.expression.instanceof.ts", 722 | "keyword.operator.expression.instanceof.tsx" 723 | ], 724 | "settings": { 725 | "foreground": "#994cc3", 726 | "fontStyle": "italic" 727 | } 728 | }, 729 | { 730 | "name": "Keyword Control Conditional", 731 | "scope": [ 732 | "keyword.control.conditional.js", 733 | "keyword.control.conditional.ts", 734 | "keyword.control.switch.js", 735 | "keyword.control.switch.ts" 736 | ], 737 | "settings": { 738 | "foreground": "#994cc3", 739 | "fontStyle": "" 740 | } 741 | }, 742 | { 743 | "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords", 744 | "scope": [ 745 | "support.constant", 746 | "keyword.other.special-method", 747 | "keyword.other.new", 748 | "keyword.other.debugger", 749 | "keyword.control" 750 | ], 751 | "settings": { 752 | "foreground": "#0c969b" 753 | } 754 | }, 755 | { 756 | "name": "Support Function", 757 | "scope": "support.function", 758 | "settings": { 759 | "foreground": "#4876d6" 760 | } 761 | }, 762 | { 763 | "name": "Invalid Broken", 764 | "scope": "invalid.broken", 765 | "settings": { 766 | "foreground": "#aa0982" 767 | } 768 | }, 769 | { 770 | "name": "Invalid Unimplemented", 771 | "scope": "invalid.unimplemented", 772 | "settings": { 773 | "foreground": "#8BD649" 774 | } 775 | }, 776 | { 777 | "name": "Invalid Illegal", 778 | "scope": "invalid.illegal", 779 | "settings": { 780 | "foreground": "#c96765" 781 | } 782 | }, 783 | { 784 | "name": "Language Variable", 785 | "scope": "variable.language", 786 | "settings": { 787 | "foreground": "#0c969b" 788 | } 789 | }, 790 | { 791 | "name": "Support Variable Property", 792 | "scope": "support.variable.property", 793 | "settings": { 794 | "foreground": "#0c969b" 795 | } 796 | }, 797 | { 798 | "name": "Variable Function", 799 | "scope": "variable.function", 800 | "settings": { 801 | "foreground": "#4876d6" 802 | } 803 | }, 804 | { 805 | "name": "Variable Interpolation", 806 | "scope": "variable.interpolation", 807 | "settings": { 808 | "foreground": "#ec5f67" 809 | } 810 | }, 811 | { 812 | "name": "Meta Function Call", 813 | "scope": "meta.function-call", 814 | "settings": { 815 | "foreground": "#4876d6" 816 | } 817 | }, 818 | { 819 | "name": "Punctuation Section Embedded", 820 | "scope": "punctuation.section.embedded", 821 | "settings": { 822 | "foreground": "#d3423e" 823 | } 824 | }, 825 | { 826 | "name": "Punctuation Tweaks", 827 | "scope": [ 828 | "punctuation.terminator.expression", 829 | "punctuation.definition.arguments", 830 | "punctuation.definition.array", 831 | "punctuation.section.array", 832 | "meta.array" 833 | ], 834 | "settings": { 835 | "foreground": "#403f53" 836 | } 837 | }, 838 | { 839 | "name": "More Punctuation Tweaks", 840 | "scope": [ 841 | "punctuation.definition.list.begin", 842 | "punctuation.definition.list.end", 843 | "punctuation.separator.arguments", 844 | "punctuation.definition.list" 845 | ], 846 | "settings": { 847 | "foreground": "#111111" 848 | } 849 | }, 850 | { 851 | "name": "Template Strings", 852 | "scope": "string.template meta.template.expression", 853 | "settings": { 854 | "foreground": "#d3423e" 855 | } 856 | }, 857 | { 858 | "name": "Backtics(``) in Template Strings", 859 | "scope": "string.template punctuation.definition.string", 860 | "settings": { 861 | "foreground": "#403f53" 862 | } 863 | }, 864 | { 865 | "name": "Italics", 866 | "scope": "italic", 867 | "settings": { 868 | "foreground": "#994cc3", 869 | "fontStyle": "italic" 870 | } 871 | }, 872 | { 873 | "name": "Bold", 874 | "scope": "bold", 875 | "settings": { 876 | "foreground": "#4876d6", 877 | "fontStyle": "bold" 878 | } 879 | }, 880 | { 881 | "name": "Quote", 882 | "scope": "quote", 883 | "settings": { 884 | "foreground": "#697098", 885 | "fontStyle": "italic" 886 | } 887 | }, 888 | { 889 | "name": "Raw Code", 890 | "scope": "raw", 891 | "settings": { 892 | "foreground": "#0c969b" 893 | } 894 | }, 895 | { 896 | "name": "CoffeScript Variable Assignment", 897 | "scope": "variable.assignment.coffee", 898 | "settings": { 899 | "foreground": "#31e1eb" 900 | } 901 | }, 902 | { 903 | "name": "CoffeScript Parameter Function", 904 | "scope": "variable.parameter.function.coffee", 905 | "settings": { 906 | "foreground": "#403f53" 907 | } 908 | }, 909 | { 910 | "name": "CoffeeScript Assignments", 911 | "scope": "variable.assignment.coffee", 912 | "settings": { 913 | "foreground": "#0c969b" 914 | } 915 | }, 916 | { 917 | "name": "C# Readwrite Variables", 918 | "scope": "variable.other.readwrite.cs", 919 | "settings": { 920 | "foreground": "#403f53" 921 | } 922 | }, 923 | { 924 | "name": "C# Classes & Storage types", 925 | "scope": ["entity.name.type.class.cs", "storage.type.cs"], 926 | "settings": { 927 | "foreground": "#4876d6" 928 | } 929 | }, 930 | { 931 | "name": "C# Namespaces", 932 | "scope": "entity.name.type.namespace.cs", 933 | "settings": { 934 | "foreground": "#0c969b" 935 | } 936 | }, 937 | { 938 | "name": "Tag names in Stylesheets", 939 | "scope": [ 940 | "entity.name.tag.css", 941 | "entity.name.tag.less", 942 | "entity.name.tag.custom.css", 943 | "support.constant.property-value.css" 944 | ], 945 | "settings": { 946 | "foreground": "#c96765", 947 | "fontStyle": "" 948 | } 949 | }, 950 | { 951 | "name": "Wildcard(*) selector in Stylesheets", 952 | "scope": [ 953 | "entity.name.tag.wildcard.css", 954 | "entity.name.tag.wildcard.less", 955 | "entity.name.tag.wildcard.scss", 956 | "entity.name.tag.wildcard.sass" 957 | ], 958 | "settings": { 959 | "foreground": "#0c969b" 960 | } 961 | }, 962 | { 963 | "name": "CSS Keyword Other Unit", 964 | "scope": "keyword.other.unit.css", 965 | "settings": { 966 | "foreground": "#4876d6" 967 | } 968 | }, 969 | { 970 | "name": "Attribute Name for CSS", 971 | "scope": [ 972 | "meta.attribute-selector.css entity.other.attribute-name.attribute", 973 | "variable.other.readwrite.js" 974 | ], 975 | "settings": { 976 | "foreground": "#aa0982" 977 | } 978 | }, 979 | { 980 | "name": "Elixir Classes", 981 | "scope": [ 982 | "source.elixir support.type.elixir", 983 | "source.elixir meta.module.elixir entity.name.class.elixir" 984 | ], 985 | "settings": { 986 | "foreground": "#4876d6" 987 | } 988 | }, 989 | { 990 | "name": "Elixir Functions", 991 | "scope": "source.elixir entity.name.function", 992 | "settings": { 993 | "foreground": "#4876d6" 994 | } 995 | }, 996 | { 997 | "name": "Elixir Constants", 998 | "scope": [ 999 | "source.elixir constant.other.symbol.elixir", 1000 | "source.elixir constant.other.keywords.elixir" 1001 | ], 1002 | "settings": { 1003 | "foreground": "#4876d6" 1004 | } 1005 | }, 1006 | { 1007 | "name": "Elixir String Punctuations", 1008 | "scope": "source.elixir punctuation.definition.string", 1009 | "settings": { 1010 | "foreground": "#4876d6" 1011 | } 1012 | }, 1013 | { 1014 | "name": "Elixir", 1015 | "scope": [ 1016 | "source.elixir variable.other.readwrite.module.elixir", 1017 | "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" 1018 | ], 1019 | "settings": { 1020 | "foreground": "#4876d6" 1021 | } 1022 | }, 1023 | { 1024 | "name": "Elixir Binary Punctuations", 1025 | "scope": "source.elixir .punctuation.binary.elixir", 1026 | "settings": { 1027 | "foreground": "#994cc3", 1028 | "fontStyle": "italic" 1029 | } 1030 | }, 1031 | { 1032 | "name": "Closure Constant Keyword", 1033 | "scope": "constant.keyword.clojure", 1034 | "settings": { 1035 | "foreground": "#0c969b" 1036 | } 1037 | }, 1038 | { 1039 | "name": "Go Function Calls", 1040 | "scope": "source.go meta.function-call.go", 1041 | "settings": { 1042 | "foreground": "#0c969b" 1043 | } 1044 | }, 1045 | { 1046 | "name": "Go Keywords", 1047 | "scope": [ 1048 | "source.go keyword.package.go", 1049 | "source.go keyword.import.go", 1050 | "source.go keyword.function.go", 1051 | "source.go keyword.type.go", 1052 | "source.go keyword.struct.go", 1053 | "source.go keyword.interface.go", 1054 | "source.go keyword.const.go", 1055 | "source.go keyword.var.go", 1056 | "source.go keyword.map.go", 1057 | "source.go keyword.channel.go", 1058 | "source.go keyword.control.go" 1059 | ], 1060 | "settings": { 1061 | "foreground": "#994cc3", 1062 | "fontStyle": "italic" 1063 | } 1064 | }, 1065 | { 1066 | "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", 1067 | "scope": [ 1068 | "source.go constant.language.go", 1069 | "source.go constant.other.placeholder.go" 1070 | ], 1071 | "settings": { 1072 | "foreground": "#bc5454" 1073 | } 1074 | }, 1075 | { 1076 | "name": "C++ Functions", 1077 | "scope": [ 1078 | "entity.name.function.preprocessor.cpp", 1079 | "entity.scope.name.cpp" 1080 | ], 1081 | "settings": { 1082 | "foreground": "#0c969bff" 1083 | } 1084 | }, 1085 | { 1086 | "name": "C++ Meta Namespace", 1087 | "scope": ["meta.namespace-block.cpp"], 1088 | "settings": { 1089 | "foreground": "#111111" 1090 | } 1091 | }, 1092 | { 1093 | "name": "C++ Language Primitive Storage", 1094 | "scope": ["storage.type.language.primitive.cpp"], 1095 | "settings": { 1096 | "foreground": "#bc5454" 1097 | } 1098 | }, 1099 | { 1100 | "name": "C++ Preprocessor Macro", 1101 | "scope": ["meta.preprocessor.macro.cpp"], 1102 | "settings": { 1103 | "foreground": "#403f53" 1104 | } 1105 | }, 1106 | { 1107 | "name": "C++ Variable Parameter", 1108 | "scope": ["variable.parameter"], 1109 | "settings": { 1110 | "foreground": "#111111" 1111 | } 1112 | }, 1113 | { 1114 | "name": "Powershell Variables", 1115 | "scope": ["variable.other.readwrite.powershell"], 1116 | "settings": { 1117 | "foreground": "#4876d6" 1118 | } 1119 | }, 1120 | { 1121 | "name": "Powershell Function", 1122 | "scope": ["support.function.powershell"], 1123 | "settings": { 1124 | "foreground": "#0c969bff" 1125 | } 1126 | }, 1127 | { 1128 | "name": "ID Attribute Name in HTML", 1129 | "scope": "entity.other.attribute-name.id.html", 1130 | "settings": { 1131 | "foreground": "#4876d6" 1132 | } 1133 | }, 1134 | { 1135 | "name": "HTML Punctuation Definition Tag", 1136 | "scope": "punctuation.definition.tag.html", 1137 | "settings": { 1138 | "foreground": "#994cc3" 1139 | } 1140 | }, 1141 | { 1142 | "name": "HTML Doctype", 1143 | "scope": "meta.tag.sgml.doctype.html", 1144 | "settings": { 1145 | "foreground": "#994cc3", 1146 | "fontStyle": "italic" 1147 | } 1148 | }, 1149 | { 1150 | "name": "JavaScript Classes", 1151 | "scope": "meta.class entity.name.type.class.js", 1152 | "settings": { 1153 | "foreground": "#111111" 1154 | } 1155 | }, 1156 | { 1157 | "name": "JavaScript Method Declaration e.g. `constructor`", 1158 | "scope": "meta.method.declaration storage.type.js", 1159 | "settings": { 1160 | "foreground": "#4876d6" 1161 | } 1162 | }, 1163 | { 1164 | "name": "JavaScript Terminator", 1165 | "scope": "terminator.js", 1166 | "settings": { 1167 | "foreground": "#403f53" 1168 | } 1169 | }, 1170 | { 1171 | "name": "JavaScript Meta Punctuation Definition", 1172 | "scope": "meta.js punctuation.definition.js", 1173 | "settings": { 1174 | "foreground": "#403f53" 1175 | } 1176 | }, 1177 | { 1178 | "name": "Entity Names in Code Documentations", 1179 | "scope": [ 1180 | "entity.name.type.instance.jsdoc", 1181 | "entity.name.type.instance.phpdoc" 1182 | ], 1183 | "settings": { 1184 | "foreground": "#5f7e97" 1185 | } 1186 | }, 1187 | { 1188 | "name": "Other Variables in Code Documentations", 1189 | "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], 1190 | "settings": { 1191 | "foreground": "#78ccf0" 1192 | } 1193 | }, 1194 | { 1195 | "name": "JavaScript module imports and exports", 1196 | "scope": [ 1197 | "variable.other.meta.import.js", 1198 | "meta.import.js variable.other", 1199 | "variable.other.meta.export.js", 1200 | "meta.export.js variable.other" 1201 | ], 1202 | "settings": { 1203 | "foreground": "#403f53" 1204 | } 1205 | }, 1206 | { 1207 | "name": "JavaScript Variable Parameter Function", 1208 | "scope": "variable.parameter.function.js", 1209 | "settings": { 1210 | "foreground": "#7986E7" 1211 | } 1212 | }, 1213 | { 1214 | "name": "JavaScript[React] Variable Other Object", 1215 | "scope": [ 1216 | "variable.other.object.js", 1217 | "variable.other.object.jsx", 1218 | "variable.object.property.js", 1219 | "variable.object.property.jsx" 1220 | ], 1221 | "settings": { 1222 | "foreground": "#403f53" 1223 | } 1224 | }, 1225 | { 1226 | "name": "JavaScript Variables", 1227 | "scope": ["variable.js", "variable.other.js"], 1228 | "settings": { 1229 | "foreground": "#403f53" 1230 | } 1231 | }, 1232 | { 1233 | "name": "JavaScript Entity Name Type", 1234 | "scope": ["entity.name.type.js", "entity.name.type.module.js"], 1235 | "settings": { 1236 | "foreground": "#111111", 1237 | "fontStyle": "" 1238 | } 1239 | }, 1240 | { 1241 | "name": "JavaScript Support Classes", 1242 | "scope": "support.class.js", 1243 | "settings": { 1244 | "foreground": "#403f53" 1245 | } 1246 | }, 1247 | { 1248 | "name": "JSON Property Names", 1249 | "scope": "support.type.property-name.json", 1250 | "settings": { 1251 | "foreground": "#0c969b" 1252 | } 1253 | }, 1254 | { 1255 | "name": "JSON Support Constants", 1256 | "scope": "support.constant.json", 1257 | "settings": { 1258 | "foreground": "#4876d6" 1259 | } 1260 | }, 1261 | { 1262 | "name": "JSON Property values (string)", 1263 | "scope": "meta.structure.dictionary.value.json string.quoted.double", 1264 | "settings": { 1265 | "foreground": "#c789d6" 1266 | } 1267 | }, 1268 | { 1269 | "name": "Strings in JSON values", 1270 | "scope": "string.quoted.double.json punctuation.definition.string.json", 1271 | "settings": { 1272 | "foreground": "#0c969b" 1273 | } 1274 | }, 1275 | { 1276 | "name": "Specific JSON Property values like null", 1277 | "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", 1278 | "settings": { 1279 | "foreground": "#bc5454" 1280 | } 1281 | }, 1282 | { 1283 | "name": "JavaScript Other Variable", 1284 | "scope": "variable.other.object.js", 1285 | "settings": { 1286 | "foreground": "#0c969b", 1287 | "fontStyle": "italic" 1288 | } 1289 | }, 1290 | { 1291 | "name": "Ruby Variables", 1292 | "scope": ["variable.other.ruby"], 1293 | "settings": { 1294 | "foreground": "#403f53" 1295 | } 1296 | }, 1297 | { 1298 | "name": "Ruby Class", 1299 | "scope": ["entity.name.type.class.ruby"], 1300 | "settings": { 1301 | "foreground": "#c96765" 1302 | } 1303 | }, 1304 | { 1305 | "name": "Ruby Hashkeys", 1306 | "scope": "constant.language.symbol.hashkey.ruby", 1307 | "settings": { 1308 | "foreground": "#0c969b" 1309 | } 1310 | }, 1311 | { 1312 | "name": "Ruby Symbols", 1313 | "scope": "constant.language.symbol.ruby", 1314 | "settings": { 1315 | "foreground": "#0c969b" 1316 | } 1317 | }, 1318 | { 1319 | "name": "LESS Tag names", 1320 | "scope": "entity.name.tag.less", 1321 | "settings": { 1322 | "foreground": "#994cc3" 1323 | } 1324 | }, 1325 | { 1326 | "name": "LESS Keyword Other Unit", 1327 | "scope": "keyword.other.unit.css", 1328 | "settings": { 1329 | "foreground": "#0c969b" 1330 | } 1331 | }, 1332 | { 1333 | "name": "Attribute Name for LESS", 1334 | "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", 1335 | "settings": { 1336 | "foreground": "#aa0982" 1337 | } 1338 | }, 1339 | { 1340 | "name": "Markdown Headings", 1341 | "scope": [ 1342 | "markup.heading", 1343 | "markup.heading.setext.1", 1344 | "markup.heading.setext.2" 1345 | ], 1346 | "settings": { 1347 | "foreground": "#4876d6" 1348 | } 1349 | }, 1350 | { 1351 | "name": "Markdown Italics", 1352 | "scope": "markup.italic", 1353 | "settings": { 1354 | "foreground": "#994cc3", 1355 | "fontStyle": "italic" 1356 | } 1357 | }, 1358 | { 1359 | "name": "Markdown Bold", 1360 | "scope": "markup.bold", 1361 | "settings": { 1362 | "foreground": "#4876d6", 1363 | "fontStyle": "bold" 1364 | } 1365 | }, 1366 | { 1367 | "name": "Markdown Quote + others", 1368 | "scope": "markup.quote", 1369 | "settings": { 1370 | "foreground": "#697098", 1371 | "fontStyle": "italic" 1372 | } 1373 | }, 1374 | { 1375 | "name": "Markdown Raw Code + others", 1376 | "scope": "markup.inline.raw", 1377 | "settings": { 1378 | "foreground": "#0c969b" 1379 | } 1380 | }, 1381 | { 1382 | "name": "Markdown Links", 1383 | "scope": [ 1384 | "markup.underline.link", 1385 | "markup.underline.link.image" 1386 | ], 1387 | "settings": { 1388 | "foreground": "#ff869a" 1389 | } 1390 | }, 1391 | { 1392 | "name": "Markdown Link Title and Description", 1393 | "scope": [ 1394 | "string.other.link.title.markdown", 1395 | "string.other.link.description.markdown" 1396 | ], 1397 | "settings": { 1398 | "foreground": "#403f53" 1399 | } 1400 | }, 1401 | { 1402 | "name": "Markdown Punctuation", 1403 | "scope": [ 1404 | "punctuation.definition.string.markdown", 1405 | "punctuation.definition.string.begin.markdown", 1406 | "punctuation.definition.string.end.markdown", 1407 | "meta.link.inline.markdown punctuation.definition.string" 1408 | ], 1409 | "settings": { 1410 | "foreground": "#4876d6" 1411 | } 1412 | }, 1413 | { 1414 | "name": "Markdown MetaData Punctuation", 1415 | "scope": ["punctuation.definition.metadata.markdown"], 1416 | "settings": { 1417 | "foreground": "#0c969b" 1418 | } 1419 | }, 1420 | { 1421 | "name": "Markdown List Punctuation", 1422 | "scope": ["beginning.punctuation.definition.list.markdown"], 1423 | "settings": { 1424 | "foreground": "#4876d6" 1425 | } 1426 | }, 1427 | { 1428 | "name": "Markdown Inline Raw String", 1429 | "scope": "markup.inline.raw.string.markdown", 1430 | "settings": { 1431 | "foreground": "#4876d6" 1432 | } 1433 | }, 1434 | { 1435 | "name": "PHP Variables", 1436 | "scope": ["variable.other.php", "variable.other.property.php"], 1437 | "settings": { 1438 | "foreground": "#111111" 1439 | } 1440 | }, 1441 | { 1442 | "name": "Support Classes in PHP", 1443 | "scope": "support.class.php", 1444 | "settings": { 1445 | "foreground": "#111111" 1446 | } 1447 | }, 1448 | { 1449 | "name": "Punctuations in PHP function calls", 1450 | "scope": "meta.function-call.php punctuation", 1451 | "settings": { 1452 | "foreground": "#403f53" 1453 | } 1454 | }, 1455 | { 1456 | "name": "PHP Global Variables", 1457 | "scope": "variable.other.global.php", 1458 | "settings": { 1459 | "foreground": "#4876d6" 1460 | } 1461 | }, 1462 | { 1463 | "name": "Declaration Punctuation in PHP Global Variables", 1464 | "scope": "variable.other.global.php punctuation.definition.variable", 1465 | "settings": { 1466 | "foreground": "#4876d6" 1467 | } 1468 | }, 1469 | { 1470 | "name": "Language Constants in Python", 1471 | "scope": "constant.language.python", 1472 | "settings": { 1473 | "foreground": "#bc5454" 1474 | } 1475 | }, 1476 | { 1477 | "name": "Python Function Parameter and Arguments", 1478 | "scope": [ 1479 | "variable.parameter.function.python", 1480 | "meta.function-call.arguments.python" 1481 | ], 1482 | "settings": { 1483 | "foreground": "#4876d6" 1484 | } 1485 | }, 1486 | { 1487 | "name": "Python Function Call", 1488 | "scope": [ 1489 | "meta.function-call.python", 1490 | "meta.function-call.generic.python" 1491 | ], 1492 | "settings": { 1493 | "foreground": "#0c969b" 1494 | } 1495 | }, 1496 | { 1497 | "name": "Punctuations in Python", 1498 | "scope": "punctuation.python", 1499 | "settings": { 1500 | "foreground": "#403f53" 1501 | } 1502 | }, 1503 | { 1504 | "name": "Decorator Functions in Python", 1505 | "scope": "entity.name.function.decorator.python", 1506 | "settings": { 1507 | "foreground": "#4876d6" 1508 | } 1509 | }, 1510 | { 1511 | "name": "Python Language Variable", 1512 | "scope": "source.python variable.language.special", 1513 | "settings": { 1514 | "foreground": "#aa0982" 1515 | } 1516 | }, 1517 | { 1518 | "name": "Python import control keyword", 1519 | "scope": "keyword.control", 1520 | "settings": { 1521 | "foreground": "#994cc3", 1522 | "fontStyle": "italic" 1523 | } 1524 | }, 1525 | { 1526 | "name": "SCSS Variable", 1527 | "scope": [ 1528 | "variable.scss", 1529 | "variable.sass", 1530 | "variable.parameter.url.scss", 1531 | "variable.parameter.url.sass" 1532 | ], 1533 | "settings": { 1534 | "foreground": "#4876d6" 1535 | } 1536 | }, 1537 | { 1538 | "name": "Variables in SASS At-Rules", 1539 | "scope": [ 1540 | "source.css.scss meta.at-rule variable", 1541 | "source.css.sass meta.at-rule variable" 1542 | ], 1543 | "settings": { 1544 | "foreground": "#4876d6" 1545 | } 1546 | }, 1547 | { 1548 | "name": "Variables in SASS At-Rules", 1549 | "scope": [ 1550 | "source.css.scss meta.at-rule variable", 1551 | "source.css.sass meta.at-rule variable" 1552 | ], 1553 | "settings": { 1554 | "foreground": "#111111" 1555 | } 1556 | }, 1557 | { 1558 | "name": "Attribute Name for SASS", 1559 | "scope": [ 1560 | "meta.attribute-selector.scss entity.other.attribute-name.attribute", 1561 | "meta.attribute-selector.sass entity.other.attribute-name.attribute" 1562 | ], 1563 | "settings": { 1564 | "foreground": "#aa0982" 1565 | } 1566 | }, 1567 | { 1568 | "name": "Tag names in SASS", 1569 | "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], 1570 | "settings": { 1571 | "foreground": "#0c969b" 1572 | } 1573 | }, 1574 | { 1575 | "name": "SASS Keyword Other Unit", 1576 | "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"], 1577 | "settings": { 1578 | "foreground": "#994cc3" 1579 | } 1580 | }, 1581 | { 1582 | "name": "TypeScript[React] Variables and Object Properties", 1583 | "scope": [ 1584 | "variable.other.readwrite.alias.ts", 1585 | "variable.other.readwrite.alias.tsx", 1586 | "variable.other.readwrite.ts", 1587 | "variable.other.readwrite.tsx", 1588 | "variable.other.object.ts", 1589 | "variable.other.object.tsx", 1590 | "variable.object.property.ts", 1591 | "variable.object.property.tsx", 1592 | "variable.other.ts", 1593 | "variable.other.tsx", 1594 | "variable.tsx", 1595 | "variable.ts" 1596 | ], 1597 | "settings": { 1598 | "foreground": "#403f53" 1599 | } 1600 | }, 1601 | { 1602 | "name": "TypeScript[React] Entity Name Types", 1603 | "scope": ["entity.name.type.ts", "entity.name.type.tsx"], 1604 | "settings": { 1605 | "foreground": "#111111" 1606 | } 1607 | }, 1608 | { 1609 | "name": "TypeScript[React] Node Classes", 1610 | "scope": ["support.class.node.ts", "support.class.node.tsx"], 1611 | "settings": { 1612 | "foreground": "#4876d6" 1613 | } 1614 | }, 1615 | { 1616 | "name": "TypeScript[React] Entity Name Types as Parameters", 1617 | "scope": [ 1618 | "meta.type.parameters.ts entity.name.type", 1619 | "meta.type.parameters.tsx entity.name.type" 1620 | ], 1621 | "settings": { 1622 | "foreground": "#5f7e97" 1623 | } 1624 | }, 1625 | { 1626 | "name": "TypeScript[React] Import/Export Punctuations", 1627 | "scope": [ 1628 | "meta.import.ts punctuation.definition.block", 1629 | "meta.import.tsx punctuation.definition.block", 1630 | "meta.export.ts punctuation.definition.block", 1631 | "meta.export.tsx punctuation.definition.block" 1632 | ], 1633 | "settings": { 1634 | "foreground": "#403f53" 1635 | } 1636 | }, 1637 | { 1638 | "name": "TypeScript[React] Punctuation Decorators", 1639 | "scope": [ 1640 | "meta.decorator punctuation.decorator.ts", 1641 | "meta.decorator punctuation.decorator.tsx" 1642 | ], 1643 | "settings": { 1644 | "foreground": "#4876d6" 1645 | } 1646 | }, 1647 | { 1648 | "name": "TypeScript[React] Punctuation Decorators", 1649 | "scope": "meta.tag.js meta.jsx.children.tsx", 1650 | "settings": { 1651 | "foreground": "#4876d6" 1652 | } 1653 | }, 1654 | { 1655 | "name": "YAML Entity Name Tags", 1656 | "scope": "entity.name.tag.yaml", 1657 | "settings": { 1658 | "foreground": "#111111" 1659 | } 1660 | }, 1661 | { 1662 | "name": "JavaScript Variable Other ReadWrite", 1663 | "scope": ["variable.other.readwrite.js", "variable.parameter"], 1664 | "settings": { 1665 | "foreground": "#403f53" 1666 | } 1667 | }, 1668 | { 1669 | "name": "Support Class Component", 1670 | "scope": ["support.class.component.js", "support.class.component.tsx"], 1671 | "settings": { 1672 | "foreground": "#aa0982", 1673 | "fontStyle": "" 1674 | } 1675 | }, 1676 | { 1677 | "name": "Text nested in React tags", 1678 | "scope": [ 1679 | "meta.jsx.children", 1680 | "meta.jsx.children.js", 1681 | "meta.jsx.children.tsx" 1682 | ], 1683 | "settings": { 1684 | "foreground": "#403f53" 1685 | } 1686 | }, 1687 | { 1688 | "name": "TypeScript Classes", 1689 | "scope": "meta.class entity.name.type.class.tsx", 1690 | "settings": { 1691 | "foreground": "#111111" 1692 | } 1693 | }, 1694 | { 1695 | "name": "TypeScript Entity Name Type", 1696 | "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"], 1697 | "settings": { 1698 | "foreground": "#111111" 1699 | } 1700 | }, 1701 | { 1702 | "name": "TypeScript Class Variable Keyword", 1703 | "scope": [ 1704 | "meta.class.ts meta.var.expr.ts storage.type.ts", 1705 | "meta.class.tsx meta.var.expr.tsx storage.type.tsx" 1706 | ], 1707 | "settings": { 1708 | "foreground": "#994CC3" 1709 | } 1710 | }, 1711 | { 1712 | "name": "TypeScript Method Declaration e.g. `constructor`", 1713 | "scope": [ 1714 | "meta.method.declaration storage.type.ts", 1715 | "meta.method.declaration storage.type.tsx" 1716 | ], 1717 | "settings": { 1718 | "foreground": "#4876d6" 1719 | } 1720 | }, 1721 | { 1722 | "name": "normalize font style of certain components", 1723 | "scope": [ 1724 | "meta.property-list.css meta.property-value.css variable.other.less", 1725 | "meta.property-list.scss variable.scss", 1726 | "meta.property-list.sass variable.sass", 1727 | "meta.brace", 1728 | "keyword.operator.operator", 1729 | "keyword.operator.or.regexp", 1730 | "keyword.operator.expression.in", 1731 | "keyword.operator.relational", 1732 | "keyword.operator.assignment", 1733 | "keyword.operator.comparison", 1734 | "keyword.operator.type", 1735 | "keyword.operator", 1736 | "keyword", 1737 | "punctuation.definintion.string", 1738 | "punctuation", 1739 | "variable.other.readwrite.js", 1740 | "storage.type", 1741 | "source.css", 1742 | "string.quoted" 1743 | ], 1744 | "settings": { 1745 | "fontStyle": "" 1746 | } 1747 | } 1748 | ] 1749 | } 1750 | -------------------------------------------------------------------------------- /three-dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/three-dark.jpg -------------------------------------------------------------------------------- /three-light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sdras/night-owl-vscode-theme/cc291eba7976b20d7c66bde6883c27b902196b07/three-light.jpg -------------------------------------------------------------------------------- /vsc-extension-quickstart.md: -------------------------------------------------------------------------------- 1 | # Welcome to your VS Code Extension 2 | 3 | ## What's in the folder 4 | * This folder contains all of the files necessary for your color theme extension. 5 | * `package.json` - this is the manifest file that defines the location of the theme file. 6 | and specifies the base theme of the theme. 7 | * `themes/Night Owl-color-theme.json` - the color theme definition file. 8 | 9 | ## Get up and running straight away 10 | * Press `F5` to open a new window with your extension loaded. 11 | * Open `File > Preferences > Color Themes` and pick your color theme. 12 | * Open a file that has a language associated. The languages' configured grammar will tokenize the text and assign 'scopes' to the tokens. To examine these scopes, invoke the `Inspect TM Scopes` command from the Commmand Palette (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) . 13 | 14 | ## Make changes 15 | * You can relaunch the extension from the debug toolbar after making changes to the files listed above. 16 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. 17 | * When editing workbench colors, it's easiest to test the colors in the settings under `workbench.colorCustomizations` and `workbench.tokenColorCustomizations`. When done, run the `Generate Color Theme From Current Settings` command to generate an updated content for the color theme definition file. 18 | 19 | ## Adopt your theme to Visual Studio Code 20 | * The token colorization is done based on standard TextMate themes. Colors are matched against one or more scopes. 21 | To learn more about scopes and how they're used, check out the [theme](https://code.visualstudio.com/docs/extensions/themes-snippets-colorizers#_adding-a-new-color-theme) documentation. 22 | 23 | ## Install your extension 24 | * To start using your extension with Visual Studio Code copy it into the `/.vscode/extensions` folder and restart Code. 25 | * To share your extension with the world, read on https://code.visualstudio.com/docs about publishing an extension. 26 | --------------------------------------------------------------------------------