(如何)VS Code 扩展是否可以访问特定于 [语言] 的“settings.json”子部分值



示例:扩展代码可以非常简单地确定editor.formatOnSave的值。但是从我所知道和尝试过的情况来看,现在似乎几乎不可能查询当前文档/编辑器是否有效。对于特定于[language]的小节,它可以为 Go 启用,但对其他人禁用,例如---反之亦然。而"一些"(即我的(扩展可能"需要"(即想要(知道它!

如果您尝试使用记录的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。

最新更新