src/vs/workbench/contrib/debug/browser/debugSessionPicker.ts/showDebugSessionMenu
export async function showDebugSessionMenu(accessor: ServicesAccessor, selectAndStartID: string) {
	const quickInputService = accessor.get(IQuickInputService);
	const debugService = accessor.get(IDebugService);
	const viewsService = accessor.get(IViewsService);
	const commandService = accessor.get(ICommandService);

	const localDisposableStore = new DisposableStore();
	const quickPick = quickInputService.createQuickPick<IPickerDebugItem>();
	localDisposableStore.add(quickPick);
	quickPick.matchOnLabel = quickPick.matchOnDescription = quickPick.matchOnDetail = quickPick.sortByLabel = false;
	quickPick.placeholder = nls.localize('moveFocusedView.selectView', 'Search debug sessions by name');

	const pickItems = _getPicksAndActiveItem(quickPick.value, selectAndStartID, debugService, viewsService, commandService);
	quickPick.items = pickItems.picks;
	quickPick.activeItems = pickItems.activeItems;

	localDisposableStore.add(quickPick.onDidChangeValue(async () => {
		quickPick.items = _getPicksAndActiveItem(quickPick.value, selectAndStartID, debugService, viewsService, commandService).picks;
	}));
	localDisposableStore.add(quickPick.onDidAccept(() => {
		const selectedItem = quickPick.selectedItems[0];
		selectedItem.accept();
		quickPick.hide();
		localDisposableStore.dispose();
	}));
	quickPick.show();
}