How can I mix and match VS Code themes - visual-studio-code

Is it possible to mix and match themes in VS Code?
I want to keep the background colours of the default "Dark+" theme, but at the same time I want to set the font colors to "One Dark Pro"'s font colors.
I have tried modifying the settings.json file with the following config:
"editor.tokenColorCustomizations": {
"strings": "#98C379",
"functions": "#5AA1DC",
"keywords": "#C477DB",
"numbers": "#D19A66",
"types": "#E5C07B",
"variables": "#E06C75",
"comments": "#7F848E"
}
But it doesn't catch all types.
Is there an easier way to do this? Something like:
editor.fonts: {
>use "dark+";
}
editor.background: {
>use "one-dark-pro";
}

Related

VSCode settings : colorize custom tags that start with the "x-" prefix

I want to write a vscode setting in which tags ( inside .vue file ) that start with the prefix x- will be colored green.
tags like <x-component></x-component> and <x-lorem></x-lorem>
is it possible? and how
i tried this
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "entity.name.tag.x-*",
"settings": {
"foreground": "#00ff00"
}
}
]
},
and it not works
Unfortunately, it seems that this is not possible without installing the plugin
I used the Highlight plugin mentioned by #rioV8
it works
this is my config :
"highlight.regexes": {
"(<[^>]*x-[^>]*>)": { // A regex will be created from this string, don't forget to double escape it
"decorations": [ // Decoration options to apply to the capturing groups
{ "color": "#7ac379" }, // Decoration options to apply to the first capturing group, in this case "//<-x:"
]
}
}

Editor customization: how to change color of boolean keywords?

I am trying to adjust the appearance of the editor.
Using the "editor.tokenColorCustomizations" and "editor.semanticTokenColorCustomizations" settings, I have managed to make all of the desired adjustments, except for the true/false keywords.
Search as I might, I cannot find the setting which controls the appearance of these keywords. Please provide suggestions.
You can use this code to change the color of both true and false:
"editor.tokenColorCustomizations": {
"[<THEME_NAME>]": {
"textMateRules": [
{
"scope": "constant.language",
"settings": {
"foreground": "<COLOR_CODE>"
}
}
]
}
},

Is there a way to Bold all tags in VS Code?

Is there a way in settings to bold all tags in VS Code.
EX to turn:
```<ul>
<li class="clickable">Clickable</li>
<li>Not clickable</li>
<ul>```
To this:
```**<ul>
<li** class="clickable">Clickable**</li>**
**<li>**Not clickable**</li>
<ul>**```
I think this is what you want in your settings.json:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "punctuation.definition.tag, entity.name.tag.html",
"settings": {
// "foreground": "#ff0000",
"fontStyle": "bold"
}
},
]
},
You may or may not want the punctuation.definition.tag selector.
See https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide#scope-inspector for how to find the scope of tokens in your language. And https://code.visualstudio.com/docs/getstarted/themes#_customizing-a-color-theme for using the editor.tokenColorCustomizations setting to modify those language scopes you found in step one.

VSCode - Change color of typescript function decorator

Is there a way to change the syntax highlight color of decorators in VSCode? Given the small example :
#HostListener('mouseenter')
onMouseEnter() {}
Both #HostListener and onMouseEnter are highlighted in the same color. I want to change that.
So far I tried messing with "editor.tokenColorCustomizations": { "functions" : "SomeColorHere"}}, but this changes both the decorator and the function declaration.
Here is my config to use TODO highlight as Mark advised, i excluded require and import to avoid interfering with js and stylus
quick note on the screenshot: the default italic style is from here, and the inline property is from here
"todohighlight.isEnable": true,
"todohighlight.isCaseSensitive": true,
"todohighlight.keywordsPattern": "#(?!require|import)[\\w-_.]*",
"todohighlight.defaultStyle": {
"color": "#1E88E5",
"backgroundColor": "0",
"fontWeight": "bold"
},
"todohighlight.include": [
"**/*.js",
"**/*.ts",
"**/*.vue",
],
"todohighlight.exclude": [
"**/node_modules/**",
"**/bower_components/**",
"**/dist/**",
"**/build/**",
"**/.vscode/**",
"**/.github/**",
"**/_output/**",
"**/*.min.*",
"**/*.map",
"**/.next/**"
],
"todohighlight.maxFilesForSearch": 5120,
See inspecting textmate scopes and similar for how to see the scope of your syntax. So something like this will change the color of the decorator symbol # :
{
"scope": [
"punctuation.decorator.js",
// "meta.decorator.js",
],
"settings": {
"foreground": "#e100ff",
"fontStyle": "bold"
}
}
This only affects the # symbol, I couldn't find a way to color the # symbol and its associated function name and no other function names.
There is a workaround that could do that if you really want it. And that is to use a word highlighter like TODO highlight and make a regex that does what you want. Like:
"todohighlight.keywordsPattern": "#[\\w-_]*",
"todohighlight.defaultStyle": {
"color": "red",
// "letterSpacing": "1px",
// "backgroundColor": "rgba(170,102,0,1)",
"backgroundColor": "transparent",
// "borderRadius": "4px",
"isWholeLine": false
}

How do I change color of comments in visual studio code?

I went through https://code.visualstudio.com/docs/getstarted/theme-color-reference but can't seem to find the setting for changing the comment color.
I am currently using Atom One Dark Theme and just like to lighten the color a little bit so I can read it better.
From 1.15 (July 2017) you can change it from settings.json Ctrl+,
"editor.tokenColorCustomizations": {
"comments": "#d4922f"
},
From 1.20 (January 2018) you can also do it for each theme separately:
"editor.tokenColorCustomizations": {
"[Atom One Dark]": {
"comments": "#d4922f"
}
},
Or now you can specify settings for multiple themes at once as "[Atom One Dark][Tomorrow Night Blue]": {...}
Finding the right scope:
Developer: Inspect TM Scopes editor.action.inspectTMScopes
Selector priority:
https://code.visualstudio.com/blogs/2017/02/08/syntax-highlighting-optimizations#_textmate-themes
Ok, more examples (for js):
"editor.tokenColorCustomizations": {
"textMateRules": [{
"scope": "INSERT_SCOPE_HERE",
"settings": {
"foreground": "#ff0000"
}
}]
}
comment
punctuation.definition.comment
comment.block.documentation
storage.type.class.jsdoc
entity.name.type.instance.jsdoc
variable.other.jsdoc
1.Go to your settings.
2.Type “editor.tokenColorCustomizations” into the search bar then click on “Edit in settings.json”:
3.By default, “editor.tokenColorCustomizations” is set to “null”. To customize the comment color, you can add:
{ "comments": "[color code]" }
You can type something like this:
> "editor.tokenColorCustomizations": {
> "comments": "#e45e91" },
4.Change the color of comments,based on your liking by hovering over the color and choosing your desired color.
5.Then save the changes.(Ctrl+S)
6.Exit the program. open it again, you will see the changes.
To expand on the answer and #Johnny Derp's comment. You can change the font color and style using:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "comment",
"settings": {
"fontStyle": "italic",
"foreground": "#C69650",
}
}
]
},
background cannot be changed in this way, only the color and style. As of June, 2018.
Also in answer to a couple of comments about changing comments puntuation (like the //) colors - which now have to be separately colored with their own textmate rule, a change may be coming to fix that in the October 2019 release - at this point it is an unresolved issue but added to the October 2019 milestone. See https://github.com/microsoft/vscode/milestone/102
In VS Code: 1.56.2
Add to settings.json:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": [
"comment",
"comment.block.documentation",
"comment.block.documentation.js",
"comment.line.double-slash.js",
"storage.type.class.jsdoc",
"entity.name.type.instance.jsdoc",
"variable.other.jsdoc",
"punctuation.definition.comment",
"punctuation.definition.comment.begin.documentation",
"punctuation.definition.comment.end.documentation"
],
"settings": {
"fontStyle": "italic",
"foreground": "#287a1d"
}
}
]
}
If there is still stoff missing: CTRL+SHIFT+P => Developer: Inspect Editor Tokens and Scopes hover over the parts that are not colored correctly and add them to "scope".
There you are. :)
Looks like the token colors cannot be customized within the settings at the moment:
The most prominent editor colors are the token colors that are based
on the language grammar installed. These colors are defined by the
Color Theme and can (currently) not be customized in the settings.
Source: https://code.visualstudio.com/docs/getstarted/theme-color-reference
I did notice that if you go into the theme folders, for example:
C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\theme-monokai
and edit the monokai-color-theme.json file, look for the line with "name": "Comment" and change the "foreground" color it will work. Just make sure to restart the program.
Like Mark said, but add in the "scope": after "comment"
"punctuation.definition.comment"
to color also the punctuation,
e.g. (// in javescript | /* */ in css | <!-- --> in html).
"scope": ["comment", "punctuation.definition.comment"]
While commenting on comment subject, I found "Better Comments" extension of VS Code very useful. You can give various colors ‎to your comments and hence categorize your comments based on importance etc. ‎
Default comments color can also be changed.‎
https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments
Example:‎
This extension can be configured in User Settings or Workspace settings.‎
Doc, Block, and Line settings
To have differnet colors for Doc, Block, and Line comments:
I.e. for the Cobalt2 theme:
"editor.tokenColorCustomizations": {
"[Cobalt2]": {
"textMateRules": [
{
"scope": [
"comment.block",
"punctuation.definition.comment.end",
"punctuation.definition.comment.begin"
],
"settings": {
"foreground": "#85b3f8",
"fontStyle": "bold"
}
},
{
"scope": [
"comment.block.documentation",
"punctuation.definition.comment.begin.documentation",
"punctuation.definition.comment.end.documentation"
],
"settings": {
"foreground": "#6bddb7",
"fontStyle": "bold"
}
},{
"scope":["comment.line", "punctuation.definition.comment"],
"settings": {
"foreground": "#FF0000",
"fontStyle": "bold"
}
}
]
}
}
Tested with C++.
You can modify your VS code by simply edit your setting file in VS code and follow these 3 steps.
step1:
step2:
Step3:
To change VS Code comment color
File --> Preferences --> Settings
Choose the "Workspace Settings" tab to only change it for this project
Choose the "User Settings" tab to change it for all projects
Do a search for "settings.json" and look for an option to "Edit in settings.json"
Insert this color setting for the comments somewhere inside the curly brackets:
"editor.tokenColorCustomizations": {
"comments": "#ff4"
}
It might complain that you are overriding your current color theme, just ignore that.
If there is already a section for "editor.tokenColorCustomizations" then just add the line to specify the comment color.