如何在 VSCode 扩展中保留 when-clause 上下文

How to persist when-clause context in VSCode extension

我按照 when clause context 的文档添加了自定义 when 子句上下文。

我设置了一个布尔上下文:

let start = vscode.commands.registerCommand('myExt.start', () => {
    vscode.commands.executeCommand('setContext', 'myExt.activated', true);
});

但是VSCode重启后,即使myExt.activatedtrue。 VSCode算了...

"explorer/context": [
    {
        "command": "myExt.filter",
        "when": "myExt.activated"
    }
]

即使 myExt.activated 上次是 true,VSCode 重新启动后也不会显示...

此外,当使用 Developer: Inspect Context Keys 命令调试上下文时,myExt.activated 不存在。

有什么方法可以在 VSCode 次重启之间保留 when 子句上下文?

由于评论中出现了答案(来自@rioV8 和@Mark),我将在这里总结一下:

用于存储持久数据的有 globalStateworkspaceState(来自 ExtensionContext)。

为了存储持久上下文,我们必须使用 globalStateworkspaceState 来存储状态并注册到 *onStartupFinished 激活事件并立即调用 setContext 与持久存储的状态。