Могу ли я получить список всех установленных тем vscode? - PullRequest
0 голосов
/ 21 октября 2019

Я пробовал

vscode.extensions.all.forEach(ext => {
  console.log(ext.packageJSON);
})

, но он возвращает только не-тематические расширения. Не могу найти API в документах.

1 Ответ

0 голосов
/ 22 октября 2019

Другой связанный вопрос по SO с ответом

Я сделал еще один пример:

    vscode.extensions.all.forEach(ext => {
        const contributesThemes = ext.packageJSON.contributes ? (ext.packageJSON.contributes.themes ? ext.packageJSON.contributes.themes : undefined) : undefined;
        if (contributesThemes) {
            for (var i = 0; i < contributesThemes.length; i++) {
                const label = contributesThemes[i].label;
                const uiTheme = (contributesThemes[i].uiTheme === 'vs-dark') ? 'dark' : 'light';
                const extensionType = ext.packageJSON.isBuiltin ? 'Built-in' : 'External';
                console.log(`${extensionType} extension '${ext.id}' contributes ${uiTheme} theme '${label}'`);
             }
        }
    });

Этот код печатает все темы, включая встроенные. Результат как:

...
Built-in extension 'vscode.theme-solarized-dark' contributes dark theme 'Solarized Dark'
Built-in extension 'vscode.theme-solarized-light' contributes light theme 'Solarized Light'
Built-in extension 'vscode.theme-tomorrow-night-blue' contributes dark theme 'Tomorrow Night Blue'
External extension 'eppz.eppz-code' contributes dark theme 'eppz!'
External extension 'jhaig343.asiimov-color-theme' contributes dark theme 'Asiimov'
External extension 'wesbos.theme-cobalt2' contributes dark theme 'Cobalt2'
...