Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code VsCode扩展。如何在右键单击时选择树状视图项目_Visual Studio Code_Vscode Extensions - Fatal编程技术网

Visual studio code VsCode扩展。如何在右键单击时选择树状视图项目

Visual studio code VsCode扩展。如何在右键单击时选择树状视图项目,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在写一个VsCode扩展。当用户在树状视图中右键单击某个项目时,他将获得弹出命令,其操作将应用于先前选择的项目。在VsCode本身中,情况并非如此。例如,在新文件上右键单击会将一个文件添加到当前高亮显示的文件夹(而不是选定的文件夹)。如何在扩展中复制这种行为?我找到了解决方案。 注册右键单击运行的命令时,添加一个树节点参数。通过弹出菜单调用命令时,此树节点将是高亮显示的节点,而不是选定的节点。 例如,替换代码 commands.registerCommand('myExtension.myC

我正在写一个VsCode扩展。当用户在树状视图中右键单击某个项目时,他将获得弹出命令,其操作将应用于先前选择的项目。在VsCode本身中,情况并非如此。例如,在新文件上右键单击会将一个文件添加到当前高亮显示的文件夹(而不是选定的文件夹)。如何在扩展中复制这种行为?

我找到了解决方案。 注册右键单击运行的命令时,添加一个树节点参数。通过弹出菜单调用命令时,此树节点将是高亮显示的节点,而不是选定的节点。 例如,替换代码

commands.registerCommand('myExtension.myCommand', () => this.command());
后来:

command() {
}
command(node: TreeNode) {
    if (node) {
    } 
}

后来:

command() {
}
command(node: TreeNode) {
    if (node) {
    } 
}
如果命令可以从不同的上下文(如按钮)调用,则
if(node)
是必需的,在这种情况下
节点
将是
未定义的
,我找到了解决方案。 注册右键单击运行的命令时,添加一个树节点参数。通过弹出菜单调用命令时,此树节点将是高亮显示的节点,而不是选定的节点。 例如,替换代码

commands.registerCommand('myExtension.myCommand', () => this.command());
后来:

command() {
}
command(node: TreeNode) {
    if (node) {
    } 
}

后来:

command() {
}
command(node: TreeNode) {
    if (node) {
    } 
}
如果可以从不同的上下文(如按钮)调用命令,则需要使用
if(node)
,在这种情况下,
node
将是
未定义的