Load VS themes from theme file, clean tokens.css

This commit is contained in:
Martin Aeschlimann 2016-03-13 22:50:52 +01:00
parent 0785eecda3
commit 64a83fe3ad
12 changed files with 317 additions and 676 deletions

View file

@ -1,23 +0,0 @@
{
"name": "theme-colorful-defaults",
"displayName": "Colorful Default Themes - Please provide feedback in issue 1849",
"description": "The default VS Code Light and Dark themes with a touch of color. We are considering adding these to the default themes in the January release. Please provide feedback in issue 1849.",
"categories": [ "Themes" ],
"version": "0.1.10",
"publisher": "vscode",
"engines": { "vscode": "*" },
"contributes": {
"themes": [
{
"label": "Dark+ (default dark)",
"uiTheme": "vs-dark",
"path": "./themes/dark_plus.json"
},
{
"label": "Light+ (default light)",
"uiTheme": "vs",
"path": "./themes/light_plus.json"
}
]
}
}

View file

@ -0,0 +1,38 @@
{
"name": "theme-defaults",
"displayName": "Default Themes",
"description": "The default light and dark themes (Plus and Visual Studio)",
"categories": [ "Themes" ],
"version": "0.1.10",
"publisher": "vscode",
"engines": { "vscode": "*" },
"contributes": {
"themes": [
{
"label": "Dark+ (default dark)",
"uiTheme": "vs-dark",
"path": "./themes/dark_plus.json"
},
{
"label": "Light+ (default light)",
"uiTheme": "vs",
"path": "./themes/light_plus.json"
},
{
"label": "Dark (Visual Studio)",
"uiTheme": "vs-dark",
"path": "./themes/dark_vs.json"
},
{
"label": "Light (Visual Studio)",
"uiTheme": "vs",
"path": "./themes/light_vs.json"
},
{
"label": "High Contrast",
"uiTheme": "hc-black",
"path": "./themes/hc_black.json"
}
]
}
}

View file

@ -24,7 +24,7 @@
"name": "Function declarations",
"scope": [
"entity.name.function",
"entity.method.name"
"entity.name.method"
],
"settings": {
"foreground": "#DCDCAA"
@ -59,26 +59,12 @@
{
"name": "CSS property value",
"scope": [
"css.support.property-value",
"css.constant.rgb-value"
"support.property-value.css",
"constant.rgb-value.css"
],
"settings": {
"foreground": "#CE9178"
}
},
{
"name": "JSON keys",
"scope": "support.type.property-name",
"settings": {
"foreground": "#9CDCFE"
}
},
{
"name": "LESS workaround",
"scope": "keyword.control.less",
"settings": {
"foreground": "#D7BA7D"
}
}
]
}

View file

@ -1,19 +1,6 @@
{
"name": "Dark Visual Studio",
"settings": [
{
"scope": "string",
"settings": {
"foreground": "#ce9178"
}
},
{
"scope": "string.escape",
"settings": {
"foreground": "#ce9178"
}
},
{
"scope": "emphasis",
"settings": {
@ -248,6 +235,12 @@
"settings": {
"foreground": "#b5cea8"
}
},
{
"scope": "metatag.php",
"settings": {
"foreground": "#569cd6"
}
}
]
}

View file

@ -0,0 +1,228 @@
{
"name": "Dark Visual Studio",
"settings": [
{
"scope": "emphasis",
"settings": {
"fontStyle": "italic"
}
},
{
"scope": "strong",
"settings": {
"fontStyle": "bold"
}
},
{
"scope": "header",
"settings": {
"foreground": "#000080"
}
},
{
"scope": "comment",
"settings": {
"foreground": "#7ca668"
}
},
{
"scope": "constant.language",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "constant.numeric",
"settings": {
"foreground": "#b5cea8"
}
},
{
"scope": "constant.regexp",
"settings": {
"foreground": "#b46695"
}
},
{
"scope": "constant.rgb-value",
"settings": {
"foreground": "#d4d4d4"
}
},
{
"scope": "entity.name.tag",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "entity.name.selector",
"settings": {
"foreground": "#d7ba7d"
}
},
{
"scope": "entity.other.attribute-name",
"settings": {
"foreground": "#9cdcfe"
}
},
{
"scope": "entity.other.attribute-name.css",
"settings": {
"foreground": "#d7ba7d"
}
},
{
"scope": "invalid",
"settings": {
"foreground": "#f44747"
}
},
{
"scope": "markup.underline",
"settings": {
"fontStyle": "underline"
}
},
{
"scope": "markup.bold",
"settings": {
"fontStyle": "bold"
}
},
{
"scope": "markup.heading",
"settings": {
"foreground": "#6796e6"
}
},
{
"scope": "markup.italic",
"settings": {
"fontStyle": "italic"
}
},
{
"scope": "meta.selector",
"settings": {
"foreground": "#d7ba7d"
}
},
{
"scope": "meta.tag",
"settings": {
"foreground": "#808080"
}
},
{
"scope": "meta.preprocessor",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "meta.preprocessor.string",
"settings": {
"foreground": "#ce9178"
}
},
{
"scope": "meta.preprocessor.numeric",
"settings": {
"foreground": "#b5cea8"
}
},
{
"scope": "meta.structure.dictionary.key.python",
"settings": {
"foreground": "#9cdcfe"
}
},
{
"scope": "storage",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "storage.type",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "storage.modifier",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "string",
"settings": {
"foreground": "#ce9178"
}
},
{
"scope": "string.tag",
"settings": {
"foreground": "#ce9178"
}
},
{
"scope": "string.value",
"settings": {
"foreground": "#ce9178"
}
},
{
"scope": "string.regexp",
"settings": {
"foreground": "#d16969"
}
},
{
"scope": "support.type.property-name",
"settings": {
"foreground": "#d4d4d4"
}
},
{
"scope": "keyword",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "keyword.control",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "keyword.control.less",
"settings": {
"foreground": "#d7ba7d"
}
},
{
"scope": "keyword.operator",
"settings": {
"foreground": "#d4d4d4"
}
},
{
"scope": "keyword.operator.new",
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "keyword.other.unit",
"settings": {
"foreground": "#b5cea8"
}
}
]
}

View file

@ -24,7 +24,7 @@
"name": "Function declarations",
"scope": [
"entity.name.function",
"entity.method.name"
"entity.name.method"
],
"settings": {
"foreground": "#795E26"
@ -55,31 +55,6 @@
"settings": {
"foreground": "#0000FF"
}
},
{
"name": "CSS keys",
"scope": [
"support.type.property-name.css",
"support.type.property-name.less",
"support.type.property-name.sass"
],
"settings": {
"foreground": "#FF0000"
}
},
{
"name": "JSON keys",
"scope": "support.type.property-name",
"settings": {
"foreground": "#0451A5"
}
},
{
"name": "LESS workaround",
"scope": "keyword.control.less",
"settings": {
"foreground": "#800000"
}
}
]
}

View file

@ -1,20 +1,6 @@
{
"name": "Light Visual Studio",
"settings": [
{
"scope": "string",
"settings": {
"foreground": "#a31515"
}
},
{
"scope": "string.escape",
"settings": {
"foreground": "#a31515"
}
},
/* Markdown */
{
"scope": "emphasis",
"settings": {
@ -65,7 +51,6 @@
"foreground": "#0451a5"
}
},
{
"name": "css tags in selectors, xml tags",
"scope": "entity.name.tag",
@ -73,6 +58,12 @@
"foreground": "#800000"
}
},
{
"scope": "entity.name.selector",
"settings": {
"foreground": "#800000"
}
},
{
"scope": "entity.other.attribute-name",
"settings": {
@ -246,6 +237,12 @@
"settings": {
"foreground": "#800000"
}
},
{
"scope": "metatag.php",
"settings": {
"foreground": "#800000"
}
}
]
}

View file

@ -3,570 +3,11 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/* -------------------------------- Begin vs tokens -------------------------------- */
.monaco-editor.vs .token { color: #000000; }
.monaco-editor.vs .token.whitespace { color: rgba(51, 51, 51, 0.2) !important; }
.monaco-editor.vs .token.terminal { color: #e00000; }
.monaco-editor.vs .token.terminal.code1 { font-weight: bold; }
.monaco-editor.vs .token.string { color: #A31515; }
.monaco-editor.vs .token.string.escape { color: #A31515; }
.monaco-editor.vs .token.literal.string { color: #A31515; }
.monaco-editor.vs .token.literal.hex { color: #e07000; }
.monaco-editor.vs .token.number { color: #09885A; }
.monaco-editor.vs .token.number.hex { color: #3030c0; }
.monaco-editor.vs .token.number.octal { color: #204070; }
.monaco-editor.vs .token.number.binary { color: #e07070; }
.monaco-editor.vs .token.regexp { color: #800000; }
.monaco-editor.vs .token.delimiter { color: #000000; }
.monaco-editor.vs .token.tag { color: #800000; }
.monaco-editor.vs .token.metatag { color: #e00000; }
.monaco-editor.vs .token.attribute.name { color: red; }
.monaco-editor.vs .token.attribute.value { color: #0451A5; }
.monaco-editor.vs .token.info-token { color: #316bcd; }
.monaco-editor.vs .token.warn-token { color: #cd9731; }
.monaco-editor.vs .token.error-token { color: #cd3131; }
.monaco-editor.vs .token.debug-token { color: purple; }
/* Keywords should come at the end in order to match cases like token.keyword.string */
.monaco-editor.vs .token.keyword { color: #0000FF; }
.monaco-editor.vs .token.keyword.flow { color: #AF00DB; }
/* PHP */
.monaco-editor.vs .token.metatag.php { font-weight: bold; }
/* Ruby */
.monaco-editor.vs .token.predefined.ruby { color: #0000FF; }
/* Markdown */
.monaco-editor.vs .token.emphasis { font-style: italic;}
.monaco-editor.vs .token.strong { font-weight: bold; }
.monaco-editor.vs .token.header { color: navy ;}
/* YAML */
.monaco-editor.vs .token.string.yaml { color: #0451A5; }
/* HTML */
.monaco-editor.vs .token.delimiter.html { color: #383838; }
.monaco-editor.vs .token.metatag.content.html { color: red; }
.monaco-editor.vs .token.metatag.html { color: gray; }
.monaco-editor.vs .token.attribute.name.html { color: red; }
.monaco-editor.vs .token.attribute.value.html { color: blue; }
.monaco-editor.vs .token.string.html { color: blue; }
/* XML */
.monaco-editor.vs .token.delimiter.xml { color: blue; }
.monaco-editor.vs .token.metatag.content.xml { color: red; }
.monaco-editor.vs .token.metatag.xml { color: gray; }
.monaco-editor.vs .token.attribute.name.xml { color: red; }
.monaco-editor.vs .token.attribute.value.xml { color: blue; }
/* TypeScript */
.monaco-editor.vs .token.entity.ts { color: black; }
/* -------------------------------- End vs tokens -------------------------------- */
/* -------------------------------- Begin vs-dark tokens -------------------------------- */
.monaco-editor.vs-dark .token { color: #D4D4D4; }
.monaco-editor.vs-dark .token.whitespace { color: rgba(227, 228, 226, 0.16) !important; }
.monaco-editor.vs-dark .token.string { color: #CE9178; }
.monaco-editor.vs-dark .token.string.escape { color: #CE9178; }
.monaco-editor.vs-dark .token.literal.hex { color: #e07000; }
.monaco-editor.vs-dark .token.number { color: #B5CEA8; }
.monaco-editor.vs-dark .token.number.hex { color: #5BB498; }
.monaco-editor.vs-dark .token.number.binary { color: #3030c0; }
.monaco-editor.vs-dark .token.number.octal { color: #204070; }
.monaco-editor.vs-dark .token.regexp { color: #B46695; }
.monaco-editor.vs-dark .token.delimiter { color: #DCDCDC; }
.monaco-editor.vs-dark .token.tag { color: #569CD6; }
.monaco-editor.vs-dark .token.metatag { color: #DD6A6F; }
.monaco-editor.vs-dark .token.attribute.name { color: #9CDCFE; }
.monaco-editor.vs-dark .token.attribute.value { color: #CE9178; }
.monaco-editor.vs-dark .token.info-token { color: #6796e6; }
.monaco-editor.vs-dark .token.warn-token { color: #cd9731; }
.monaco-editor.vs-dark .token.error-token { color: #f44747; }
.monaco-editor.vs-dark .token.debug-token { color: #b267e6; }
/* Keywords should come at the end in order to match cases like token.keyword.string */
.monaco-editor.vs-dark .token.keyword { color: #569CD6; }
.monaco-editor.vs-dark .token.keyword.flow { color: #C586C0; }
.monaco-editor.vs-dark .token.keyword.datatype { color: #569CD6; }
/* PHP */
.monaco-editor.vs-dark .token.metatag.php { font-weight: bold; }
/* Ruby */
.monaco-editor.vs-dark .token.predefined.ruby { color: #4E94CE; }
/* Markdown */
.monaco-editor.vs-dark .token.emphasis { font-style: italic;}
.monaco-editor.vs-dark .token.strong { font-weight: bold; }
.monaco-editor.vs-dark .token.header { color: navy ;}
/* YAML */
.monaco-editor.vs-dark .token.string.yaml { color: #CE9178; }
/* HTML */
.monaco-editor.vs-dark .token.delimiter.html { color: #808080; }
.monaco-editor.vs-dark .token.metatag.content.html { color: #9CDCFE; }
.monaco-editor.vs-dark .token.metatag.html { color: #569CD6; }
.monaco-editor.vs-dark .token.string.html { color: #CE9178; }
/* XML */
.monaco-editor.vs-dark .token.delimiter.xml { color: #808080; }
.monaco-editor.vs-dark .token.metatag.content.xml { color: #9CDCFE; }
.monaco-editor.vs-dark .token.metatag.xml { color: #569CD6; }
/* CSS */
.monaco-editor.vs-dark .token.attribute.name.css { color: #9CDCFE; }
.monaco-editor.vs-dark .token.attribute.value.css { color: #C8C8C8; }
.monaco-editor.vs-dark .token.delimiter.css { color: #DCDCDC; }
/* VSXML */
.monaco-editor.vs-dark .token.vs { color: #608B4E; }
.monaco-editor.vs-dark .token.tag.vs { color: #949494; }
.monaco-editor.vs-dark .token.delimiter.vs { color: #585858; }
.monaco-editor.vs-dark .token.attribute.name.vs { color: #949494; }
.monaco-editor.vs-dark .token.attribute.value.vs { color: #C4C4C4; }
/* Jade */
.monaco-editor.vs-dark .token.tag.id.jade,
.monaco-editor.vs-dark .token.tag.class.jade { color: #4F76AC; }
.monaco-editor.vs-dark .token.interpolation.jade { color: magenta; }
.monaco-editor.vs-dark .token.interpolation.delimiter.jade { color: magenta; }
/* -------------------------------- End vs-dark tokens -------------------------------- */
/* -------------------------------- Begin hc-black tokens -------------------------------- */
.monaco-editor.hc-black .token { color: #FFFFFF; }
.monaco-editor.hc-black .token.whitespace { color: #FFFF00 !important; }
.monaco-editor.hc-black .token.terminal { color: #569CD6; }
.monaco-editor.hc-black .token.terminal.code1 { font-weight: bold; }
.monaco-editor.hc-black .token.string { color: #CE9178; }
.monaco-editor.hc-black .token.string.escape { color: #CE9178; }
.monaco-editor.hc-black .token.literal.hex { color: #FFFFFF; }
.monaco-editor.hc-black .token.number { color: #FFFFFF; }
.monaco-editor.hc-black .token.number.hex { color: #FFFFFF; }
.monaco-editor.hc-black .token.number.octal { color: #FFFFFF; }
.monaco-editor.hc-black .token.number.binary { color: #FFFFFF; }
.monaco-editor.hc-black .token.regexp { color: #C0C0C0; }
.monaco-editor.hc-black .token.delimiter { color: #FFFF00; }
.monaco-editor.hc-black .token.tag { color: #569CD6; }
.monaco-editor.hc-black .token.metatag { color: #569CD6; }
.monaco-editor.hc-black .token.attribute.name { color: #569CD6; }
.monaco-editor.hc-black .token.attribute.value { color: #3FF23F; }
.monaco-editor.hc-black .token.info-token { color: #6796e6; }
.monaco-editor.hc-black .token.warn-token { color: #008000; }
.monaco-editor.hc-black .token.error-token { color: #FF0000; }
.monaco-editor.hc-black .token.debug-token { color: #b267e6; }
/* Keywords should come at the end in order to match cases like token.keyword.string */
.monaco-editor.hc-black .token.keyword { color: #1AEBFF; }
.monaco-editor.hc-black .token.keyword.flow { color: #C586C0; }
.monaco-editor.hc-black .token.keyword.datatype { color: #569CD6; }
/* PHP */
.monaco-editor.hc-black .token.metatag.php { font-weight: bold; }
/* Ruby */
.monaco-editor.hc-black .token.predefined.ruby { color: #4E94CE; }
/* Markdown */
.monaco-editor.hc-black .token.emphasis { font-style: italic;}
.monaco-editor.hc-black .token.strong { font-weight: bold; }
.monaco-editor.hc-black .token.header { color: navy ;}
/* YAML */
.monaco-editor.hc-black .token.string.yaml { color: #CE9178; }
/* HTML */
.monaco-editor.hc-black .token.delimiter.html { color: #FFFF00; }
.monaco-editor.hc-black .token.metatag.content.html { color: #1AEBFF; }
.monaco-editor.hc-black .token.metatag.html { color: #569CD6; }
.monaco-editor.hc-black .token.string.html { color: #CE9178; }
/* XML */
.monaco-editor.hc-black .token.delimiter.xml { color: #FFFF00; }
.monaco-editor.hc-black .token.metatag.content.xml { color: #1AEBFF; }
.monaco-editor.hc-black .token.metatag.xml { color: #569CD6; }
/* CSS */
.monaco-editor.hc-black .token.attribute.name.css { color: #569CD6; }
.monaco-editor.hc-black .token.attribute.value.css { color: #3FF23F; }
.monaco-editor.hc-black .token.delimiter.css { color: #FFFF00; }
/* VSXML */
.monaco-editor.hc-black .token.vs { color: #FFFFFF; }
.monaco-editor.hc-black .token.tag.vs { color: #949494; }
.monaco-editor.hc-black .token.delimiter.vs { color: #585858; }
.monaco-editor.hc-black .token.attribute.name.vs { color: #949494; }
.monaco-editor.hc-black .token.attribute.value.vs { color: #C4C4C4; }
/* Jade */
.monaco-editor.hc-black .token.tag.string.jade { color: #CE9178; }
.monaco-editor.hc-black .token.tag.id.jade,
.monaco-editor.hc-black .token.tag.class.jade { color: #4F76AC; }
.monaco-editor.hc-black .token.interpolation.jade { color: magenta; }
.monaco-editor.hc-black .token.interpolation.delimiter.jade { color: magenta; }
/* -------------------------------- End hc-black tokens -------------------------------- */
/*****************************************************************************************/
/************************************ TextMate Scopes ************************************/
/*****************************************************************************************/
/* Standard light theme tokens */
.monaco-editor.vs .token { color: #000000; }
.monaco-editor.vs .token.whitespace { color: rgba(51, 51, 51, 0.2) !important; }
.monaco-editor.vs .token.comment { color: #008000; }
.monaco-editor.vs .token.constant.language { color: #0000FF; } /* null, true, false... */
.monaco-editor.vs .token.constant.numeric { color: #09885A; }
.monaco-editor.vs .token.constant.regexp { color: #811f3f; }
.monaco-editor.vs .token.constant.rgb-value { color: #0451A5; }
/*
.monaco-editor.vs .token.constant.numeric.hex { color: #3030c0; }
.monaco-editor.vs .token.constant.numeric.octal { color: #204070; }
.monaco-editor.vs .token.constant.numeric.binary { color: #e07070; }
.monaco-editor.vs .token.constant.entity
*/
/*.monaco-editor.vs .token.constant.character
.monaco-editor.vs .token.constant.character.escape
.monaco-editor.vs .token.constant.language.boolean
.monaco-editor.vs .token.constant.language.null
.monaco-editor.vs .token.constant.other*/
/*.monaco-editor.vs .token.brace.paren
.monaco-editor.vs .token.brace.round
.monaco-editor.vs .token.brace.square
.monaco-editor.vs .token.brace.curly*/
.monaco-editor.vs .token.entity.name.tag { color: #800000; } /* css tags in selectors, xml tags */
/*.monaco-editor.vs .token.entity.name.selector { color: #800000; }
.monaco-editor.vs .token.entity.other.selector { color: #800000; }*/
.monaco-editor.vs .token.entity.other.attribute-name { color: red; } /* html, xml */
.monaco-editor.vs .token.entity.other.attribute-name.css { color: #800000; }
/*.monaco-editor.vs .token.entity.name.type
.monaco-editor.vs .token.entity.name.tag
.monaco-editor.vs .token.entity.name.section
.monaco-editor.vs .token.entity.other
.monaco-editor.vs .token.entity.other.inherited-class
.monaco-editor.vs .token.entity.other.attribute-name*/
.monaco-editor.vs .token.invalid { color: #cd3131; }
/*.monaco-editor.vs .token.invalid.illegal
.monaco-editor.vs .token.invalid.deprecated*/
/*.monaco-editor.vs .token.markup*/
.monaco-editor.vs .token.markup.underline { text-decoration: underline;}
/*.monaco-editor.vs .token.markup.underline.link*/
.monaco-editor.vs .token.markup.bold { font-weight: bold; }
.monaco-editor.vs .token.markup.heading { color: navy ;}
.monaco-editor.vs .token.markup.italic { font-style: italic;}
/*.monaco-editor.vs .token.markup.list
.monaco-editor.vs .token.markup.list.numbered
.monaco-editor.vs .token.markup.list.unnumbered
.monaco-editor.vs .token.markup.quote
.monaco-editor.vs .token.markup.raw
.monaco-editor.vs .token.markup.other*/
.monaco-editor.vs .token.meta.selector { color: #800000; } /* css, parent rule of selectors */
.monaco-editor.vs .token.meta.tag { color: #800000; } /* xml/html for tags */
.monaco-editor.vs .token.meta.preprocessor { color: #0000FF; }
.monaco-editor.vs .token.meta.preprocessor.string { color: #A31515; }
.monaco-editor.vs .token.meta.preprocessor.numeric { color: #09885A; }
.monaco-editor.vs .token.meta.structure.dictionary.key.python { color: #0451A5; } /* python */
.monaco-editor.vs .token.storage { color: #0000FF; }
.monaco-editor.vs .token.storage.type { color: #0000FF; } /* repeat to match storage.type.string */
.monaco-editor.vs .token.storage.modifier { color: #0000FF; }
.monaco-editor.vs .token.string { color: #A31515; }
.monaco-editor.vs .token.string.tag { color: blue; }
.monaco-editor.vs .token.string.value { color: #A31515; }
/*.monaco-editor.vs .token.string.quoted
.monaco-editor.vs .token.string.quoted.single
.monaco-editor.vs .token.string.quoted.double
.monaco-editor.vs .token.string.quoted.triple
.monaco-editor.vs .token.string.quoted.other
.monaco-editor.vs .token.string.unquoted
.monaco-editor.vs .token.string.interpolated*/
.monaco-editor.vs .token.string.regexp { color: #811f3f; }
/*.monaco-editor.vs .token.string.other*/
/* css, less, sass */
.monaco-editor.vs .token.support.property-value { color: #0451A5; } /* only colored in light theme */
.monaco-editor.vs .token.support.type.property-name.css,
.monaco-editor.vs .token.support.type.property-name.less,
.monaco-editor.vs .token.support.type.property-name.sass { color: red; } /* special, only in light theme and css */
/* json */
.monaco-editor.vs .token.support.type.property-name { color: #0451A5; }
/*
.monaco-editor.vs .token.support { color: #0000FF; }
.monaco-editor.vs .token.support.function { color: #000000; }
.monaco-editor.vs .token.support.method { color: #000000; }
.monaco-editor.vs .token.support.type.property-name { color: #0451A5; }
.monaco-editor.vs .token.support.property-value { color: #0451A5; }
.monaco-editor.vs .token.support.function
.monaco-editor.vs .token.support.class
.monaco-editor.vs .token.support.type
.monaco-editor.vs .token.support.constant
.monaco-editor.vs .token.support.variable
.monaco-editor.vs .token.support.other*/
/* Keywords should come at the end in order to match cases like token.keyword.string */
.monaco-editor.vs .token.keyword { color: #0000FF; }
.monaco-editor.vs .token.keyword.control { color: #0000FF; }
.monaco-editor.vs .token.keyword.operator { color: #000000; }
.monaco-editor.vs .token.keyword.operator.new { color: #0000FF; }
.monaco-editor.vs .token.keyword.other.unit { color: #09885A; }
/*.monaco-editor.vs .token.keyword.operator
.monaco-editor.vs .token.keyword.other*/
/* less grammar workaround, using in selectors and values */
.monaco-editor.vs .token.keyword.control.less { color: #800000; }
/* -------------------------------- Begin vs-dark tokens -------------------------------- */
.monaco-editor.vs-dark .token { color: #D4D4D4; }
.monaco-editor.vs-dark .token.whitespace { color: rgba(227, 228, 226, 0.16) !important; }
.monaco-editor.vs-dark .token.comment { color: #608B4E; }
.monaco-editor.vs-dark .token.constant.language { color: #569CD6; } /* null, true, false... */
.monaco-editor.vs-dark .token.constant.numeric { color: #B5CEA8; }
.monaco-editor.vs-dark .token.constant.regexp { color: #646695; }
.monaco-editor.vs-dark .token.constant.rgb-value { color: #D4D4D4; }
/*
.monaco-editor.vs-dark .token.constant { color: #569CD6; }
.monaco-editor.vs-dark .token.constant.entity { color: #CE9178; }
.monaco-editor.vs-dark .token.constant.numeric.hex { color: #5BB498; }
.monaco-editor.vs-dark .token.constant.numeric.octal { color: #5BB498; }
.monaco-editor.vs-dark .token.constant.numeric.binary { color: #e07070; }
.monaco-editor.vs-dark .token.constant.character
.monaco-editor.vs-dark .token.constant.character.escape
.monaco-editor.vs-dark .token.constant.language.boolean
.monaco-editor.vs-dark .token.constant.language.null
.monaco-editor.vs-dark .token.constant.other*/
/*.monaco-editor.vs-dark .token.brace.paren
.monaco-editor.vs-dark .token.brace.round
.monaco-editor.vs-dark .token.brace.square
.monaco-editor.vs-dark .token.brace.curly*/
.monaco-editor.vs-dark .token.entity.name.tag { color: #569CD6; }
.monaco-editor.vs-dark .token.entity.name.function { color: #D4D4D4; }
.monaco-editor.vs-dark .token.entity.name.class { color: #D4D4D4; }
.monaco-editor.vs-dark .token.entity.name.selector { color: #D7BA7D; }
/*.monaco-editor.vs-dark .token.entity.other.selector { color: #D7BA7D; }*/
.monaco-editor.vs-dark .token.entity.other.attribute-name { color: #9CDCFE; }
.monaco-editor.vs-dark .token.entity.other.attribute-name.css { color: #D7BA7D; }
/*
.monaco-editor.vs-dark .token.entity.name.type
.monaco-editor.vs-dark .token.entity.name.tag
.monaco-editor.vs-dark .token.entity.name.section
.monaco-editor.vs-dark .token.entity.other
.monaco-editor.vs-dark .token.entity.other.inherited-class
.monaco-editor.vs-dark .token.entity.other.attribute-name*/
.monaco-editor.vs-dark .token.invalid { color: #f44747; }
/*.monaco-editor.vs-dark .token.invalid.illegal
.monaco-editor.vs-dark .token.invalid.deprecated*/
/*.monaco-editor.vs-dark .token.markup*/
.monaco-editor.vs-dark .token.markup.underline { text-decoration: underline;}
/*.monaco-editor.vs-dark .token.markup.underline.link*/
.monaco-editor.vs-dark .token.markup.bold { font-weight: bold; }
.monaco-editor.vs-dark .token.markup.heading { color: #6796e6; }
.monaco-editor.vs-dark .token.markup.italic { font-style: italic;}
/*.monaco-editor.vs-dark .token.markup.list
.monaco-editor.vs-dark .token.markup.list.numbered
.monaco-editor.vs-dark .token.markup.list.unnumbered
.monaco-editor.vs-dark .token.markup.quote
.monaco-editor.vs-dark .token.markup.raw
.monaco-editor.vs-dark .token.markup.other*/
.monaco-editor.vs-dark .token.meta.selector { color: #D7BA7D; }
.monaco-editor.vs-dark .token.meta.tag { color: #808080; } /* gray for html/xml-tag brackets */
.monaco-editor.vs-dark .token.meta.preprocessor { color: #569CD6; }
.monaco-editor.vs-dark .token.meta.preprocessor.string { color: #CE9178; }
.monaco-editor.vs-dark .token.meta.preprocessor.numeric { color: #B5CEA8; }
.monaco-editor.vs-dark .token.meta.structure.dictionary.key.python { color: #9CDCFE; }
.monaco-editor.vs-dark .token.storage { color: #569CD6; }
.monaco-editor.vs-dark .token.storage.type { color: #569CD6; } /* repeat to match storage.type.string */
.monaco-editor.vs-dark .token.storage.modifier { color: #569CD6; }
.monaco-editor.vs-dark .token.string { color: #CE9178; }
.monaco-editor.vs-dark .token.string.tag { color: #CE9178; }
.monaco-editor.vs-dark .token.string.value { color: #CE9178; }
/*.monaco-editor.vs-dark .token.string.quoted
.monaco-editor.vs-dark .token.string.quoted.single
.monaco-editor.vs-dark .token.string.quoted.double
.monaco-editor.vs-dark .token.string.quoted.triple
.monaco-editor.vs-dark .token.string.quoted.other
.monaco-editor.vs-dark .token.string.unquoted
.monaco-editor.vs-dark .token.string.interpolated*/
.monaco-editor.vs-dark .token.string.regexp { color: #D16969; }
/*.monaco-editor.vs-dark .token.string.other*/
/* css, less, sass, json */
.monaco-editor.vs-dark .token.support.type.property-name { color: #9CDCFE; }
/*
.monaco-editor.vs-dark .token.support
.monaco-editor.vs-dark .token.support.function
.monaco-editor.vs-dark .token.support.method
.monaco-editor.vs-dark .token.support.property-value
.monaco-editor.vs-dark .token.support.function
.monaco-editor.vs-dark .token.support.class
.monaco-editor.vs-dark .token.support.constant
.monaco-editor.vs-dark .token.support.variable
.monaco-editor.vs-dark .token.support.other*/
/* Keywords should come at the end in order to match cases like token.keyword.string */
.monaco-editor.vs-dark .token.keyword { color: #569CD6; }
.monaco-editor.vs-dark .token.keyword.control { color: #569CD6; }
.monaco-editor.vs-dark .token.keyword.control.less { color: #D7BA7D; }
.monaco-editor.vs-dark .token.keyword.operator { color: #D4D4D4; }
.monaco-editor.vs-dark .token.keyword.operator.new { color: #569CD6; }
.monaco-editor.vs-dark .token.keyword.other.unit { color: #B5CEA8; }
/*.monaco-editor.vs-dark .token.keyword.operator
.monaco-editor.vs-dark .token.keyword.other*/
/* -------------------------------- End vs-dark tokens -------------------------------- */
/* -------------------------------- Begin hc-black tokens ----------------------------- */
.monaco-editor.hc-black .token { color: #FFFFFF; }
.monaco-editor.hc-black .token.whitespace { color: rgba(227, 228, 226, 0.16) !important; }
.monaco-editor.hc-black .token.comment { color: #7ca668; }
.monaco-editor.hc-black .token.constant.language { color: #569CD6; } /* null, true, false... */
.monaco-editor.hc-black .token.constant.numeric { color: #B5CEA8; }
.monaco-editor.hc-black .token.constant.regexp { color: #B46695; }
.monaco-editor.hc-black .token.constant.rgb-value { color: #D4D4D4; }
/*
.monaco-editor.hc-black .token.constant.language { color: #569CD6; }
.monaco-editor.hc-black .token.constant.entity { color: #CE9178; }
.monaco-editor.hc-black .token.constant.numeric.hex { color: #5BB498; }
.monaco-editor.hc-black .token.constant.numeric.octal { color: #5BB498; }
.monaco-editor.hc-black .token.constant.numeric.binary { color: #e07070; }
.monaco-editor.hc-black .token.constant.character
.monaco-editor.hc-black .token.constant.character.escape
.monaco-editor.hc-black .token.constant.language.boolean
.monaco-editor.hc-black .token.constant.language.null
.monaco-editor.hc-black .token.constant.other*/
/*.monaco-editor.hc-black .token.brace.paren
.monaco-editor.hc-black .token.brace.round
.monaco-editor.hc-black .token.brace.square
.monaco-editor.hc-black .token.brace.curly*/
.monaco-editor.hc-black .token.entity.name.tag { color: #569CD6; }
.monaco-editor.hc-black .token.entity.name.selector { color: #D7BA7D; }
/*.monaco-editor.hc-black .token.entity.other.selector { color: #D7BA7D; }*/
.monaco-editor.hc-black .token.entity.other.attribute-name { color: #9CDCFE; }
.monaco-editor.hc-black .token.entity.other.attribute-name.css { color: #D7BA7D; }
/*
.monaco-editor.hc-black .token.entity.name.type
.monaco-editor.hc-black .token.entity.name.tag
.monaco-editor.hc-black .token.entity.name.section
.monaco-editor.hc-black .token.entity.other
.monaco-editor.hc-black .token.entity.other.inherited-class
.monaco-editor.hc-black .token.entity.other.attribute-name*/
.monaco-editor.hc-black .token.invalid { color: #f44747; }
/*.monaco-editor.hc-black .token.invalid.illegal
.monaco-editor.hc-black .token.invalid.deprecated*/
/*.monaco-editor.hc-black .token.markup*/
.monaco-editor.hc-black .token.markup.underline { text-decoration: underline;}
/*.monaco-editor.hc-black .token.markup.underline.link*/
.monaco-editor.hc-black .token.markup.bold { font-weight: bold; }
.monaco-editor.hc-black .token.markup.heading { color: #6796e6; }
.monaco-editor.hc-black .token.markup.italic { font-style: italic; }
/*.monaco-editor.hc-black .token.markup.list
.monaco-editor.hc-black .token.markup.list.numbered
.monaco-editor.hc-black .token.markup.list.unnumbered
.monaco-editor.hc-black .token.markup.quote
.monaco-editor.hc-black .token.markup.raw
.monaco-editor.hc-black .token.markup.other*/
.monaco-editor.hc-black .token.meta.selector { color: #D7BA7D; } /* css */
.monaco-editor.hc-black .token.meta.tag { color: #808080; } /* gray for html/xml-tag brackets */
.monaco-editor.hc-black .token.meta.preprocessor { color: #569CD6; }
.monaco-editor.hc-black .token.meta.preprocessor.string { color: #CE9178; }
.monaco-editor.hc-black .token.meta.preprocessor.numeric { color: #B5CEA8; }
.monaco-editor.hc-black .token.meta.structure.dictionary.key.python { color: #9CDCFE; }
.monaco-editor.hc-black .token.storage { color: #569CD6; }
.monaco-editor.hc-black .token.storage.type { color: #569CD6; } /* repeat to match storage.type.string */
.monaco-editor.hc-black .token.storage.modifier { color: #569CD6; }
.monaco-editor.hc-black .token.string { color: #CE9178; }
.monaco-editor.hc-black .token.string.tag { color: #CE9178; }
.monaco-editor.hc-black .token.string.value { color: #CE9178; }
/*.monaco-editor.hc-black .token.string.quoted
.monaco-editor.hc-black .token.string.quoted.single
.monaco-editor.hc-black .token.string.quoted.double
.monaco-editor.hc-black .token.string.quoted.triple
.monaco-editor.hc-black .token.string.quoted.other
.monaco-editor.hc-black .token.string.unquoted
.monaco-editor.hc-black .token.string.interpolated*/
.monaco-editor.hc-black .token.string.regexp { color: #D16969; }
/*.monaco-editor.hc-black .token.string.other*/
/* css, less, sass, json */
.monaco-editor.hc-black .token.support.type.property-name { color: #D4D4D4; }
/*
.monaco-editor.hc-black .token.support
.monaco-editor.hc-black .token.support.function
.monaco-editor.hc-black .token.support.method
.monaco-editor.hc-black .token.support.type
.monaco-editor.hc-black .token.support.property-value
.monaco-editor.hc-black .token.support.function
.monaco-editor.hc-black .token.support.class
.monaco-editor.hc-black .token.support.constant
.monaco-editor.hc-black .token.support.variable
.monaco-editor.hc-black .token.support.other*/
/* Keywords should come at the end in order to match cases like token.keyword.string */
.monaco-editor.hc-black .token.keyword { color: #569CD6; }
.monaco-editor.hc-black .token.keyword.control { color: #569CD6; }
.monaco-editor.hc-black .token.keyword.control.less { color: #D7BA7D; }
.monaco-editor.hc-black .token.keyword.operator { color: #D4D4D4; }
.monaco-editor.hc-black .token.keyword.operator.new { color: #569CD6; }
.monaco-editor.hc-black .token.keyword.other.unit { color: #B5CEA8; }
/*.monaco-editor.hc-black .token.keyword.operator
.monaco-editor.hc-black .token.keyword.other*/
/* -------------------------------- End hc-black tokens ----------------------------- */
.monaco-editor.hc-black .token.whitespace { color: rgba(227, 228, 226, 0.16) !important; }

View file

@ -71,7 +71,6 @@ import {MainThreadConfiguration} from 'vs/workbench/api/node/extHostConfiguratio
import {MainThreadLanguageFeatures} from 'vs/workbench/api/node/extHostLanguageFeatures';
import {EventService} from 'vs/platform/event/common/eventService';
import {IOptions} from 'vs/workbench/common/options';
import themes = require('vs/platform/theme/common/themes');
import {WorkspaceContextService} from 'vs/workbench/services/workspace/common/contextService';
import {IStorageService, StorageScope, StorageEvent, StorageEventType} from 'vs/platform/storage/common/storage';
import {MainThreadStorage} from 'vs/platform/storage/common/remotable.storage';
@ -389,18 +388,14 @@ export class WorkbenchShell {
}
};
if (!themes.getSyntaxThemeId(themeId)) {
applyTheme();
} else {
this.themeService.loadTheme(themeId).then(theme => {
if (theme) {
this.themeService.applyThemeCSS(themeId);
applyTheme();
}
}, error => {
errors.onUnexpectedError(error);
});
}
this.themeService.loadTheme(themeId).then(theme => {
if (theme) {
this.themeService.applyThemeCSS(themeId);
applyTheme();
}
}, error => {
errors.onUnexpectedError(error);
});
}
private registerListeners(): void {

View file

@ -13,7 +13,6 @@ import {IMessageService, Severity} from 'vs/platform/message/common/message';
import {IStorageService, StorageScope} from 'vs/platform/storage/common/storage';
import platform = require('vs/platform/platform');
import workbenchActionRegistry = require('vs/workbench/common/actionRegistry');
import Themes = require('vs/platform/theme/common/themes');
import {IQuickOpenService, IPickOpenEntry} from 'vs/workbench/services/quickopen/common/quickOpenService';
import {IWorkspaceContextService} from 'vs/platform/workspace/common/workspace';
import {IThemeService, IThemeData, DEFAULT_THEME_ID} from 'vs/workbench/services/themes/common/themeService';
@ -43,9 +42,6 @@ class SelectThemeAction extends actions.Action {
let currentTheme = this.storageService.get(Constants.Preferences.THEME, StorageScope.GLOBAL, DEFAULT_THEME_ID);
let picks: IPickOpenEntry[] = [];
Themes.getBaseThemes(true).forEach(baseTheme => {
picks.push({ label: Themes.toLabel(baseTheme), id: Themes.toId(baseTheme) });
});
let contributedThemesById: { [id: string]: IThemeData } = {};
contributedThemes.forEach(theme => {

View file

@ -9,7 +9,7 @@ import {TPromise} from 'vs/base/common/winjs.base';
export let IThemeService = createDecorator<IThemeService>('themeService');
export const DEFAULT_THEME_ID = 'vs-dark vscode-theme-colorful-defaults-themes-dark_plus-tmTheme';
export const DEFAULT_THEME_ID = 'vs-dark vscode-theme-defaults-themes-dark_plus-json';
export interface IThemeService {
serviceId: ServiceIdentifier<any>;

View file

@ -21,6 +21,21 @@ import pfs = require('vs/base/node/pfs');
let defaultBaseTheme = Themes.getBaseThemeId(DEFAULT_THEME_ID);
const defaultThemeExtensionId = 'vscode-theme-defaults';
const oldDefaultThemeExtensionId = 'vscode-theme-colorful-defaults';
function validateThemeId(theme: string) : string {
// migrations
switch (theme) {
case 'vs': return `vs ${defaultThemeExtensionId}-themes-light_vs-json`;
case 'vs-dark': return `vs-dark ${defaultThemeExtensionId}-themes-dark_vs-json`;
case 'hc-black': return `hc-black ${defaultThemeExtensionId}-themes-hc_black-json`;
case `vs ${oldDefaultThemeExtensionId}-themes-light_plus-tmTheme`: return `vs ${defaultThemeExtensionId}-themes-light_plus-json`;
case `vs-dark ${oldDefaultThemeExtensionId}-themes-dark_plus-tmTheme`: return `vs-dark ${defaultThemeExtensionId}-themes-dark_plus-json`;
}
return theme;
}
let themesExtPoint = ExtensionsRegistry.registerExtensionPoint<IThemeExtensionPoint[]>('themes', {
description: nls.localize('vscode.extension.contributes.themes', 'Contributes textmate color themes.'),
type: 'array',
@ -35,7 +50,7 @@ let themesExtPoint = ExtensionsRegistry.registerExtensionPoint<IThemeExtensionPo
},
uiTheme: {
description: nls.localize('vscode.extension.contributes.themes.uiTheme', 'Base theme defining the colors around the editor: \'vs\' is the light color theme, \'vs-dark\' is the dark color theme.'),
enum: ['vs', 'vs-dark']
enum: ['vs', 'vs-dark', 'hc-black']
},
path: {
description: nls.localize('vscode.extension.contributes.themes.path', 'Path of the tmTheme file. The path is relative to the extension folder and is typically \'./themes/themeFile.tmTheme\'.'),
@ -56,8 +71,8 @@ interface ThemeSettingStyle {
}
interface ThemeSetting {
name?: string,
scope?: string | string[],
name?: string;
scope?: string | string[];
settings: ThemeSettingStyle[];
}
@ -83,6 +98,7 @@ export class ThemeService implements IThemeService {
}
public loadTheme(themeId: string): TPromise<IThemeData> {
themeId = validateThemeId(themeId);
return this.getThemes().then(allThemes => {
let themes = allThemes.filter(t => t.id === themeId);
if (themes.length > 0) {
@ -164,7 +180,6 @@ function applyTheme(theme: IThemeData): TPromise<boolean> {
function _loadThemeDocument(themePath: string) : TPromise<ThemeDocument> {
return pfs.readFile(themePath).then(content => {
let contentValue: any;
if (Paths.extname(themePath) === '.json') {
let errors: string[] = [];
let contentValue = <ThemeDocument> Json.parse(content.toString(), errors);