From 0ddf47a7ab9d0f616e7296fa9a0b0eb786e4ee59 Mon Sep 17 00:00:00 2001 From: Seivan Heidari Date: Sun, 27 Oct 2019 17:57:11 +0100 Subject: Introducing a Scopes Mapper to map from RA scopes to TextMate scopes with fallbacks. Current scopes defined: ``` ['keyword.unsafe', ['storage.modifier', 'keyword.other', 'keyword.control']], ['function', ['entity.name.function']], ['parameter', ['variable.parameter']], ['type', ['entity.name.type']], ['builtin', ['variable.language', 'support.type', 'support.type']], ['text', ['string', 'string.quoted', 'string.regexp']], ['attribute', ['keyword']], ['literal', ['string', 'string.quoted', 'string.regexp']], ['macro', ['support.other']], ['variable.mut', ['variable']], ['field', ['variable.object.property']], ['module', ['entity.name.section']] ``` Need to complement with further fallbacks as some themes fail. --- editors/code/src/scopes.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'editors/code/src/scopes.ts') diff --git a/editors/code/src/scopes.ts b/editors/code/src/scopes.ts index c9c01ba1d..470ee716f 100644 --- a/editors/code/src/scopes.ts +++ b/editors/code/src/scopes.ts @@ -16,16 +16,16 @@ export interface TextMateRuleSettings { } // Current theme colors -const colors = new Map() +const rules = new Map() export function find(scope: string): TextMateRuleSettings | undefined { - return colors.get(scope) + return rules.get(scope) } // Load all textmate scopes in the currently active theme export function load() { // Remove any previous theme - colors.clear() + rules.clear() // Find out current color theme const themeName = vscode.workspace.getConfiguration('workbench').get('colorTheme') @@ -95,21 +95,21 @@ function loadColors(textMateRules: TextMateRule[]): void { for (const rule of textMateRules) { if (typeof rule.scope === 'string') { - const existingRule = colors.get(rule.scope); + const existingRule = rules.get(rule.scope); if (existingRule) { - colors.set(rule.scope, mergeRuleSettings(existingRule, rule.settings)) + rules.set(rule.scope, mergeRuleSettings(existingRule, rule.settings)) } else { - colors.set(rule.scope, rule.settings) + rules.set(rule.scope, rule.settings) } } else if (rule.scope instanceof Array) { for (const scope of rule.scope) { - const existingRule = colors.get(scope); + const existingRule = rules.get(scope); if (existingRule) { - colors.set(scope, mergeRuleSettings(existingRule, rule.settings)) + rules.set(scope, mergeRuleSettings(existingRule, rule.settings)) } else { - colors.set(scope, rule.settings) + rules.set(scope, rule.settings) } } } -- cgit v1.2.3