VS Code TreeView 中上下文相关的动态上下文菜单?

Context dependable dynamic context menus in VS Code TreeView?

我正在构建 VS Code 扩展以支持 Git Flow。我有一个专用的 View Container,带有 TreeView 和分支树,包括功能、版本、修补程序、...

我想要做的是在具有不同元素列表的 viewItem 位上右键单击菜单。例如,当我右键单击我想要的功能时:

结帐功能 变基功能 拉功能 完成功能

但仅当我右键单击不是当前分支的功能时才可以结帐功能。

我知道 configuration.menus 中的 when,但我无法在那里访问个人 viewItem 属性 或者我可以吗?

现在,我看到的唯一方法是在我的视图容器中为每个前缀创建一个单独的视图。一个用于功能,一个用于发布,一个用于修补程序。但这不是我希望的方式。在我看来,一棵树和所有分支更容易使用。

有谁知道如何实现自定义上下文菜单?

vscode.TreevItem 有一个 属性 contextValue,给它分配一个字符串并在菜单项 when 的子句中使用它

"when": "view == myGitFlow && viewItem == current"

"when": "view == myGitFlow && viewItem != current"