(如何)VS 代码扩展可以访问特定于 [language] 的 `settings.json` 子部分值?
(How) can a VS Code extension access [language]-specific `settings.json` sub-section values?
示例:扩展代码可以非常简单地确定 editor.formatOnSave
的值。但据我所知并尝试过,似乎几乎不可能查询当前 document/editor 该设置是否有效 就在那里,现在 。对于 [language]
-特定的子部分,它可能对 Go 启用但对其他人禁用,例如 --- 反之亦然。 "some"(即我的)扩展可能 "need"(即想要)了解它!
如果您尝试使用已记录的 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
文件中是这样表示的。
另请注意,此解决方法 不会让您访问未覆盖 语言的设置。在这种情况下,您必须 use/combine 记录的 API.
示例:扩展代码可以非常简单地确定 editor.formatOnSave
的值。但据我所知并尝试过,似乎几乎不可能查询当前 document/editor 该设置是否有效 就在那里,现在 。对于 [language]
-特定的子部分,它可能对 Go 启用但对其他人禁用,例如 --- 反之亦然。 "some"(即我的)扩展可能 "need"(即想要)了解它!
如果您尝试使用已记录的 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
文件中是这样表示的。
另请注意,此解决方法 不会让您访问未覆盖 语言的设置。在这种情况下,您必须 use/combine 记录的 API.