Skip to content

Commit 0462a93

Browse files
nhooyrcode-asher
authored andcommitted
Expose actions registry (#701)
1 parent db39eac commit 0462a93

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

packages/ide-api/api.d.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// tslint:disable no-any
22

33
import { ITerminalService } from "vs/workbench/contrib/terminal/common/terminal";
4+
import { IWorkbenchActionRegistry } from 'vs/workbench/common/actions';
5+
import { Action } from 'vs/base/common/actions';
6+
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions';
47

58
export interface EvalHelper { }
69
interface ActiveEvalEmitter {
@@ -146,7 +149,10 @@ declare namespace ide {
146149
export const client: {};
147150

148151
export const workbench: {
152+
readonly action: Action,
153+
readonly syncActionDescriptor: SyncActionDescriptor,
149154
readonly statusbarService: IStatusbarService;
155+
readonly actionsRegistry: IWorkbenchActionRegistry;
150156
readonly notificationService: INotificationService;
151157
readonly storageService: IStorageService;
152158
readonly menuRegistry: IMenuRegistry;

packages/vscode/src/client.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@ import { IStatusbarService, StatusbarAlignment } from "vs/platform/statusbar/com
66
import * as paths from "./fill/paths";
77
import product from "./fill/product";
88
import "./vscode.scss";
9-
import { MenuId, MenuRegistry } from "vs/platform/actions/common/actions";
9+
import { Action } from 'vs/base/common/actions';
10+
import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
11+
import { Registry } from 'vs/platform/registry/common/platform';
12+
import { IWorkbenchActionRegistry, Extensions } from 'vs/workbench/common/actions';
1013
import { CommandsRegistry } from "vs/platform/commands/common/commands";
1114
import { IFileService, FileOperation } from "vs/platform/files/common/files";
1215
import { ITextFileService } from "vs/workbench/services/textfile/common/textfiles";
1316
import { IModelService } from "vs/editor/common/services/modelService";
1417
import { ITerminalService } from "vs/workbench/contrib/terminal/common/terminal";
1518
import { IStorageService } from "vs/platform/storage/common/storage";
19+
1620
// NOTE: shouldn't import anything from VS Code here or anything that will
1721
// depend on a synchronous fill like `os`.
1822

@@ -33,11 +37,12 @@ class VSClient extends IdeClient {
3337
window.ide = {
3438
client: ideClientInstance,
3539
workbench: {
40+
action: Action,
41+
syncActionDescriptor: SyncActionDescriptor,
3642
commandRegistry: CommandsRegistry,
37-
// tslint:disable-next-line:no-any
38-
menuRegistry: MenuRegistry as any,
39-
// tslint:disable-next-line:no-any
40-
statusbarService: getService<IStatusbarService>(IStatusbarService) as any,
43+
actionsRegistry: Registry.as<IWorkbenchActionRegistry>(Extensions.WorkbenchActions),
44+
menuRegistry: MenuRegistry,
45+
statusbarService: getService<IStatusbarService>(IStatusbarService),
4146
notificationService: getService<INotificationService>(INotificationService),
4247
terminalService: getService<ITerminalService>(ITerminalService),
4348
storageService: {

0 commit comments

Comments
 (0)