Skip to content

Commit a5682a5

Browse files
committed
Require process support for most terminal keybindings
1 parent aa6b2f1 commit a5682a5

2 files changed

Lines changed: 95 additions & 53 deletions

File tree

src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ Registry.as<IViewsRegistry>(ViewContainerExtensions.ViewsRegistry).registerViews
8484
const actionRegistry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions);
8585
registerTerminalActions();
8686
const category = TERMINAL_ACTION_CATEGORY;
87-
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(KillTerminalAction), 'Terminal: Kill the Active Terminal Instance', category);
87+
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(KillTerminalAction), 'Terminal: Kill the Active Terminal Instance', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
8888
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(CreateNewTerminalAction, {
8989
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.US_BACKTICK,
9090
mac: { primary: KeyMod.WinCtrl | KeyMod.Shift | KeyCode.US_BACKTICK }
91-
}), 'Terminal: Create New Integrated Terminal', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
91+
}), 'Terminal: Create New Integrated Terminal', category);
9292
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(SelectAllTerminalAction, {
9393
// Don't use ctrl+a by default as that would override the common go to start
9494
// of prompt shell binding
@@ -97,7 +97,7 @@ actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(SelectAllTermin
9797
// behavior anyway when handed to xterm.js, having this handled by VS Code
9898
// makes it easier for users to see how it works though.
9999
mac: { primary: KeyMod.CtrlCmd | KeyCode.KEY_A }
100-
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Select All', category);
100+
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Select All', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
101101
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleTerminalAction, {
102102
primary: KeyMod.CtrlCmd | KeyCode.US_BACKTICK,
103103
mac: { primary: KeyMod.WinCtrl | KeyCode.US_BACKTICK }
@@ -107,24 +107,24 @@ actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleTerminalA
107107
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(ClearTerminalAction, {
108108
primary: 0,
109109
mac: { primary: KeyMod.CtrlCmd | KeyCode.KEY_K }
110-
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KeybindingWeight.WorkbenchContrib + 1), 'Terminal: Clear', category);
111-
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(SelectDefaultShellWindowsTerminalAction), 'Terminal: Select Default Shell', category);
110+
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KeybindingWeight.WorkbenchContrib + 1), 'Terminal: Clear', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
111+
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(SelectDefaultShellWindowsTerminalAction), 'Terminal: Select Default Shell', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
112112
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(SplitTerminalAction, {
113113
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_5,
114114
mac: {
115115
primary: KeyMod.CtrlCmd | KeyCode.US_BACKSLASH,
116116
secondary: [KeyMod.WinCtrl | KeyMod.Shift | KeyCode.KEY_5]
117117
}
118-
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Split Terminal', category);
119-
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(SplitInActiveWorkspaceTerminalAction), 'Terminal: Split Terminal (In Active Workspace)', category);
118+
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Split Terminal', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
119+
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(SplitInActiveWorkspaceTerminalAction), 'Terminal: Split Terminal (In Active Workspace)', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
120120

121121
// Commands might be affected by Web restrictons
122122
if (BrowserFeatures.clipboard.writeText) {
123123
actionRegistry.registerWorkbenchAction(SyncActionDescriptor.from(CopyTerminalSelectionAction, {
124124
primary: KeyMod.CtrlCmd | KeyCode.KEY_C,
125125
win: { primary: KeyMod.CtrlCmd | KeyCode.KEY_C, secondary: [KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_C] },
126126
linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_C }
127-
}, ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, KEYBINDING_CONTEXT_TERMINAL_FOCUS)), 'Terminal: Copy Selection', category);
127+
}, ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, KEYBINDING_CONTEXT_TERMINAL_FOCUS)), 'Terminal: Copy Selection', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
128128
}
129129

130130
function registerSendSequenceKeybinding(text: string, rule: { when?: ContextKeyExpression } & IKeybindings): void {
@@ -149,7 +149,7 @@ if (BrowserFeatures.clipboard.readText) {
149149
primary: KeyMod.CtrlCmd | KeyCode.KEY_V,
150150
win: { primary: KeyMod.CtrlCmd | KeyCode.KEY_V, secondary: [KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_V] },
151151
linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_V }
152-
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Paste into Active Terminal', category);
152+
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Paste into Active Terminal', category, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED);
153153
// An extra Windows-only ctrl+v keybinding is used for pwsh that sends ctrl+v directly to the
154154
// shell, this gets handled by PSReadLine which properly handles multi-line pastes. This is
155155
// disabled in accessibility mode as PowerShell does not run PSReadLine when it detects a screen

0 commit comments

Comments
 (0)