如何使VSCode文件资源管理器菜单项与所选文件上下文相关



描述

我正在开发Visual Studio代码的扩展,并为"文件资源管理器"菜单提供了一些命令。我希望我的命令基于在文件资源管理器中选择的文件以及用户必须配置的一些设置可见。

到目前为止,我已经将我的命令贡献到菜单中,并且它们是基于我创建的自定义上下文启用的。我还创建了一个函数,可以确定在给定所选文件的路径的情况下是否应该启用菜单项(请注意,启用逻辑比在文件名/路径上匹配正则表达式更复杂)。问题是,现在上下文值在激活过程中只设置一次。每次在资源管理器中更改选择时(或创建菜单时,以更容易的为准),我都需要使用我的实用程序函数动态设置该值。我找不到一种方法来侦听文件资源管理器中选择的更改。我知道vscode。窗口名称空间有几个侦听器函数,但它们似乎都是为编辑器或在更改视图的状态时使用的

这可能吗?

代码

激活功能:

vscode.commands.executeCommand('setContext', 'myContext', true); // not calling my utility function because I don't have the selected file path available

package.json:

"explorer/context": [
{
"command": "my.command",
"when": "myContext"
},

似乎无法将侦听器添加到文件资源管理器视图中(请参阅如何在vscode';s TreeDataProvider中侦听事件?)。

此外,获取资源管理器中选择的文件路径的唯一方法是将它们复制到剪贴板(请参阅https://github.com/Microsoft/vscode/issues/3553)。

最新更新