Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
430 changes: 272 additions & 158 deletions build/package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"ansi-colors": "^3.2.3",
"byline": "^5.0.0",
"debug": "^4.3.2",
"dmg-builder": "^26.7.0",
"dmg-builder": "26.5.0",
"esbuild": "0.27.2",
"extract-zip": "^2.0.1",
"gulp-merge-json": "^2.1.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ export class WorkerBasedDocumentDiffProvider implements IDocumentDiffProvider, I

public dispose(): void {
this.diffAlgorithmOnDidChangeSubscription?.dispose();
this.onDidChangeEventEmitter.dispose();
}

async computeDiff(original: ITextModel, modified: ITextModel, options: IDocumentDiffProviderOptions, cancellationToken: CancellationToken): Promise<IDocumentDiff> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export class BracketPairsTree extends Disposable {
private readonly getLanguageConfiguration: (languageId: string) => ResolvedLanguageConfiguration
) {
super();
this.didChangeEmitter = new Emitter<void>();
this.didChangeEmitter = this._register(new Emitter<void>());
this.denseKeyProvider = new DenseKeyProvider<string>();
this.brackets = new LanguageAgnosticBracketTokens(this.denseKeyProvider, this.getLanguageConfiguration);
this.onDidChange = this.didChangeEmitter.event;
Expand Down
2 changes: 1 addition & 1 deletion src/vs/editor/common/model/textModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati
private readonly _guidesTextModelPart: GuidesTextModelPart;
public get guides(): IGuidesTextModelPart { return this._guidesTextModelPart; }

private readonly _attachedViews = new AttachedViews();
private readonly _attachedViews = this._register(new AttachedViews());
private readonly _viewModels = new Set<IViewModel>();

constructor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import { equals } from '../../../../base/common/arrays.js';
import { RunOnceScheduler } from '../../../../base/common/async.js';
import { Emitter, Event } from '../../../../base/common/event.js';
import { Disposable } from '../../../../base/common/lifecycle.js';
import { Disposable, IDisposable } from '../../../../base/common/lifecycle.js';
import { LineRange } from '../../core/ranges/lineRange.js';
import { StandardTokenType } from '../../encodedTokenAttributes.js';
import { ILanguageIdCodec } from '../../languages.js';
Expand All @@ -21,7 +21,7 @@ import { equalsIfDefinedC, thisEqualsC, arrayEqualsC } from '../../../../base/co
/**
* @internal
*/
export class AttachedViews {
export class AttachedViews implements IDisposable {
private readonly _onDidChangeVisibleRanges = new Emitter<{ view: IAttachedView; state: AttachedViewState | undefined }>();
public readonly onDidChangeVisibleRanges = this._onDidChangeVisibleRanges.event;

Expand Down Expand Up @@ -57,6 +57,10 @@ export class AttachedViews {
this._onDidChangeVisibleRanges.fire({ view, state: undefined });
this._viewsChanged.trigger(undefined);
}

public dispose(): void {
this._onDidChangeVisibleRanges.dispose();
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export class MinimapTokensColorTracker extends Disposable {
private _colors!: RGBA8[];
private _backgroundIsLight!: boolean;

private readonly _onDidChange = new Emitter<void>();
private readonly _onDidChange = this._register(new Emitter<void>());
public readonly onDidChange: Event<void> = this._onDidChange.event;

private constructor() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ export class CodeLensContribution implements IEditorContribution {
this._localDispose();
this._localToDispose.dispose();
this._disposables.dispose();
this._resolveCodeLensesScheduler.dispose();
this._oldCodeLensModels.dispose();
this._currentCodeLensModel?.dispose();
}
Expand Down
2 changes: 1 addition & 1 deletion src/vs/editor/contrib/find/browser/findController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export class CommonFindController extends Disposable implements IEditorContribut
this._notificationService = notificationService;
this._hoverService = hoverService;

this._updateHistoryDelayer = new Delayer<void>(500);
this._updateHistoryDelayer = this._register(new Delayer<void>(500));
this._state = this._register(new FindReplaceState());
this.loadQueryState();
this._register(this._state.onFindReplaceStateChange((e) => this._onStateChanged(e)));
Expand Down
4 changes: 3 additions & 1 deletion src/vs/editor/contrib/folding/browser/foldingModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { IModelDecorationOptions, IModelDecorationsChangeAccessor, IModelDeltaDe
import { FoldingRegion, FoldingRegions, ILineRange, FoldRange, FoldSource } from './foldingRanges.js';
import { hash } from '../../../../base/common/hash.js';
import { SelectedLines } from './folding.js';
import { IDisposable } from '../../../../base/common/lifecycle.js';

export interface IDecorationProvider {
getDecorationOption(isCollapsed: boolean, isHidden: boolean, isManual: boolean): IModelDecorationOptions;
Expand All @@ -28,7 +29,7 @@ interface ILineMemento extends ILineRange {

export type CollapseMemento = ILineMemento[];

export class FoldingModel {
export class FoldingModel implements IDisposable {
private readonly _textModel: ITextModel;
private readonly _decorationProvider: IDecorationProvider;

Expand Down Expand Up @@ -229,6 +230,7 @@ export class FoldingModel {

public dispose() {
this._decorationProvider.removeDecorations(this._editorDecorationIds);
this._updateEventEmitter.dispose();
}

getAllRegionsAtLine(lineNumber: number, filter?: (r: FoldingRegion, level: number) => boolean): FoldingRegion[] {
Expand Down
3 changes: 2 additions & 1 deletion src/vs/editor/contrib/folding/browser/hiddenRangeModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { IModelContentChangedEvent } from '../../../common/textModelEvents.js';
import { countEOL } from '../../../common/core/misc/eolCounter.js';
import { FoldingModel } from './foldingModel.js';

export class HiddenRangeModel {
export class HiddenRangeModel implements IDisposable {

private readonly _foldingModel: FoldingModel;
private _hiddenRanges: IRange[];
Expand Down Expand Up @@ -134,6 +134,7 @@ export class HiddenRangeModel {
this._foldingModelListener.dispose();
this._foldingModelListener = null;
}
this._updateEventEmitter.dispose();
}
}

Expand Down
1 change: 1 addition & 0 deletions src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.ts
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ export class MarkerNavigationWidget extends PeekViewWidget {

override dispose(): void {
this._callOnDispose.dispose();
this._onDidSelectRelatedInformation.dispose();
super.dispose();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ export class ReferenceWidget extends peekView.PeekViewWidget {
private readonly _disposeOnNewModel = new DisposableStore();
private readonly _callOnDispose = new DisposableStore();

private readonly _onDidSelectReference = new Emitter<SelectionEvent>();
private readonly _onDidSelectReference = this._callOnDispose.add(new Emitter<SelectionEvent>());
readonly onDidSelectReference = this._onDidSelectReference.event;

private _tree!: ReferencesTree;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ export class ParameterHintsModel extends Disposable {
this.editor = editor;
this.providers = providers;

this.throttledDelayer = new Delayer(delay);
this.throttledDelayer = this._register(new Delayer(delay));

this._register(this.editor.onDidBlurEditorWidget(() => this.cancel()));
this._register(this.editor.onDidChangeConfiguration(() => this.onEditorConfigurationChange()));
Expand Down
1 change: 1 addition & 0 deletions src/vs/editor/contrib/peekView/browser/peekView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ export abstract class PeekViewWidget extends ZoneWidget {
this.disposed = true; // prevent consumers who dispose on onDidClose from looping
super.dispose();
this._onDidClose.fire(this);
this._onDidClose.dispose();

const e = observableCodeEditor(this.editor);
e.openedPeekWidgets.set(e.openedPeekWidgets.get() - 1, undefined);
Expand Down
6 changes: 3 additions & 3 deletions src/vs/editor/contrib/rename/browser/renameWidget.ts
Original file line number Diff line number Diff line change
Expand Up @@ -905,11 +905,11 @@ class InputWithButton implements IDisposable {
private _sparkleIcon: HTMLElement | undefined;
private _stopIcon: HTMLElement | undefined;

private readonly _onDidInputChange = new Emitter<void>();
public readonly onDidInputChange = this._onDidInputChange.event;

private readonly _disposables = new DisposableStore();

private readonly _onDidInputChange = this._disposables.add(new Emitter<void>());
public readonly onDidInputChange = this._onDidInputChange.event;

get domNode() {
if (!this._domNode) {

Expand Down
5 changes: 5 additions & 0 deletions src/vs/editor/contrib/suggest/browser/suggestWidget.ts
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,11 @@ export class SuggestWidget implements IDisposable {
this._showTimeout.dispose();
this._contentWidget.dispose();
this.element.dispose();
this._onDidSelect.dispose();
this._onDidFocus.dispose();
this._onDidHide.dispose();
this._onDidShow.dispose();
this._onDetailsKeydown.dispose();
}

private _onEditorMouseDown(mouseEvent: IEditorMouseEvent): void {
Expand Down
2 changes: 2 additions & 0 deletions src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ export class SuggestDetailsWidget {
dispose(): void {
this._disposables.dispose();
this._renderDisposeable.dispose();
this._onDidClose.dispose();
this._onDidChangeContents.dispose();
}

private _configureFont(): void {
Expand Down
6 changes: 3 additions & 3 deletions src/vs/platform/accessibility/browser/accessibilityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ export class AccessibilityService extends Disposable implements IAccessibilitySe

private _accessibilityModeEnabledContext: IContextKey<boolean>;
protected _accessibilitySupport = AccessibilitySupport.Unknown;
protected readonly _onDidChangeScreenReaderOptimized = new Emitter<void>();
protected readonly _onDidChangeScreenReaderOptimized = this._register(new Emitter<void>());

protected _configMotionReduced: 'auto' | 'on' | 'off';
protected _systemMotionReduced: boolean;
protected readonly _onDidChangeReducedMotion = new Emitter<void>();
protected readonly _onDidChangeReducedMotion = this._register(new Emitter<void>());

private _linkUnderlinesEnabled: boolean;
protected readonly _onDidChangeLinkUnderline = new Emitter<void>();
protected readonly _onDidChangeLinkUnderline = this._register(new Emitter<void>());

constructor(
@IContextKeyService private readonly _contextKeyService: IContextKeyService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export class GlobalExtensionEnablementService extends Disposable implements IGlo

declare readonly _serviceBrand: undefined;

private _onDidChangeEnablement = new Emitter<{ readonly extensions: IExtensionIdentifier[]; readonly source?: string }>();
private _onDidChangeEnablement = this._register(new Emitter<{ readonly extensions: IExtensionIdentifier[]; readonly source?: string }>());
readonly onDidChangeEnablement: Event<{ readonly extensions: IExtensionIdentifier[]; readonly source?: string }> = this._onDidChangeEnablement.event;
private readonly storageManager: StorageManager;

Expand Down
4 changes: 2 additions & 2 deletions src/vs/platform/menubar/electron-main/menubar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ export class Menubar extends Disposable {
) {
super();

this.menuUpdater = new RunOnceScheduler(() => this.doUpdateMenu(), 0);
this.menuUpdater = this._register(new RunOnceScheduler(() => this.doUpdateMenu(), 0));

this.menuGC = new RunOnceScheduler(() => { this.oldMenus = []; }, 10000);
this.menuGC = this._register(new RunOnceScheduler(() => { this.oldMenus = []; }, 10000));

this.menubarMenus = Object.create(null);
this.keybindings = Object.create(null);
Expand Down
2 changes: 1 addition & 1 deletion src/vs/platform/policy/node/nativePolicyService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { ILogService } from '../../log/common/log.js';

export class NativePolicyService extends AbstractPolicyService implements IPolicyService {

private throttler = new Throttler();
private throttler = this._register(new Throttler());
private readonly watcher = this._register(new MutableDisposable<Watcher>());

constructor(
Expand Down
10 changes: 5 additions & 5 deletions src/vs/platform/quickinput/browser/quickInputList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -686,13 +686,13 @@ export class QuickInputList extends Disposable {

//#region QuickInputList Events

private readonly _onKeyDown = new Emitter<StandardKeyboardEvent>();
private readonly _onKeyDown = this._register(new Emitter<StandardKeyboardEvent>());
/**
* Event that is fired when the tree receives a keydown.
*/
readonly onKeyDown: Event<StandardKeyboardEvent> = this._onKeyDown.event;

private readonly _onLeave = new Emitter<void>();
private readonly _onLeave = this._register(new Emitter<void>());
/**
* Event that is fired when the tree would no longer have focus.
*/
Expand All @@ -710,13 +710,13 @@ export class QuickInputList extends Disposable {
private readonly _checkedElementsObservable = observableValueOpts({ equalsFn: equals }, new Array<IQuickPickItem>());
readonly onChangedCheckedElements: Event<IQuickPickItem[]> = Event.fromObservable(this._checkedElementsObservable, this._store);

private readonly _onButtonTriggered = new Emitter<IQuickPickItemButtonEvent<IQuickPickItem>>();
private readonly _onButtonTriggered = this._register(new Emitter<IQuickPickItemButtonEvent<IQuickPickItem>>());
onButtonTriggered = this._onButtonTriggered.event;

private readonly _onSeparatorButtonTriggered = new Emitter<IQuickPickSeparatorButtonEvent>();
private readonly _onSeparatorButtonTriggered = this._register(new Emitter<IQuickPickSeparatorButtonEvent>());
onSeparatorButtonTriggered = this._onSeparatorButtonTriggered.event;

private readonly _elementChecked = new Emitter<{ element: IQuickPickElement; checked: boolean }>();
private readonly _elementChecked = this._register(new Emitter<{ element: IQuickPickElement; checked: boolean }>());
private readonly _elementCheckedEventBufferer = new EventBufferer();

//#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export class QuickInputTreeController extends Disposable {
private readonly _onDidCheckedLeafItemsChange = this._register(new Emitter<ReadonlyArray<IQuickTreeItem>>());
readonly onDidChangeCheckedLeafItems = this._onDidCheckedLeafItemsChange.event;

private readonly _onLeave = new Emitter<void>();
private readonly _onLeave = this._register(new Emitter<void>());
/**
* Event that is fired when the tree would no longer have focus.
*/
Expand Down
2 changes: 1 addition & 1 deletion src/vs/platform/remote/browser/browserSocketFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export interface IWebSocket {

class BrowserWebSocket extends Disposable implements IWebSocket {

private readonly _onData = new Emitter<ArrayBuffer>();
private readonly _onData = this._register(new Emitter<ArrayBuffer>());
public readonly onData = this._onData.event;

private readonly _onOpen = this._register(new Emitter<void>());
Expand Down
2 changes: 1 addition & 1 deletion src/vs/platform/remoteTunnel/node/remoteTunnelService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ export class RemoteTunnelService extends Disposable implements IRemoteTunnelServ
) {
super();
this._logger = this._register(loggerService.createLogger(joinPath(environmentService.logsHome, `${LOG_ID}.log`), { id: LOG_ID, name: LOGGER_NAME }));
this._startTunnelProcessDelayer = new Delayer(100);
this._startTunnelProcessDelayer = this._register(new Delayer(100));

this._register(this._logger.onDidChangeLogLevel(l => this._logger.info('Log level changed to ' + LogLevelToString(l))));

Expand Down
2 changes: 1 addition & 1 deletion src/vs/platform/terminal/node/ptyService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ export class PtyService extends Disposable implements IPtyService {
}));

this._detachInstanceRequestStore = this._register(new RequestStore(undefined, this._logService));
this._detachInstanceRequestStore.onCreateRequest(this._onDidRequestDetach.fire, this._onDidRequestDetach);
this._register(this._detachInstanceRequestStore.onCreateRequest(this._onDidRequestDetach.fire, this._onDidRequestDetach));

this._autoRepliesContribution = new AutoRepliesPtyServiceContribution(this._logService);

Expand Down
4 changes: 2 additions & 2 deletions src/vs/platform/terminal/node/windowsShellHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ export class WindowsShellHelper extends Disposable implements IWindowsShellHelpe
get shellType(): TerminalShellType | undefined { return this._shellType; }
private _shellTitle: string = '';
get shellTitle(): string { return this._shellTitle; }
private readonly _onShellNameChanged = new Emitter<string>();
private readonly _onShellNameChanged = this._register(new Emitter<string>());
get onShellNameChanged(): Event<string> { return this._onShellNameChanged.event; }
private readonly _onShellTypeChanged = new Emitter<TerminalShellType | undefined>();
private readonly _onShellTypeChanged = this._register(new Emitter<TerminalShellType | undefined>());
get onShellTypeChanged(): Event<TerminalShellType | undefined> { return this._onShellTypeChanged.event; }

constructor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ export class UserDataSyncEnablementService extends Disposable implements IUserDa

_serviceBrand: undefined;

private _onDidChangeEnablement = new Emitter<boolean>();
private _onDidChangeEnablement = this._register(new Emitter<boolean>());
readonly onDidChangeEnablement: Event<boolean> = this._onDidChangeEnablement.event;

private _onDidChangeResourceEnablement = new Emitter<[SyncResource, boolean]>();
private _onDidChangeResourceEnablement = this._register(new Emitter<[SyncResource, boolean]>());
readonly onDidChangeResourceEnablement: Event<[SyncResource, boolean]> = this._onDidChangeResourceEnablement.event;

constructor(
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/browser/parts/statusbar/statusbarPart.ts
Original file line number Diff line number Diff line change
Expand Up @@ -663,7 +663,7 @@ class StatusbarPart extends Part implements IStatusbarEntryContainer {
const statusBarFocusColor = this.getColor(STATUS_BAR_FOCUS_BORDER);

if (!this.styleElement) {
this.styleElement = createStyleSheet(container);
this.styleElement = createStyleSheet(container, undefined, this._store);
}

this.styleElement.textContent = `
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/browser/parts/titlebar/windowTitle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export class WindowTitle extends Disposable {
private readonly activeEditorListeners = this._register(new DisposableStore());
private readonly titleUpdater = this._register(new RunOnceScheduler(() => this.doUpdateTitle(), 0));

private readonly onDidChangeEmitter = new Emitter<void>();
private readonly onDidChangeEmitter = this._register(new Emitter<void>());
readonly onDidChange = this.onDidChangeEmitter.event;

get value() { return this.title ?? ''; }
Expand Down
1 change: 1 addition & 0 deletions src/vs/workbench/browser/parts/views/treeView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1823,6 +1823,7 @@ class TreeMenus implements IDisposable {

dispose() {
this.contextKeyService = undefined;
this._onDidChange.dispose();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export class BulkEditPane extends ViewPane {
override dispose(): void {
this._tree.dispose();
this._disposables.dispose();
this._sessionDisposables.dispose();
super.dispose();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -668,7 +668,9 @@ export class TextEditElementRenderer implements ITreeRenderer<TextEditElement, F
template.set(element);
}

disposeTemplate(_template: TextEditElementTemplate): void { }
disposeTemplate(template: TextEditElementTemplate): void {
template.dispose();
}
}

export class BulkEditDelegate implements IListVirtualDelegate<BulkEditElement> {
Expand Down
Loading
Loading