mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 02:28:34 +01:00
T extends QuickPickItem (#49340)
This commit is contained in:
@@ -155,7 +155,7 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape {
|
||||
|
||||
backButton = backButton;
|
||||
|
||||
createQuickPick(extensionId: string): QuickPick {
|
||||
createQuickPick<T extends QuickPickItem>(extensionId: string): QuickPick<T> {
|
||||
const session = new ExtHostQuickPick(this._proxy, extensionId, () => this._sessions.delete(session._id));
|
||||
this._sessions.set(session._id, session);
|
||||
return session;
|
||||
@@ -451,18 +451,18 @@ function getIconUri(iconPath: string | URI) {
|
||||
return URI.file(iconPath);
|
||||
}
|
||||
|
||||
class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
|
||||
class ExtHostQuickPick<T extends QuickPickItem> extends ExtHostQuickInput implements QuickPick<T> {
|
||||
|
||||
private _items: QuickPickItem[] = [];
|
||||
private _handlesToItems = new Map<number, QuickPickItem>();
|
||||
private _itemsToHandles = new Map<QuickPickItem, number>();
|
||||
private _items: T[] = [];
|
||||
private _handlesToItems = new Map<number, T>();
|
||||
private _itemsToHandles = new Map<T, number>();
|
||||
private _canSelectMany = false;
|
||||
private _matchOnDescription = true;
|
||||
private _matchOnDetail = true;
|
||||
private _activeItems: QuickPickItem[] = [];
|
||||
private _onDidChangeActiveEmitter = new Emitter<QuickPickItem[]>();
|
||||
private _selectedItems: QuickPickItem[] = [];
|
||||
private _onDidChangeSelectionEmitter = new Emitter<QuickPickItem[]>();
|
||||
private _activeItems: T[] = [];
|
||||
private _onDidChangeActiveEmitter = new Emitter<T[]>();
|
||||
private _selectedItems: T[] = [];
|
||||
private _onDidChangeSelectionEmitter = new Emitter<T[]>();
|
||||
|
||||
constructor(proxy: MainThreadQuickOpenShape, extensionId: string, onDispose: () => void) {
|
||||
super(proxy, extensionId, onDispose);
|
||||
@@ -477,7 +477,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
|
||||
return this._items;
|
||||
}
|
||||
|
||||
set items(items: QuickPickItem[]) {
|
||||
set items(items: T[]) {
|
||||
this._items = items.slice();
|
||||
this._handlesToItems.clear();
|
||||
this._itemsToHandles.clear();
|
||||
@@ -527,7 +527,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
|
||||
return this._activeItems;
|
||||
}
|
||||
|
||||
set activeItems(activeItems: QuickPickItem[]) {
|
||||
set activeItems(activeItems: T[]) {
|
||||
this._activeItems = activeItems.filter(item => this._itemsToHandles.has(item));
|
||||
this.update({ activeItems: this._activeItems.map(item => this._itemsToHandles.get(item)) });
|
||||
}
|
||||
@@ -538,7 +538,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
|
||||
return this._selectedItems;
|
||||
}
|
||||
|
||||
set selectedItems(selectedItems: QuickPickItem[]) {
|
||||
set selectedItems(selectedItems: T[]) {
|
||||
this._selectedItems = selectedItems.filter(item => this._itemsToHandles.has(item));
|
||||
this.update({ selectedItems: this._selectedItems.map(item => this._itemsToHandles.get(item)) });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user