(如何)VS代码扩展可以访问[语言] - 特定的`settings.json`子节值?

时间:2017-04-01 16:47:56

标签: visual-studio-code vscode-extensions vscode-settings

示例:扩展代码可以非常简单地确定editor.formatOnSave的值。但是从我可以告诉并尝试的内容来看,现在几乎不可能查询当前文档/编辑器该设置是否有效就在那里,现在。对于[language]特定的子部分,它可以为Go启用,但对其他部分禁用,例如---反之亦然。而“某些”(即我的)扩展可能“需要”(即想要)了解它!

1 个答案:

答案 0 :(得分:1)

如果您尝试使用记录的getConfiguration("language").get("setting"),那么它将无法正常工作。但是有一个解决方法可以访问您想要的内容。

假设您要为editor.formatOnSave文件加载markdown。如果您查看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。