我需要VS Code扩展的帮助。我编写了一个自定义视图,该视图工作得很好,但是我想使用键盘快捷键或上下文菜单命令来激活/聚焦/进入该视图。我无法找到如何使用VS代码API来实现这一目标。
context.subscriptions.push(vscode.commands.registerCommand('extensionId.showView', () =>
{
// how to do that?
}));
我知道这是可以做到的,因为可以使用以下代码snppet显示文件浏览器:
vscode.commands.executeCommand('workbench.view.search');
但是对于自定义树形视图,您将如何做呢?
答案 0 :(得分:1)
您应该可以使用new focus
option that was added to TreeView.reveal()
in 1.25。该方法要求您传递要显示的树项,因此,它是一种无法直接聚焦视图本身的变通办法,而您只需传递第一个/根节点即可。
// these gets properly printed
// correct formatted JSON
console.log( JSON.parse('{"c1": "value1", "c2": "value2"}') );
// correct formatted JSON, outer doulbe quotes and inner, escaped one's
console.log( JSON.parse("{\"c1\": \"value1\", \"c2\": \"value2\"}") );
// yours wrapped with single quotes and inner double quotes, changed to one
console.log( JSON.parse('{""c1"": ""value1"", ""c2"": ""value2""}'.replace(/""/g, '"')) );
// these generates script error
// yours wrapped with single quotes
console.log( JSON.parse('{""c1"": ""value1"", ""c2"": ""value2""}') );
// yours as is, and had to comment this out, as if not, it crashes itself and all the above
//console.log( JSON.parse("{""c1"": ""value1"", ""c2"": ""value2""}") );
请注意,在这种情况下,焦点表示键盘焦点。如果您只是想看到它,那么在没有焦点选项的情况下调用treeView.reveal(item, {focus: true});
就足够了。
要获取reveal()
实例,您需要使用视图ID和提供者调用TreeView
。