description:nls.localize('schema.type','The type of the theme, either light, dark or high contrast. Depending on the type, a different set of icons is used.'),
enum:['light','dark','hc'],
enumDescriptions:[nls.localize('schema.light','Light theme, using dark icons'),nls.localize('schema.dark','Dark theme, using light icons'),nls.localize('schema.hc','High contrast theme, using light icons')]
returnTPromise.wrapError<ThemeType>(newError(nls.localize({key:'error.invalidformat.type',comment:['{0} will be replaced by a path. Values in quotes should not be translated.']},"Problem parsing color theme file: {0}. Property 'type' must be 'light', 'dark' or 'hc'",themePath)));
}
type=themeType;
letcolors=contentValue.colors;
if(colors){
if(typeofcolors!=='object'){
returnTPromise.wrapError<ThemeType>(newError(nls.localize({key:'error.invalidformat.colors',comment:['{0} will be replaced by a path. Values in quotes should not be translated.']},"Problem parsing color theme file: {0}. Property 'colors' is not of type 'object'.",themePath)));
returnTPromise.wrapError(newError(nls.localize({key:'error.invalidformat.colors',comment:['{0} will be replaced by a path. Values in quotes should not be translated.']},"Problem parsing color theme file: {0}. Property 'colors' is not of type 'object'.",themePath)));
}
// new JSON color themes format
for(letcolorIdincolors){
...
...
@@ -214,35 +205,36 @@ function _loadColorThemeFromFile(themePath: string, resultRules: ITokenColorizat
returnTPromise.wrapError<ThemeType>(newError(nls.localize({key:'error.invalidformat.tokenColors',comment:['{0} will be replaced by a path. Values in quotes should not be translated.']},"Problem parsing color theme file: {0}. Property 'tokenColors' should be either an array specifying colors or a path to a text mate theme file",themePath)));
returnTPromise.wrapError(newError(nls.localize({key:'error.invalidformat.tokenColors',comment:['{0} will be replaced by a path. Values in quotes should not be translated.']},"Problem parsing color theme file: {0}. Property 'tokenColors' should be either an array specifying colors or a path to a text mate theme file",themePath)));
returnTPromise.wrapError<ThemeType>(newError(nls.localize('error.plist.invalidformat',"Problem parsing tmTheme file: {0}. 'settings' is not array.")));
returnTPromise.wrapError(newError(nls.localize('error.plist.invalidformat',"Problem parsing tmTheme file: {0}. 'settings' is not array.")));
@@ -83,8 +83,12 @@ let themesExtPoint = ExtensionsRegistry.registerExtensionPoint<IThemeExtensionPo
description:nls.localize('vscode.extension.contributes.themes.label','Label of the color theme as shown in the UI.'),
type:'string'
},
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. \'hc-black\' is the dark high contrast theme.'),
enum:[VS_LIGHT_THEME,VS_DARK_THEME,VS_HC_THEME]
},
path:{
description:nls.localize('vscode.extension.contributes.themes.path','Path of the color theme file. The path is relative to the extension folder and is typically \'./themes/my-color-theme.json\'.'),
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\'.'),
type:'string'
}
},
...
...
@@ -221,9 +225,12 @@ export class WorkbenchThemeService implements IWorkbenchThemeService {