在 VS Code 扩展中,有没有办法以编程方式设置编辑器的配置选项(例如自动换行)?
In a VS Code extension, is there a way to set the configuration options for the editor (such as word wrap) programmatically?
对于我正在开发的扩展,我们的最终用户更愿意默认启用自动换行等选项。我们希望能够在语言级别 进行设置,而无需 用户的直接参与(仅针对我们的扩展程序所针对的语言)。我知道每种语言的设置。我的目标是进行如下设置:
"[xml]": {
"editor.wordWrap": "on",
"editor.tabSize": 4
},
没有用户必须在自己的用户设置中这样做。有没有办法通过 Extension API 做到这一点?我没有看到任何明显的方法。
PS LanguageConfiguration object 似乎与自动换行等设置无关。
是的,扩展可以在 package.json
中为使用 configurationDefaults
的语言贡献默认编辑器设置
这里是内置降价扩展 contributes 例如:
{
"name": "vscode-markdown",
...,
"contributes": {
"configurationDefaults": {
"[markdown]": {
"editor.wordWrap": "on",
"editor.quickSuggestions": false
}
}
}
}
目前仅支持 editor.*
语言特定设置。我们正在跟踪对提供额外语言特定设置的支持 here
现在您可以通过 WorkspaceConfiguration
API:
以编程方式更改设置
const configuration = vscode.workspace.getConfiguration()
const target = vscode.ConfigurationTarget.Workspace // Update the setting locally
const overrideInLanguage = true // Update the setting in the scope of the language
// Set the tab size to 4
configuration.update('editor.tabSize', 4, target, overrideInLanguage)
对于我正在开发的扩展,我们的最终用户更愿意默认启用自动换行等选项。我们希望能够在语言级别 进行设置,而无需 用户的直接参与(仅针对我们的扩展程序所针对的语言)。我知道每种语言的设置。我的目标是进行如下设置:
"[xml]": {
"editor.wordWrap": "on",
"editor.tabSize": 4
},
没有用户必须在自己的用户设置中这样做。有没有办法通过 Extension API 做到这一点?我没有看到任何明显的方法。
PS LanguageConfiguration object 似乎与自动换行等设置无关。
是的,扩展可以在 package.json
configurationDefaults
的语言贡献默认编辑器设置
这里是内置降价扩展 contributes 例如:
{
"name": "vscode-markdown",
...,
"contributes": {
"configurationDefaults": {
"[markdown]": {
"editor.wordWrap": "on",
"editor.quickSuggestions": false
}
}
}
}
目前仅支持 editor.*
语言特定设置。我们正在跟踪对提供额外语言特定设置的支持 here
现在您可以通过 WorkspaceConfiguration
API:
const configuration = vscode.workspace.getConfiguration()
const target = vscode.ConfigurationTarget.Workspace // Update the setting locally
const overrideInLanguage = true // Update the setting in the scope of the language
// Set the tab size to 4
configuration.update('editor.tabSize', 4, target, overrideInLanguage)