【问题标题】:(How) can a VS Code extension access [language]-specific `settings.json` sub-section values?(如何)VS Code 扩展可以访问 [language]-specific `settings.json` 子部分的值吗?
【发布时间】:2017-04-01 16:47:56
【问题描述】:
示例:扩展代码可以非常简单地确定editor.formatOnSave 的值。但据我所知并尝试过,似乎几乎不可能查询当前文档/编辑器该设置是否有效现在。对于 [language]-specific 子部分,它可以为 Go 启用,但对其他人禁用,例如 --- 反之亦然。而“一些”(即我的)扩展可能“需要”(即想要)知道它!
【问题讨论】:
标签:
visual-studio-code
vscode-extensions
vscode-settings
【解决方案1】:
如果您尝试使用记录在案的getConfiguration("language").get("setting"),它将无法正常工作。但是有一个 解决方法 可以访问您想要的内容。
假设您要为markdown 文件加载editor.formatOnSave。如果你查看User Settings,你会看到它是这样存储的:
["markdown"]: {
"editor.wordWrap": "wordWrapColumn",
"editor.formatOnSave": true
}
您只需加载配置对象并访问所需的属性,如下所示:
let markdownObject = vscode.workspace.getConfiguration("[markdown]");
if (markdownObject["editor.formatOnSave"]) {
console.log("[markdown].editor.formatOnSave is TRUE");
}
请务必注意,您必须使用[markdown](在括号之间),因为它在JSON 文件中是这样表示的。
另请注意,此解决方法不会让您访问未被覆盖的语言设置。在这种情况下,您必须使用/组合记录在案的 API。