diff --git a/src/vs/workbench/contrib/remote/browser/remoteStartEntry.ts b/src/vs/workbench/contrib/remote/browser/remoteStartEntry.ts index bd3b0e079d00a..d502d632a78c7 100644 --- a/src/vs/workbench/contrib/remote/browser/remoteStartEntry.ts +++ b/src/vs/workbench/contrib/remote/browser/remoteStartEntry.ts @@ -69,7 +69,8 @@ export class RemoteStartEntry extends Disposable implements IWorkbenchContributi @IContextKeyService private readonly contextKeyService: IContextKeyService) { super(); - registerConfiguration(this.productService.quality !== 'stable'); + const enable = this.extensionGalleryService.isEnabled() && (this.productService.remoteExtensionTips ?? false) && this.productService.quality !== 'stable'; + registerConfiguration(enable); const remoteExtensionTips = { ...this.productService.remoteExtensionTips, ...this.productService.virtualWorkspaceExtensionTips }; this.remoteExtensionMetadata = Object.values(remoteExtensionTips).filter(value => value.showInStartEntry === true).map(value => { return { id: value.extensionId, installed: false, friendlyName: value.friendlyName, remoteCommands: [], isPlatformCompatible: false, dependencies: [] }; @@ -241,10 +242,12 @@ export class RemoteStartEntry extends Disposable implements IWorkbenchContributi const selectedItems = quickPick.selectedItems; if (selectedItems.length === 1) { const selectedItem = selectedItems[0].id!; - quickPick.busy = true; const remoteExtension = this.remoteExtensionMetadata.find(value => ExtensionIdentifier.equals(value.id, selectedItem)); if (remoteExtension) { + quickPick.items = []; + quickPick.busy = true; + quickPick.placeholder = nls.localize('remote.startActions.installingExtension', 'Installing extension... '); const galleryExtension = (await this.extensionGalleryService.getExtensions([{ id: selectedItem }], CancellationToken.None))[0]; @@ -263,14 +266,15 @@ export class RemoteStartEntry extends Disposable implements IWorkbenchContributi this.commandService.executeCommand(command); this.telemetryService.publicLog2('remoteStartList.ActionExecuted', { command: command, remoteExtensionId: selectedItem }); - quickPick.busy = false; } else { this.commandService.executeCommand(selectedItem); this.telemetryService.publicLog2('remoteStartList.ActionExecuted', { command: selectedItem }); } + quickPick.dispose(); } }); + quickPick.onDidHide(() => quickPick.dispose()); quickPick.show(); } }