From a449cdf121d85a99697b04b4857e008a7a253c6c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 24 Jul 2017 12:28:03 +0200 Subject: [PATCH] Keep throwing but add a little more context, #30942 --- src/vs/platform/actions/common/menu.ts | 7 +++++-- src/vs/platform/contextkey/browser/contextKeyService.ts | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/vs/platform/actions/common/menu.ts b/src/vs/platform/actions/common/menu.ts index 1ca92edef17..491968e11cc 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 325e8cf9680..df96f3c0c0d 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); } -- GitLab