从 vs 代码扩展更新 user/workspace 设置
Update user/workspace settings from vs code extension
我正在尝试从我的 vs 代码扩展中更新 setting.json,我想添加以下代码
"files.associations": {
"*.app": "auraComponent"
}
换句话说,我想将以下键值对从扩展添加到将要安装我的应用程序的用户
所以我尝试将下面的代码放入 extension.js 但它没有更新设置。
import { ConfigurationTarget, workspace } from 'vscode';
const configuration = workspace.getConfiguration('files.associations');
configuration.update('.app', 'auraComponent', ConfigurationTarget.Global).then(() => {
// take action here
});
有人可以建议我是否使用正确的方法来更新用户或工作区设置,以及 extension.js 中的代码是否会自动执行。
更新
我添加了 extension.js 并包含了 mark 在他的回答中提到的 js 代码
并如下更新我的 package.json
"main": "./extension",
"activationEvents": [
"*"
],
如果我 运行 我的扩展程序处于调试模式,那么它可以正常工作但不能实时工作。
无论是否有 pre-existing files.association
设置,下面的方法都有效。如果已经有一个,新的关联将被添加到它(因此可能位于设置文件末尾以外的其他地方 - 否则一个全新的 files.associations
设置将被添加到 settings.json
文件..
const fileConfiguration = vscode.workspace.getConfiguration('files');
const associations = fileConfiguration.get('associations');
associations['*.app'] = "auraComponent";
fileConfiguration.update('associations', associations, vscode.ConfigurationTarget.Global).then(() => {
// take action here
});
改编自。
正如那里所解释的那样,您真正想要更新的是 associations
对象,即要更新的值。 "*.app": "auraComponent
不是配置键。 files.associations
是键,有一个对象 {...}
是它的值。
我正在尝试从我的 vs 代码扩展中更新 setting.json,我想添加以下代码
"files.associations": {
"*.app": "auraComponent"
}
换句话说,我想将以下键值对从扩展添加到将要安装我的应用程序的用户
所以我尝试将下面的代码放入 extension.js 但它没有更新设置。
import { ConfigurationTarget, workspace } from 'vscode';
const configuration = workspace.getConfiguration('files.associations');
configuration.update('.app', 'auraComponent', ConfigurationTarget.Global).then(() => {
// take action here
});
有人可以建议我是否使用正确的方法来更新用户或工作区设置,以及 extension.js 中的代码是否会自动执行。
更新
我添加了 extension.js 并包含了 mark 在他的回答中提到的 js 代码
并如下更新我的 package.json
"main": "./extension",
"activationEvents": [
"*"
],
如果我 运行 我的扩展程序处于调试模式,那么它可以正常工作但不能实时工作。
无论是否有 pre-existing files.association
设置,下面的方法都有效。如果已经有一个,新的关联将被添加到它(因此可能位于设置文件末尾以外的其他地方 - 否则一个全新的 files.associations
设置将被添加到 settings.json
文件..
const fileConfiguration = vscode.workspace.getConfiguration('files');
const associations = fileConfiguration.get('associations');
associations['*.app'] = "auraComponent";
fileConfiguration.update('associations', associations, vscode.ConfigurationTarget.Global).then(() => {
// take action here
});
改编自
正如那里所解释的那样,您真正想要更新的是 associations
对象,即要更新的值。 "*.app": "auraComponent
不是配置键。 files.associations
是键,有一个对象 {...}
是它的值。