diff --git a/src/vs/platform/actions/common/menu.ts b/src/vs/platform/actions/common/menu.ts index 1ca92edef179be1ecbddadcc38f52101abd87464..491968e11cc1ed0fe19cd38d974005c636812af5 100644 --- a/src/vs/platform/actions/common/menu.ts +++ b/src/vs/platform/actions/common/menu.ts @@ -21,13 +21,13 @@ export class Menu implements IMenu { private _onDidChange = new Emitter(); constructor( - private id: MenuId, + private _id: MenuId, startupSignal: TPromise, @ICommandService private _commandService: ICommandService, @IContextKeyService private _contextKeyService: IContextKeyService ) { startupSignal.then(_ => { - const menuItems = MenuRegistry.getMenuItems(id); + const menuItems = MenuRegistry.getMenuItems(_id); const keysFilter = new Set(); let group: MenuItemGroup; @@ -48,6 +48,9 @@ export class Menu implements IMenu { // subscribe to context changes this._disposables.push(this._contextKeyService.onDidChangeContext(keys => { + if (!keys) { + throw new Error(`Receiving bad onDidChangeContext-event form MenuId[${this._id.id}]`); + } for (let k of keys) { if (keysFilter.has(k)) { this._onDidChange.fire(); diff --git a/src/vs/platform/contextkey/browser/contextKeyService.ts b/src/vs/platform/contextkey/browser/contextKeyService.ts index 325e8cf9680f41d9448bd1e37ae67449a5eaf736..df96f3c0c0dab414f64c268e211384afcd012949 100644 --- a/src/vs/platform/contextkey/browser/contextKeyService.ts +++ b/src/vs/platform/contextkey/browser/contextKeyService.ts @@ -126,7 +126,7 @@ class ContextKey implements IContextKey { } } -export abstract class AbstractContextKeyService { +export abstract class AbstractContextKeyService implements IContextKeyService { public _serviceBrand: any; protected _onDidChangeContext: Event; @@ -138,6 +138,8 @@ export abstract class AbstractContextKeyService { this._onDidChangeContextKey = new Emitter(); } + abstract dispose(): void; + public createKey(key: string, defaultValue: T): IContextKey { return new ContextKey(this, key, defaultValue); }