Расширение VSCode для изменения конфигурации files.exclude - PullRequest
0 голосов
/ 18 февраля 2020

В настоящее время я пытаюсь написать расширение, которое позволяет мне динамически изменять фильтр рабочей области, добавляя / удаляя / изменяя записи в элементе конфигурации files.exclude и сохраняя его в настройках рабочей области.

Запуск команда, подобная этой, например, чтобы изменить конфигурацию на основе строки или массива, работает как задумано:

const config = vscode.workspace.getConfiguration();
config.update('editor.fontSize', 14, false); -> works

Но я просто не могу обернуться, как изменить конфигурацию на основе объекта, такую ​​как files.exclude. Я пробовал разные подходы, но всегда получал ошибку, сообщая, что я получаю доступ к элементу, который не существует.

config.update('files.exclude.TestXYZ', false, false); -> doesn't work
config.update('TestXYZ', false, false); -> doesn't work

Заранее жестко кодирую объект и использую его как новое значение для конфигурации.

let settings = { "*.html": true, "*.css": true };
config.update('files.exclude', settings, false); -> works, but isn't what I need

но для написания настраиваемого фильтра рабочей области мне нужно динамически добавлять / удалять значения из списка фильтров.

В дополнение к этому (но не так важно): мне также не удается «читать» текущие значения files.exclude так, чтобы я мог с ними работать. Я всегда получаю объект Proxy, и я не профессионал в машинописи.

Первоначальная идея состояла в том, чтобы прочитать конфигурацию, внести мои изменения и сохранить ее обратно, но после нескольких часов попыток я смогу полностью перезаписать их, пока она работает.

1 Ответ

0 голосов
/ 19 февраля 2020

С помощью полезных ссылок @ Gama11 я смог достичь желаемого результата:

const config = vscode.workspace.getConfiguration(); 
var excludeList: {[k: string]: boolean} = {}; 
excludeList[*.html] = true; 
excludeList[*.css] = true;
config.update('files.exclude', excludeList, false);

С этим я могу динамически изменять excludeList и соответственно обновлять конфигурацию.

...