From 6f10a9701760c43ea94cee8670470f67d87f2d79 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Wed, 8 Nov 2017 11:51:17 +0100 Subject: [PATCH] Cannot override "keyword" token color. Fixes #37550 --- .../themes/electron-browser/colorThemeData.ts | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts b/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts index 528d7fa234c..2d69bee9db7 100644 --- a/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts +++ b/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts @@ -25,14 +25,14 @@ import { getParseErrorMessage } from 'vs/base/common/jsonErrorMessages'; let colorRegistry = Registry.as(Extensions.ColorContribution); -const tokenGroupToScopesMap = { - comments: 'comment', - strings: 'string', - keywords: 'keyword', - numbers: 'constant.numeric', - types: 'entity.name.type', - functions: 'entity.name.function', - variables: 'variable' +const tokenGroupToScopesMap: { [setting: string]: string[] } = { + comments: ['comment'], + strings: ['string'], + keywords: ['keyword', 'keyword.control', 'storage', 'storage.type'], + numbers: ['constant.numeric'], + types: ['entity.name.type'], + functions: ['entity.name.function'], + variables: ['variable'] }; export class ColorThemeData implements IColorTheme { @@ -95,22 +95,18 @@ export class ColorThemeData implements IColorTheme { public setCustomTokenColors(customTokenColors: ITokenColorCustomizations) { let generalRules: ITokenColorizationRule[] = []; - let value, settings, scope; Object.keys(tokenGroupToScopesMap).forEach(key => { - value = customTokenColors[key]; - settings = typeof value === 'string' - ? { foreground: value } - : value; - scope = tokenGroupToScopesMap[key]; - - if (!settings) { - return; + let value = customTokenColors[key]; + if (value) { + let settings = typeof value === 'string' ? { foreground: value } : value; + let scopes = tokenGroupToScopesMap[key]; + for (let scope of scopes) { + generalRules.push({ + scope, + settings + }); + } } - - generalRules.push({ - scope, - settings - }); }); const textMateRules: ITokenColorizationRule[] = customTokenColors.textMateRules || [];