编写 VS Code 扩展时如何聚焦自定义视图?

alj*_*sim 8 visual-studio-code vscode-extensions

我需要有关 VS Code 扩展的帮助。我已经编写了一个工作正常的自定义视图,但是我想通过使用键盘快捷键或上下文菜单命令来激活/聚焦/进入该视图。我无法找到如何使用 VS code API 来实现这一点。

context.subscriptions.push(vscode.commands.registerCommand('extensionId.showView', () =>
{   
    // how to do that?
}));
Run Code Online (Sandbox Code Playgroud)

我知道这是可以做到的,因为可以使用以下代码 snppet 显示文件资源管理器:

vscode.commands.executeCommand('workbench.view.search');
Run Code Online (Sandbox Code Playgroud)

但是对于自定义树视图,您将如何做到这一点呢?

Gam*_*a11 4

您应该能够使用1.25 中添加的focusTreeView.reveal()选项。该方法要求您传递要显示的树项,因此它更多的是无法直接聚焦视图本身的解决方法,但您可以简单地传递第一个/根节点。

treeView.reveal(item, {focus: true});
Run Code Online (Sandbox Code Playgroud)

请注意,本例中的焦点表示键盘焦点。如果您只是想让它进入视图,那么reveal()在不使用焦点选项的情况下调用就足够了。

要获取TreeView实例,您需要vscode.window.createTreeView()使用您的视图 ID 和提供程序进行调用。