在我的Visual Studio代码扩展中,我目前调用workbench.action.moveEditorToNextGroup
,它在代码中移动编辑器。但是,如果我调用任何额外的命令,它将使用以前的编辑器组,而不是我移动到的编辑器组。
我如何将注意力集中在某个编辑器上,例如我移动到的编辑器?
看起来workbench.action.focusFirstEditorGroup
应该做标记。
或者
workbench.action.focusFirstEditorGroup
workbench.action.focusSecondEditorGrou
……
也可能是你正在寻找的。
查看完整列表
移动编辑器的一个更强大的方法是使用moveActiveEditor
命令。
const moveTabBetweenGroupArgs = {to: "right", by: "group"};
await vscode.commands.executeCommand('moveActiveEditor', moveTabBetweenGroupArgs);
最好的文档位于这里:moveActiveEditor的解释。
如果我重复调用,它会使用我刚刚移动的编辑器。因此,例如,如果我将编辑器移动到右组,然后再次触发该命令,则相同的编辑器将移动到下一个右组。
如果没有组,命令将在右边创建一个组。
不幸的是,使用这些选项:
// const moveTabBetweenGroupArgs = {to: "position", by: "group", value: 2}; // 'value' is 1-based
你也应该能够将编辑器移动到第二个组——即使它不存在——但是这个表单不会创建第二个组,并且无声地失败。我认为这是一个bug,并将提交一个问题。
您还可以使用moveActiveEditor
命令轻松地在组内移动编辑器,代码如下:
const moveTabInGroupArgs = {to: "position", by: "tab", value: targetIndex + 1}; // 'value' is 1-based
await vscode.commands.executeCommand('moveActiveEditor', moveTabInGroupArgs);
将ACTIVE编辑器移动到当前组中的value
列。value
是基于1的,所以组中的第一列是1
,而不是0
。