【发布时间】:2019-10-26 01:43:54
【问题描述】:
我正在开发一个 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 ]"
}
}
}
},
extension.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}
似乎如果您提供对象默认值,则提供的任何配置都会与该对象合并,而不是完全替换它。
是这样吗?我在文档中错过了这个吗?
在我看来,一个值(甚至是一个对象)会被覆盖,而不是简单地合并。
【问题讨论】:
标签: visual-studio-code vscode-settings vscode-extensions