提交 3d3f1bae 编写于 作者: M Matt Bierner

Fixing a few more dispoable cases

上级 8de04a74
......@@ -132,7 +132,7 @@ export class View extends ViewEventHandler {
this._setLayout();
// Pointer handler
this.pointerHandler = new PointerHandler(this._context, viewController, this.createPointerHandlerHelper());
this.pointerHandler = this._register(new PointerHandler(this._context, viewController, this.createPointerHandlerHelper()));
this._register(model.addEventListener((events: viewEvents.ViewEvent[]) => {
this.eventDispatcher.emitMany(events);
......@@ -342,8 +342,6 @@ export class View extends ViewEventHandler {
this.eventDispatcher.removeEventHandler(this);
this.outgoingEvents.dispose();
this.pointerHandler.dispose();
this.viewLines.dispose();
// Destroy view parts
......
......@@ -186,7 +186,7 @@ export class ConsoleLogService extends AbstractLogService implements ILogService
export class MultiplexLogService extends AbstractLogService implements ILogService {
_serviceBrand: any;
constructor(private logServices: ILogService[]) {
constructor(private readonly logServices: ReadonlyArray<ILogService>) {
super();
if (logServices.length) {
this.setLevel(logServices[0].getLevel());
......
......@@ -7,7 +7,7 @@ import * as dom from 'vs/base/browser/dom';
import * as nls from 'vs/nls';
import { renderMarkdown } from 'vs/base/browser/htmlContentRenderer';
import { onUnexpectedError } from 'vs/base/common/errors';
import { Disposable } from 'vs/base/common/lifecycle';
import { IDisposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri';
import { IDataSource, IFilter, IRenderer as ITreeRenderer, ITree } from 'vs/base/parts/tree/browser/tree';
import { IOpenerService } from 'vs/platform/opener/common/opener';
......@@ -62,7 +62,7 @@ interface ICommentThreadTemplateData {
icon: HTMLImageElement;
userName: HTMLSpanElement;
commentText: HTMLElement;
disposables: Disposable[];
disposables: IDisposable[];
}
export class CommentsModelRenderer implements ITreeRenderer {
......
......@@ -25,7 +25,7 @@ import { Color, RGBA } from 'vs/base/common/color';
import { onUnexpectedError } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { KeyCode } from 'vs/base/common/keyCodes';
import { dispose, IDisposable, Disposable } from 'vs/base/common/lifecycle';
import { dispose, IDisposable, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { ISpliceable } from 'vs/base/common/sequence';
import { escapeRegExpCharacters, startsWith } from 'vs/base/common/strings';
import { URI } from 'vs/base/common/uri';
......@@ -941,11 +941,11 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre
const deprecationWarningElement = DOM.append(container, $('.setting-item-deprecation-message'));
const toDispose: IDisposable[] = [];
const toDispose = new DisposableStore();
const checkbox = new Checkbox({ actionClassName: 'setting-value-checkbox', isChecked: true, title: '', inputActiveOptionBorder: undefined });
controlElement.appendChild(checkbox.domNode);
toDispose.push(checkbox);
toDispose.push(checkbox.onChange(() => {
toDispose.add(checkbox);
toDispose.add(checkbox.onChange(() => {
if (template.onChange) {
template.onChange(checkbox.checked);
}
......@@ -953,7 +953,7 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre
// Need to listen for mouse clicks on description and toggle checkbox - use target ID for safety
// Also have to ignore embedded links - too buried to stop propagation
toDispose.push(DOM.addDisposableListener(descriptionElement, DOM.EventType.MOUSE_DOWN, (e) => {
toDispose.add(DOM.addDisposableListener(descriptionElement, DOM.EventType.MOUSE_DOWN, (e) => {
const targetElement = <HTMLElement>e.target;
const targetId = descriptionElement.getAttribute('checkbox_label_target_id');
......@@ -970,10 +970,10 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre
checkbox.domNode.classList.add(AbstractSettingRenderer.CONTROL_CLASS);
const toolbarContainer = DOM.append(container, $('.setting-toolbar-container'));
const toolbar = this.renderSettingToolbar(toolbarContainer);
toDispose.push(toolbar);
toDispose.add(toolbar);
const template: ISettingBoolItemTemplate = {
toDispose,
toDispose: [toDispose],
containerElement: container,
categoryElement,
......@@ -989,16 +989,16 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre
this.addSettingElementFocusHandler(template);
// Prevent clicks from being handled by list
toDispose.push(DOM.addDisposableListener(controlElement, 'mousedown', (e: IMouseEvent) => e.stopPropagation()));
toDispose.add(DOM.addDisposableListener(controlElement, 'mousedown', (e: IMouseEvent) => e.stopPropagation()));
toDispose.push(DOM.addStandardDisposableListener(controlElement, 'keydown', (e: StandardKeyboardEvent) => {
toDispose.add(DOM.addStandardDisposableListener(controlElement, 'keydown', (e: StandardKeyboardEvent) => {
if (e.keyCode === KeyCode.Escape) {
e.browserEvent.stopPropagation();
}
}));
toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_ENTER, e => container.classList.add('mouseover')));
toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_LEAVE, e => container.classList.remove('mouseover')));
toDispose.add(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_ENTER, e => container.classList.add('mouseover')));
toDispose.add(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_LEAVE, e => container.classList.remove('mouseover')));
return template;
}
......
......@@ -51,10 +51,10 @@ export abstract class AsbtractOutputChannelModelService {
export abstract class AbstractFileOutputChannelModel extends Disposable implements IOutputChannelModel {
protected _onDidAppendedContent = new Emitter<void>();
protected readonly _onDidAppendedContent = this._register(new Emitter<void>());
readonly onDidAppendedContent: Event<void> = this._onDidAppendedContent.event;
protected _onDispose = new Emitter<void>();
protected readonly _onDispose = this._register(new Emitter<void>());
readonly onDispose: Event<void> = this._onDispose.event;
protected modelUpdater: RunOnceScheduler;
......
......@@ -27,15 +27,16 @@ import { IEmbeddedLanguagesMap as IEmbeddedLanguagesMap2, IGrammar, ITokenTypeMa
import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
export class TMScopeRegistry {
export class TMScopeRegistry extends Disposable {
private _scopeNameToLanguageRegistration: { [scopeName: string]: TMLanguageRegistration; };
private _encounteredLanguages: boolean[];
private readonly _onDidEncounterLanguage = new Emitter<LanguageId>();
private readonly _onDidEncounterLanguage = this._register(new Emitter<LanguageId>());
public readonly onDidEncounterLanguage: Event<LanguageId> = this._onDidEncounterLanguage.event;
constructor() {
super();
this.reset();
}
......
......@@ -13,6 +13,7 @@ import { IExtensionService } from 'vs/workbench/services/extensions/common/exten
import { Event, Emitter } from 'vs/base/common/event';
import { FileIconThemeData } from 'vs/workbench/services/themes/common/fileIconThemeData';
import { URI } from 'vs/base/common/uri';
import { Disposable } from 'vs/base/common/lifecycle';
const iconThemeExtPoint = ExtensionsRegistry.registerExtensionPoint<IThemeExtensionPoint[]>({
extensionPoint: 'iconThemes',
......@@ -46,16 +47,16 @@ export interface FileIconThemeChangeEvent {
added: FileIconThemeData[];
}
export class FileIconThemeStore {
export class FileIconThemeStore extends Disposable {
private knownIconThemes: FileIconThemeData[];
private readonly onDidChangeEmitter: Emitter<FileIconThemeChangeEvent>;
public get onDidChange(): Event<FileIconThemeChangeEvent> { return this.onDidChangeEmitter.event; }
private readonly onDidChangeEmitter = this._register(new Emitter<FileIconThemeChangeEvent>());
readonly onDidChange: Event<FileIconThemeChangeEvent> = this.onDidChangeEmitter.event;
constructor(@IExtensionService private readonly extensionService: IExtensionService) {
super();
this.knownIconThemes = [];
this.onDidChangeEmitter = new Emitter<FileIconThemeChangeEvent>();
this.initialize();
}
......@@ -167,5 +168,4 @@ export class FileIconThemeStore {
return this.knownIconThemes;
});
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册