about summary refs log tree commit diff
path: root/editors/code/src
diff options
context:
space:
mode:
authorveetaha <veetaha2@gmail.com>2020-05-06 00:39:29 +0300
committerveetaha <veetaha2@gmail.com>2020-05-06 00:39:29 +0300
commit5eac2d4c55fec5f96d84d20cc033c2a8e938f53e (patch)
tree9fbbf7d947336ec947b9e20f42df620511111d3d /editors/code/src
parent7e941fe8ec7b196314aa05bf9411cdce978ffa24 (diff)
downloadrust-5eac2d4c55fec5f96d84d20cc033c2a8e938f53e.tar.gz
rust-5eac2d4c55fec5f96d84d20cc033c2a8e938f53e.zip
Drop dead code and a dependency!
Diffstat (limited to 'editors/code/src')
-rw-r--r--editors/code/src/color_theme.ts129
1 files changed, 0 insertions, 129 deletions
diff --git a/editors/code/src/color_theme.ts b/editors/code/src/color_theme.ts
deleted file mode 100644
index 5b9327b28a4..00000000000
--- a/editors/code/src/color_theme.ts
+++ /dev/null
@@ -1,129 +0,0 @@
-import * as fs from 'fs';
-import * as jsonc from 'jsonc-parser';
-import * as path from 'path';
-import * as vscode from 'vscode';
-
-export interface TextMateRuleSettings {
-    foreground?: string;
-    background?: string;
-    fontStyle?: string;
-}
-
-export class ColorTheme {
-    private rules: Map<string, TextMateRuleSettings> = new Map();
-
-    static load(): ColorTheme {
-        // Find out current color theme
-        const themeName = vscode.workspace
-            .getConfiguration('workbench')
-            .get('colorTheme');
-
-        if (typeof themeName !== 'string') {
-            // console.warn('workbench.colorTheme is', themeName)
-            return new ColorTheme();
-        }
-        return loadThemeNamed(themeName);
-    }
-
-    static fromRules(rules: TextMateRule[]): ColorTheme {
-        const res = new ColorTheme();
-        for (const rule of rules) {
-            const scopes = typeof rule.scope === 'undefined'
-                ? []
-                : typeof rule.scope === 'string'
-                    ? [rule.scope]
-                    : rule.scope;
-
-            for (const scope of scopes) {
-                res.rules.set(scope, rule.settings);
-            }
-        }
-        return res;
-    }
-
-    lookup(scopes: string[]): TextMateRuleSettings {
-        let res: TextMateRuleSettings = {};
-        for (const scope of scopes) {
-            this.rules.forEach((value, key) => {
-                if (scope.startsWith(key)) {
-                    res = mergeRuleSettings(res, value);
-                }
-            });
-        }
-        return res;
-    }
-
-    mergeFrom(other: ColorTheme) {
-        other.rules.forEach((value, key) => {
-            const merged = mergeRuleSettings(this.rules.get(key), value);
-            this.rules.set(key, merged);
-        });
-    }
-}
-
-function loadThemeNamed(themeName: string): ColorTheme {
-    function isTheme(extension: vscode.Extension<unknown>): boolean {
-        return (
-            extension.extensionKind === vscode.ExtensionKind.UI &&
-            extension.packageJSON.contributes &&
-            extension.packageJSON.contributes.themes
-        );
-    }
-
-    const themePaths: string[] = vscode.extensions.all
-        .filter(isTheme)
-        .flatMap(
-            ext => ext.packageJSON.contributes.themes
-                .filter((it: any) => (it.id || it.label) === themeName)
-                .map((it: any) => path.join(ext.extensionPath, it.path))
-        );
-
-    const res = new ColorTheme();
-    for (const themePath of themePaths) {
-        res.mergeFrom(loadThemeFile(themePath));
-    }
-
-    const globalCustomizations: any = vscode.workspace.getConfiguration('editor').get('tokenColorCustomizations');
-    res.mergeFrom(ColorTheme.fromRules(globalCustomizations?.textMateRules ?? []));
-
-    const themeCustomizations: any = vscode.workspace.getConfiguration('editor.tokenColorCustomizations').get(`[${themeName}]`);
-    res.mergeFrom(ColorTheme.fromRules(themeCustomizations?.textMateRules ?? []));
-
-
-    return res;
-}
-
-function loadThemeFile(themePath: string): ColorTheme {
-    let text;
-    try {
-        text = fs.readFileSync(themePath, 'utf8');
-    } catch {
-        return new ColorTheme();
-    }
-    const obj = jsonc.parse(text);
-    const tokenColors: TextMateRule[] = obj?.tokenColors ?? [];
-    const res = ColorTheme.fromRules(tokenColors);
-
-    for (const include of obj?.include ?? []) {
-        const includePath = path.join(path.dirname(themePath), include);
-        res.mergeFrom(loadThemeFile(includePath));
-    }
-
-    return res;
-}
-
-interface TextMateRule {
-    scope: string | string[];
-    settings: TextMateRuleSettings;
-}
-
-function mergeRuleSettings(
-    defaultSetting: TextMateRuleSettings | undefined,
-    override: TextMateRuleSettings,
-): TextMateRuleSettings {
-    return {
-        foreground: override.foreground ?? defaultSetting?.foreground,
-        background: override.background ?? defaultSetting?.background,
-        fontStyle: override.fontStyle ?? defaultSetting?.fontStyle,
-    };
-}