diff --git a/src/tsconfig.strictNullChecks.json b/src/tsconfig.strictNullChecks.json index 114996cfc8285e71531710af385826aa70e06912..08bfbe946ed7baacb5edde666de8cb13be46acaa 100644 --- a/src/tsconfig.strictNullChecks.json +++ b/src/tsconfig.strictNullChecks.json @@ -513,7 +513,6 @@ "./vs/platform/workspaces/node/workspacesIpc.ts", "./vs/vscode.d.ts", "./vs/vscode.proposed.d.ts", - "./vs/workbench/api/browser/viewsContainersExtensionPoint.ts", "./vs/workbench/api/node/extHostExtensionActivator.ts", "./vs/workbench/api/node/extHostSearch.fileIndex.ts", "./vs/workbench/api/node/extHostTypes.ts", diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index 372cacb08fd74038bdf74514ec1f18600402683b..404646c23f57df79e99d5805cb38928b80e39d2b 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -124,8 +124,10 @@ export class ActivitybarPart extends Part { const viewContainer = this.getViewContainer(viewlet.id); if (viewContainer) { const viewDescriptors = this.viewsService.getViewDescriptors(viewContainer); - this.onDidChangeActiveViews(viewlet, viewDescriptors); - viewDescriptors.onDidChangeActiveViews(() => this.onDidChangeActiveViews(viewlet, viewDescriptors)); + if (viewDescriptors) { + this.onDidChangeActiveViews(viewlet, viewDescriptors); + viewDescriptors.onDidChangeActiveViews(() => this.onDidChangeActiveViews(viewlet, viewDescriptors)); + } } } this.saveCachedViewlets(); @@ -145,9 +147,12 @@ export class ActivitybarPart extends Part { this.compositeBar.activateComposite(viewlet.getId()); const viewletDescriptor = this.viewletService.getViewlet(viewlet.getId()); const viewContainer = this.getViewContainer(viewletDescriptor.id); - if (viewContainer && this.viewsService.getViewDescriptors(viewContainer).activeViewDescriptors.length === 0) { - // Update the composite bar by hiding - this.removeComposite(viewletDescriptor.id, true); + if (viewContainer) { + const viewDescriptors = this.viewsService.getViewDescriptors(viewContainer); + if (viewDescriptors && viewDescriptors.activeViewDescriptors.length === 0) { + // Update the composite bar by hiding + this.removeComposite(viewletDescriptor.id, true); + } } } @@ -396,8 +401,11 @@ export class ActivitybarPart extends Part { if (viewlet) { const views: { when: string }[] = []; if (viewContainer) { - for (const { when } of this.viewsService.getViewDescriptors(viewContainer).allViewDescriptors) { - views.push({ when: when ? when.serialize() : undefined }); + const viewDescriptors = this.viewsService.getViewDescriptors(viewContainer); + if (viewDescriptors) { + for (const { when } of viewDescriptors.allViewDescriptors) { + views.push({ when: when ? when.serialize() : undefined }); + } } } state.push({ id: compositeItem.id, iconUrl: viewlet.iconUrl, views, pinned: compositeItem && compositeItem.pinned, order: compositeItem ? compositeItem.order : undefined, visible: compositeItem && compositeItem.visible }); diff --git a/src/vs/workbench/browser/parts/views/views.ts b/src/vs/workbench/browser/parts/views/views.ts index b779f81a8d52cb4a8183954dd2e30181c5ec88eb..b1c99bc090acd9fc83ad9e4faf2267412654a243 100644 --- a/src/vs/workbench/browser/parts/views/views.ts +++ b/src/vs/workbench/browser/parts/views/views.ts @@ -243,8 +243,10 @@ export class ContributableViewsModel extends Disposable { super(); const viewDescriptorCollection = viewsService.getViewDescriptors(container); - this._register(viewDescriptorCollection.onDidChangeActiveViews(() => this.onDidChangeViewDescriptors(viewDescriptorCollection.activeViewDescriptors))); - this.onDidChangeViewDescriptors(viewDescriptorCollection.activeViewDescriptors); + if (viewDescriptorCollection) { + this._register(viewDescriptorCollection.onDidChangeActiveViews(() => this.onDidChangeViewDescriptors(viewDescriptorCollection.activeViewDescriptors))); + this.onDidChangeViewDescriptors(viewDescriptorCollection.activeViewDescriptors); + } } isVisible(id: string): boolean { diff --git a/src/vs/workbench/common/views.ts b/src/vs/workbench/common/views.ts index 15fa9d4b93e638f4e2a7df60a2d270327110e855..f5effa730ab7731a7adef8f4ed3e4fb04ce6b51b 100644 --- a/src/vs/workbench/common/views.ts +++ b/src/vs/workbench/common/views.ts @@ -289,7 +289,7 @@ export interface IViewsService { openView(id: string, focus?: boolean): Promise; - getViewDescriptors(container: ViewContainer): IViewDescriptorCollection; + getViewDescriptors(container: ViewContainer): IViewDescriptorCollection | null; } // Custom views