Skip to content

Commit 4bff9f9

Browse files
committed
Dispose of non-working command pallet actions
1 parent 4e62f93 commit 4bff9f9

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

packages/vscode/src/fill/workbenchRegistry.ts

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,41 @@
1-
import { logger } from "@coder/logger";
21
import { IDisposable } from "vs/base/common/lifecycle";
32
import { Registry } from "vs/platform/registry/common/platform";
43
import { IWorkbenchActionRegistry, Extensions } from "vs/workbench/common/actions";
54
import { SyncActionDescriptor } from "vs/platform/actions/common/actions";
65
import { ContextKeyExpr } from "vs/platform/contextkey/common/contextkey";
76
import { ToggleDevToolsAction } from "vs/workbench/electron-browser/actions/developerActions";
87
import { TerminalPasteAction } from "vs/workbench/contrib/terminal/browser/terminalActions";
8+
import { CloseCurrentWindowAction, NewWindowAction, ShowAboutDialogAction, ZoomInAction, ZoomOutAction, ZoomResetAction } from "vs/workbench/electron-browser/actions/windowActions";
9+
import { REVEAL_IN_OS_COMMAND_ID } from "vs/workbench/contrib/files/browser/fileCommands";
10+
import { OpenProcessExplorer } from "vs/workbench/contrib/issue/electron-browser/issueActions";
11+
import { OpenPrivacyStatementUrlAction, OpenRequestFeatureUrlAction, OpenTwitterUrlAction } from "vs/workbench/electron-browser/actions/helpActions";
12+
import { CloseWorkspaceAction } from "vs/workbench/browser/actions/workspaceActions";
913
import { KEYBINDING_CONTEXT_TERMINAL_FOCUS } from "vs/workbench/contrib/terminal/common/terminal";
1014
import { KeyCode, KeyMod } from "vs/base/common/keyCodes";
1115
import { workbench } from "../workbench";
1216

1317
// Intercept adding workbench actions so we can skip actions that won't work or
1418
// modify actions that need different conditions, keybindings, etc.
19+
const toSkip = [
20+
ToggleDevToolsAction.ID,
21+
OpenTwitterUrlAction.ID,
22+
OpenPrivacyStatementUrlAction.ID,
23+
ShowAboutDialogAction.ID,
24+
ZoomInAction.ID,
25+
ZoomOutAction.ID,
26+
ZoomResetAction.ID,
27+
OpenProcessExplorer.ID,
28+
OpenRequestFeatureUrlAction.ID,
29+
NewWindowAction.ID,
30+
CloseCurrentWindowAction.ID,
31+
CloseWorkspaceAction.ID,
32+
REVEAL_IN_OS_COMMAND_ID,
33+
];
34+
1535
const registry = Registry.as<IWorkbenchActionRegistry>(Extensions.WorkbenchActions);
1636
const originalRegister = registry.registerWorkbenchAction.bind(registry);
1737
registry.registerWorkbenchAction = (descriptor: SyncActionDescriptor, alias: string, category?: string, when?: ContextKeyExpr): IDisposable => {
1838
switch (descriptor.id) {
19-
case ToggleDevToolsAction.ID: // There appears to be no way to toggle this programmatically.
20-
logger.debug(`Skipping unsupported workbench action ${descriptor.id}`);
21-
22-
return {
23-
dispose: (): void => undefined,
24-
};
25-
2639
case TerminalPasteAction.ID: // Modify the Windows keybinding and add our context key.
2740
// tslint:disable-next-line no-any override private
2841
(descriptor as any)._keybindings = {
@@ -33,6 +46,15 @@ registry.registerWorkbenchAction = (descriptor: SyncActionDescriptor, alias: str
3346
};
3447
// tslint:disable-next-line no-any override private
3548
(descriptor as any)._keybindingContext = ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_FOCUS, workbench.clipboardContextKey);
49+
50+
default: // Dispose of non-working actions
51+
for (let i = 0; i < toSkip.length; i++) {
52+
if (descriptor.id === toSkip[i]) {
53+
return {
54+
dispose: (): void => undefined,
55+
};
56+
}
57+
}
3658
}
3759

3860
return originalRegister(descriptor, alias, category, when);

0 commit comments

Comments
 (0)