You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode中WorkspaceConfiguration.update未更新值?解决方案解析

VS Code扩展更新工作区配置后的取值问题解决

我开发的VS Code扩展用于更新特定工作区文件夹的设置,原本打算在状态栏展示更新后的配置值,但遇到了一个问题:调用cfg.update()更新配置后,直接用原WorkspaceConfiguration对象的.get()方法获取到的还是旧值。

改成async/await写法并反复尝试后发现关键:必须在更新设置后重新调用vscode.workspace.getConfiguration()刷新配置对象,否则始终拿不到最新的配置内容。现在代码已正常运行,示例代码如下:

export async function setEmailDesignSystemId(cfg: vscode.WorkspaceConfiguration, bar: vscode.StatusBarItem, value?: string) {
    if (value) {
        var [id, descr] = splitBySemiColon(value);
        const idNum = parseInt(id, 10);
        try {
            // null 参数表示配置生效范围为当前工作区/工作区文件夹
            await cfg.update('designSystemId', idNum, null);
            await cfg.update('designSystemDescr', descr, null);
            console.log(`设置EDS ID = ${idNum}, 描述 = ${descr}`);
            // 必须刷新配置对象才能获取新值
            cfg = vscode.workspace.getConfiguration('taxi');
            updateEDSBar(bar, cfg, '');
        } catch (error) {
            console.log('更新designSystemId失败');
        };
    }
}

内容的提问来源于stack exchange,提问作者tuck1s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:40:33