从Visual Studio代码源代码控制窗格上下文菜单中提供“打开文件”命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Visual Studio代码源代码控制窗格上下文菜单中提供“打开文件”命令相关的知识,希望对你有一定的参考价值。

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

答案

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

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

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

{
    "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只是一个变量,用于跟踪扩展中的一些全局变量,包括将在扩展关闭时清除的一次性对象列表,以及为扩展写入日志文本的通道。

以上是关于从Visual Studio代码源代码控制窗格上下文菜单中提供“打开文件”命令的主要内容,如果未能解决你的问题,请参考以下文章

用于输出的 Visual Studio 代码 C++ 终端

使用Visual Studio 2015生成的Word加载项会引发异常

在 Visual Studio 代码中管理任务和上下文

在Visual Studio 2013中更改TFS源代码控制映射

visual studio 代码提示 怎么设置默认选中 ,省的我每次都按下上下键选择

Visual Studio:上下文切换死锁