@@ -929,16 +929,22 @@ export default class RemoteConnector extends Disposable {
929
929
syncData = await this . settingsSync . readResource ( SyncResource . Extensions ) ;
930
930
} catch ( e ) {
931
931
if ( e instanceof NoSyncStoreError ) {
932
- const action = 'Settings Sync: Enable Sign In with Gitpod' ;
933
- const result = await vscode . window . showInformationMessage ( `Couldn't initialize remote extensions, Settings Sync with Gitpod is required.` , action ) ;
934
- if ( result === action ) {
932
+ const addSyncProvider = 'Settings Sync: Enable Sign In with Gitpod' ;
933
+ const config = 'Configure' ;
934
+ const action = await vscode . window . showInformationMessage ( `Couldn't install user sync extensions on remote workspace, Settings Sync with Gitpod is required.` , addSyncProvider , config ) ;
935
+ if ( action === addSyncProvider ) {
935
936
vscode . commands . executeCommand ( 'gitpod.syncProvider.add' ) ;
937
+ } else if ( action === config ) {
938
+ vscode . commands . executeCommand ( 'workbench.action.openSettings' , `@ext:${ this . context . extension . id } sync extensions` ) ;
936
939
}
937
940
} else if ( e instanceof NoSettingsSyncSession ) {
938
- const action = 'Enable Settings Sync' ;
939
- const result = await vscode . window . showInformationMessage ( `Couldn't initialize remote extensions, please enable Settings Sync.` , action ) ;
940
- if ( result === action ) {
941
+ const enableSettingsSync = 'Enable Settings Sync' ;
942
+ const config = 'Configure' ;
943
+ const action = await vscode . window . showInformationMessage ( `Couldn't install user sync extensions on remote workspace, please enable Settings Sync.` , enableSettingsSync , config ) ;
944
+ if ( action === enableSettingsSync ) {
941
945
vscode . commands . executeCommand ( 'workbench.userDataSync.actions.turnOn' ) ;
946
+ } else if ( action === config ) {
947
+ vscode . commands . executeCommand ( 'workbench.action.openSettings' , `@ext:${ this . context . extension . id } sync extensions` ) ;
942
948
}
943
949
} else {
944
950
this . logger . error ( 'Error while fetching settings sync extension data:' , e ) ;
@@ -973,11 +979,11 @@ export default class RemoteConnector extends Disposable {
973
979
974
980
try {
975
981
await vscode . window . withProgress < void > ( {
976
- title : 'Installing extensions on remote' ,
982
+ title : 'Installing sync extensions on remote' ,
977
983
location : vscode . ProgressLocation . Notification
978
984
} , async ( ) => {
979
985
try {
980
- this . logger . trace ( `Installing extensions on remote: ` , extensions . map ( e => e . identifier . id ) . join ( '\n' ) ) ;
986
+ this . logger . trace ( `Installing sync extensions on remote: ` , extensions . map ( e => e . identifier . id ) . join ( '\n' ) ) ;
981
987
await retry ( async ( ) => {
982
988
await vscode . commands . executeCommand ( '__gitpod.initializeRemoteExtensions' , extensions ) ;
983
989
} , 3000 , 15 ) ;
@@ -988,7 +994,7 @@ export default class RemoteConnector extends Disposable {
988
994
} ) ;
989
995
} catch {
990
996
const seeLogs = 'See Logs' ;
991
- const action = await vscode . window . showErrorMessage ( `Error while installing extensions on remote.` , seeLogs ) ;
997
+ const action = await vscode . window . showErrorMessage ( `Error while installing sync extensions on remote.` , seeLogs ) ;
992
998
if ( action === seeLogs ) {
993
999
this . logger . show ( ) ;
994
1000
}
0 commit comments