【问题标题】:Provide "Open File" command from Visual Studio Code Source Control pane context menu从 Visual Studio 代码源代码控制窗格上下文菜单中提供“打开文件”命令
【发布时间】:2019-08-19 18:36:11
【问题描述】:

在 Visual Studio Code 中,当我对项目使用 Git 源代码控制时,我可以在源代码控制视图中右键单击文件并选择“打开文件”来查看文件,就像我只是打开它一样从资源管理器窗格中。如何为我自己的 SCM 扩展实现类似的上下文菜单和命令?我让它工作到列出文件的地步,我可以选择一个来显示差异,或者选择内联命令图标来显示以不同方式选择的版本之间的差异。但我不知道如何添加上下文菜单或命令来简单地打开其中一个文件而不是进行比较。

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    要添加到上下文菜单,可以在 package.json 文件中指定命令和上下文菜单项。在contributes 块的commands 数组中,添加如下命令:

    {
        "command": "accurev.openFile",
        "category": "AccuRev",
        "title": "Open file"
    }
    

    然后从定义在例如menus 块的scm/resourceState/context 数组中的上下文菜单项中引用命令:

    {
        "command": "accurev.openFile",
        "when": "scmProvider == accurev"
    }
    

    最后,为使用 Visual Studio Code 的内置 open 命令的新命令注册一个命令处理程序。这可以在扩展的初始 activate 函数期间运行的代码中完成:

    globalState.disposables.push(vscode.commands.registerCommand('accurev.openFile', async (file: AccuRevFile) => {
        try {
            await vscode.commands.executeCommand('vscode.open', file.resourceUri);
        }
        catch(err) {
            if (globalState) {
                globalState.channel.appendLine(err);
            }
        }
    }));
    

    在此示例中,globalState 只是一个变量,用于跟踪扩展中的一些全局变量,包括将在扩展关闭时清理的一次性对象列表,以及写入日志文本的通道扩展名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多