diff --git a/src/tsconfig.strictNullChecks.json b/src/tsconfig.strictNullChecks.json index 4b736b36221..ce1825fd1fb 100644 --- a/src/tsconfig.strictNullChecks.json +++ b/src/tsconfig.strictNullChecks.json @@ -90,6 +90,7 @@ "./vs/code/electron-browser/issue/issueReporterModel.ts", "./vs/code/electron-browser/issue/issueReporterPage.ts", "./vs/code/electron-browser/issue/issueReporterUtil.ts", + "./vs/code/electron-browser/processExplorer/processExplorerMain.ts", "./vs/code/electron-main/keyboard.ts", "./vs/code/electron-main/theme.ts", "./vs/code/node/shellEnv.ts", @@ -289,10 +290,12 @@ "./vs/editor/contrib/hover/getHover.ts", "./vs/editor/contrib/hover/hoverOperation.ts", "./vs/editor/contrib/hover/hoverWidgets.ts", + "./vs/editor/contrib/hover/modesGlyphHover.ts", "./vs/editor/contrib/inPlaceReplace/inPlaceReplaceCommand.ts", "./vs/editor/contrib/indentation/indentUtils.ts", "./vs/editor/contrib/linesOperations/copyLinesCommand.ts", "./vs/editor/contrib/linesOperations/deleteLinesCommand.ts", + "./vs/editor/contrib/linesOperations/moveLinesCommand.ts", "./vs/editor/contrib/linesOperations/sortLinesCommand.ts", "./vs/editor/contrib/links/getLinks.ts", "./vs/editor/contrib/links/links.ts", @@ -415,6 +418,7 @@ "./vs/platform/quickOpen/common/quickOpen.ts", "./vs/platform/quickinput/common/quickInput.ts", "./vs/platform/registry/common/platform.ts", + "./vs/platform/request/electron-browser/requestService.ts", "./vs/platform/request/electron-main/requestService.ts", "./vs/platform/request/node/request.ts", "./vs/platform/request/node/requestService.ts", @@ -437,6 +441,7 @@ "./vs/platform/url/common/url.ts", "./vs/platform/url/common/urlService.ts", "./vs/platform/windows/common/windows.ts", + "./vs/platform/widget/common/contextScopedWidget.ts", "./vs/platform/workbench/common/contextkeys.ts", "./vs/platform/workspace/common/workspace.ts", "./vs/platform/workspace/test/common/testWorkspace.ts", @@ -529,6 +534,8 @@ "./vs/workbench/services/files/node/watcher/common.ts", "./vs/workbench/services/files/node/watcher/nsfw/watcher.ts", "./vs/workbench/services/files/node/watcher/unix/watcher.ts", + "./vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts", + "./vs/workbench/services/files/node/watcher/win32/watcherService.ts", "./vs/workbench/services/files/test/electron-browser/utils.ts", "./vs/workbench/services/hash/common/hashService.ts", "./vs/workbench/services/hash/node/hashService.ts", diff --git a/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts b/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts index a197306f72d..5418d034093 100644 --- a/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts +++ b/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts @@ -77,6 +77,10 @@ function getProcessIdWithHighestProperty(processList, propertyName: string) { function updateProcessInfo(processList): void { const target = document.getElementById('process-list'); + if (!target) { + return; + } + const highestCPUProcess = getProcessIdWithHighestProperty(processList, 'cpu'); const highestMemoryProcess = getProcessIdWithHighestProperty(processList, 'memory'); @@ -127,7 +131,9 @@ function applyStyles(styles: ProcessExplorerStyles): void { } styleTag.innerHTML = content.join('\n'); - document.head.appendChild(styleTag); + if (document.head) { + document.head.appendChild(styleTag); + } document.body.style.color = styles.color; } diff --git a/src/vs/editor/contrib/hover/hoverOperation.ts b/src/vs/editor/contrib/hover/hoverOperation.ts index 54e3c11a0bf..9275b45563c 100644 --- a/src/vs/editor/contrib/hover/hoverOperation.ts +++ b/src/vs/editor/contrib/hover/hoverOperation.ts @@ -60,10 +60,10 @@ export class HoverOperation { private _asyncComputationPromiseDone: boolean; private _completeCallback: (r: Result) => void; - private _errorCallback: (err: any) => void; + private _errorCallback?: (err: any) => void; private _progressCallback: (progress: any) => void; - constructor(computer: IHoverComputer, success: (r: Result) => void, error: (err: any) => void, progress: (progress: any) => void) { + constructor(computer: IHoverComputer, success: (r: Result) => void, error: undefined | ((err: any) => void), progress: (progress: any) => void) { this._computer = computer; this._state = ComputeHoverOperationState.IDLE; this._hoverTime = HoverOperation.HOVER_TIME; diff --git a/src/vs/editor/contrib/hover/modesGlyphHover.ts b/src/vs/editor/contrib/hover/modesGlyphHover.ts index dbfe40390ff..69d8d434257 100644 --- a/src/vs/editor/contrib/hover/modesGlyphHover.ts +++ b/src/vs/editor/contrib/hover/modesGlyphHover.ts @@ -46,6 +46,10 @@ class MarginComputer implements IHoverComputer { let lineDecorations = this._editor.getLineDecorations(this._lineNumber); let result: IHoverMessage[] = []; + if (!lineDecorations) { + return result; + } + for (let i = 0, len = lineDecorations.length; i < len; i++) { let d = lineDecorations[i]; @@ -53,9 +57,9 @@ class MarginComputer implements IHoverComputer { continue; } - let hoverMessage = d.options.glyphMarginHoverMessage; + const hoverMessage = d.options.glyphMarginHoverMessage; - if (isEmptyMarkdownString(hoverMessage)) { + if (!hoverMessage || isEmptyMarkdownString(hoverMessage)) { continue; } @@ -104,7 +108,7 @@ export class ModesGlyphHoverWidget extends GlyphHoverWidget { this._hoverOperation = new HoverOperation( this._computer, (result: IHoverMessage[]) => this._withResult(result), - null, + undefined, (result: any) => this._withResult(result) ); @@ -166,7 +170,7 @@ export class ModesGlyphHoverWidget extends GlyphHoverWidget { messages.forEach((msg) => { const renderedContents = this._markdownRenderer.render(msg.value); this._renderDisposeables.push(renderedContents); - fragment.appendChild($('div.hover-row', null, renderedContents.element)); + fragment.appendChild($('div.hover-row', undefined, renderedContents.element)); }); this.updateContents(fragment); diff --git a/src/vs/editor/contrib/linesOperations/moveLinesCommand.ts b/src/vs/editor/contrib/linesOperations/moveLinesCommand.ts index 254b34b9a84..25a24fefb14 100644 --- a/src/vs/editor/contrib/linesOperations/moveLinesCommand.ts +++ b/src/vs/editor/contrib/linesOperations/moveLinesCommand.ts @@ -63,7 +63,7 @@ export class MoveLinesCommand implements ICommand { getLanguageIdAtPosition: (lineNumber: number, column: number) => { return model.getLanguageIdAtPosition(lineNumber, column); }, - getLineContent: null as (lineNumber: number) => string, + getLineContent: null as unknown as (lineNumber: number) => string, }; if (s.startLineNumber === s.endLineNumber && model.getLineMaxColumn(s.startLineNumber) === 1) { diff --git a/src/vs/platform/contextkey/browser/contextKeyService.ts b/src/vs/platform/contextkey/browser/contextKeyService.ts index fa5b0393498..34bc0cfa9e5 100644 --- a/src/vs/platform/contextkey/browser/contextKeyService.ts +++ b/src/vs/platform/contextkey/browser/contextKeyService.ts @@ -295,7 +295,7 @@ export abstract class AbstractContextKeyService implements IContextKeyService { } } - public getContext(target: IContextKeyServiceTarget): IContext { + public getContext(target: IContextKeyServiceTarget | null): IContext { if (this._isDisposed) { return NullContext.INSTANCE; } diff --git a/src/vs/platform/contextkey/common/contextkey.ts b/src/vs/platform/contextkey/common/contextkey.ts index f17884e4a14..ada7bd0be55 100644 --- a/src/vs/platform/contextkey/common/contextkey.ts +++ b/src/vs/platform/contextkey/common/contextkey.ts @@ -581,7 +581,7 @@ export interface IContextKeyService { getContextKeyValue(key: string): T | undefined; createScoped(target?: IContextKeyServiceTarget): IContextKeyService; - getContext(target: IContextKeyServiceTarget): IContext; + getContext(target: IContextKeyServiceTarget | null): IContext; } export const SET_CONTEXT_COMMAND_ID = 'setContext'; diff --git a/src/vs/platform/request/electron-browser/requestService.ts b/src/vs/platform/request/electron-browser/requestService.ts index 8c68dfe743c..34030b8cdba 100644 --- a/src/vs/platform/request/electron-browser/requestService.ts +++ b/src/vs/platform/request/electron-browser/requestService.ts @@ -24,7 +24,7 @@ export const xhrRequest: IRequestFunction = (options: IRequestOptions, token: Ca const xhr = new XMLHttpRequest(); return new Promise((resolve, reject) => { - xhr.open(options.type || 'GET', options.url, true, options.user, options.password); + xhr.open(options.type || 'GET', options.url || '', true, options.user, options.password); setRequestHeaders(xhr, options); xhr.responseType = 'arraybuffer'; diff --git a/src/vs/platform/widget/common/contextScopedWidget.ts b/src/vs/platform/widget/common/contextScopedWidget.ts index a1d619c9e00..65ee493f125 100644 --- a/src/vs/platform/widget/common/contextScopedWidget.ts +++ b/src/vs/platform/widget/common/contextScopedWidget.ts @@ -13,7 +13,7 @@ export function createWidgetScopedContextKeyService(contextKeyService: IContextK return contextKeyService.createScoped(widget.target); } -export function getContextScopedWidget(contextKeyService: IContextKeyService, contextKey: string): T { +export function getContextScopedWidget(contextKeyService: IContextKeyService, contextKey: string): T | undefined { return contextKeyService.getContext(document.activeElement).getValue(contextKey); } diff --git a/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts b/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts index b71a461fd92..74dad643771 100644 --- a/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts @@ -123,7 +123,7 @@ export class OutOfProcessWin32FolderWatcher { public dispose(): void { if (this.handle) { this.handle.kill(); - this.handle = null; + this.handle = null!; // StrictNullOverride: nulling out ok in dispose } } }