diff --git a/src/tsconfig.strictNullChecks.json b/src/tsconfig.strictNullChecks.json index 97419beb1b7..5b05fc4c7e5 100644 --- a/src/tsconfig.strictNullChecks.json +++ b/src/tsconfig.strictNullChecks.json @@ -40,6 +40,7 @@ "./vs/base/parts/tree/browser/tree.ts", "./vs/base/parts/tree/browser/treeDefaults.ts", "./vs/base/parts/tree/browser/treeDnd.ts", + "./vs/base/parts/tree/browser/treeImpl.ts", "./vs/base/parts/tree/browser/treeModel.ts", "./vs/base/parts/tree/browser/treeUtils.ts", "./vs/base/parts/tree/browser/treeView.ts", @@ -263,6 +264,7 @@ "./vs/editor/standalone/browser/simpleServices.ts", "./vs/editor/standalone/browser/standaloneCodeEditor.ts", "./vs/editor/standalone/browser/standaloneCodeServiceImpl.ts", + "./vs/editor/standalone/browser/standaloneServices.ts", "./vs/editor/standalone/browser/standaloneThemeServiceImpl.ts", "./vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.ts", "./vs/editor/standalone/common/monarch/monarchCommon.ts", @@ -413,6 +415,7 @@ "./vs/platform/lifecycle/common/lifecycle.ts", "./vs/platform/lifecycle/electron-browser/lifecycleService.ts", "./vs/platform/lifecycle/electron-main/lifecycleMain.ts", + "./vs/platform/list/browser/listService.ts", "./vs/platform/localizations/common/localizations.ts", "./vs/platform/localizations/node/localizations.ts", "./vs/platform/localizations/node/localizationsIpc.ts", @@ -545,6 +548,7 @@ "./vs/workbench/browser/parts/statusbar/statusbarPart.ts", "./vs/workbench/browser/parts/views/panelViewlet.ts", "./vs/workbench/browser/parts/views/views.ts", + "./vs/workbench/browser/parts/views/viewsViewlet.ts", "./vs/workbench/browser/viewlet.ts", "./vs/workbench/common/actions.ts", "./vs/workbench/common/activity.ts", @@ -603,6 +607,7 @@ "./vs/workbench/parts/experiments/electron-browser/experimentalPrompt.ts", "./vs/workbench/parts/experiments/electron-browser/experiments.contribution.ts", "./vs/workbench/parts/experiments/node/experimentService.ts", + "./vs/workbench/parts/extensions/browser/extensionsViewer.ts", "./vs/workbench/parts/extensions/common/extensionQuery.ts", "./vs/workbench/parts/extensions/common/extensions.ts", "./vs/workbench/parts/extensions/common/extensionsFileTemplate.ts", diff --git a/src/vs/base/parts/tree/browser/treeImpl.ts b/src/vs/base/parts/tree/browser/treeImpl.ts index 1bd18fb65ff..652c59d17a0 100644 --- a/src/vs/base/parts/tree/browser/treeImpl.ts +++ b/src/vs/base/parts/tree/browser/treeImpl.ts @@ -20,13 +20,13 @@ export class TreeContext implements _.ITreeContext { public options: _.ITreeOptions; public dataSource: _.IDataSource; - public renderer: _.IRenderer; + public renderer?: _.IRenderer; public controller: _.IController; public dnd: _.IDragAndDrop; public filter: _.IFilter; - public sorter: _.ISorter; + public sorter?: _.ISorter; public accessibilityProvider: _.IAccessibilityProvider; - public styler: _.ITreeStyler; + public styler?: _.ITreeStyler; constructor(tree: _.ITree, configuration: _.ITreeConfiguration, options: _.ITreeOptions = {}) { this.tree = tree; @@ -42,9 +42,9 @@ export class TreeContext implements _.ITreeContext { this.controller = configuration.controller || new TreeDefaults.DefaultController({ clickBehavior: TreeDefaults.ClickBehavior.ON_MOUSE_UP, keyboardSupport: typeof options.keyboardSupport !== 'boolean' || options.keyboardSupport }); this.dnd = configuration.dnd || new TreeDefaults.DefaultDragAndDrop(); this.filter = configuration.filter || new TreeDefaults.DefaultFilter(); - this.sorter = configuration.sorter || null; + this.sorter = configuration.sorter; this.accessibilityProvider = configuration.accessibilityProvider || new TreeDefaults.DefaultAccessibilityProvider(); - this.styler = configuration.styler || null; + this.styler = configuration.styler; } } @@ -162,8 +162,10 @@ export class Tree implements _.ITree { } public updateWidth(element: any): void { - let item = this.model.getItem(element); - return this.view.updateWidth(item); + const item = this.model.getItem(element); + if (item) { + this.view.updateWidth(item); + } } public expand(element: any): Promise { @@ -203,8 +205,8 @@ export class Tree implements _.ITree { } public getRelativeTop(element: any): number { - let item = this.model.getItem(element); - return this.view.getRelativeTop(item); + const item = this.model.getItem(element); + return item ? this.view.getRelativeTop(item) : 0; } public getFirstVisibleElement(): any { @@ -377,11 +379,11 @@ export class Tree implements _.ITree { if (this.model !== null) { this.model.dispose(); - this.model = null; + this.model = null!; // StrictNullOverride Nulling out ok in dispose } if (this.view !== null) { this.view.dispose(); - this.view = null; + this.view = null!; // StrictNullOverride Nulling out ok in dispose } this._onDidChangeFocus.dispose(); diff --git a/src/vs/platform/list/browser/listService.ts b/src/vs/platform/list/browser/listService.ts index d656dfc8e45..3ae319b4e66 100644 --- a/src/vs/platform/list/browser/listService.ts +++ b/src/vs/platform/list/browser/listService.ts @@ -588,10 +588,13 @@ export interface IResourceResultsNavigationOptions { export class TreeResourceNavigator2 extends Disposable { - private readonly _openResource: Emitter> = new Emitter>(); - readonly openResource: Event> = this._openResource.event; + private readonly _openResource = new Emitter>(); + readonly openResource: Event> = this._openResource.event; - constructor(private tree: WorkbenchObjectTree | WorkbenchAsyncDataTree, private options?: IResourceResultsNavigationOptions) { + constructor( + private tree: WorkbenchObjectTree | WorkbenchAsyncDataTree, + private options?: IResourceResultsNavigationOptions + ) { super(); this.registerListeners(); @@ -605,9 +608,9 @@ export class TreeResourceNavigator2 extends Disposable { this._register(this.tree.onDidChangeSelection(e => this.onSelection(e))); } - private onFocus(e: ITreeEvent): void { + private onFocus(e: ITreeEvent): void { const focus = this.tree.getFocus(); - this.tree.setSelection(focus, e.browserEvent); + this.tree.setSelection(focus as T[], e.browserEvent); if (!e.browserEvent) { return; @@ -620,7 +623,7 @@ export class TreeResourceNavigator2 extends Disposable { } } - private onSelection(e: ITreeEvent): void { + private onSelection(e: ITreeEvent): void { if (!e.browserEvent) { return; } @@ -686,8 +689,8 @@ export class HighlightingTreeController extends WorkbenchTreeController { class HightlightsFilter implements IFilter { static add(config: ITreeConfiguration, options: IHighlightingTreeOptions): ITreeConfiguration { - let myFilter = new HightlightsFilter(); - myFilter.enabled = options.filterOnType; + const myFilter = new HightlightsFilter(); + myFilter.enabled = !!options.filterOnType; if (!config.filter) { config.filter = myFilter; } else { @@ -809,7 +812,7 @@ export class HighlightingWorkbenchTree extends WorkbenchTree { layout(height?: number, width?: number): void { this.input.layout(); - super.layout(isNaN(height) ? height : height - getTotalHeight(this.inputContainer), width); + super.layout(typeof height !== 'number' || isNaN(height) ? height : height - getTotalHeight(this.inputContainer), width); } private onTypeInTree(): void { @@ -835,7 +838,7 @@ export class HighlightingWorkbenchTree extends WorkbenchTree { let topElement: any; if (pattern) { let nav = this.getNavigator(undefined, false); - let topScore: FuzzyScore; + let topScore: FuzzyScore | undefined; while (nav.next()) { let element = nav.current(); let score = this.highlighter.getHighlights(this, element, pattern); @@ -867,7 +870,7 @@ export class HighlightingWorkbenchTree extends WorkbenchTree { return this.highlights.size > 0; } - getHighlighterScore(element: any): FuzzyScore { + getHighlighterScore(element: any): FuzzyScore | undefined { return this.highlights.get(this._getHighlightsStorageKey(element)); }