ctrl+w kill terminal editors on linux/windows

Fixes #127189
This commit is contained in:
Daniel Imms
2021-06-25 14:27:17 -07:00
parent 9ce38c730d
commit bd2e30967f
2 changed files with 27 additions and 1 deletions
@@ -29,8 +29,9 @@ import { IPickOptions, IQuickInputService, IQuickPickItem } from 'vs/platform/qu
import { ICreateTerminalOptions, ILocalTerminalService, ITerminalProfile, TerminalLocation, TerminalSettingId, TitleEventSource } from 'vs/platform/terminal/common/terminal';
import { IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace';
import { PICK_WORKSPACE_FOLDER_COMMAND_ID } from 'vs/workbench/browser/actions/workspaceCommands';
import { ResourceContextKey } from 'vs/workbench/common/resources';
import { FindInFilesCommand, IFindInFilesArgs } from 'vs/workbench/contrib/search/browser/searchActions';
import { Direction, IRemoteTerminalService, ITerminalGroupService, ITerminalInstance, ITerminalInstanceService, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
import { Direction, IRemoteTerminalService, ITerminalEditorService, ITerminalGroupService, ITerminalInstance, ITerminalInstanceService, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
import { TerminalQuickAccessProvider } from 'vs/workbench/contrib/terminal/browser/terminalQuickAccess';
import { IRemoteTerminalAttachTarget, ITerminalConfigHelper, KEYBINDING_CONTEXT_TERMINAL_A11Y_TREE_FOCUS, KEYBINDING_CONTEXT_TERMINAL_ALT_BUFFER_ACTIVE, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FIND_NOT_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_IS_OPEN, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED, KEYBINDING_CONTEXT_TERMINAL_TABS_FOCUS, KEYBINDING_CONTEXT_TERMINAL_TABS_SINGULAR_SELECTION, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, TerminalCommandId, TERMINAL_ACTION_CATEGORY } from 'vs/workbench/contrib/terminal/common/terminal';
import { terminalStrings } from 'vs/workbench/contrib/terminal/common/terminalStrings';
@@ -1686,6 +1687,27 @@ export function registerTerminalActions() {
}
}
});
registerAction2(class extends Action2 {
constructor() {
super({
id: TerminalCommandId.KillEditor,
title: { value: localize('workbench.action.terminal.killEditor', "Kill the Active Terminal Editor"), original: 'Kill the Active Terminal Editor' },
f1: true,
category,
precondition: KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED,
keybinding: {
primary: KeyMod.CtrlCmd | KeyCode.KEY_W,
mac: undefined,
weight: KeybindingWeight.WorkbenchContrib,
when: ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_FOCUS, ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeTerminal))
}
});
}
async run(accessor: ServicesAccessor) {
accessor.get(ITerminalEditorService).activeInstance?.dispose();
}
});
registerAction2(class extends Action2 {
constructor() {
@@ -374,6 +374,7 @@ export const enum TerminalCommandId {
FindPrevious = 'workbench.action.terminal.findPrevious',
Toggle = 'workbench.action.terminal.toggleTerminal',
Kill = 'workbench.action.terminal.kill',
KillEditor = 'workbench.action.terminal.killEditor',
KillInstance = 'workbench.action.terminal.killInstance',
QuickKill = 'workbench.action.terminal.quickKill',
ConfigureTerminalSettings = 'workbench.action.terminal.openSettings',
@@ -476,8 +477,11 @@ export const DEFAULT_COMMANDS_TO_SKIP_SHELL: string[] = [
TerminalCommandId.FocusPrevious,
TerminalCommandId.Focus,
TerminalCommandId.Kill,
TerminalCommandId.KillEditor,
TerminalCommandId.MoveToEditor,
TerminalCommandId.MoveToLineEnd,
TerminalCommandId.MoveToLineStart,
TerminalCommandId.MoveToTerminalPanel,
TerminalCommandId.NewInActiveWorkspace,
TerminalCommandId.New,
TerminalCommandId.Paste,