【发布时间】:2021-04-07 09:45:12
【问题描述】:
我按照when clause context的文档添加了自定义的when子句上下文。
我设置了一个布尔上下文:
let start = vscode.commands.registerCommand('myExt.start', () => {
vscode.commands.executeCommand('setContext', 'myExt.activated', true);
});
但是VSCode重启后,即使myExt.activated是true。 VSCode 算了……
"explorer/context": [
{
"command": "myExt.filter",
"when": "myExt.activated"
}
]
即使 myExt.activated 上次是 true,在 VSCode 重新启动后也不显示...
另外,使用Developer: Inspect Context Keys 命令调试上下文时,myExt.activated 不存在。
有没有办法在 VSCode 重新启动之间保留 when-clause 上下文?
【问题讨论】:
-
使用
ExtensionContextcode.visualstudio.com/api/references/…中的globalStorageUri和globalState -
我已经将
workspaceState用于其他用途,因为我想要工作区范围。但是我没有成功在when-clause中使用它(没有出现在上下文键中) -
是否有某些原因您不只是在激活扩展程序时执行
setContext命令?您现在正在通过命令执行此操作 - 只需执行activate函数顶部的执行部分。 -
确实如此。但是正如你所看到的,我正在为
explorer/context和在激活方式上执行setContext做出贡献 - 我必须注册到*或onStartupFinished只是为了执行setContext,我认为这是不必要的并且想要避免它。另一个“问题”是在激活完成之前无法访问菜单......
标签: visual-studio-code vscode-extensions