提交 4eb2bf39 编写于 作者: M Matt Bierner

Use DisposableStore

上级 e93afe17
......@@ -260,7 +260,7 @@ export class Sash extends Disposable {
style.innerHTML = `* { cursor: ${cursor} !important; }`;
};
const disposables: IDisposable[] = [];
const disposables = new DisposableStore();
updateStyle();
......@@ -284,7 +284,7 @@ export class Sash extends Disposable {
removeClass(this.el, 'active');
this._onDidEnd.fire();
dispose(disposables);
disposables.dispose();
for (const iframe of iframes) {
iframe.style.pointerEvents = 'auto';
......
......@@ -31,7 +31,7 @@ import { ExtHostConfiguration } from 'vs/workbench/api/common/extHostConfigurati
import { ExtHostTerminalService, ExtHostTerminal } from 'vs/workbench/api/node/extHostTerminalService';
import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace';
import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IDisposable, DisposableStore } from 'vs/base/common/lifecycle';
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
namespace TaskDefinitionDTO {
......@@ -377,7 +377,7 @@ class CustomExecutionData implements IDisposable {
private static waitForDimensionsTimeoutInMs: number = 5000;
private _cancellationSource?: CancellationTokenSource;
private readonly _onTaskExecutionComplete: Emitter<CustomExecutionData> = new Emitter<CustomExecutionData>();
private readonly _disposables: IDisposable[] = [];
private readonly _disposables = new DisposableStore();
private terminal?: vscode.Terminal;
private terminalId?: number;
public result: number | undefined;
......@@ -389,7 +389,7 @@ class CustomExecutionData implements IDisposable {
public dispose(): void {
this._cancellationSource = undefined;
dispose(this._disposables);
this._disposables.dispose();
}
public get onTaskExecutionComplete(): Event<CustomExecutionData> {
......@@ -426,7 +426,7 @@ class CustomExecutionData implements IDisposable {
const callbackTerminals: vscode.Terminal[] = this.terminalService.terminals.filter((terminal) => terminal._id === terminalId);
if (!callbackTerminals || callbackTerminals.length === 0) {
this._disposables.push(this.terminalService.onDidOpenTerminal(this.onDidOpenTerminal.bind(this)));
this._disposables.add(this.terminalService.onDidOpenTerminal(this.onDidOpenTerminal.bind(this)));
return;
}
......@@ -462,9 +462,9 @@ class CustomExecutionData implements IDisposable {
}
this._cancellationSource = new CancellationTokenSource();
this._disposables.push(this._cancellationSource);
this._disposables.add(this._cancellationSource);
this._disposables.push(this.terminalService.onDidCloseTerminal(this.onDidCloseTerminal.bind(this)));
this._disposables.add(this.terminalService.onDidCloseTerminal(this.onDidCloseTerminal.bind(this)));
// Regardless of how the task completes, we are done with this custom execution task.
this.customExecution.callback(terminalRenderer, this._cancellationSource.token).then(
......
......@@ -9,23 +9,23 @@ import { localize } from 'vs/nls';
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { IDecorationsProvider, IDecorationData } from 'vs/workbench/services/decorations/browser/decorations';
import { listInvalidItemForeground } from 'vs/platform/theme/common/colorRegistry';
import { dispose, IDisposable } from 'vs/base/common/lifecycle';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { IExplorerService } from 'vs/workbench/contrib/files/common/files';
export class ExplorerDecorationsProvider implements IDecorationsProvider {
readonly label: string = localize('label', "Explorer");
private _onDidChange = new Emitter<URI[]>();
private toDispose: IDisposable[];
private readonly toDispose = new DisposableStore();
constructor(
@IExplorerService private explorerService: IExplorerService,
@IWorkspaceContextService contextService: IWorkspaceContextService
) {
this.toDispose = [];
this.toDispose.push(contextService.onDidChangeWorkspaceFolders(e => {
this.toDispose.add(this._onDidChange);
this.toDispose.add(contextService.onDidChangeWorkspaceFolders(e => {
this._onDidChange.fire(e.changed.concat(e.added).map(wf => wf.uri));
}));
this.toDispose.push(explorerService.onDidChangeItem(change => {
this.toDispose.add(explorerService.onDidChangeItem(change => {
if (change.item) {
this._onDidChange.fire([change.item.resource]);
}
......@@ -55,7 +55,7 @@ export class ExplorerDecorationsProvider implements IDecorationsProvider {
return undefined;
}
dispose(): IDisposable[] {
return dispose(this.toDispose);
dispose(): void {
this.toDispose.dispose();
}
}
......@@ -1158,7 +1158,7 @@ export class DirtyDiffWorkbenchController extends Disposable implements ext.IWor
private enabled = false;
private models: ITextModel[] = [];
private items: { [modelId: string]: DirtyDiffItem; } = Object.create(null);
private transientDisposables: IDisposable[] = [];
private readonly transientDisposables = this._register(new DisposableStore());
private stylesheet: HTMLStyleElement;
constructor(
......@@ -1204,7 +1204,7 @@ export class DirtyDiffWorkbenchController extends Disposable implements ext.IWor
this.disable();
}
this.transientDisposables.push(this.editorService.onDidVisibleEditorsChange(() => this.onEditorsChanged()));
this.transientDisposables.add(this.editorService.onDidVisibleEditorsChange(() => this.onEditorsChanged()));
this.onEditorsChanged();
this.enabled = true;
}
......@@ -1214,7 +1214,7 @@ export class DirtyDiffWorkbenchController extends Disposable implements ext.IWor
return;
}
this.transientDisposables = dispose(this.transientDisposables);
this.transientDisposables.clear();
this.models.forEach(m => this.items[m.id].dispose());
this.models = [];
this.items = Object.create(null);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册