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

时间:2019-03-28 21:13:45

标签: visual-studio-code vscode-extensions

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

1 个答案:

答案 0 :(得分:0)

要添加到上下文菜单,可以在package.json文件中指定命令和上下文菜单项。在In [35]: df.drop(df.columns[df.isna().any()].difference({'col4'}), axis=1)[df.col4.isna()] Out[35]: col2 col3 col4 2 10 45 NaN 5 40 23 NaN 块的contributes数组中,添加如下命令:

commands

然后从上下文菜单项中引用命令,该上下文菜单项例如在{ "command": "accurev.openFile", "category": "AccuRev", "title": "Open file" } 块的scm/resourceState/context数组中定义:

menus

最后,为使用Visual Studio Code的内置{ "command": "accurev.openFile", "when": "scmProvider == accurev" } 命令的新命令注册命令处理程序。这可以通过扩展程序的初始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); } } })); 只是一个变量,用于跟踪扩展中的某些全局变量,包括将在扩展关闭时清除的一次性对象列表以及日志文本所在的通道为扩展而写。