Программно определять свет против темной цветовой темы - PullRequest
1 голос
/ 08 ноября 2019

Можно ли программно определить, является ли текущая тема светлой или темной в VSCode?

Вариант использования:

Я разрабатываю расширение VSCode, которое будетдобавить Hovers в редактор, и я хотел бы, чтобы значки были в hover. Однако фон наведения меняется в зависимости от текущей цветовой темы, поэтому мне нужно выбрать значки для отображения на основе цветовой темы.

В нескольких других местах в VSCode вы можете указывать URL-адреса значков вформа:

let icon = {
    light: "uri for light icon",
    dark: "uri for dark icon",
};

так ясно, что VSCode имеет представление о светлых и темных темах.

Это похоже на этот вопрос , но ответ AFAIK относится только к веб-просмотрам,и эта проблема также поднимается в этой проблеме VSCode после ее закрытия

1 Ответ

1 голос
/ 13 ноября 2019

Начиная с кода VS 1.40, API для этого не существует. Пожалуйста, отправьте запрос функции .

Если вы действительно, действительно хотите эту информацию сегодня, вы можете прочитать настройку "workbench.colorTheme" текущего пользователя и сопоставить ее с темным / светлым. Вместо того, чтобы жестко кодировать это отображение, ищите его, просматривая contributes всех известных расширений, используя vscode.extensions.all.map(ext => ext.packageJSON). Вот пример тематического вклада (интересующее вас свойство uiTheme):

{
    ...
    "contributes": {
        "themes": [
            {
                "label": "Red",
                "uiTheme": "vs-dark",
                "path": "./themes/Red-color-theme.json"
            }
        ]
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...