@codingame/monaco-vscode-user-data-sync-service-override 9.0.0 → 9.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/vscode/src/vs/platform/userDataSync/common/userDataAutoSyncService.js +7 -7
- package/vscode/src/vs/platform/userDataSync/common/userDataSyncLog.js +1 -1
- package/vscode/src/vs/platform/userDataSync/common/userDataSyncResourceProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.js +77 -77
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncViews.js +30 -30
- package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.js +25 -25
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-user-data-sync-service-override",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.2",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@9.0.
|
|
30
|
-
"@codingame/monaco-vscode-user-data-profile-service-override": "9.0.
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@9.0.2",
|
|
30
|
+
"@codingame/monaco-vscode-user-data-profile-service-override": "9.0.2"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -408,20 +408,20 @@ class AutoSync extends Disposable {
|
|
|
408
408
|
if (this.hasSyncServiceChanged()) {
|
|
409
409
|
if (await this.hasDefaultServiceChanged()) {
|
|
410
410
|
throw ( new UserDataAutoSyncError(
|
|
411
|
-
localize(
|
|
411
|
+
localize(3461, "Cannot sync because default service has changed"),
|
|
412
412
|
UserDataSyncErrorCode.DefaultServiceChanged
|
|
413
413
|
));
|
|
414
414
|
}
|
|
415
415
|
else {
|
|
416
416
|
throw ( new UserDataAutoSyncError(
|
|
417
|
-
localize(
|
|
417
|
+
localize(3462, "Cannot sync because sync service has changed"),
|
|
418
418
|
UserDataSyncErrorCode.ServiceChanged
|
|
419
419
|
));
|
|
420
420
|
}
|
|
421
421
|
}
|
|
422
422
|
else {
|
|
423
423
|
throw ( new UserDataAutoSyncError(
|
|
424
|
-
localize(
|
|
424
|
+
localize(3463, "Cannot sync because syncing is turned off in the cloud"),
|
|
425
425
|
UserDataSyncErrorCode.TurnedOff
|
|
426
426
|
));
|
|
427
427
|
}
|
|
@@ -431,20 +431,20 @@ class AutoSync extends Disposable {
|
|
|
431
431
|
if (this.hasSyncServiceChanged()) {
|
|
432
432
|
if (await this.hasDefaultServiceChanged()) {
|
|
433
433
|
throw ( new UserDataAutoSyncError(
|
|
434
|
-
localize(
|
|
434
|
+
localize(3461, "Cannot sync because default service has changed"),
|
|
435
435
|
UserDataSyncErrorCode.DefaultServiceChanged
|
|
436
436
|
));
|
|
437
437
|
}
|
|
438
438
|
else {
|
|
439
439
|
throw ( new UserDataAutoSyncError(
|
|
440
|
-
localize(
|
|
440
|
+
localize(3462, "Cannot sync because sync service has changed"),
|
|
441
441
|
UserDataSyncErrorCode.ServiceChanged
|
|
442
442
|
));
|
|
443
443
|
}
|
|
444
444
|
}
|
|
445
445
|
else {
|
|
446
446
|
throw ( new UserDataAutoSyncError(
|
|
447
|
-
localize(
|
|
447
|
+
localize(3464, "Cannot sync because current session is expired"),
|
|
448
448
|
UserDataSyncErrorCode.SessionExpired
|
|
449
449
|
));
|
|
450
450
|
}
|
|
@@ -456,7 +456,7 @@ class AutoSync extends Disposable {
|
|
|
456
456
|
const currentMachine = machines.find(machine => machine.isCurrent);
|
|
457
457
|
if (currentMachine?.disabled) {
|
|
458
458
|
throw ( new UserDataAutoSyncError(localize(
|
|
459
|
-
|
|
459
|
+
3465,
|
|
460
460
|
"Cannot sync because syncing is turned off on this machine from another machine."
|
|
461
461
|
), UserDataSyncErrorCode.TurnedOff));
|
|
462
462
|
}
|
|
@@ -9,7 +9,7 @@ import { USER_DATA_SYNC_LOG_ID } from 'vscode/vscode/vs/platform/userDataSync/co
|
|
|
9
9
|
let UserDataSyncLogService = class UserDataSyncLogService extends AbstractLogger {
|
|
10
10
|
constructor(loggerService, environmentService) {
|
|
11
11
|
super();
|
|
12
|
-
this.logger = this._register(loggerService.createLogger(joinPath(environmentService.logsHome, `${USER_DATA_SYNC_LOG_ID}.log`), { id: USER_DATA_SYNC_LOG_ID, name: ( localize(
|
|
12
|
+
this.logger = this._register(loggerService.createLogger(joinPath(environmentService.logsHome, `${USER_DATA_SYNC_LOG_ID}.log`), { id: USER_DATA_SYNC_LOG_ID, name: ( localize(3466, "Settings Sync")) }));
|
|
13
13
|
}
|
|
14
14
|
trace(message, ...args) {
|
|
15
15
|
this.logger.trace(message, ...args);
|
|
@@ -428,7 +428,7 @@ let UserDataSyncResourceProviderService = class UserDataSyncResourceProviderServ
|
|
|
428
428
|
this.logService.error(error);
|
|
429
429
|
}
|
|
430
430
|
throw ( new UserDataSyncError(localize(
|
|
431
|
-
|
|
431
|
+
3467,
|
|
432
432
|
"Cannot parse sync data as it is not compatible with the current version."
|
|
433
433
|
), UserDataSyncErrorCode.IncompatibleRemoteContent, syncResource));
|
|
434
434
|
}
|
|
@@ -31,12 +31,12 @@ let UserDataSyncReportIssueContribution = class UserDataSyncReportIssueContribut
|
|
|
31
31
|
switch (error.code) {
|
|
32
32
|
case UserDataSyncErrorCode.LocalTooManyRequests: {
|
|
33
33
|
const message = isWeb ? ( localize(
|
|
34
|
-
|
|
34
|
+
3493,
|
|
35
35
|
"Settings sync is suspended temporarily because the current device is making too many requests. Please reload {0} to resume.",
|
|
36
36
|
this.productService.nameLong
|
|
37
37
|
))
|
|
38
38
|
: ( localize(
|
|
39
|
-
|
|
39
|
+
3494,
|
|
40
40
|
"Settings sync is suspended temporarily because the current device is making too many requests. Please restart {0} to resume.",
|
|
41
41
|
this.productService.nameLong
|
|
42
42
|
));
|
|
@@ -45,26 +45,26 @@ let UserDataSyncReportIssueContribution = class UserDataSyncReportIssueContribut
|
|
|
45
45
|
message,
|
|
46
46
|
actions: {
|
|
47
47
|
primary: [
|
|
48
|
-
( (new Action('Show Sync Logs', ( localize(
|
|
49
|
-
( (new Action('Restart', isWeb ? ( localize(
|
|
48
|
+
( (new Action('Show Sync Logs', ( localize(3495, "Show Log")), undefined, true, () => this.commandService.executeCommand(SHOW_SYNC_LOG_COMMAND_ID)))),
|
|
49
|
+
( (new Action('Restart', isWeb ? ( localize(3496, "Reload")) : ( localize(3497, "Restart")), undefined, true, () => this.hostService.restart())))
|
|
50
50
|
]
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
case UserDataSyncErrorCode.TooManyRequests: {
|
|
56
|
-
const operationId = error.operationId ? ( localize(
|
|
56
|
+
const operationId = error.operationId ? ( localize(3498, "Operation Id: {0}", error.operationId)) : undefined;
|
|
57
57
|
const message = ( localize(
|
|
58
|
-
|
|
58
|
+
3499,
|
|
59
59
|
"Settings sync is disabled because the current device is making too many requests. Please wait for 10 minutes and turn on sync."
|
|
60
60
|
));
|
|
61
61
|
this.notificationService.notify({
|
|
62
62
|
severity: Severity$1.Error,
|
|
63
63
|
message: operationId ? `${message} ${operationId}` : message,
|
|
64
|
-
source: error.operationId ? ( localize(
|
|
64
|
+
source: error.operationId ? ( localize(3500, "Settings Sync. Operation Id: {0}", error.operationId)) : undefined,
|
|
65
65
|
actions: {
|
|
66
66
|
primary: [
|
|
67
|
-
( (new Action('Show Sync Logs', ( localize(
|
|
67
|
+
( (new Action('Show Sync Logs', ( localize(3495, "Show Log")), undefined, true, () => this.commandService.executeCommand(SHOW_SYNC_LOG_COMMAND_ID)))),
|
|
68
68
|
]
|
|
69
69
|
}
|
|
70
70
|
});
|
|
@@ -49,24 +49,24 @@ import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/use
|
|
|
49
49
|
import { isWeb } from 'vscode/vscode/vs/base/common/platform';
|
|
50
50
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
51
51
|
|
|
52
|
-
const turnOffSyncCommand = { id: 'workbench.userDataSync.actions.turnOff', title: ( localize2(
|
|
53
|
-
const configureSyncCommand = { id: CONFIGURE_SYNC_COMMAND_ID, title: ( localize2(
|
|
52
|
+
const turnOffSyncCommand = { id: 'workbench.userDataSync.actions.turnOff', title: ( localize2(8503, 'Turn Off')) };
|
|
53
|
+
const configureSyncCommand = { id: CONFIGURE_SYNC_COMMAND_ID, title: ( localize2(8504, 'Configure...')) };
|
|
54
54
|
const showConflictsCommandId = 'workbench.userDataSync.actions.showConflicts';
|
|
55
55
|
const syncNowCommand = {
|
|
56
56
|
id: 'workbench.userDataSync.actions.syncNow',
|
|
57
|
-
title: ( localize2(
|
|
57
|
+
title: ( localize2(8505, 'Sync Now')),
|
|
58
58
|
description(userDataSyncService) {
|
|
59
59
|
if (userDataSyncService.status === SyncStatus.Syncing) {
|
|
60
|
-
return ( localize(
|
|
60
|
+
return ( localize(8506, "syncing"));
|
|
61
61
|
}
|
|
62
62
|
if (userDataSyncService.lastSyncTime) {
|
|
63
|
-
return ( localize(
|
|
63
|
+
return ( localize(8507, "synced {0}", fromNow(userDataSyncService.lastSyncTime, true)));
|
|
64
64
|
}
|
|
65
65
|
return undefined;
|
|
66
66
|
}
|
|
67
67
|
};
|
|
68
|
-
const showSyncSettingsCommand = { id: 'workbench.userDataSync.actions.settings', title: ( localize2(
|
|
69
|
-
const showSyncedDataCommand = { id: 'workbench.userDataSync.actions.showSyncedData', title: ( localize2(
|
|
68
|
+
const showSyncSettingsCommand = { id: 'workbench.userDataSync.actions.settings', title: ( localize2(8508, 'Show Settings')), };
|
|
69
|
+
const showSyncedDataCommand = { id: 'workbench.userDataSync.actions.showSyncedData', title: ( localize2(8509, 'Show Synced Data')), };
|
|
70
70
|
const CONTEXT_TURNING_ON_STATE = ( (new RawContextKey('userDataSyncTurningOn', false)));
|
|
71
71
|
let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution extends Disposable {
|
|
72
72
|
constructor(userDataSyncEnablementService, userDataSyncService, userDataSyncWorkbenchService, contextKeyService, activityService, notificationService, editorService, userDataProfilesService, userDataProfileService, dialogService, quickInputService, instantiationService, outputService, userDataAutoSyncService, textModelResolverService, preferencesService, telemetryService, productService, openerService, authenticationService, userDataSyncStoreManagementService, hostService, commandService, workbenchIssueService) {
|
|
@@ -145,26 +145,26 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
145
145
|
if (!( (this.conflictsDisposables.has(key)))) {
|
|
146
146
|
const conflictsArea = getSyncAreaLabel(conflict.syncResource);
|
|
147
147
|
const handle = this.notificationService.prompt(Severity$1.Warning, ( localize(
|
|
148
|
-
|
|
148
|
+
8510,
|
|
149
149
|
"Unable to sync due to conflicts in {0}. Please resolve them to continue.",
|
|
150
150
|
conflictsArea.toLowerCase()
|
|
151
151
|
)), [
|
|
152
152
|
{
|
|
153
|
-
label: ( localize(
|
|
153
|
+
label: ( localize(8511, "Replace Remote")),
|
|
154
154
|
run: () => {
|
|
155
155
|
this.telemetryService.publicLog2('sync/handleConflicts', { source: conflict.syncResource, action: 'acceptLocal' });
|
|
156
156
|
this.acceptLocal(conflict, conflict.conflicts[0]);
|
|
157
157
|
}
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
|
-
label: ( localize(
|
|
160
|
+
label: ( localize(8512, "Replace Local")),
|
|
161
161
|
run: () => {
|
|
162
162
|
this.telemetryService.publicLog2('sync/handleConflicts', { source: conflict.syncResource, action: 'acceptRemote' });
|
|
163
163
|
this.acceptRemote(conflict, conflict.conflicts[0]);
|
|
164
164
|
}
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
|
-
label: ( localize(
|
|
167
|
+
label: ( localize(8513, "Show Conflicts")),
|
|
168
168
|
run: () => {
|
|
169
169
|
this.telemetryService.publicLog2('sync/showConflicts', { source: conflict.syncResource });
|
|
170
170
|
this.userDataSyncWorkbenchService.showConflicts(conflict.conflicts[0]);
|
|
@@ -191,7 +191,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
191
191
|
}
|
|
192
192
|
catch (e) {
|
|
193
193
|
this.notificationService.error(( localize(
|
|
194
|
-
|
|
194
|
+
8514,
|
|
195
195
|
"Error while accepting changes. Please check [logs]({0}) for more details.",
|
|
196
196
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
197
197
|
)));
|
|
@@ -203,7 +203,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
203
203
|
}
|
|
204
204
|
catch (e) {
|
|
205
205
|
this.notificationService.error(( localize(
|
|
206
|
-
|
|
206
|
+
8514,
|
|
207
207
|
"Error while accepting changes. Please check [logs]({0}) for more details.",
|
|
208
208
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
209
209
|
)));
|
|
@@ -215,11 +215,11 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
215
215
|
this.notificationService.notify({
|
|
216
216
|
severity: Severity$1.Info,
|
|
217
217
|
message: ( localize(
|
|
218
|
-
|
|
218
|
+
8515,
|
|
219
219
|
"Settings sync was turned off because current session is expired, please sign in again to turn on sync."
|
|
220
220
|
)),
|
|
221
221
|
actions: {
|
|
222
|
-
primary: [( (new Action('turn on sync', ( localize(
|
|
222
|
+
primary: [( (new Action('turn on sync', ( localize(8516, "Turn on Settings Sync...")), undefined, true, () => this.turnOn())))]
|
|
223
223
|
}
|
|
224
224
|
});
|
|
225
225
|
break;
|
|
@@ -227,11 +227,11 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
227
227
|
this.notificationService.notify({
|
|
228
228
|
severity: Severity$1.Info,
|
|
229
229
|
message: ( localize(
|
|
230
|
-
|
|
230
|
+
8517,
|
|
231
231
|
"Settings sync was turned off from another device, please turn on sync again."
|
|
232
232
|
)),
|
|
233
233
|
actions: {
|
|
234
|
-
primary: [( (new Action('turn on sync', ( localize(
|
|
234
|
+
primary: [( (new Action('turn on sync', ( localize(8516, "Turn on Settings Sync...")), undefined, true, () => this.turnOn())))]
|
|
235
235
|
}
|
|
236
236
|
});
|
|
237
237
|
break;
|
|
@@ -240,7 +240,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
240
240
|
this.disableSync(error.resource);
|
|
241
241
|
const sourceArea = getSyncAreaLabel(error.resource);
|
|
242
242
|
this.handleTooLargeError(error.resource, ( localize(
|
|
243
|
-
|
|
243
|
+
8518,
|
|
244
244
|
"Disabled syncing {0} because size of the {1} file to sync is larger than {2}. Please open the file and reduce the size and enable sync",
|
|
245
245
|
sourceArea.toLowerCase(),
|
|
246
246
|
sourceArea.toLowerCase(),
|
|
@@ -251,7 +251,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
251
251
|
case UserDataSyncErrorCode.LocalTooManyProfiles:
|
|
252
252
|
this.disableSync(SyncResource.Profiles);
|
|
253
253
|
this.notificationService.error(( localize(
|
|
254
|
-
|
|
254
|
+
8519,
|
|
255
255
|
"Disabled syncing profiles because there are too many profiles to sync. Settings Sync supports syncing maximum 20 profiles. Please reduce the number of profiles and enable sync"
|
|
256
256
|
)));
|
|
257
257
|
break;
|
|
@@ -259,12 +259,12 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
259
259
|
case UserDataSyncErrorCode.Gone:
|
|
260
260
|
case UserDataSyncErrorCode.UpgradeRequired: {
|
|
261
261
|
const message = ( localize(
|
|
262
|
-
|
|
262
|
+
8520,
|
|
263
263
|
"Settings sync is disabled because the current version ({0}, {1}) is not compatible with the sync service. Please update before turning on sync.",
|
|
264
264
|
this.productService.version,
|
|
265
265
|
this.productService.commit
|
|
266
266
|
));
|
|
267
|
-
const operationId = error.operationId ? ( localize(
|
|
267
|
+
const operationId = error.operationId ? ( localize(8521, "Operation Id: {0}", error.operationId)) : undefined;
|
|
268
268
|
this.notificationService.notify({
|
|
269
269
|
severity: Severity$1.Error,
|
|
270
270
|
message: operationId ? `${message} ${operationId}` : message,
|
|
@@ -273,17 +273,17 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
273
273
|
}
|
|
274
274
|
case UserDataSyncErrorCode.MethodNotFound: {
|
|
275
275
|
const message = ( localize(
|
|
276
|
-
|
|
276
|
+
8522,
|
|
277
277
|
"Settings sync is disabled because the client is making invalid requests. Please report an issue with the logs."
|
|
278
278
|
));
|
|
279
|
-
const operationId = error.operationId ? ( localize(
|
|
279
|
+
const operationId = error.operationId ? ( localize(8521, "Operation Id: {0}", error.operationId)) : undefined;
|
|
280
280
|
this.notificationService.notify({
|
|
281
281
|
severity: Severity$1.Error,
|
|
282
282
|
message: operationId ? `${message} ${operationId}` : message,
|
|
283
283
|
actions: {
|
|
284
284
|
primary: [
|
|
285
|
-
( (new Action('Show Sync Logs', ( localize(
|
|
286
|
-
( (new Action('Report Issue', ( localize(
|
|
285
|
+
( (new Action('Show Sync Logs', ( localize(8523, "Show Log")), undefined, true, () => this.commandService.executeCommand(SHOW_SYNC_LOG_COMMAND_ID)))),
|
|
286
|
+
( (new Action('Report Issue', ( localize(8524, "Report Issue")), undefined, true, () => this.workbenchIssueService.openReporter())))
|
|
287
287
|
]
|
|
288
288
|
}
|
|
289
289
|
});
|
|
@@ -293,13 +293,13 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
293
293
|
this.notificationService.notify({
|
|
294
294
|
severity: Severity$1.Error,
|
|
295
295
|
message: ( localize(
|
|
296
|
-
|
|
296
|
+
8525,
|
|
297
297
|
"Settings sync is disabled because your data in the cloud is older than that of the client. Please clear your data in the cloud before turning on sync."
|
|
298
298
|
)),
|
|
299
299
|
actions: {
|
|
300
300
|
primary: [
|
|
301
|
-
( (new Action('reset', ( localize(
|
|
302
|
-
( (new Action('show synced data', ( localize(
|
|
301
|
+
( (new Action('reset', ( localize(8526, "Clear Data in Cloud...")), undefined, true, () => this.userDataSyncWorkbenchService.resetSyncedData()))),
|
|
302
|
+
( (new Action('show synced data', ( localize(8527, "Show Synced Data")), undefined, true, () => this.userDataSyncWorkbenchService.showSyncActivity())))
|
|
303
303
|
]
|
|
304
304
|
}
|
|
305
305
|
});
|
|
@@ -308,8 +308,8 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
308
308
|
this.notificationService.notify({
|
|
309
309
|
severity: Severity$1.Info,
|
|
310
310
|
message: this.userDataSyncStoreManagementService.userDataSyncStore?.type === 'insiders' ?
|
|
311
|
-
( localize(
|
|
312
|
-
( localize(
|
|
311
|
+
( localize(8528, "Settings Sync has been switched to insiders service")) :
|
|
312
|
+
( localize(8529, "Settings Sync has been switched to stable service")),
|
|
313
313
|
});
|
|
314
314
|
return;
|
|
315
315
|
case UserDataSyncErrorCode.DefaultServiceChanged:
|
|
@@ -317,7 +317,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
317
317
|
this.notificationService.notify({
|
|
318
318
|
severity: Severity$1.Info,
|
|
319
319
|
message: ( localize(
|
|
320
|
-
|
|
320
|
+
8530,
|
|
321
321
|
"Settings sync now uses a separate service, more information is available in the [Settings Sync Documentation](https://aka.ms/vscode-settings-sync-help#_syncing-stable-versus-insiders)."
|
|
322
322
|
)),
|
|
323
323
|
});
|
|
@@ -326,12 +326,12 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
326
326
|
this.notificationService.notify({
|
|
327
327
|
severity: Severity$1.Info,
|
|
328
328
|
message: ( localize(
|
|
329
|
-
|
|
329
|
+
8531,
|
|
330
330
|
"Settings sync was turned off because {0} now uses a separate service. Please turn on sync again.",
|
|
331
331
|
this.productService.nameLong
|
|
332
332
|
)),
|
|
333
333
|
actions: {
|
|
334
|
-
primary: [( (new Action('turn on sync', ( localize(
|
|
334
|
+
primary: [( (new Action('turn on sync', ( localize(8516, "Turn on Settings Sync...")), undefined, true, () => this.turnOn())))]
|
|
335
335
|
}
|
|
336
336
|
});
|
|
337
337
|
}
|
|
@@ -339,12 +339,12 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
339
339
|
}
|
|
340
340
|
}
|
|
341
341
|
handleTooLargeError(resource, message, error) {
|
|
342
|
-
const operationId = error.operationId ? ( localize(
|
|
342
|
+
const operationId = error.operationId ? ( localize(8521, "Operation Id: {0}", error.operationId)) : undefined;
|
|
343
343
|
this.notificationService.notify({
|
|
344
344
|
severity: Severity$1.Error,
|
|
345
345
|
message: operationId ? `${message} ${operationId}` : message,
|
|
346
346
|
actions: {
|
|
347
|
-
primary: [( (new Action('open sync file', ( localize(
|
|
347
|
+
primary: [( (new Action('open sync file', ( localize(8532, "Open {0} File", getSyncAreaLabel(resource))), undefined, true, () => resource === SyncResource.Settings ? this.preferencesService.openUserSettings({ jsonEditor: true }) : this.preferencesService.openGlobalKeybindingSettings(true))))]
|
|
348
348
|
}
|
|
349
349
|
});
|
|
350
350
|
}
|
|
@@ -396,12 +396,12 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
396
396
|
const handle = this.notificationService.notify({
|
|
397
397
|
severity: Severity$1.Error,
|
|
398
398
|
message: ( localize(
|
|
399
|
-
|
|
399
|
+
8533,
|
|
400
400
|
"Unable to sync {0} because the content in the file is not valid. Please open the file and correct it.",
|
|
401
401
|
errorArea.toLowerCase()
|
|
402
402
|
)),
|
|
403
403
|
actions: {
|
|
404
|
-
primary: [( (new Action('open sync file', ( localize(
|
|
404
|
+
primary: [( (new Action('open sync file', ( localize(8532, "Open {0} File", errorArea)), undefined, true, () => source === SyncResource.Settings ? this.preferencesService.openUserSettings({ jsonEditor: true }) : this.preferencesService.openGlobalKeybindingSettings(true))))]
|
|
405
405
|
}
|
|
406
406
|
});
|
|
407
407
|
this.invalidContentErrorDisposables.set(key, toDisposable(() => {
|
|
@@ -417,10 +417,10 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
417
417
|
let badge = undefined;
|
|
418
418
|
let priority = undefined;
|
|
419
419
|
if (this.userDataSyncService.conflicts.length && this.userDataSyncEnablementService.isEnabled()) {
|
|
420
|
-
badge = ( (new NumberBadge(this.getConflictsCount(), () => ( localize(
|
|
420
|
+
badge = ( (new NumberBadge(this.getConflictsCount(), () => ( localize(8534, "{0}: Conflicts Detected", SYNC_TITLE.value)))));
|
|
421
421
|
}
|
|
422
422
|
else if (this.turningOnSync) {
|
|
423
|
-
badge = ( (new ProgressBadge(() => ( localize(
|
|
423
|
+
badge = ( (new ProgressBadge(() => ( localize(8535, "Turning on Settings Sync...")))));
|
|
424
424
|
priority = 1;
|
|
425
425
|
}
|
|
426
426
|
if (badge) {
|
|
@@ -431,7 +431,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
431
431
|
this.accountBadgeDisposable.clear();
|
|
432
432
|
let badge = undefined;
|
|
433
433
|
if (this.userDataSyncService.status !== SyncStatus.Uninitialized && this.userDataSyncEnablementService.isEnabled() && this.userDataSyncWorkbenchService.accountStatus === AccountStatus.Unavailable) {
|
|
434
|
-
badge = ( (new NumberBadge(1, () => ( localize(
|
|
434
|
+
badge = ( (new NumberBadge(1, () => ( localize(8536, "Sign in to Sync Settings")))));
|
|
435
435
|
}
|
|
436
436
|
if (badge) {
|
|
437
437
|
this.accountBadgeDisposable.value = this.activityService.showAccountsActivity({ badge, priority: undefined });
|
|
@@ -440,7 +440,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
440
440
|
async turnOn() {
|
|
441
441
|
try {
|
|
442
442
|
if (!this.userDataSyncWorkbenchService.authenticationProviders.length) {
|
|
443
|
-
throw ( (new Error(localize(
|
|
443
|
+
throw ( (new Error(localize(8537, "No authentication providers are available."))));
|
|
444
444
|
}
|
|
445
445
|
const turnOn = await this.askToConfigure();
|
|
446
446
|
if (!turnOn) {
|
|
@@ -460,7 +460,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
460
460
|
case UserDataSyncErrorCode.TooLarge:
|
|
461
461
|
if (e.resource === SyncResource.Keybindings || e.resource === SyncResource.Settings || e.resource === SyncResource.Tasks) {
|
|
462
462
|
this.handleTooLargeError(e.resource, ( localize(
|
|
463
|
-
|
|
463
|
+
8538,
|
|
464
464
|
"Settings sync cannot be turned on because size of the {0} file to sync is larger than {1}. Please open the file and reduce the size and turn on sync",
|
|
465
465
|
getSyncAreaLabel(e.resource).toLowerCase(),
|
|
466
466
|
'100kb'
|
|
@@ -472,12 +472,12 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
472
472
|
case UserDataSyncErrorCode.Gone:
|
|
473
473
|
case UserDataSyncErrorCode.UpgradeRequired: {
|
|
474
474
|
const message = ( localize(
|
|
475
|
-
|
|
475
|
+
8539,
|
|
476
476
|
"Settings sync cannot be turned on because the current version ({0}, {1}) is not compatible with the sync service. Please update before turning on sync.",
|
|
477
477
|
this.productService.version,
|
|
478
478
|
this.productService.commit
|
|
479
479
|
));
|
|
480
|
-
const operationId = e.operationId ? ( localize(
|
|
480
|
+
const operationId = e.operationId ? ( localize(8521, "Operation Id: {0}", e.operationId)) : undefined;
|
|
481
481
|
this.notificationService.notify({
|
|
482
482
|
severity: Severity$1.Error,
|
|
483
483
|
message: operationId ? `${message} ${operationId}` : message,
|
|
@@ -488,30 +488,30 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
488
488
|
this.notificationService.notify({
|
|
489
489
|
severity: Severity$1.Error,
|
|
490
490
|
message: ( localize(
|
|
491
|
-
|
|
491
|
+
8540,
|
|
492
492
|
"Settings sync cannot be turned on because your data in the cloud is older than that of the client. Please clear your data in the cloud before turning on sync."
|
|
493
493
|
)),
|
|
494
494
|
actions: {
|
|
495
495
|
primary: [
|
|
496
|
-
( (new Action('reset', ( localize(
|
|
497
|
-
( (new Action('show synced data', ( localize(
|
|
496
|
+
( (new Action('reset', ( localize(8526, "Clear Data in Cloud...")), undefined, true, () => this.userDataSyncWorkbenchService.resetSyncedData()))),
|
|
497
|
+
( (new Action('show synced data', ( localize(8527, "Show Synced Data")), undefined, true, () => this.userDataSyncWorkbenchService.showSyncActivity())))
|
|
498
498
|
]
|
|
499
499
|
}
|
|
500
500
|
});
|
|
501
501
|
return;
|
|
502
502
|
case UserDataSyncErrorCode.Unauthorized:
|
|
503
503
|
case UserDataSyncErrorCode.Forbidden:
|
|
504
|
-
this.notificationService.error(( localize(
|
|
504
|
+
this.notificationService.error(( localize(8541, "Error while turning on Settings Sync: Authentication failed.")));
|
|
505
505
|
return;
|
|
506
506
|
}
|
|
507
507
|
this.notificationService.error(( localize(
|
|
508
|
-
|
|
508
|
+
8542,
|
|
509
509
|
"Error while turning on Settings Sync. Please check [logs]({0}) for more details.",
|
|
510
510
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
511
511
|
)));
|
|
512
512
|
}
|
|
513
513
|
else {
|
|
514
|
-
this.notificationService.error(( localize(
|
|
514
|
+
this.notificationService.error(( localize(8543, "Error while turning on Settings Sync. {0}", getErrorMessage(e))));
|
|
515
515
|
}
|
|
516
516
|
}
|
|
517
517
|
}
|
|
@@ -524,8 +524,8 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
524
524
|
quickPick.title = SYNC_TITLE.value;
|
|
525
525
|
quickPick.ok = false;
|
|
526
526
|
quickPick.customButton = true;
|
|
527
|
-
quickPick.customLabel = ( localize(
|
|
528
|
-
quickPick.description = ( localize(
|
|
527
|
+
quickPick.customLabel = ( localize(8544, "Sign in"));
|
|
528
|
+
quickPick.description = ( localize(8545, "Please sign in to backup and sync your data across devices."));
|
|
529
529
|
quickPick.canSelectMany = true;
|
|
530
530
|
quickPick.ignoreFocusOut = true;
|
|
531
531
|
quickPick.hideInput = true;
|
|
@@ -599,8 +599,8 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
599
599
|
const disposables = ( (new DisposableStore()));
|
|
600
600
|
const quickPick = this.quickInputService.createQuickPick();
|
|
601
601
|
disposables.add(quickPick);
|
|
602
|
-
quickPick.title = ( localize(
|
|
603
|
-
quickPick.placeholder = ( localize(
|
|
602
|
+
quickPick.title = ( localize(8546, "{0}: Configure...", SYNC_TITLE.value));
|
|
603
|
+
quickPick.placeholder = ( localize(8547, "Choose what to sync"));
|
|
604
604
|
quickPick.canSelectMany = true;
|
|
605
605
|
quickPick.ignoreFocusOut = true;
|
|
606
606
|
quickPick.ok = true;
|
|
@@ -623,15 +623,15 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
623
623
|
}
|
|
624
624
|
async turnOff() {
|
|
625
625
|
const result = await this.dialogService.confirm({
|
|
626
|
-
message: ( localize(
|
|
626
|
+
message: ( localize(8548, "Do you want to turn off sync?")),
|
|
627
627
|
detail: ( localize(
|
|
628
|
-
|
|
628
|
+
8549,
|
|
629
629
|
"Your settings, keybindings, extensions, snippets and UI State will no longer be synced."
|
|
630
630
|
)),
|
|
631
|
-
primaryButton: ( localize(
|
|
631
|
+
primaryButton: ( localize(8550, "&&Turn off")),
|
|
632
632
|
checkbox: this.userDataSyncWorkbenchService.accountStatus === AccountStatus.Available ? {
|
|
633
633
|
label: ( localize(
|
|
634
|
-
|
|
634
|
+
8551,
|
|
635
635
|
"Turn off sync on all your devices and clear the data from the cloud."
|
|
636
636
|
))
|
|
637
637
|
} : undefined
|
|
@@ -659,9 +659,9 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
659
659
|
(new Promise((c, e) => {
|
|
660
660
|
const disposables = ( (new DisposableStore()));
|
|
661
661
|
const quickPick = disposables.add(this.quickInputService.createQuickPick());
|
|
662
|
-
quickPick.title = ( localize(
|
|
662
|
+
quickPick.title = ( localize(8552, "{0}: Select Service", SYNC_TITLE.value));
|
|
663
663
|
quickPick.description = ( localize(
|
|
664
|
-
|
|
664
|
+
8553,
|
|
665
665
|
"Ensure you are using the same settings sync service when syncing with multiple environments"
|
|
666
666
|
));
|
|
667
667
|
quickPick.hideInput = true;
|
|
@@ -669,19 +669,19 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
669
669
|
const getDescription = (url) => {
|
|
670
670
|
const isDefault = isEqual(url, userDataSyncStore.defaultUrl);
|
|
671
671
|
if (isDefault) {
|
|
672
|
-
return ( localize(
|
|
672
|
+
return ( localize(8554, "Default"));
|
|
673
673
|
}
|
|
674
674
|
return undefined;
|
|
675
675
|
};
|
|
676
676
|
quickPick.items = [
|
|
677
677
|
{
|
|
678
678
|
id: 'insiders',
|
|
679
|
-
label: ( localize(
|
|
679
|
+
label: ( localize(8555, "Insiders")),
|
|
680
680
|
description: getDescription(userDataSyncStore.insidersUrl)
|
|
681
681
|
},
|
|
682
682
|
{
|
|
683
683
|
id: 'stable',
|
|
684
|
-
label: ( localize(
|
|
684
|
+
label: ( localize(8556, "Stable")),
|
|
685
685
|
description: getDescription(userDataSyncStore.stableUrl)
|
|
686
686
|
}
|
|
687
687
|
];
|
|
@@ -735,7 +735,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
735
735
|
constructor() {
|
|
736
736
|
super({
|
|
737
737
|
id: 'workbench.userDataSync.actions.turnOn',
|
|
738
|
-
title: ( localize2(
|
|
738
|
+
title: ( localize2(8557, 'Backup and Sync Settings...')),
|
|
739
739
|
category: SYNC_TITLE,
|
|
740
740
|
f1: true,
|
|
741
741
|
precondition: when,
|
|
@@ -772,7 +772,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
772
772
|
constructor() {
|
|
773
773
|
super({
|
|
774
774
|
id: 'workbench.userData.actions.turningOn',
|
|
775
|
-
title: ( localize(
|
|
775
|
+
title: ( localize(8558, "Turning on Settings Sync...")),
|
|
776
776
|
precondition: ( (ContextKeyExpr.false())),
|
|
777
777
|
menu: [{
|
|
778
778
|
group: '3_configuration',
|
|
@@ -795,7 +795,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
795
795
|
constructor() {
|
|
796
796
|
super({
|
|
797
797
|
id: 'workbench.userData.actions.cancelTurnOn',
|
|
798
|
-
title: ( localize(
|
|
798
|
+
title: ( localize(8559, "Cancel")),
|
|
799
799
|
icon: Codicon.stopCircle,
|
|
800
800
|
menu: {
|
|
801
801
|
id: MenuId.ViewContainerTitle,
|
|
@@ -825,7 +825,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
825
825
|
constructor() {
|
|
826
826
|
super({
|
|
827
827
|
id: 'workbench.userData.actions.signin',
|
|
828
|
-
title: ( localize(
|
|
828
|
+
title: ( localize(8560, "Sign in to Sync Settings")),
|
|
829
829
|
menu: {
|
|
830
830
|
group: '3_configuration',
|
|
831
831
|
id: MenuId.GlobalActivity,
|
|
@@ -847,13 +847,13 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
847
847
|
group: '1_settings',
|
|
848
848
|
command: {
|
|
849
849
|
id,
|
|
850
|
-
title: ( localize(
|
|
850
|
+
title: ( localize(8561, "Sign in to Sync Settings (1)")),
|
|
851
851
|
},
|
|
852
852
|
when
|
|
853
853
|
}))));
|
|
854
854
|
}
|
|
855
855
|
getShowConflictsTitle() {
|
|
856
|
-
return ( localize2(
|
|
856
|
+
return ( localize2(8562, "Show Conflicts ({0})", this.getConflictsCount()));
|
|
857
857
|
}
|
|
858
858
|
registerShowConflictsAction() {
|
|
859
859
|
this.conflictsActionDisposable.value = undefined;
|
|
@@ -895,7 +895,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
895
895
|
constructor() {
|
|
896
896
|
super({
|
|
897
897
|
id: 'workbench.userDataSync.actions.manage',
|
|
898
|
-
title: ( localize(
|
|
898
|
+
title: ( localize(8563, "Settings Sync is On")),
|
|
899
899
|
toggled: ContextKeyTrueExpr.INSTANCE,
|
|
900
900
|
menu: [
|
|
901
901
|
{
|
|
@@ -1028,7 +1028,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1028
1028
|
catch (e) {
|
|
1029
1029
|
if (!isCancellationError(e)) {
|
|
1030
1030
|
that.notificationService.error(( localize(
|
|
1031
|
-
|
|
1031
|
+
8564,
|
|
1032
1032
|
"Error while turning off Settings Sync. Please check [logs]({0}) for more details.",
|
|
1033
1033
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
1034
1034
|
)));
|
|
@@ -1050,7 +1050,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1050
1050
|
title: configureSyncCommand.title,
|
|
1051
1051
|
category: SYNC_TITLE,
|
|
1052
1052
|
icon: Codicon.settingsGear,
|
|
1053
|
-
tooltip: ( localize(
|
|
1053
|
+
tooltip: ( localize(8565, "Configure...")),
|
|
1054
1054
|
menu: [{
|
|
1055
1055
|
id: MenuId.CommandPalette,
|
|
1056
1056
|
when
|
|
@@ -1074,8 +1074,8 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1074
1074
|
constructor() {
|
|
1075
1075
|
super({
|
|
1076
1076
|
id: SHOW_SYNC_LOG_COMMAND_ID,
|
|
1077
|
-
title: ( localize(
|
|
1078
|
-
tooltip: ( localize(
|
|
1077
|
+
title: ( localize(8566, "{0}: Show Log", SYNC_TITLE.value)),
|
|
1078
|
+
tooltip: ( localize(8567, "Show Log")),
|
|
1079
1079
|
icon: Codicon.output,
|
|
1080
1080
|
menu: [{
|
|
1081
1081
|
id: MenuId.CommandPalette,
|
|
@@ -1140,7 +1140,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1140
1140
|
constructor() {
|
|
1141
1141
|
super({
|
|
1142
1142
|
id: 'workbench.userDataSync.actions.acceptMerges',
|
|
1143
|
-
title: ( localize(
|
|
1143
|
+
title: ( localize(8568, "Complete Merge")),
|
|
1144
1144
|
menu: [{
|
|
1145
1145
|
id: MenuId.EditorContent,
|
|
1146
1146
|
when: ( (ContextKeyExpr.and(ctxIsMergeResultEditor, (ContextKeyExpr.regex(
|
|
@@ -1175,7 +1175,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1175
1175
|
const notificationService = accessor.get(INotificationService);
|
|
1176
1176
|
const folder = await userDataSyncWorkbenchService.downloadSyncActivity();
|
|
1177
1177
|
if (folder) {
|
|
1178
|
-
notificationService.info(( localize(
|
|
1178
|
+
notificationService.info(( localize(8569, "Successfully downloaded Settings Sync activity.")));
|
|
1179
1179
|
}
|
|
1180
1180
|
}
|
|
1181
1181
|
}));
|
|
@@ -1202,7 +1202,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1202
1202
|
constructor() {
|
|
1203
1203
|
super({
|
|
1204
1204
|
id: 'workbench.actions.syncData.reset',
|
|
1205
|
-
title: ( localize(
|
|
1205
|
+
title: ( localize(8570, "Clear Data in Cloud...")),
|
|
1206
1206
|
menu: [{
|
|
1207
1207
|
id: MenuId.ViewContainerTitle,
|
|
1208
1208
|
when: ( (ContextKeyExpr.equals('viewContainer', SYNC_VIEW_CONTAINER_ID))),
|
|
@@ -54,7 +54,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
54
54
|
}
|
|
55
55
|
registerConflictsView(container) {
|
|
56
56
|
const viewsRegistry = ( (Registry.as(Extensions.ViewsRegistry)));
|
|
57
|
-
const viewName = ( localize2(
|
|
57
|
+
const viewName = ( localize2(10855, "Conflicts"));
|
|
58
58
|
const viewDescriptor = {
|
|
59
59
|
id: SYNC_CONFLICTS_VIEW_ID,
|
|
60
60
|
name: viewName,
|
|
@@ -70,7 +70,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
70
70
|
}
|
|
71
71
|
registerMachinesView(container) {
|
|
72
72
|
const id = `workbench.views.sync.machines`;
|
|
73
|
-
const name = ( localize2(
|
|
73
|
+
const name = ( localize2(10856, "Synced Machines"));
|
|
74
74
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
75
75
|
const dataProvider = this.instantiationService.createInstance(UserDataSyncMachinesViewDataProvider, treeView);
|
|
76
76
|
treeView.showRefreshAction = true;
|
|
@@ -98,7 +98,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
98
98
|
constructor() {
|
|
99
99
|
super({
|
|
100
100
|
id: `workbench.actions.sync.editMachineName`,
|
|
101
|
-
title: ( localize(
|
|
101
|
+
title: ( localize(10857, "Edit Name")),
|
|
102
102
|
icon: Codicon.edit,
|
|
103
103
|
menu: {
|
|
104
104
|
id: MenuId.ViewItemContext,
|
|
@@ -118,7 +118,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
118
118
|
constructor() {
|
|
119
119
|
super({
|
|
120
120
|
id: `workbench.actions.sync.turnOffSyncOnMachine`,
|
|
121
|
-
title: ( localize(
|
|
121
|
+
title: ( localize(10858, "Turn off Settings Sync")),
|
|
122
122
|
menu: {
|
|
123
123
|
id: MenuId.ViewItemContext,
|
|
124
124
|
when: ( (ContextKeyExpr.and(
|
|
@@ -137,7 +137,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
137
137
|
}
|
|
138
138
|
registerActivityView(container, remote) {
|
|
139
139
|
const id = `workbench.views.sync.${remote ? 'remote' : 'local'}Activity`;
|
|
140
|
-
const name = remote ? ( localize2(
|
|
140
|
+
const name = remote ? ( localize2(10859, "Sync Activity (Remote)")) : ( localize2(10860, "Sync Activity (Local)"));
|
|
141
141
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
142
142
|
treeView.showCollapseAllAction = true;
|
|
143
143
|
treeView.showRefreshAction = true;
|
|
@@ -166,7 +166,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
166
166
|
}
|
|
167
167
|
registerExternalActivityView(container) {
|
|
168
168
|
const id = `workbench.views.sync.externalActivity`;
|
|
169
|
-
const name = ( localize2(
|
|
169
|
+
const name = ( localize2(10861, "Sync Activity (Developer)"));
|
|
170
170
|
const dataProvider = this.instantiationService.createInstance(ExtractedUserDataSyncActivityViewDataProvider, undefined);
|
|
171
171
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
172
172
|
treeView.showCollapseAllAction = false;
|
|
@@ -189,7 +189,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
189
189
|
constructor() {
|
|
190
190
|
super({
|
|
191
191
|
id: `workbench.actions.sync.loadActivity`,
|
|
192
|
-
title: ( localize(
|
|
192
|
+
title: ( localize(10862, "Load Sync Activity")),
|
|
193
193
|
icon: Codicon.cloudUpload,
|
|
194
194
|
menu: {
|
|
195
195
|
id: MenuId.ViewTitle,
|
|
@@ -201,7 +201,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
201
201
|
async run(accessor) {
|
|
202
202
|
const fileDialogService = accessor.get(IFileDialogService);
|
|
203
203
|
const result = await fileDialogService.showOpenDialog({
|
|
204
|
-
title: ( localize(
|
|
204
|
+
title: ( localize(10863, "Select Sync Activity File or Folder")),
|
|
205
205
|
canSelectFiles: true,
|
|
206
206
|
canSelectFolders: true,
|
|
207
207
|
canSelectMany: false,
|
|
@@ -219,7 +219,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
219
219
|
constructor() {
|
|
220
220
|
super({
|
|
221
221
|
id: `workbench.actions.sync.${viewId}.resolveResource`,
|
|
222
|
-
title: ( localize(
|
|
222
|
+
title: ( localize(10864, "Show raw JSON sync data")),
|
|
223
223
|
menu: {
|
|
224
224
|
id: MenuId.ViewItemContext,
|
|
225
225
|
when: ( (ContextKeyExpr.and(
|
|
@@ -239,7 +239,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
239
239
|
constructor() {
|
|
240
240
|
super({
|
|
241
241
|
id: `workbench.actions.sync.${viewId}.compareWithLocal`,
|
|
242
|
-
title: ( localize(
|
|
242
|
+
title: ( localize(10865, "Compare with Local")),
|
|
243
243
|
menu: {
|
|
244
244
|
id: MenuId.ViewItemContext,
|
|
245
245
|
when: ( (ContextKeyExpr.and(
|
|
@@ -254,14 +254,14 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
254
254
|
const { resource, comparableResource } = JSON.parse(handle.$treeItemHandle);
|
|
255
255
|
const remoteResource = ( (URI.parse(resource)));
|
|
256
256
|
const localResource = ( (URI.parse(comparableResource)));
|
|
257
|
-
return commandService.executeCommand(API_OPEN_DIFF_EDITOR_COMMAND_ID, remoteResource, localResource, ( localize(
|
|
257
|
+
return commandService.executeCommand(API_OPEN_DIFF_EDITOR_COMMAND_ID, remoteResource, localResource, ( localize(10866, "{0} ↔ {1}", ( localize(10867, "{0} (Remote)", basename(remoteResource))), ( localize(10868, "{0} (Local)", basename(localResource))))), undefined);
|
|
258
258
|
}
|
|
259
259
|
}));
|
|
260
260
|
this._register(registerAction2(class extends Action2 {
|
|
261
261
|
constructor() {
|
|
262
262
|
super({
|
|
263
263
|
id: `workbench.actions.sync.${viewId}.replaceCurrent`,
|
|
264
|
-
title: ( localize(
|
|
264
|
+
title: ( localize(10869, "Restore")),
|
|
265
265
|
icon: Codicon.discard,
|
|
266
266
|
menu: {
|
|
267
267
|
id: MenuId.ViewItemContext,
|
|
@@ -280,7 +280,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
280
280
|
const { syncResourceHandle, syncResource } = JSON.parse(handle.$treeItemHandle);
|
|
281
281
|
const result = await dialogService.confirm({
|
|
282
282
|
message: ( localize(
|
|
283
|
-
|
|
283
|
+
10870,
|
|
284
284
|
"Would you like to replace your current {0} with selected?",
|
|
285
285
|
getSyncAreaLabel(syncResource)
|
|
286
286
|
)),
|
|
@@ -295,7 +295,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
295
295
|
}
|
|
296
296
|
registerTroubleShootView(container) {
|
|
297
297
|
const id = `workbench.views.sync.troubleshoot`;
|
|
298
|
-
const name = ( localize2(
|
|
298
|
+
const name = ( localize2(10871, "Troubleshoot"));
|
|
299
299
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
300
300
|
const dataProvider = this.instantiationService.createInstance(UserDataSyncTroubleshootViewDataProvider);
|
|
301
301
|
treeView.showRefreshAction = true;
|
|
@@ -359,7 +359,7 @@ let UserDataSyncActivityViewDataProvider = class UserDataSyncActivityViewDataPro
|
|
|
359
359
|
message: error.message,
|
|
360
360
|
actions: {
|
|
361
361
|
primary: [
|
|
362
|
-
( (new Action('reset', ( localize(
|
|
362
|
+
( (new Action('reset', ( localize(10872, "Reset Synced Data")), undefined, true, () => this.userDataSyncWorkbenchService.resetSyncedData()))),
|
|
363
363
|
]
|
|
364
364
|
}
|
|
365
365
|
});
|
|
@@ -416,7 +416,7 @@ let UserDataSyncActivityViewDataProvider = class UserDataSyncActivityViewDataPro
|
|
|
416
416
|
previousResource,
|
|
417
417
|
resource,
|
|
418
418
|
( localize(
|
|
419
|
-
|
|
419
|
+
10873,
|
|
420
420
|
"{0} ↔ {1}",
|
|
421
421
|
`${basename(resource)} (${fromNow(syncResourceHandle.previous.created, true)})`,
|
|
422
422
|
`${basename(resource)} (${fromNow(syncResourceHandle.created, true)})`
|
|
@@ -514,7 +514,7 @@ let RemoteUserDataSyncActivityViewDataProvider = class RemoteUserDataSyncActivit
|
|
|
514
514
|
if (machineId) {
|
|
515
515
|
const machines = await this.getMachines();
|
|
516
516
|
const machine = machines.find(({ id }) => id === machineId);
|
|
517
|
-
children[0].description = machine?.isCurrent ? ( localize(
|
|
517
|
+
children[0].description = machine?.isCurrent ? ( localize(10874, "Current")) : machine?.name;
|
|
518
518
|
}
|
|
519
519
|
}
|
|
520
520
|
return children;
|
|
@@ -570,7 +570,7 @@ let ExtractedUserDataSyncActivityViewDataProvider = class ExtractedUserDataSyncA
|
|
|
570
570
|
if (machineId) {
|
|
571
571
|
const machines = await this.getMachines();
|
|
572
572
|
const machine = machines.find(({ id }) => id === machineId);
|
|
573
|
-
children[0].description = machine?.isCurrent ? ( localize(
|
|
573
|
+
children[0].description = machine?.isCurrent ? ( localize(10874, "Current")) : machine?.name;
|
|
574
574
|
}
|
|
575
575
|
}
|
|
576
576
|
return children;
|
|
@@ -608,13 +608,13 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
608
608
|
try {
|
|
609
609
|
let machines = await this.getMachines();
|
|
610
610
|
machines = machines.filter(m => !m.disabled).sort((m1, m2) => m1.isCurrent ? -1 : 1);
|
|
611
|
-
this.treeView.message = machines.length ? undefined : ( localize(
|
|
611
|
+
this.treeView.message = machines.length ? undefined : ( localize(10875, "No Machines"));
|
|
612
612
|
return (
|
|
613
613
|
(machines.map(({ id, name, isCurrent, platform }) => ({
|
|
614
614
|
handle: id,
|
|
615
615
|
collapsibleState: TreeItemCollapsibleState.None,
|
|
616
616
|
label: { label: name },
|
|
617
|
-
description: isCurrent ? ( localize(
|
|
617
|
+
description: isCurrent ? ( localize(10874, "Current")) : undefined,
|
|
618
618
|
themeIcon: platform && isWebPlatform(platform) ? Codicon.globe : Codicon.vm,
|
|
619
619
|
contextValue: 'sync-machine'
|
|
620
620
|
})))
|
|
@@ -635,17 +635,17 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
635
635
|
const machines = await this.getMachines();
|
|
636
636
|
const machinesToDisable = machines.filter(({ id }) => machineIds.includes(id));
|
|
637
637
|
if (!machinesToDisable.length) {
|
|
638
|
-
throw ( (new Error(localize(
|
|
638
|
+
throw ( (new Error(localize(10876, "machine not found with id: {0}", machineIds.join(',')))));
|
|
639
639
|
}
|
|
640
640
|
const result = await this.dialogService.confirm({
|
|
641
641
|
type: 'info',
|
|
642
|
-
message: machinesToDisable.length > 1 ? ( localize(
|
|
642
|
+
message: machinesToDisable.length > 1 ? ( localize(10877, "Are you sure you want to turn off sync on selected machines?"))
|
|
643
643
|
: ( localize(
|
|
644
|
-
|
|
644
|
+
10878,
|
|
645
645
|
"Are you sure you want to turn off sync on {0}?",
|
|
646
646
|
machinesToDisable[0].name
|
|
647
647
|
)),
|
|
648
|
-
primaryButton: ( localize(
|
|
648
|
+
primaryButton: ( localize(10879, "&&Turn off")),
|
|
649
649
|
});
|
|
650
650
|
if (!result.confirmed) {
|
|
651
651
|
return false;
|
|
@@ -663,7 +663,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
663
663
|
async rename(machineId) {
|
|
664
664
|
const disposableStore = ( (new DisposableStore()));
|
|
665
665
|
const inputBox = disposableStore.add(this.quickInputService.createInputBox());
|
|
666
|
-
inputBox.placeholder = ( localize(
|
|
666
|
+
inputBox.placeholder = ( localize(10880, "Enter the name of the machine"));
|
|
667
667
|
inputBox.busy = true;
|
|
668
668
|
inputBox.show();
|
|
669
669
|
const machines = await this.getMachines();
|
|
@@ -671,7 +671,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
671
671
|
if (!machine) {
|
|
672
672
|
inputBox.hide();
|
|
673
673
|
disposableStore.dispose();
|
|
674
|
-
throw ( (new Error(localize(
|
|
674
|
+
throw ( (new Error(localize(10876, "machine not found with id: {0}", machineId))));
|
|
675
675
|
}
|
|
676
676
|
inputBox.busy = false;
|
|
677
677
|
inputBox.value = machine.name;
|
|
@@ -679,7 +679,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
679
679
|
machineName = machineName.trim();
|
|
680
680
|
return machineName && !( (machines.some(m => m.id !== machineId && m.name === machineName))) ? machineName : null;
|
|
681
681
|
};
|
|
682
|
-
disposableStore.add(inputBox.onDidChangeValue(() => inputBox.validationMessage = validateMachineName(inputBox.value) ? '' : ( localize(
|
|
682
|
+
disposableStore.add(inputBox.onDidChangeValue(() => inputBox.validationMessage = validateMachineName(inputBox.value) ? '' : ( localize(10881, "Machine name should be unique and not empty"))));
|
|
683
683
|
return (
|
|
684
684
|
(new Promise((c, e) => {
|
|
685
685
|
disposableStore.add(inputBox.onDidAccept(async () => {
|
|
@@ -721,12 +721,12 @@ let UserDataSyncTroubleshootViewDataProvider = class UserDataSyncTroubleshootVie
|
|
|
721
721
|
return [{
|
|
722
722
|
handle: 'SYNC_LOGS',
|
|
723
723
|
collapsibleState: TreeItemCollapsibleState.Collapsed,
|
|
724
|
-
label: { label: ( localize(
|
|
724
|
+
label: { label: ( localize(10882, "Logs")) },
|
|
725
725
|
themeIcon: Codicon.folder,
|
|
726
726
|
}, {
|
|
727
727
|
handle: 'LAST_SYNC_STATES',
|
|
728
728
|
collapsibleState: TreeItemCollapsibleState.Collapsed,
|
|
729
|
-
label: { label: ( localize(
|
|
729
|
+
label: { label: ( localize(10883, "Last Synced Remotes")) },
|
|
730
730
|
themeIcon: Codicon.folder,
|
|
731
731
|
}];
|
|
732
732
|
}
|
|
@@ -764,7 +764,7 @@ let UserDataSyncTroubleshootViewDataProvider = class UserDataSyncTroubleshootVie
|
|
|
764
764
|
collapsibleState: TreeItemCollapsibleState.None,
|
|
765
765
|
resourceUri: syncLogResource,
|
|
766
766
|
label: { label: this.uriIdentityService.extUri.basename(logFolder) },
|
|
767
|
-
description: this.uriIdentityService.extUri.isEqual(logFolder, this.environmentService.logsHome) ? ( localize(
|
|
767
|
+
description: this.uriIdentityService.extUri.isEqual(logFolder, this.environmentService.logsHome) ? ( localize(10874, "Current")) : undefined,
|
|
768
768
|
command: { id: API_OPEN_EDITOR_COMMAND_ID, title: '', arguments: [syncLogResource, undefined, undefined] },
|
|
769
769
|
});
|
|
770
770
|
}
|
package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.js
CHANGED
|
@@ -230,7 +230,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
230
230
|
async turnOn() {
|
|
231
231
|
if (!this.authenticationProviders.length) {
|
|
232
232
|
throw ( (new Error(localize(
|
|
233
|
-
|
|
233
|
+
3468,
|
|
234
234
|
"Settings sync cannot be turned on because there are no authentication providers available."
|
|
235
235
|
))));
|
|
236
236
|
}
|
|
@@ -245,16 +245,16 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
245
245
|
throw ( (new CancellationError()));
|
|
246
246
|
}
|
|
247
247
|
if (this.accountStatus !== AccountStatus.Available) {
|
|
248
|
-
throw ( (new Error(localize(
|
|
248
|
+
throw ( (new Error(localize(3469, "No account available"))));
|
|
249
249
|
}
|
|
250
250
|
const turnOnSyncCancellationToken = this.turnOnSyncCancellationToken = ( (new CancellationTokenSource()));
|
|
251
251
|
const disposable = isWeb ? Disposable.None : this.lifecycleService.onBeforeShutdown(e => e.veto((async () => {
|
|
252
252
|
const { confirmed } = await this.dialogService.confirm({
|
|
253
253
|
type: 'warning',
|
|
254
|
-
message: ( localize(
|
|
255
|
-
title: ( localize(
|
|
256
|
-
primaryButton: ( localize(
|
|
257
|
-
cancelButton: ( localize(
|
|
254
|
+
message: ( localize(3470, "Settings Sync is being turned on. Would you like to cancel it?")),
|
|
255
|
+
title: ( localize(3471, "Settings Sync")),
|
|
256
|
+
primaryButton: ( localize(3472, "&&Yes")),
|
|
257
|
+
cancelButton: ( localize(3473, "No"))
|
|
258
258
|
});
|
|
259
259
|
if (confirmed) {
|
|
260
260
|
turnOnSyncCancellationToken.cancel();
|
|
@@ -276,7 +276,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
276
276
|
if (this.environmentService.options?.settingsSyncOptions?.enablementHandler && this.currentAuthenticationProviderId) {
|
|
277
277
|
this.environmentService.options.settingsSyncOptions.enablementHandler(true, this.currentAuthenticationProviderId);
|
|
278
278
|
}
|
|
279
|
-
this.notificationService.info(( localize(
|
|
279
|
+
this.notificationService.info(( localize(3474, "{0} is turned on", SYNC_TITLE.value)));
|
|
280
280
|
}
|
|
281
281
|
async turnoff(everywhere) {
|
|
282
282
|
if (this.userDataSyncEnablementService.isEnabled()) {
|
|
@@ -316,13 +316,13 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
316
316
|
command: SHOW_SYNC_LOG_COMMAND_ID,
|
|
317
317
|
delay: 500,
|
|
318
318
|
}, async (progress) => {
|
|
319
|
-
progress.report({ message: ( localize(
|
|
319
|
+
progress.report({ message: ( localize(3475, "Turning on...")) });
|
|
320
320
|
disposables.add(this.userDataSyncService.onDidChangeStatus(status => {
|
|
321
321
|
if (status === SyncStatus.HasConflicts) {
|
|
322
|
-
progress.report({ message: ( localize(
|
|
322
|
+
progress.report({ message: ( localize(3476, "Resolving conflicts...")) });
|
|
323
323
|
}
|
|
324
324
|
else {
|
|
325
|
-
progress.report({ message: ( localize(
|
|
325
|
+
progress.report({ message: ( localize(3477, "Turning on...")) });
|
|
326
326
|
}
|
|
327
327
|
}));
|
|
328
328
|
await manualSyncTask.merge();
|
|
@@ -343,11 +343,11 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
343
343
|
async handleConflictsWhileTurningOn(token) {
|
|
344
344
|
await this.dialogService.prompt({
|
|
345
345
|
type: Severity$1.Warning,
|
|
346
|
-
message: ( localize(
|
|
347
|
-
detail: ( localize(
|
|
346
|
+
message: ( localize(3478, "Conflicts Detected")),
|
|
347
|
+
detail: ( localize(3479, "Please resolve conflicts to turn on...")),
|
|
348
348
|
buttons: [
|
|
349
349
|
{
|
|
350
|
-
label: ( localize(
|
|
350
|
+
label: ( localize(3480, "&&Show Conflicts")),
|
|
351
351
|
run: async () => {
|
|
352
352
|
const waitUntilConflictsAreResolvedPromise = raceCancellationError(Event.toPromise(Event.filter(this.userDataSyncService.onDidChangeConflicts, conficts => conficts.length === 0)), token);
|
|
353
353
|
await this.showConflicts(this.userDataSyncService.conflicts[0]?.conflicts[0]);
|
|
@@ -355,11 +355,11 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
355
355
|
}
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
|
-
label: ( localize(
|
|
358
|
+
label: ( localize(3481, "Replace &&Local")),
|
|
359
359
|
run: async () => this.replace(true)
|
|
360
360
|
},
|
|
361
361
|
{
|
|
362
|
-
label: ( localize(
|
|
362
|
+
label: ( localize(3482, "Replace &&Remote")),
|
|
363
363
|
run: () => this.replace(false)
|
|
364
364
|
},
|
|
365
365
|
],
|
|
@@ -394,11 +394,11 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
394
394
|
const { confirmed } = await this.dialogService.confirm({
|
|
395
395
|
type: 'info',
|
|
396
396
|
message: ( localize(
|
|
397
|
-
|
|
397
|
+
3483,
|
|
398
398
|
"This will clear your data in the cloud and stop sync on all your devices."
|
|
399
399
|
)),
|
|
400
|
-
title: ( localize(
|
|
401
|
-
primaryButton: ( localize(
|
|
400
|
+
title: ( localize(3484, "Clear")),
|
|
401
|
+
primaryButton: ( localize(3485, "&&Reset")),
|
|
402
402
|
});
|
|
403
403
|
if (confirmed) {
|
|
404
404
|
await this.userDataSyncService.resetRemote();
|
|
@@ -431,11 +431,11 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
431
431
|
}
|
|
432
432
|
async downloadSyncActivity() {
|
|
433
433
|
const result = await this.fileDialogService.showOpenDialog({
|
|
434
|
-
title: ( localize(
|
|
434
|
+
title: ( localize(3486, "Select folder to download Settings Sync activity")),
|
|
435
435
|
canSelectFiles: false,
|
|
436
436
|
canSelectFolders: true,
|
|
437
437
|
canSelectMany: false,
|
|
438
|
-
openLabel: ( localize(
|
|
438
|
+
openLabel: ( localize(3487, "Save")),
|
|
439
439
|
});
|
|
440
440
|
if (!result?.[0]) {
|
|
441
441
|
return;
|
|
@@ -527,7 +527,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
527
527
|
quickPick.title = SYNC_TITLE.value;
|
|
528
528
|
quickPick.ok = false;
|
|
529
529
|
quickPick.ignoreFocusOut = true;
|
|
530
|
-
quickPick.placeholder = ( localize(
|
|
530
|
+
quickPick.placeholder = ( localize(3488, "Select an account to sign in"));
|
|
531
531
|
quickPick.show();
|
|
532
532
|
if (authenticationProviders.length > 1) {
|
|
533
533
|
quickPick.busy = true;
|
|
@@ -565,26 +565,26 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
565
565
|
createQuickpickItems(authenticationProviders, allAccounts) {
|
|
566
566
|
const quickPickItems = [];
|
|
567
567
|
if (allAccounts.size) {
|
|
568
|
-
quickPickItems.push({ type: 'separator', label: ( localize(
|
|
568
|
+
quickPickItems.push({ type: 'separator', label: ( localize(3489, "Signed in")) });
|
|
569
569
|
for (const authenticationProvider of authenticationProviders) {
|
|
570
570
|
const accounts = (allAccounts.get(authenticationProvider.id) || []).sort(({ sessionId }) => sessionId === this.currentSessionId ? -1 : 1);
|
|
571
571
|
const providerName = this.authenticationService.getProvider(authenticationProvider.id).label;
|
|
572
572
|
for (const account of accounts) {
|
|
573
573
|
quickPickItems.push({
|
|
574
574
|
label: `${account.accountName} (${providerName})`,
|
|
575
|
-
description: account.sessionId === this.current?.sessionId ? ( localize(
|
|
575
|
+
description: account.sessionId === this.current?.sessionId ? ( localize(3490, "Last Used with Sync")) : undefined,
|
|
576
576
|
account,
|
|
577
577
|
authenticationProvider,
|
|
578
578
|
});
|
|
579
579
|
}
|
|
580
580
|
}
|
|
581
|
-
quickPickItems.push({ type: 'separator', label: ( localize(
|
|
581
|
+
quickPickItems.push({ type: 'separator', label: ( localize(3491, "Others")) });
|
|
582
582
|
}
|
|
583
583
|
for (const authenticationProvider of authenticationProviders) {
|
|
584
584
|
const provider = this.authenticationService.getProvider(authenticationProvider.id);
|
|
585
585
|
if (!( (allAccounts.has(authenticationProvider.id))) || provider.supportsMultipleAccounts) {
|
|
586
586
|
const providerName = provider.label;
|
|
587
|
-
quickPickItems.push({ label: ( localize(
|
|
587
|
+
quickPickItems.push({ label: ( localize(3492, "Sign in with {0}", providerName)), authenticationProvider });
|
|
588
588
|
}
|
|
589
589
|
}
|
|
590
590
|
return quickPickItems;
|