В настоящее время я пытаюсь написать расширение, которое позволяет мне динамически изменять фильтр рабочей области, добавляя / удаляя / изменяя записи в элементе конфигурации 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, и я не профессионал в машинописи.
Первоначальная идея состояла в том, чтобы прочитать конфигурацию, внести мои изменения и сохранить ее обратно, но после нескольких часов попыток я смогу полностью перезаписать их, пока она работает.