diff --git a/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts b/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts index 13e4b9c34be0848b36b077d48d9df43e040d93a2..2e72938f98677bd53a1cfeb6f5f9e8464b0b4926 100644 --- a/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts +++ b/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts @@ -77,8 +77,8 @@ export class BreadcrumbsWidget { private _focusedItemIdx: number = -1; private _selectedItemIdx: number = -1; - private _pendingLayout: IDisposable; - private _dimension: dom.Dimension; + private _pendingLayout: IDisposable | undefined; + private _dimension: dom.Dimension | undefined; constructor( container: HTMLElement diff --git a/src/vs/base/common/event.ts b/src/vs/base/common/event.ts index 2a42363714938042c9e044fa6ebb9a5137357aa7..4d43bd8c13208ba7f2dfdac5205b1765df882588 100644 --- a/src/vs/base/common/event.ts +++ b/src/vs/base/common/event.ts @@ -645,7 +645,7 @@ export interface IWaitUntil { export class AsyncEmitter extends Emitter { - private _asyncDeliveryQueue: [Listener, T, Promise[]][]; + private _asyncDeliveryQueue?: [Listener, T, Promise[]][]; async fireAsync(eventFn: (thenables: Promise[], listener: Function) => T): Promise { if (!this._listeners) { diff --git a/src/vs/editor/contrib/codelens/codelensWidget.ts b/src/vs/editor/contrib/codelens/codelensWidget.ts index 24ed75a44056642023e9cd983a0372867d6d6715..2f34263e0fd49a3b1ee2d7bee97d479c9f09ce8b 100644 --- a/src/vs/editor/contrib/codelens/codelensWidget.ts +++ b/src/vs/editor/contrib/codelens/codelensWidget.ts @@ -60,7 +60,7 @@ class CodeLensContentWidget implements editorBrowser.IContentWidget { private readonly _editor: editorBrowser.ICodeEditor; private readonly _commands = new Map(); - private _widgetPosition: editorBrowser.IContentWidgetPosition; + private _widgetPosition?: editorBrowser.IContentWidgetPosition; constructor( editor: editorBrowser.ICodeEditor, @@ -147,8 +147,8 @@ class CodeLensContentWidget implements editorBrowser.IContentWidget { }; } - getPosition(): editorBrowser.IContentWidgetPosition { - return this._widgetPosition; + getPosition(): editorBrowser.IContentWidgetPosition | null { + return this._widgetPosition || null; } isVisible(): boolean { diff --git a/src/vs/editor/contrib/documentSymbols/outlineTree.ts b/src/vs/editor/contrib/documentSymbols/outlineTree.ts index a77c8d1bd2e13b7c035b12f5a7309e4ab1448420..365b3e45c13996ece4c0e8d1ee1cba58c2a990bf 100644 --- a/src/vs/editor/contrib/documentSymbols/outlineTree.ts +++ b/src/vs/editor/contrib/documentSymbols/outlineTree.ts @@ -45,16 +45,19 @@ export class OutlineIdentityProvider implements IIdentityProvider { export class OutlineGroupTemplate { static id = 'OutlineGroupTemplate'; - - labelContainer: HTMLElement; - label: HighlightedLabel; + constructor( + readonly labelContainer: HTMLElement, + readonly label: HighlightedLabel, + ) { } } export class OutlineElementTemplate { static id = 'OutlineElementTemplate'; - container: HTMLElement; - iconLabel: IconLabel; - decoration: HTMLElement; + constructor( + readonly container: HTMLElement, + readonly iconLabel: IconLabel, + readonly decoration: HTMLElement, + ) { } } export class OutlineVirtualDelegate implements IListVirtualDelegate { @@ -80,7 +83,7 @@ export class OutlineGroupRenderer implements ITreeRenderer, index: number, template: OutlineGroupTemplate): void { @@ -109,7 +112,7 @@ export class OutlineElementRenderer implements ITreeRenderer, index: number, template: OutlineElementTemplate): void { diff --git a/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts b/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts index 717c7ba4d13cbef14c4976704254ead3575b1402..7d0dd7ce4e1dd84cb841331c593701d32ce9ca6c 100644 --- a/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts +++ b/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts @@ -34,18 +34,16 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC private readonly editor: ICodeEditor; private readonly toUnhook = new DisposableStore(); - private decorations: string[]; - private currentWordUnderMouse: IWordAtPosition | null; - private previousPromise: CancelablePromise | null; + private decorations: string[] = []; + private currentWordUnderMouse: IWordAtPosition | null = null; + private previousPromise: CancelablePromise | null = null; constructor( editor: ICodeEditor, @ITextModelService private readonly textModelResolverService: ITextModelService, @IModeService private readonly modeService: IModeService ) { - this.decorations = []; this.editor = editor; - this.previousPromise = null; let linkGesture = new ClickLinkGesture(editor); this.toUnhook.add(linkGesture); diff --git a/src/vs/editor/contrib/referenceSearch/referencesModel.ts b/src/vs/editor/contrib/referenceSearch/referencesModel.ts index 591092048d2f005245061d8034f2535bdd8a1711..35af7095f8b02b2f202cc68ddd061f596828abe3 100644 --- a/src/vs/editor/contrib/referenceSearch/referencesModel.ts +++ b/src/vs/editor/contrib/referenceSearch/referencesModel.ts @@ -89,7 +89,7 @@ export class FileReferences implements IDisposable { private _children: OneReference[]; private _preview?: FilePreview; - private _resolved: boolean; + private _resolved?: boolean; private _loadFailure: any; constructor(private readonly _parent: ReferencesModel, private readonly _uri: URI) { diff --git a/src/vs/editor/contrib/snippet/snippetParser.ts b/src/vs/editor/contrib/snippet/snippetParser.ts index 46d069cddbc91b6c11b6d2a3cd7f94a2960349b6..69b0f621302ed96313b7045c09354044bdbdb822 100644 --- a/src/vs/editor/contrib/snippet/snippetParser.ts +++ b/src/vs/editor/contrib/snippet/snippetParser.ts @@ -56,12 +56,8 @@ export class Scanner { || (ch >= CharCode.A && ch <= CharCode.Z); } - value: string; - pos: number; - - constructor() { - this.text(''); - } + value: string = ''; + pos: number = 0; text(value: string) { this.value = value; diff --git a/src/vs/editor/contrib/suggest/suggestAlternatives.ts b/src/vs/editor/contrib/suggest/suggestAlternatives.ts index 4d480fa8f4f97d7758d27f3eb753146fc1e0ea85..e8a6ea1a33846feacece07d05ccc16d055eef7ed 100644 --- a/src/vs/editor/contrib/suggest/suggestAlternatives.ts +++ b/src/vs/editor/contrib/suggest/suggestAlternatives.ts @@ -15,7 +15,7 @@ export class SuggestAlternatives { private readonly _ckOtherSuggestions: IContextKey; - private _index: number; + private _index: number = 0; private _model: CompletionModel | undefined; private _acceptNext: ((selected: ISelectedSuggestion) => any) | undefined; private _listener: IDisposable | undefined; diff --git a/src/vs/editor/contrib/suggest/wordContextKey.ts b/src/vs/editor/contrib/suggest/wordContextKey.ts index 9461b86d339d1117c8abbcec99232054a011e3f8..7ec28a4cbef7624b5ebd5521ff758856d7168912 100644 --- a/src/vs/editor/contrib/suggest/wordContextKey.ts +++ b/src/vs/editor/contrib/suggest/wordContextKey.ts @@ -13,7 +13,7 @@ export class WordContextKey extends Disposable { private readonly _ckAtEnd: IContextKey; - private _enabled: boolean; + private _enabled: boolean = false; private _selectionListener?: IDisposable; constructor( diff --git a/src/vs/workbench/api/browser/mainThreadCodeInsets.ts b/src/vs/workbench/api/browser/mainThreadCodeInsets.ts index 48938ad1f5b1d62e22a2c398fee1071efc9e6feb..1e23e14ce69ca5634ca0189820c8a9f0dccacc3a 100644 --- a/src/vs/workbench/api/browser/mainThreadCodeInsets.ts +++ b/src/vs/workbench/api/browser/mainThreadCodeInsets.ts @@ -21,7 +21,7 @@ class EditorWebviewZone implements IViewZone { readonly afterColumn: number; readonly heightInLines: number; - private _id: number; + private _id?: number; // suppressMouseDown?: boolean | undefined; // heightInPx?: number | undefined; // minWidthInPx?: number | undefined; @@ -46,7 +46,7 @@ class EditorWebviewZone implements IViewZone { } dispose(): void { - this.editor.changeViewZones(accessor => accessor.removeZone(this._id)); + this.editor.changeViewZones(accessor => this._id && accessor.removeZone(this._id)); } } diff --git a/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.ts b/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.ts index 804349ee484e8081852393c55f8238b467b07b9b..10037f6c21a3c1764bbd8f1da8e1e3eb4ef7ed06 100644 --- a/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.ts +++ b/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.ts @@ -109,7 +109,7 @@ class DocumentAndEditorStateDelta { class DocumentAndEditorState { - static compute(before: DocumentAndEditorState, after: DocumentAndEditorState): DocumentAndEditorStateDelta { + static compute(before: DocumentAndEditorState | undefined, after: DocumentAndEditorState): DocumentAndEditorStateDelta { if (!before) { return new DocumentAndEditorStateDelta( [], values(after.documents), @@ -146,7 +146,7 @@ class MainThreadDocumentAndEditorStateComputer { private readonly _toDispose = new DisposableStore(); private _toDisposeOnEditorRemove = new Map(); - private _currentState: DocumentAndEditorState; + private _currentState?: DocumentAndEditorState; private _activeEditorOrder: ActiveEditorOrder = ActiveEditorOrder.Editor; constructor( diff --git a/src/vs/workbench/api/common/extHostCodeInsets.ts b/src/vs/workbench/api/common/extHostCodeInsets.ts index cf7f22b692a3c5f22752c7eacfc51fd0e3debe62..066b25f2b026d96a5a39ed53e499afc0a1d87233 100644 --- a/src/vs/workbench/api/common/extHostCodeInsets.ts +++ b/src/vs/workbench/api/common/extHostCodeInsets.ts @@ -63,7 +63,7 @@ export class ExtHostEditorInsets implements ExtHostEditorInsetsShape { private readonly _uuid = generateUuid(); private _html: string = ''; - private _options: vscode.WebviewOptions; + private _options: vscode.WebviewOptions = Object.create(null); toWebviewResource(resource: vscode.Uri): vscode.Uri { return toWebviewResource(that._initData, this._uuid, resource); diff --git a/src/vs/workbench/api/common/extHostDocumentData.ts b/src/vs/workbench/api/common/extHostDocumentData.ts index 96f70218b48facebecc5718fa4889d12d9d6c65f..b44527a2b51e49edcbdb80f5fb40fc504555504e 100644 --- a/src/vs/workbench/api/common/extHostDocumentData.ts +++ b/src/vs/workbench/api/common/extHostDocumentData.ts @@ -26,7 +26,7 @@ export class ExtHostDocumentData extends MirrorTextModel { private _proxy: MainThreadDocumentsShape; private _languageId: string; private _isDirty: boolean; - private _document: vscode.TextDocument; + private _document?: vscode.TextDocument; private _textLines: vscode.TextLine[] = []; private _isDisposed: boolean = false; diff --git a/src/vs/workbench/api/common/extHostDocumentsAndEditors.ts b/src/vs/workbench/api/common/extHostDocumentsAndEditors.ts index 5157bb712674b8de2516c2664f809446c1a3345a..98002f78c717159646bcffda699419f0f3824f49 100644 --- a/src/vs/workbench/api/common/extHostDocumentsAndEditors.ts +++ b/src/vs/workbench/api/common/extHostDocumentsAndEditors.ts @@ -17,7 +17,7 @@ export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsSha private _disposables: Disposable[] = []; - private _activeEditorId: string | null; + private _activeEditorId: string | null = null; private readonly _editors = new Map(); private readonly _documents = new Map(); diff --git a/src/vs/workbench/api/common/extHostFileSystem.ts b/src/vs/workbench/api/common/extHostFileSystem.ts index 9f0519b636f04e2ae5c514478890b9b553ca71ed..4b82d98426b7fa51dc61f7f7d2c3b5a668a2e34b 100644 --- a/src/vs/workbench/api/common/extHostFileSystem.ts +++ b/src/vs/workbench/api/common/extHostFileSystem.ts @@ -155,7 +155,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape { private readonly _usedSchemes = new Set(); private readonly _watches = new Map(); - private _linkProviderRegistration: IDisposable; + private _linkProviderRegistration?: IDisposable; private _handlePool: number = 0; readonly fileSystem: vscode.FileSystem; diff --git a/src/vs/workbench/api/common/extHostMemento.ts b/src/vs/workbench/api/common/extHostMemento.ts index 4502bacd67120bb6462f0a63431c69044d7fb282..d0e68010a17ca88d487bd1dd50310dc9f7902cff 100644 --- a/src/vs/workbench/api/common/extHostMemento.ts +++ b/src/vs/workbench/api/common/extHostMemento.ts @@ -14,7 +14,7 @@ export class ExtensionMemento implements IExtensionMemento { private readonly _storage: ExtHostStorage; private readonly _init: Promise; - private _value: { [n: string]: any; }; + private _value?: { [n: string]: any; }; private readonly _storageListener: IDisposable; constructor(id: string, global: boolean, storage: ExtHostStorage) { @@ -41,7 +41,7 @@ export class ExtensionMemento implements IExtensionMemento { get(key: string): T | undefined; get(key: string, defaultValue: T): T; get(key: string, defaultValue?: T): T { - let value = this._value[key]; + let value = this._value![key]; if (typeof value === 'undefined') { value = defaultValue; } @@ -49,8 +49,8 @@ export class ExtensionMemento implements IExtensionMemento { } update(key: string, value: any): Promise { - this._value[key] = value; - return this._storage.setValue(this._shared, this._id, this._value); + this._value![key] = value; + return this._storage.setValue(this._shared, this._id, this._value!); } dispose(): void { diff --git a/src/vs/workbench/api/common/extHostOutput.ts b/src/vs/workbench/api/common/extHostOutput.ts index 09ae3c549fc06622b67bbf91739de36fc360ab21..3580d0e6679c057b4b03f3a3118765a63c6a9475 100644 --- a/src/vs/workbench/api/common/extHostOutput.ts +++ b/src/vs/workbench/api/common/extHostOutput.ts @@ -27,6 +27,7 @@ export abstract class AbstractExtHostOutputChannel extends Disposable implements this._name = name; this._proxy = proxy; this._id = proxy.$register(this.name, log, file); + this._disposed = false; this._offset = 0; } @@ -121,7 +122,7 @@ export class ExtHostOutputService implements ExtHostOutputServiceShape { private readonly _logsLocation: URI; private readonly _proxy: MainThreadOutputServiceShape; private readonly _channels: Map = new Map(); - private _visibleChannelDisposable: IDisposable; + private _visibleChannelDisposable?: IDisposable; constructor(factory: IOutputChannelFactory, logsLocation: URI, mainContext: IMainContext) { this._factory = factory; diff --git a/src/vs/workbench/browser/parts/editor/breadcrumbs.ts b/src/vs/workbench/browser/parts/editor/breadcrumbs.ts index ca8fb69dd8c1af184368712932ce558335e22eb1..85aed7a9bf40ee171d0e1475835805b9938aa0dd 100644 --- a/src/vs/workbench/browser/parts/editor/breadcrumbs.ts +++ b/src/vs/workbench/browser/parts/editor/breadcrumbs.ts @@ -29,7 +29,7 @@ export interface IBreadcrumbsService { export class BreadcrumbsService implements IBreadcrumbsService { - _serviceBrand: ServiceIdentifier; + _serviceBrand: any; private readonly _map = new Map(); @@ -55,8 +55,8 @@ registerSingleton(IBreadcrumbsService, BreadcrumbsService, true); export abstract class BreadcrumbsConfig { - name: string; - onDidChange: Event; + abstract get name(): string; + abstract get onDidChange(): Event; abstract getValue(overrides?: IConfigurationOverrides): T; abstract updateValue(value: T, overrides?: IConfigurationOverrides): Promise; diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensionProfileService.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensionProfileService.ts index 283c3406d8f4cc4bede50c8844b967c0913330ab..af073fb2c6f7803f5ad9d970c88b75c15ce577cc 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensionProfileService.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensionProfileService.ts @@ -5,7 +5,7 @@ import * as nls from 'vs/nls'; import { Event, Emitter } from 'vs/base/common/event'; -import { IInstantiationService, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation'; +import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IExtensionHostProfile, ProfileSession, IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { Disposable, toDisposable, MutableDisposable } from 'vs/base/common/lifecycle'; import { onUnexpectedError } from 'vs/base/common/errors'; @@ -23,7 +23,7 @@ import { CommandsRegistry } from 'vs/platform/commands/common/commands'; export class ExtensionHostProfileService extends Disposable implements IExtensionHostProfileService { - _serviceBrand: ServiceIdentifier; + _serviceBrand: any; private readonly _onDidChangeState: Emitter = this._register(new Emitter()); public readonly onDidChangeState: Event = this._onDidChangeState.event; @@ -34,7 +34,7 @@ export class ExtensionHostProfileService extends Disposable implements IExtensio private readonly _unresponsiveProfiles = new Map(); private _profile: IExtensionHostProfile | null; private _profileSession: ProfileSession | null; - private _state: ProfileSessionState; + private _state: ProfileSessionState = ProfileSessionState.None; private profilingStatusBarIndicator: IStatusbarEntryAccessor | undefined; private readonly profilingStatusBarIndicatorLabelUpdater = this._register(new MutableDisposable()); diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts index 3b81b03291c536a2f27627cdbdd56c1e6e8fd251..11aacd0695543f127e503e822d898ac19ad4a96b 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts @@ -19,9 +19,9 @@ import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; import Severity from 'vs/base/common/severity'; abstract class RepoInfo { - readonly base: string; - readonly owner: string; - readonly repo: string; + abstract get base(): string; + abstract get owner(): string; + abstract get repo(): string; static fromExtension(desc: IExtensionDescription): RepoInfo | undefined { diff --git a/src/vs/workbench/contrib/markers/browser/markersFileDecorations.ts b/src/vs/workbench/contrib/markers/browser/markersFileDecorations.ts index ce1755e1f0932cbb76ba5ca190f6e3a76a15cebe..7c13cb5575efe6d70f0df35102001507d1b1102e 100644 --- a/src/vs/workbench/contrib/markers/browser/markersFileDecorations.ts +++ b/src/vs/workbench/contrib/markers/browser/markersFileDecorations.ts @@ -56,8 +56,8 @@ class MarkersDecorationsProvider implements IDecorationsProvider { class MarkersFileDecorations implements IWorkbenchContribution { private readonly _disposables: IDisposable[]; - private _provider: IDisposable; - private _enabled: boolean; + private _provider?: IDisposable; + private _enabled?: boolean; constructor( @IMarkerService private readonly _markerService: IMarkerService, diff --git a/src/vs/workbench/contrib/performance/electron-browser/perfviewEditor.ts b/src/vs/workbench/contrib/performance/electron-browser/perfviewEditor.ts index 052e4bd2f5c7dada12b496dd57f9347e1781e737..f0f73e07083f66e36c3570b45eab4ef310bd1d24 100644 --- a/src/vs/workbench/contrib/performance/electron-browser/perfviewEditor.ts +++ b/src/vs/workbench/contrib/performance/electron-browser/perfviewEditor.ts @@ -262,11 +262,11 @@ class PerfModelContentProvider implements ITextModelContentProvider { } abstract class LoaderStats { - readonly amdLoad: (string | number)[][]; - readonly amdInvoke: (string | number)[][]; - readonly nodeRequire: (string | number)[][]; - readonly nodeEval: (string | number)[][]; - readonly nodeRequireTotal: number; + abstract get amdLoad(): (string | number)[][]; + abstract get amdInvoke(): (string | number)[][]; + abstract get nodeRequire(): (string | number)[][]; + abstract get nodeEval(): (string | number)[][]; + abstract get nodeRequireTotal(): number; static get(): LoaderStats { diff --git a/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts b/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts index ec5d1ce087b3596de34d59dd9d4102f09286a92f..54888ea75b7f515add3fa8bfd271ae46539c816b 100644 --- a/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts +++ b/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts @@ -21,7 +21,7 @@ export class SnippetCompletion implements CompletionItem { label: string; detail: string; insertText: string; - documentation: MarkdownString; + documentation?: MarkdownString; range: IRange; sortText: string; kind: CompletionItemKind; diff --git a/src/vs/workbench/contrib/snippets/browser/tabCompletion.ts b/src/vs/workbench/contrib/snippets/browser/tabCompletion.ts index 8154a9da36498c5dba5d78ec3db7c985bdbd3b31..569598138e8e380b7b0cf65f39463d5f3ead99a7 100644 --- a/src/vs/workbench/contrib/snippets/browser/tabCompletion.ts +++ b/src/vs/workbench/contrib/snippets/browser/tabCompletion.ts @@ -31,8 +31,8 @@ export class TabCompletionController implements editorCommon.IEditorContribution private _hasSnippets: IContextKey; private _activeSnippets: Snippet[] = []; - private _enabled: boolean; - private _selectionListener: IDisposable; + private _enabled?: boolean; + private _selectionListener?: IDisposable; private readonly _configListener: IDisposable; constructor( diff --git a/src/vs/workbench/contrib/splash/electron-browser/partsSplash.contribution.ts b/src/vs/workbench/contrib/splash/electron-browser/partsSplash.contribution.ts index 179c565335d94a40b5f3f80cbc80e2fc3300823d..011b14816fb79ae6a6c2c7ce40246857ff05d671 100644 --- a/src/vs/workbench/contrib/splash/electron-browser/partsSplash.contribution.ts +++ b/src/vs/workbench/contrib/splash/electron-browser/partsSplash.contribution.ts @@ -32,8 +32,8 @@ class PartsSplash { private readonly _disposables = new DisposableStore(); - private _didChangeTitleBarStyle: boolean; - private _lastBaseTheme: string; + private _didChangeTitleBarStyle?: boolean; + private _lastBaseTheme?: string; private _lastBackground?: string; constructor( diff --git a/src/vs/workbench/services/bulkEdit/browser/bulkEditService.ts b/src/vs/workbench/services/bulkEdit/browser/bulkEditService.ts index f698782a600bfa704a80717135f69ba16ecd90c5..fff264d6463f0864beca40d9a4979be510535a6b 100644 --- a/src/vs/workbench/services/bulkEdit/browser/bulkEditService.ts +++ b/src/vs/workbench/services/bulkEdit/browser/bulkEditService.ts @@ -51,7 +51,7 @@ class ModelEditTask implements IDisposable { protected _edits: IIdentifiedSingleEditOperation[]; private _expectedModelVersionId: number | undefined; - protected _newEol: EndOfLineSequence; + protected _newEol: EndOfLineSequence | undefined; constructor(private readonly _modelReference: IReference) { this._model = this._modelReference.object.textEditorModel; @@ -142,7 +142,7 @@ class BulkEditModel implements IDisposable { private _textModelResolverService: ITextModelService; private _edits = new Map(); private _editor: ICodeEditor | undefined; - private _tasks: ModelEditTask[]; + private _tasks: ModelEditTask[] | undefined; private _progress: IProgress; constructor( @@ -159,7 +159,7 @@ class BulkEditModel implements IDisposable { } dispose(): void { - this._tasks = dispose(this._tasks); + this._tasks = dispose(this._tasks!); } addEdit(edit: ResourceTextEdit): void { @@ -196,7 +196,7 @@ class BulkEditModel implements IDisposable { } value.forEach(edit => task.addEdit(edit)); - this._tasks.push(task); + this._tasks!.push(task); this._progress.report(undefined); }); promises.push(promise); @@ -208,7 +208,7 @@ class BulkEditModel implements IDisposable { } validate(): ValidationResult { - for (const task of this._tasks) { + for (const task of this._tasks!) { const result = task.validate(); if (!result.canApply) { return result; @@ -218,7 +218,7 @@ class BulkEditModel implements IDisposable { } apply(): void { - for (const task of this._tasks) { + for (const task of this._tasks!) { task.apply(); this._progress.report(undefined); } diff --git a/src/vs/workbench/services/timer/electron-browser/timerService.ts b/src/vs/workbench/services/timer/electron-browser/timerService.ts index ffc0854905f98b1468e9df1de23dfad9f33023fe..45d1e342b7691ae2cd130d0df2e91d7c4391dc4d 100644 --- a/src/vs/workbench/services/timer/electron-browser/timerService.ts +++ b/src/vs/workbench/services/timer/electron-browser/timerService.ts @@ -305,7 +305,7 @@ class TimerService implements ITimerService { _serviceBrand: any; - private _startupMetrics: Promise; + private _startupMetrics?: Promise; constructor( @IWindowsService private readonly _windowsService: IWindowsService,