From 29b13ead34404ea71155c2bfd8940b6c1c04315f Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 7 Jun 2019 17:33:37 +0200 Subject: [PATCH] use DisposableStore over IDisposable[] --- src/vs/editor/contrib/format/formatActions.ts | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/vs/editor/contrib/format/formatActions.ts b/src/vs/editor/contrib/format/formatActions.ts index 8b31fb82ba1..1c6ad1d7091 100644 --- a/src/vs/editor/contrib/format/formatActions.ts +++ b/src/vs/editor/contrib/format/formatActions.ts @@ -6,7 +6,7 @@ import { isNonEmptyArray } from 'vs/base/common/arrays'; import { CancellationToken } from 'vs/base/common/cancellation'; import { KeyChord, KeyCode, KeyMod } from 'vs/base/common/keyCodes'; -import { dispose, IDisposable } from 'vs/base/common/lifecycle'; +import { DisposableStore } from 'vs/base/common/lifecycle'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorAction, registerEditorAction, registerEditorContribution, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService'; @@ -30,18 +30,18 @@ class FormatOnType implements editorCommon.IEditorContribution { private static readonly ID = 'editor.contrib.autoFormat'; private readonly _editor: ICodeEditor; - private _callOnDispose: IDisposable[] = []; - private _callOnModel: IDisposable[] = []; + private readonly _callOnDispose = new DisposableStore(); + private readonly _callOnModel = new DisposableStore(); constructor( editor: ICodeEditor, @IEditorWorkerService private readonly _workerService: IEditorWorkerService ) { this._editor = editor; - this._callOnDispose.push(editor.onDidChangeConfiguration(() => this._update())); - this._callOnDispose.push(editor.onDidChangeModel(() => this._update())); - this._callOnDispose.push(editor.onDidChangeModelLanguage(() => this._update())); - this._callOnDispose.push(OnTypeFormattingEditProviderRegistry.onDidChange(this._update, this)); + this._callOnDispose.add(editor.onDidChangeConfiguration(() => this._update())); + this._callOnDispose.add(editor.onDidChangeModel(() => this._update())); + this._callOnDispose.add(editor.onDidChangeModelLanguage(() => this._update())); + this._callOnDispose.add(OnTypeFormattingEditProviderRegistry.onDidChange(this._update, this)); } getId(): string { @@ -49,14 +49,14 @@ class FormatOnType implements editorCommon.IEditorContribution { } dispose(): void { - this._callOnDispose = dispose(this._callOnDispose); - this._callOnModel = dispose(this._callOnModel); + this._callOnDispose.dispose(); + this._callOnModel.dispose(); } private _update(): void { // clean up - this._callOnModel = dispose(this._callOnModel); + this._callOnModel.clear(); // we are disabled if (!this._editor.getConfiguration().contribInfo.formatOnType) { @@ -81,7 +81,7 @@ class FormatOnType implements editorCommon.IEditorContribution { for (let ch of support.autoFormatTriggerCharacters) { triggerChars.add(ch.charCodeAt(0)); } - this._callOnModel.push(this._editor.onDidType((text: string) => { + this._callOnModel.add(this._editor.onDidType((text: string) => { let lastCharCode = text.charCodeAt(text.length - 1); if (triggerChars.has(lastCharCode)) { this._trigger(String.fromCharCode(lastCharCode)); @@ -156,20 +156,17 @@ class FormatOnPaste implements editorCommon.IEditorContribution { private static readonly ID = 'editor.contrib.formatOnPaste'; - private _callOnDispose: IDisposable[]; - private _callOnModel: IDisposable[]; + private readonly _callOnDispose = new DisposableStore(); + private readonly _callOnModel = new DisposableStore(); constructor( private readonly editor: ICodeEditor, @IInstantiationService private readonly _instantiationService: IInstantiationService, ) { - this._callOnDispose = []; - this._callOnModel = []; - - this._callOnDispose.push(editor.onDidChangeConfiguration(() => this._update())); - this._callOnDispose.push(editor.onDidChangeModel(() => this._update())); - this._callOnDispose.push(editor.onDidChangeModelLanguage(() => this._update())); - this._callOnDispose.push(DocumentRangeFormattingEditProviderRegistry.onDidChange(this._update, this)); + this._callOnDispose.add(editor.onDidChangeConfiguration(() => this._update())); + this._callOnDispose.add(editor.onDidChangeModel(() => this._update())); + this._callOnDispose.add(editor.onDidChangeModelLanguage(() => this._update())); + this._callOnDispose.add(DocumentRangeFormattingEditProviderRegistry.onDidChange(this._update, this)); } getId(): string { @@ -177,14 +174,14 @@ class FormatOnPaste implements editorCommon.IEditorContribution { } dispose(): void { - this._callOnDispose = dispose(this._callOnDispose); - this._callOnModel = dispose(this._callOnModel); + this._callOnDispose.dispose(); + this._callOnModel.dispose(); } private _update(): void { // clean up - this._callOnModel = dispose(this._callOnModel); + this._callOnModel.dispose(); // we are disabled if (!this.editor.getConfiguration().contribInfo.formatOnPaste) { @@ -201,7 +198,7 @@ class FormatOnPaste implements editorCommon.IEditorContribution { return; } - this._callOnModel.push(this.editor.onDidPaste(range => this._trigger(range))); + this._callOnModel.add(this.editor.onDidPaste(range => this._trigger(range))); } private _trigger(range: Range): void { -- GitLab