Я работаю над расширением кода VS, и я думаю, что, возможно, я что-то упустил в документах, или же поведение, которое я вижу, просто там не указано, и мои предположения неверны ...?
Я определил некоторые настройки по умолчанию для своего расширения, например ...
package.json
"contributes": {
"configuration": {
"title": "ToggleSettingsChanges",
"properties": {
"toggleSettingsChanges.settingsToToggle": {
"scope": "resource",
"type": "object",
"default": {
"window.zoomLevel": 2,
"editor.fontSize": 22,
"terminal.integrated.fontSize": 16,
"scm.diffDecorations": "none",
"workbench.statusBar.visible": false,
"editor.cursorBlinking": "solid",
"workbench.activityBar.visible": false
},
"description": "[ snip ]"
}
}
}
},
расширение.js
// In the "main" method that runs when a command is activated:
const config = vscode.workspace.getConfiguration("toggleSettingsChanges");
const settingsToToggle = config.get("settingsToToggle");
const inspectedSettingsToToggle = config.inspect("settingsToToggle");
console.log("settingsToToggle:", JSON.stringify(settingsToToggle), "\n\n")
console.log("inspected settingsToToggle:", JSON.stringify(inspectedSettingsToToggle), "\n\n")
return;
В экземпляре узла расширения можно настроить и настроить параметры, в том числе:
Настройки пользователя или рабочей области JSON
// ...
"toggleSettingsChanges.settingsToToggle": {
"editor.fontSize": 11,
"pumpkins_are_great": true
},
В выводе консоли я вижу следующее:
settingsToToggle: {"window.zoomLevel":2,"editor.fontSize":11,"terminal.integrated.fontSize":16,"scm.diffDecorations":"none","workbench.statusBar.visible":false,"editor.cursorBlinking":"solid","workbench.activityBar.visible":false,"pumpkins_are_great":true}
inspected settingsToToggle: {"key":"toggleSettingsChanges.settingsToToggle","defaultValue":{"window.zoomLevel":2,"editor.fontSize":22,"terminal.integrated.fontSize":16,"scm.diffDecorations":"none","workbench.statusBar.visible":false,"editor.cursorBlinking":"solid","workbench.activityBar.visible":false},"globalValue":{"editor.fontSize":11,"pumpkins_are_great":true}}
Для строки settingsToToggle
я ожидал , чтобы видеть только следующие настройки:
{"editor.fontSize":11,"pumpkins_are_great":true}
Похоже , что если вы задаете объект по умолчанию, любая предоставленная конфигурация объединяется с этим объектом, а не заменяется полностью.
Это тот случай? Я пропустил это в документации?
Мне кажется, что значение (даже объект) будет перезаписано, а не просто объединено.