Skip to content

Commit d27fd54

Browse files
committed
Have more inferface / classes that are disposable extend IDisposable
This makes it easier to track which objects are disposable, since we can use findAllReferences on them
1 parent 1e9fae2 commit d27fd54

10 files changed

Lines changed: 18 additions & 25 deletions

File tree

src/vs/base/browser/dom.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -905,10 +905,9 @@ export const EventHelper = {
905905
}
906906
};
907907

908-
export interface IFocusTracker {
908+
export interface IFocusTracker extends Disposable {
909909
onDidFocus: Event<void>;
910910
onDidBlur: Event<void>;
911-
dispose(): void;
912911
}
913912

914913
export function saveParentsScrollTop(node: Element): number[] {

src/vs/base/browser/ui/actionbar/actionbar.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import 'vs/css!./actionbar';
77
import * as platform from 'vs/base/common/platform';
88
import * as nls from 'vs/nls';
9-
import { Disposable, dispose } from 'vs/base/common/lifecycle';
9+
import { Disposable, dispose, IDisposable } from 'vs/base/common/lifecycle';
1010
import { SelectBox, ISelectOptionItem, ISelectBoxOptions } from 'vs/base/browser/ui/selectBox/selectBox';
1111
import { IAction, IActionRunner, Action, IActionChangeEvent, ActionRunner, IRunEvent } from 'vs/base/common/actions';
1212
import * as DOM from 'vs/base/browser/dom';
@@ -17,14 +17,13 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
1717
import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview';
1818
import { Event, Emitter } from 'vs/base/common/event';
1919

20-
export interface IActionViewItem {
20+
export interface IActionViewItem extends IDisposable {
2121
actionRunner: IActionRunner;
2222
setActionContext(context: any): void;
2323
render(element: HTMLElement): void;
2424
isEnabled(): boolean;
2525
focus(fromRight?: boolean): void;
2626
blur(): void;
27-
dispose(): void;
2827
}
2928

3029
export interface IBaseActionViewItemOptions {

src/vs/base/browser/ui/selectBox/selectBox.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ import { IListStyles } from 'vs/base/browser/ui/list/listWidget';
1414
import { SelectBoxNative } from 'vs/base/browser/ui/selectBox/selectBoxNative';
1515
import { SelectBoxList } from 'vs/base/browser/ui/selectBox/selectBoxCustom';
1616
import { isMacintosh } from 'vs/base/common/platform';
17+
import { IDisposable } from 'vs/base/common/lifecycle';
1718

1819

1920
// Public SelectBox interface - Calls routed to appropriate select implementation class
2021

21-
export interface ISelectBoxDelegate {
22+
export interface ISelectBoxDelegate extends IDisposable {
2223

2324
// Public SelectBox Interface
2425
readonly onDidSelect: Event<ISelectData>;
@@ -27,7 +28,6 @@ export interface ISelectBoxDelegate {
2728
setAriaLabel(label: string): void;
2829
focus(): void;
2930
blur(): void;
30-
dispose(): void;
3131

3232
// Delegated Widget interface
3333
render(container: HTMLElement): void;
@@ -129,4 +129,4 @@ export class SelectBox extends Widget implements ISelectBoxDelegate {
129129
public applyStyles(): void {
130130
this.selectBoxDelegate.applyStyles();
131131
}
132-
}
132+
}

src/vs/base/common/actions.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,13 @@ export interface IActionRunner extends IDisposable {
2929
onDidBeforeRun: Event<IRunEvent>;
3030
}
3131

32-
export interface IActionViewItem {
32+
export interface IActionViewItem extends IDisposable {
3333
actionRunner: IActionRunner;
3434
setActionContext(context: any): void;
3535
render(element: any /* HTMLElement */): void;
3636
isEnabled(): boolean;
3737
focus(): void;
3838
blur(): void;
39-
dispose(): void;
4039
}
4140

4241
export interface IActionChangeEvent {

src/vs/base/common/cache.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation';
7+
import { IDisposable } from 'vs/base/common/lifecycle';
78

8-
export interface CacheResult<T> {
9+
export interface CacheResult<T> extends IDisposable {
910
promise: Promise<T>;
10-
dispose(): void;
1111
}
1212

1313
export class Cache<T> {

src/vs/base/common/worker/simpleWorker.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { transformErrorForSerialization } from 'vs/base/common/errors';
7-
import { Disposable } from 'vs/base/common/lifecycle';
7+
import { Disposable, IDisposable } from 'vs/base/common/lifecycle';
88
import { isWeb } from 'vs/base/common/platform';
99
import { getAllPropertyNames } from 'vs/base/common/types';
1010

1111
const INITIALIZE = '$initialize';
1212

13-
export interface IWorker {
13+
export interface IWorker extends IDisposable {
1414
getId(): number;
1515
postMessage(message: string): void;
16-
dispose(): void;
1716
}
1817

1918
export interface IWorkerCallback {

src/vs/base/parts/ipc/common/ipc.net.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@ import * as platform from 'vs/base/common/platform';
1111

1212
declare var process: any;
1313

14-
export interface ISocket {
14+
export interface ISocket extends IDisposable {
1515
onData(listener: (e: VSBuffer) => void): IDisposable;
1616
onClose(listener: () => void): IDisposable;
1717
onEnd(listener: () => void): IDisposable;
1818
write(buffer: VSBuffer): void;
1919
end(): void;
20-
dispose(): void;
2120
}
2221

2322
let emptyBuffer: VSBuffer | null = null;

src/vs/editor/browser/core/editorState.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export class EditorState {
7979
* A cancellation token source that cancels when the editor changes as expressed
8080
* by the provided flags
8181
*/
82-
export class EditorStateCancellationTokenSource extends EditorKeybindingCancellationTokenSource {
82+
export class EditorStateCancellationTokenSource extends EditorKeybindingCancellationTokenSource implements IDisposable {
8383

8484
private readonly _listener: IDisposable[] = [];
8585

@@ -110,7 +110,7 @@ export class EditorStateCancellationTokenSource extends EditorKeybindingCancella
110110
/**
111111
* A cancellation token source that cancels when the provided model changes
112112
*/
113-
export class TextModelCancellationTokenSource extends CancellationTokenSource {
113+
export class TextModelCancellationTokenSource extends CancellationTokenSource implements IDisposable {
114114

115115
private _listener: IDisposable;
116116

src/vs/editor/common/viewModel/splitLinesCollection.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import * as viewEvents from 'vs/editor/common/view/viewEvents';
1313
import { PrefixSumComputerWithCache } from 'vs/editor/common/viewModel/prefixSumComputer';
1414
import { ICoordinatesConverter, IOverviewRulerDecorations, ViewLineData } from 'vs/editor/common/viewModel/viewModel';
1515
import { ITheme } from 'vs/platform/theme/common/themeService';
16+
import { IDisposable } from 'vs/base/common/lifecycle';
1617

1718
export class OutputPosition {
1819
_outputPositionBrand: void;
@@ -62,11 +63,9 @@ export interface ISplitLine {
6263
getViewLineNumberOfModelPosition(deltaLineNumber: number, inputColumn: number): number;
6364
}
6465

65-
export interface IViewModelLinesCollection {
66+
export interface IViewModelLinesCollection extends IDisposable {
6667
createCoordinatesConverter(): ICoordinatesConverter;
6768

68-
dispose(): void;
69-
7069
setWrappingSettings(wrappingIndent: WrappingIndent, wrappingColumn: number, columnsForFullWidthChar: number): boolean;
7170
setTabSize(newTabSize: number): boolean;
7271
getHiddenAreas(): Range[];

src/vs/workbench/contrib/webview/common/webview.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
99
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
1010
import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
1111
import * as modes from 'vs/editor/common/modes';
12+
import { IDisposable } from 'vs/base/common/lifecycle';
1213

1314
/**
1415
* Set when the find widget in a webview is visible.
@@ -45,7 +46,7 @@ export interface WebviewContentOptions {
4546
readonly portMappings?: ReadonlyArray<modes.IWebviewPortMapping>;
4647
}
4748

48-
export interface Webview {
49+
export interface Webview extends IDisposable {
4950

5051
html: string;
5152
options: WebviewContentOptions;
@@ -68,8 +69,6 @@ export interface Webview {
6869
layout(): void;
6970
mountTo(parent: HTMLElement): void;
7071
focus(): void;
71-
dispose(): void;
72-
7372

7473
reload(): void;
7574
selectAll(): void;

0 commit comments

Comments
 (0)