@@ -81,6 +81,7 @@ interface RemoteExtensionMetadata {
81
81
supportedPlatforms ?: PlatformName [ ] ;
82
82
}
83
83
84
+ export const showRemoteStartEntry = new RawContextKey < boolean > ( 'showRemoteStartEntry' , false ) ;
84
85
export class RemoteStatusIndicator extends Disposable implements IWorkbenchContribution {
85
86
86
87
private static readonly REMOTE_ACTIONS_COMMAND_ID = 'workbench.action.remote.showMenu' ;
@@ -340,6 +341,8 @@ export class RemoteStatusIndicator extends Disposable implements IWorkbenchContr
340
341
}
341
342
342
343
this . remoteMetadataInitialized = true ;
344
+ showRemoteStartEntry . bindTo ( this . contextKeyService ) . set ( true ) ;
345
+ this . updateRemoteStatusIndicator ( ) ;
343
346
}
344
347
345
348
private updateVirtualWorkspaceLocation ( ) {
@@ -548,8 +551,8 @@ export class RemoteStatusIndicator extends Disposable implements IWorkbenchContr
548
551
}
549
552
}
550
553
551
- // Show when there are commands other than the 'install additional remote extensions' command .
552
- if ( this . hasRemoteMenuCommands ( true ) ) {
554
+ // Show when there are commands or installable remote extensions.
555
+ if ( this . hasRemoteMenuCommands ( true ) || this . remoteExtensionMetadata . some ( ext => ! ext . installed && ext . isPlatformCompatible ) ) {
553
556
this . renderRemoteStatusIndicator ( `$(remote)` , nls . localize ( 'noHost.tooltip' , "Open a Remote Window" ) ) ;
554
557
return ;
555
558
}
@@ -570,7 +573,7 @@ export class RemoteStatusIndicator extends Disposable implements IWorkbenchContr
570
573
text,
571
574
showProgress,
572
575
tooltip,
573
- command : command ?? this . hasRemoteMenuCommands ( false ) ? RemoteStatusIndicator . REMOTE_ACTIONS_COMMAND_ID : undefined
576
+ command : command ?? ( this . hasRemoteMenuCommands ( false ) || this . remoteExtensionMetadata . some ( ext => ! ext . installed && ext . isPlatformCompatible ) ) ? RemoteStatusIndicator . REMOTE_ACTIONS_COMMAND_ID : undefined
574
577
} ;
575
578
576
579
if ( this . remoteStatusEntry ) {
0 commit comments