【问题标题】:How can I make VSCode file explorer menu items context sensitive to the file selected?如何使 VSCode 文件资源管理器菜单项对所选文件上下文敏感?
【发布时间】:2021-01-29 22:25:46
【问题描述】:

说明

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

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

这可能吗?

代码

激活函数:

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"
    },

【问题讨论】:

标签: visual-studio-code vscode-extensions


【解决方案1】:

似乎无法将侦听器添加到文件资源管理器视图(请参阅How to listen to events in vscode's TreeDataProvider?)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 2017-12-06
    • 1970-01-01
    • 2014-01-11
    相关资源
    最近更新 更多