Skip to main content
 首页 » 编程设计

vscode-extensions中VsCode 扩展。如何通过右键单击选择 TreeView 项目

2025年12月25日162Leo_wl

我正在编写一个 VsCode 扩展。当用户右键单击 TreeView 中的某个项目时,他会收到弹出命令,该命令的操作适用于先前选择的项目。在 VsCode 本身中,情况并非如此。例如,右键单击“新文件”可将文件添加到当前突出显示的文件夹(而不是选定的文件夹)。如何在我的扩展中复制此行为?

请您参考如下方法:

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

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

及以后:

command() { 
} 

commands.registerCommand('myExtension.myCommand', command(), this); 

及以后:

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

如果可以从不同的上下文(如按钮)调用命令,则 if (node) 是必需的,在这种情况下 node 将为 未定义