繁体   English   中英

如何使 VSCode 文件资源管理器菜单项对所选文件上下文敏感?

[英]How can I make VSCode file explorer menu items context sensitive to the file selected?

描述

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

到目前为止,我已经将我的命令添加到菜单中,并且它们是根据我创建的自定义上下文启用的。 我还创建了一个 function,它可以根据所选文件的路径确定是否应启用菜单项(请注意,启用逻辑比仅在文件名/路径上进行正则表达式匹配要复杂得多)。 问题是现在上下文值在激活期间只设置一次。 每次在资源管理器中更改选择时(或每当创建菜单 - 以更容易的为准),我都需要使用我的实用程序 function 动态设置该值。 我一直无法找到一种方法来监听文件资源管理器中选择的变化。 我知道 vscode.Window 命名空间有几个侦听器函数,但它们似乎都是用于编辑器或更改视图 state 时

这可能吗?

代码

激活 function:

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 的 TreeDataProvider 中侦听事件? )。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM