Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mark list event objects as readonly #175722

Merged
merged 2 commits into from Mar 7, 2023
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
38 changes: 19 additions & 19 deletions src/vs/base/browser/ui/list/list.ts
Expand Up @@ -24,40 +24,40 @@ export interface IListRenderer<T, TTemplateData> {
}

export interface IListEvent<T> {
elements: T[];
indexes: number[];
browserEvent?: UIEvent;
readonly elements: readonly T[];
readonly indexes: readonly number[];
readonly browserEvent?: UIEvent;
}

export interface IListMouseEvent<T> {
browserEvent: MouseEvent;
element: T | undefined;
index: number | undefined;
readonly browserEvent: MouseEvent;
readonly element: T | undefined;
readonly index: number | undefined;
}

export interface IListTouchEvent<T> {
browserEvent: TouchEvent;
element: T | undefined;
index: number | undefined;
readonly browserEvent: TouchEvent;
readonly element: T | undefined;
readonly index: number | undefined;
}

export interface IListGestureEvent<T> {
browserEvent: GestureEvent;
element: T | undefined;
index: number | undefined;
readonly browserEvent: GestureEvent;
readonly element: T | undefined;
readonly index: number | undefined;
}

export interface IListDragEvent<T> {
browserEvent: DragEvent;
element: T | undefined;
index: number | undefined;
readonly browserEvent: DragEvent;
readonly element: T | undefined;
readonly index: number | undefined;
}

export interface IListContextMenuEvent<T> {
browserEvent: UIEvent;
element: T | undefined;
index: number | undefined;
anchor: HTMLElement | { x: number; y: number };
readonly browserEvent: UIEvent;
readonly element: T | undefined;
readonly index: number | undefined;
readonly anchor: HTMLElement | { readonly x: number; readonly y: number };
}

export interface IIdentityProvider<T> {
Expand Down
16 changes: 8 additions & 8 deletions src/vs/base/browser/ui/tree/tree.ts
Expand Up @@ -134,8 +134,8 @@ export interface ITreeRenderer<T, TFilterData = void, TTemplateData = void> exte
}

export interface ITreeEvent<T> {
elements: T[];
browserEvent?: UIEvent;
readonly elements: readonly T[];
readonly browserEvent?: UIEvent;
}

export enum TreeMouseEventTarget {
Expand All @@ -146,15 +146,15 @@ export enum TreeMouseEventTarget {
}

export interface ITreeMouseEvent<T> {
browserEvent: MouseEvent;
element: T | null;
target: TreeMouseEventTarget;
readonly browserEvent: MouseEvent;
readonly element: T | null;
readonly target: TreeMouseEventTarget;
}

export interface ITreeContextMenuEvent<T> {
browserEvent: UIEvent;
element: T | null;
anchor: HTMLElement | { x: number; y: number };
readonly browserEvent: UIEvent;
readonly element: T | null;
readonly anchor: HTMLElement | { readonly x: number; readonly y: number };
}

export interface ITreeNavigator<T> {
Expand Down
12 changes: 6 additions & 6 deletions src/vs/workbench/browser/parts/views/treeView.ts
Expand Up @@ -219,8 +219,8 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
private readonly _onDidCollapseItem: Emitter<ITreeItem> = this._register(new Emitter<ITreeItem>());
readonly onDidCollapseItem: Event<ITreeItem> = this._onDidCollapseItem.event;

private _onDidChangeSelection: Emitter<ITreeItem[]> = this._register(new Emitter<ITreeItem[]>());
readonly onDidChangeSelection: Event<ITreeItem[]> = this._onDidChangeSelection.event;
private _onDidChangeSelection: Emitter<readonly ITreeItem[]> = this._register(new Emitter<readonly ITreeItem[]>());
readonly onDidChangeSelection: Event<readonly ITreeItem[]> = this._onDidChangeSelection.event;

private _onDidChangeFocus: Emitter<ITreeItem> = this._register(new Emitter<ITreeItem>());
readonly onDidChangeFocus: Event<ITreeItem> = this._onDidChangeFocus.event;
Expand All @@ -240,8 +240,8 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
private readonly _onDidChangeDescription: Emitter<string | undefined> = this._register(new Emitter<string | undefined>());
readonly onDidChangeDescription: Event<string | undefined> = this._onDidChangeDescription.event;

private readonly _onDidChangeCheckboxState: Emitter<ITreeItem[]> = this._register(new Emitter<ITreeItem[]>());
readonly onDidChangeCheckboxState: Event<ITreeItem[]> = this._onDidChangeCheckboxState.event;
private readonly _onDidChangeCheckboxState: Emitter<readonly ITreeItem[]> = this._register(new Emitter<readonly ITreeItem[]>());
readonly onDidChangeCheckboxState: Event<readonly ITreeItem[]> = this._onDidChangeCheckboxState.event;

private readonly _onDidCompleteRefresh: Emitter<void> = this._register(new Emitter<void>());

Expand Down Expand Up @@ -856,7 +856,7 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
return 0;
}

async refresh(elements?: ITreeItem[]): Promise<void> {
async refresh(elements?: readonly ITreeItem[]): Promise<void> {
if (this.dataProvider && this.tree) {
if (this.refreshing) {
await Event.toPromise(this._onDidCompleteRefresh.event);
Expand Down Expand Up @@ -930,7 +930,7 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
}

private refreshing: boolean = false;
private async doRefresh(elements: ITreeItem[]): Promise<void> {
private async doRefresh(elements: readonly ITreeItem[]): Promise<void> {
const tree = this.tree;
if (tree && this.visible) {
this.refreshing = true;
Expand Down
6 changes: 3 additions & 3 deletions src/vs/workbench/common/views.ts
Expand Up @@ -665,7 +665,7 @@ export interface ITreeView extends IDisposable {

readonly onDidCollapseItem: Event<ITreeItem>;

readonly onDidChangeSelection: Event<ITreeItem[]>;
readonly onDidChangeSelection: Event<readonly ITreeItem[]>;

readonly onDidChangeFocus: Event<ITreeItem>;

Expand All @@ -679,11 +679,11 @@ export interface ITreeView extends IDisposable {

readonly onDidChangeWelcomeState: Event<void>;

readonly onDidChangeCheckboxState: Event<ITreeItem[]>;
readonly onDidChangeCheckboxState: Event<readonly ITreeItem[]>;

readonly container: any | undefined;

refresh(treeItems?: ITreeItem[]): Promise<void>;
refresh(treeItems?: readonly ITreeItem[]): Promise<void>;

setVisibility(visible: boolean): void;

Expand Down
Expand Up @@ -600,7 +600,7 @@ export class ExplorerView extends ViewPane implements IExplorerView {
});
}

private onFocusChanged(elements: ExplorerItem[]): void {
private onFocusChanged(elements: readonly ExplorerItem[]): void {
const stat = elements && elements.length ? elements[0] : undefined;
this.setContextKeys(stat);

Expand Down
Expand Up @@ -88,7 +88,7 @@ export class NotebookCellList extends WorkbenchList<CellViewModel> implements ID
get scrollableElement(): HTMLElement {
return this.view.scrollableElementDomNode;
}
private _previousFocusedElements: CellViewModel[] = [];
private _previousFocusedElements: readonly CellViewModel[] = [];
private readonly _localDisposableStore = new DisposableStore();
private readonly _viewModelStore = new DisposableStore();
private styleElement?: HTMLStyleElement;
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/contrib/remote/browser/tunnelView.ts
Expand Up @@ -949,7 +949,7 @@ export class TunnelPanel extends ViewPane {

private onFocusChanged(event: ITableEvent<ITunnelItem>) {
if (event.indexes.length > 0 && event.elements.length > 0) {
this.lastFocus = event.indexes;
this.lastFocus = [...event.indexes];
}
const elements = event.elements;
const item = elements && elements.length ? elements[0] : undefined;
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/contrib/scm/common/scm.ts
Expand Up @@ -197,7 +197,7 @@ export interface ISCMViewService {
repositories: ISCMRepository[];
readonly onDidChangeRepositories: Event<ISCMViewVisibleRepositoryChangeEvent>;

visibleRepositories: ISCMRepository[];
visibleRepositories: readonly ISCMRepository[];
readonly onDidChangeVisibleRepositories: Event<ISCMViewVisibleRepositoryChangeEvent>;

isVisible(repository: ISCMRepository): boolean;
Expand Down
Expand Up @@ -873,7 +873,7 @@ abstract class UserDataProfileImportExportState extends Disposable implements IT
}
}

onDidChangeCheckboxState(items: ITreeItem[]): ITreeItem[] {
onDidChangeCheckboxState(items: readonly ITreeItem[]): readonly ITreeItem[] {
const toRefresh: ITreeItem[] = [];
for (const item of items) {
if (item.children) {
Expand Down