提交 29b13ead 编写于 作者: J Johannes Rieken

use DisposableStore over IDisposable[]

上级 a3ff1a4e
......@@ -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 {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册