未验证 提交 4853ea69 编写于 作者: M Megan Rogge 提交者: GitHub

Add command and keybinding to focus terminal tabs view (#121978)

上级 66fd0cba
......@@ -156,6 +156,7 @@ export interface ITerminalService {
getFindState(): FindReplaceState;
findNext(): void;
findPrevious(): void;
focusTabsView(): void;
registerProcessSupport(isSupported: boolean): void;
/**
......
......@@ -355,6 +355,25 @@ export function registerTerminalActions() {
return terminalService.showPanel(true);
}
});
registerAction2(class extends Action2 {
constructor() {
super({
id: TERMINAL_COMMAND_ID.FOCUS_TABS_VIEW,
title: { value: localize('workbench.action.terminal.focus.tabsView', "Focus Terminal Tabs View"), original: 'Focus Terminal Tabs View' },
f1: true,
category,
keybinding: {
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_T,
weight: KeybindingWeight.WorkbenchContrib,
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_TABS_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FOCUS),
},
precondition: KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED,
});
}
async run(accessor: ServicesAccessor) {
await accessor.get(ITerminalService).focusTabsView();
}
});
registerAction2(class extends Action2 {
constructor() {
super({
......
......@@ -707,6 +707,12 @@ export class TerminalService implements ITerminalService {
}
}
public async focusTabsView(): Promise<void> {
await this.showPanel(true);
const pane = this._viewsService.getActiveViewWithId<TerminalViewPane>(TERMINAL_VIEW_ID);
pane?.terminalTabbedView?.focusTabsView();
}
private _getIndexFromId(terminalId: number): number {
let terminalIndex = -1;
this.terminalInstances.forEach((terminalInstance, i) => {
......
......@@ -472,6 +472,11 @@ export class TerminalTabbedView extends Disposable {
];
}
public focusTabsView(): void {
this._terminalTabsFocusContextKey.set(true);
this._tabsWidget.domFocus();
}
public focusFindWidget() {
this._findWidgetVisible.set(true);
const activeInstance = this._terminalService.getActiveInstance();
......
......@@ -239,6 +239,10 @@ export class TerminalViewPane extends ViewPane {
this._focus();
}
public focusTabsView(): void {
this._terminalTabbedView?.focusTabsView();
}
private _focus() {
this._terminalService.getActiveInstance()?.focusWhenReady();
}
......
......@@ -434,6 +434,7 @@ export const enum TERMINAL_COMMAND_ID {
SPLIT_IN_ACTIVE_WORKSPACE = 'workbench.action.terminal.splitInActiveWorkspace',
RELAUNCH = 'workbench.action.terminal.relaunch',
FOCUS_PREVIOUS_PANE = 'workbench.action.terminal.focusPreviousPane',
FOCUS_TABS_VIEW = 'workbench.action.terminal.focusTabsView',
FOCUS_NEXT_PANE = 'workbench.action.terminal.focusNextPane',
RESIZE_PANE_LEFT = 'workbench.action.terminal.resizePaneLeft',
RESIZE_PANE_RIGHT = 'workbench.action.terminal.resizePaneRight',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册