@codingame/monaco-vscode-user-data-sync-service-override 27.0.0 → 28.0.1
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 +76 -76
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncConflictsView.js +8 -8
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncViews.js +32 -32
- package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.js +27 -27
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-user-data-sync-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "28.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - user-data-sync service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
19
|
-
"@codingame/monaco-vscode-user-data-profile-service-override": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "28.0.1",
|
|
19
|
+
"@codingame/monaco-vscode-user-data-profile-service-override": "28.0.1"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
|
22
22
|
"module": "index.js",
|
|
@@ -479,24 +479,24 @@ class AutoSync extends Disposable {
|
|
|
479
479
|
if (this.manifest === null && (await this.userDataSyncService.hasPreviouslySynced())) {
|
|
480
480
|
if (this.hasSyncServiceChanged()) {
|
|
481
481
|
if (await this.hasDefaultServiceChanged()) {
|
|
482
|
-
throw ( new UserDataAutoSyncError(( localize(
|
|
482
|
+
throw ( new UserDataAutoSyncError(( localize(2503, "Cannot sync because default service has changed")), UserDataSyncErrorCode.DefaultServiceChanged));
|
|
483
483
|
} else {
|
|
484
|
-
throw ( new UserDataAutoSyncError(( localize(
|
|
484
|
+
throw ( new UserDataAutoSyncError(( localize(2504, "Cannot sync because sync service has changed")), UserDataSyncErrorCode.ServiceChanged));
|
|
485
485
|
}
|
|
486
486
|
} else {
|
|
487
|
-
throw ( new UserDataAutoSyncError(( localize(
|
|
487
|
+
throw ( new UserDataAutoSyncError(( localize(2505, "Cannot sync because syncing is turned off in the cloud")), UserDataSyncErrorCode.TurnedOff));
|
|
488
488
|
}
|
|
489
489
|
}
|
|
490
490
|
const sessionId = this.storageService.get(sessionIdKey, StorageScope.APPLICATION);
|
|
491
491
|
if (sessionId && this.manifest && sessionId !== this.manifest.session) {
|
|
492
492
|
if (this.hasSyncServiceChanged()) {
|
|
493
493
|
if (await this.hasDefaultServiceChanged()) {
|
|
494
|
-
throw ( new UserDataAutoSyncError(( localize(
|
|
494
|
+
throw ( new UserDataAutoSyncError(( localize(2503, "Cannot sync because default service has changed")), UserDataSyncErrorCode.DefaultServiceChanged));
|
|
495
495
|
} else {
|
|
496
|
-
throw ( new UserDataAutoSyncError(( localize(
|
|
496
|
+
throw ( new UserDataAutoSyncError(( localize(2504, "Cannot sync because sync service has changed")), UserDataSyncErrorCode.ServiceChanged));
|
|
497
497
|
}
|
|
498
498
|
} else {
|
|
499
|
-
throw ( new UserDataAutoSyncError(( localize(
|
|
499
|
+
throw ( new UserDataAutoSyncError(( localize(2506, "Cannot sync because current session is expired")), UserDataSyncErrorCode.SessionExpired));
|
|
500
500
|
}
|
|
501
501
|
}
|
|
502
502
|
const machines = await this.userDataSyncMachinesService.getMachines(this.manifest || undefined);
|
|
@@ -506,7 +506,7 @@ class AutoSync extends Disposable {
|
|
|
506
506
|
const currentMachine = machines.find(machine => machine.isCurrent);
|
|
507
507
|
if (currentMachine?.disabled) {
|
|
508
508
|
throw ( new UserDataAutoSyncError(( localize(
|
|
509
|
-
|
|
509
|
+
2507,
|
|
510
510
|
"Cannot sync because syncing is turned off on this machine from another machine."
|
|
511
511
|
)), UserDataSyncErrorCode.TurnedOff));
|
|
512
512
|
}
|
|
@@ -13,7 +13,7 @@ let UserDataSyncLogService = class UserDataSyncLogService extends AbstractLogger
|
|
|
13
13
|
this.logger = this._register(
|
|
14
14
|
loggerService.createLogger(joinPath(environmentService.logsHome, `${USER_DATA_SYNC_LOG_ID}.log`), {
|
|
15
15
|
id: USER_DATA_SYNC_LOG_ID,
|
|
16
|
-
name: ( localize(
|
|
16
|
+
name: ( localize(2513, "Settings Sync"))
|
|
17
17
|
})
|
|
18
18
|
);
|
|
19
19
|
}
|
|
@@ -580,7 +580,7 @@ let UserDataSyncResourceProviderService = class UserDataSyncResourceProviderServ
|
|
|
580
580
|
this.logService.error(error);
|
|
581
581
|
}
|
|
582
582
|
throw ( new UserDataSyncError(( localize(
|
|
583
|
-
|
|
583
|
+
2515,
|
|
584
584
|
"Cannot parse sync data as it is not compatible with the current version."
|
|
585
585
|
)), UserDataSyncErrorCode.IncompatibleRemoteContent, syncResource));
|
|
586
586
|
}
|
|
@@ -39,11 +39,11 @@ let UserDataSyncReportIssueContribution = class UserDataSyncReportIssueContribut
|
|
|
39
39
|
case UserDataSyncErrorCode.LocalTooManyRequests:
|
|
40
40
|
{
|
|
41
41
|
const message = isWeb ? ( localize(
|
|
42
|
-
|
|
42
|
+
14688,
|
|
43
43
|
"Settings sync is suspended temporarily because the current device is making too many requests. Please reload {0} to resume.",
|
|
44
44
|
this.productService.nameLong
|
|
45
45
|
)) : ( localize(
|
|
46
|
-
|
|
46
|
+
14689,
|
|
47
47
|
"Settings sync is suspended temporarily because the current device is making too many requests. Please restart {0} to resume.",
|
|
48
48
|
this.productService.nameLong
|
|
49
49
|
));
|
|
@@ -53,11 +53,11 @@ let UserDataSyncReportIssueContribution = class UserDataSyncReportIssueContribut
|
|
|
53
53
|
actions: {
|
|
54
54
|
primary: [toAction({
|
|
55
55
|
id: "Show Sync Logs",
|
|
56
|
-
label: ( localize(
|
|
56
|
+
label: ( localize(14690, "Show Log")),
|
|
57
57
|
run: () => this.commandService.executeCommand(SHOW_SYNC_LOG_COMMAND_ID)
|
|
58
58
|
}), toAction({
|
|
59
59
|
id: "Restart",
|
|
60
|
-
label: isWeb ? ( localize(
|
|
60
|
+
label: isWeb ? ( localize(14691, "Reload")) : ( localize(14692, "Restart")),
|
|
61
61
|
run: () => this.hostService.restart()
|
|
62
62
|
})]
|
|
63
63
|
}
|
|
@@ -66,19 +66,19 @@ let UserDataSyncReportIssueContribution = class UserDataSyncReportIssueContribut
|
|
|
66
66
|
}
|
|
67
67
|
case UserDataSyncErrorCode.TooManyRequests:
|
|
68
68
|
{
|
|
69
|
-
const operationId = error.operationId ? ( localize(
|
|
69
|
+
const operationId = error.operationId ? ( localize(14693, "Operation Id: {0}", error.operationId)) : undefined;
|
|
70
70
|
const message = ( localize(
|
|
71
|
-
|
|
71
|
+
14694,
|
|
72
72
|
"Settings sync is disabled because the current device is making too many requests. Please wait for 10 minutes and turn on sync."
|
|
73
73
|
));
|
|
74
74
|
this.notificationService.notify({
|
|
75
75
|
severity: Severity.Error,
|
|
76
76
|
message: operationId ? `${message} ${operationId}` : message,
|
|
77
|
-
source: error.operationId ? ( localize(
|
|
77
|
+
source: error.operationId ? ( localize(14695, "Settings Sync. Operation Id: {0}", error.operationId)) : undefined,
|
|
78
78
|
actions: {
|
|
79
79
|
primary: [toAction({
|
|
80
80
|
id: "Show Sync Logs",
|
|
81
|
-
label: ( localize(
|
|
81
|
+
label: ( localize(14690, "Show Log")),
|
|
82
82
|
run: () => this.commandService.executeCommand(SHOW_SYNC_LOG_COMMAND_ID)
|
|
83
83
|
})]
|
|
84
84
|
}
|
|
@@ -51,33 +51,33 @@ import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severit
|
|
|
51
51
|
|
|
52
52
|
const turnOffSyncCommand = {
|
|
53
53
|
id: "workbench.userDataSync.actions.turnOff",
|
|
54
|
-
title: ( localize2(
|
|
54
|
+
title: ( localize2(14696, "Turn Off"))
|
|
55
55
|
};
|
|
56
56
|
const configureSyncCommand = {
|
|
57
57
|
id: CONFIGURE_SYNC_COMMAND_ID,
|
|
58
|
-
title: ( localize2(
|
|
58
|
+
title: ( localize2(14697, "Configure..."))
|
|
59
59
|
};
|
|
60
60
|
const showConflictsCommandId = "workbench.userDataSync.actions.showConflicts";
|
|
61
61
|
const syncNowCommand = {
|
|
62
62
|
id: "workbench.userDataSync.actions.syncNow",
|
|
63
|
-
title: ( localize2(
|
|
63
|
+
title: ( localize2(14698, "Sync Now")),
|
|
64
64
|
description(userDataSyncService) {
|
|
65
65
|
if (userDataSyncService.status === SyncStatus.Syncing) {
|
|
66
|
-
return localize(
|
|
66
|
+
return localize(14699, "syncing");
|
|
67
67
|
}
|
|
68
68
|
if (userDataSyncService.lastSyncTime) {
|
|
69
|
-
return localize(
|
|
69
|
+
return localize(14700, "synced {0}", fromNow(userDataSyncService.lastSyncTime, true));
|
|
70
70
|
}
|
|
71
71
|
return undefined;
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
const showSyncSettingsCommand = {
|
|
75
75
|
id: "workbench.userDataSync.actions.settings",
|
|
76
|
-
title: ( localize2(
|
|
76
|
+
title: ( localize2(14701, "Show Settings"))
|
|
77
77
|
};
|
|
78
78
|
const showSyncedDataCommand = {
|
|
79
79
|
id: "workbench.userDataSync.actions.showSyncedData",
|
|
80
|
-
title: ( localize2(
|
|
80
|
+
title: ( localize2(14702, "Show Synced Data"))
|
|
81
81
|
};
|
|
82
82
|
const CONTEXT_TURNING_ON_STATE = ( new RawContextKey("userDataSyncTurningOn", false));
|
|
83
83
|
let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution extends Disposable {
|
|
@@ -203,21 +203,21 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
203
203
|
if (!( this.conflictsDisposables.has(key))) {
|
|
204
204
|
const conflictsArea = getSyncAreaLabel(conflict.syncResource);
|
|
205
205
|
const handle = this.notificationService.prompt(Severity.Warning, ( localize(
|
|
206
|
-
|
|
206
|
+
14703,
|
|
207
207
|
"Unable to sync due to conflicts in {0}. Please resolve them to continue.",
|
|
208
208
|
conflictsArea.toLowerCase()
|
|
209
209
|
)), [{
|
|
210
|
-
label: ( localize(
|
|
210
|
+
label: ( localize(14704, "Replace Remote")),
|
|
211
211
|
run: () => {
|
|
212
212
|
this.acceptLocal(conflict, conflict.conflicts[0]);
|
|
213
213
|
}
|
|
214
214
|
}, {
|
|
215
|
-
label: ( localize(
|
|
215
|
+
label: ( localize(14705, "Replace Local")),
|
|
216
216
|
run: () => {
|
|
217
217
|
this.acceptRemote(conflict, conflict.conflicts[0]);
|
|
218
218
|
}
|
|
219
219
|
}, {
|
|
220
|
-
label: ( localize(
|
|
220
|
+
label: ( localize(14706, "Show Conflicts")),
|
|
221
221
|
run: () => {
|
|
222
222
|
this.telemetryService.publicLog2("sync/showConflicts", {
|
|
223
223
|
source: conflict.syncResource
|
|
@@ -248,7 +248,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
248
248
|
);
|
|
249
249
|
} catch (e) {
|
|
250
250
|
this.notificationService.error(( localize(
|
|
251
|
-
|
|
251
|
+
14707,
|
|
252
252
|
"Error while accepting changes. Please check [logs]({0}) for more details.",
|
|
253
253
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
254
254
|
)));
|
|
@@ -264,7 +264,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
264
264
|
);
|
|
265
265
|
} catch (e) {
|
|
266
266
|
this.notificationService.error(( localize(
|
|
267
|
-
|
|
267
|
+
14707,
|
|
268
268
|
"Error while accepting changes. Please check [logs]({0}) for more details.",
|
|
269
269
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
270
270
|
)));
|
|
@@ -276,13 +276,13 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
276
276
|
this.notificationService.notify({
|
|
277
277
|
severity: Severity.Info,
|
|
278
278
|
message: ( localize(
|
|
279
|
-
|
|
279
|
+
14708,
|
|
280
280
|
"Settings sync was turned off because current session is expired, please sign in again to turn on sync."
|
|
281
281
|
)),
|
|
282
282
|
actions: {
|
|
283
283
|
primary: [toAction({
|
|
284
284
|
id: "turn on sync",
|
|
285
|
-
label: ( localize(
|
|
285
|
+
label: ( localize(14709, "Turn on Settings Sync...")),
|
|
286
286
|
run: () => this.turnOn()
|
|
287
287
|
})]
|
|
288
288
|
}
|
|
@@ -292,13 +292,13 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
292
292
|
this.notificationService.notify({
|
|
293
293
|
severity: Severity.Info,
|
|
294
294
|
message: ( localize(
|
|
295
|
-
|
|
295
|
+
14710,
|
|
296
296
|
"Settings sync was turned off from another device, please turn on sync again."
|
|
297
297
|
)),
|
|
298
298
|
actions: {
|
|
299
299
|
primary: [toAction({
|
|
300
300
|
id: "turn on sync",
|
|
301
|
-
label: ( localize(
|
|
301
|
+
label: ( localize(14709, "Turn on Settings Sync...")),
|
|
302
302
|
run: () => this.turnOn()
|
|
303
303
|
})]
|
|
304
304
|
}
|
|
@@ -309,7 +309,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
309
309
|
this.disableSync(error.resource);
|
|
310
310
|
const sourceArea = getSyncAreaLabel(error.resource);
|
|
311
311
|
this.handleTooLargeError(error.resource, ( localize(
|
|
312
|
-
|
|
312
|
+
14711,
|
|
313
313
|
"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",
|
|
314
314
|
sourceArea.toLowerCase(),
|
|
315
315
|
sourceArea.toLowerCase(),
|
|
@@ -320,7 +320,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
320
320
|
case UserDataSyncErrorCode.LocalTooManyProfiles:
|
|
321
321
|
this.disableSync(SyncResource.Profiles);
|
|
322
322
|
this.notificationService.error(( localize(
|
|
323
|
-
|
|
323
|
+
14712,
|
|
324
324
|
"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"
|
|
325
325
|
)));
|
|
326
326
|
break;
|
|
@@ -329,12 +329,12 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
329
329
|
case UserDataSyncErrorCode.UpgradeRequired:
|
|
330
330
|
{
|
|
331
331
|
const message = ( localize(
|
|
332
|
-
|
|
332
|
+
14713,
|
|
333
333
|
"Settings sync is disabled because the current version ({0}, {1}) is not compatible with the sync service. Please update before turning on sync.",
|
|
334
334
|
this.productService.version,
|
|
335
335
|
this.productService.commit
|
|
336
336
|
));
|
|
337
|
-
const operationId = error.operationId ? ( localize(
|
|
337
|
+
const operationId = error.operationId ? ( localize(14714, "Operation Id: {0}", error.operationId)) : undefined;
|
|
338
338
|
this.notificationService.notify({
|
|
339
339
|
severity: Severity.Error,
|
|
340
340
|
message: operationId ? `${message} ${operationId}` : message
|
|
@@ -344,21 +344,21 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
344
344
|
case UserDataSyncErrorCode.MethodNotFound:
|
|
345
345
|
{
|
|
346
346
|
const message = ( localize(
|
|
347
|
-
|
|
347
|
+
14715,
|
|
348
348
|
"Settings sync is disabled because the client is making invalid requests. Please report an issue with the logs."
|
|
349
349
|
));
|
|
350
|
-
const operationId = error.operationId ? ( localize(
|
|
350
|
+
const operationId = error.operationId ? ( localize(14714, "Operation Id: {0}", error.operationId)) : undefined;
|
|
351
351
|
this.notificationService.notify({
|
|
352
352
|
severity: Severity.Error,
|
|
353
353
|
message: operationId ? `${message} ${operationId}` : message,
|
|
354
354
|
actions: {
|
|
355
355
|
primary: [toAction({
|
|
356
356
|
id: "Show Sync Logs",
|
|
357
|
-
label: ( localize(
|
|
357
|
+
label: ( localize(14716, "Show Log")),
|
|
358
358
|
run: () => this.commandService.executeCommand(SHOW_SYNC_LOG_COMMAND_ID)
|
|
359
359
|
}), toAction({
|
|
360
360
|
id: "Report Issue",
|
|
361
|
-
label: ( localize(
|
|
361
|
+
label: ( localize(14717, "Report Issue")),
|
|
362
362
|
run: () => this.workbenchIssueService.openReporter()
|
|
363
363
|
})]
|
|
364
364
|
}
|
|
@@ -369,17 +369,17 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
369
369
|
this.notificationService.notify({
|
|
370
370
|
severity: Severity.Error,
|
|
371
371
|
message: ( localize(
|
|
372
|
-
|
|
372
|
+
14718,
|
|
373
373
|
"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."
|
|
374
374
|
)),
|
|
375
375
|
actions: {
|
|
376
376
|
primary: [toAction({
|
|
377
377
|
id: "reset",
|
|
378
|
-
label: ( localize(
|
|
378
|
+
label: ( localize(14719, "Clear Data in Cloud...")),
|
|
379
379
|
run: () => this.userDataSyncWorkbenchService.resetSyncedData()
|
|
380
380
|
}), toAction({
|
|
381
381
|
id: "show synced data",
|
|
382
|
-
label: ( localize(
|
|
382
|
+
label: ( localize(14720, "Show Synced Data")),
|
|
383
383
|
run: () => this.userDataSyncWorkbenchService.showSyncActivity()
|
|
384
384
|
})]
|
|
385
385
|
}
|
|
@@ -388,7 +388,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
388
388
|
case UserDataSyncErrorCode.ServiceChanged:
|
|
389
389
|
this.notificationService.notify({
|
|
390
390
|
severity: Severity.Info,
|
|
391
|
-
message: this.userDataSyncStoreManagementService.userDataSyncStore?.type === "insiders" ? ( localize(
|
|
391
|
+
message: this.userDataSyncStoreManagementService.userDataSyncStore?.type === "insiders" ? ( localize(14721, "Settings Sync has been switched to insiders service")) : ( localize(14722, "Settings Sync has been switched to stable service"))
|
|
392
392
|
});
|
|
393
393
|
return;
|
|
394
394
|
case UserDataSyncErrorCode.DefaultServiceChanged:
|
|
@@ -396,7 +396,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
396
396
|
this.notificationService.notify({
|
|
397
397
|
severity: Severity.Info,
|
|
398
398
|
message: ( localize(
|
|
399
|
-
|
|
399
|
+
14723,
|
|
400
400
|
"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)."
|
|
401
401
|
))
|
|
402
402
|
});
|
|
@@ -405,14 +405,14 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
405
405
|
this.notificationService.notify({
|
|
406
406
|
severity: Severity.Info,
|
|
407
407
|
message: ( localize(
|
|
408
|
-
|
|
408
|
+
14724,
|
|
409
409
|
"Settings sync was turned off because {0} now uses a separate service. Please turn on sync again.",
|
|
410
410
|
this.productService.nameLong
|
|
411
411
|
)),
|
|
412
412
|
actions: {
|
|
413
413
|
primary: [toAction({
|
|
414
414
|
id: "turn on sync",
|
|
415
|
-
label: ( localize(
|
|
415
|
+
label: ( localize(14709, "Turn on Settings Sync...")),
|
|
416
416
|
run: () => this.turnOn()
|
|
417
417
|
})]
|
|
418
418
|
}
|
|
@@ -422,14 +422,14 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
424
|
handleTooLargeError(resource, message, error) {
|
|
425
|
-
const operationId = error.operationId ? ( localize(
|
|
425
|
+
const operationId = error.operationId ? ( localize(14714, "Operation Id: {0}", error.operationId)) : undefined;
|
|
426
426
|
this.notificationService.notify({
|
|
427
427
|
severity: Severity.Error,
|
|
428
428
|
message: operationId ? `${message} ${operationId}` : message,
|
|
429
429
|
actions: {
|
|
430
430
|
primary: [toAction({
|
|
431
431
|
id: "open sync file",
|
|
432
|
-
label: ( localize(
|
|
432
|
+
label: ( localize(14725, "Open {0} File", getSyncAreaLabel(resource))),
|
|
433
433
|
run: () => resource === SyncResource.Settings ? this.preferencesService.openUserSettings({
|
|
434
434
|
jsonEditor: true
|
|
435
435
|
}) : this.preferencesService.openGlobalKeybindingSettings(true)
|
|
@@ -497,14 +497,14 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
497
497
|
const handle = this.notificationService.notify({
|
|
498
498
|
severity: Severity.Error,
|
|
499
499
|
message: ( localize(
|
|
500
|
-
|
|
500
|
+
14726,
|
|
501
501
|
"Unable to sync {0} because the content in the file is not valid. Please open the file and correct it.",
|
|
502
502
|
errorArea.toLowerCase()
|
|
503
503
|
)),
|
|
504
504
|
actions: {
|
|
505
505
|
primary: [toAction({
|
|
506
506
|
id: "open sync file",
|
|
507
|
-
label: ( localize(
|
|
507
|
+
label: ( localize(14725, "Open {0} File", errorArea)),
|
|
508
508
|
run: () => source === SyncResource.Settings ? this.preferencesService.openUserSettings({
|
|
509
509
|
jsonEditor: true
|
|
510
510
|
}) : this.preferencesService.openGlobalKeybindingSettings(true)
|
|
@@ -530,9 +530,9 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
530
530
|
this.globalActivityBadgeDisposable.clear();
|
|
531
531
|
let badge = undefined;
|
|
532
532
|
if (this.userDataSyncService.conflicts.length && this.userDataSyncEnablementService.isEnabled()) {
|
|
533
|
-
badge = ( new NumberBadge(this.getConflictsCount(), () => ( localize(
|
|
533
|
+
badge = ( new NumberBadge(this.getConflictsCount(), () => ( localize(14727, "{0}: Conflicts Detected", SYNC_TITLE.value))));
|
|
534
534
|
} else if (this.turningOnSync) {
|
|
535
|
-
badge = ( new ProgressBadge(() => ( localize(
|
|
535
|
+
badge = ( new ProgressBadge(() => ( localize(14728, "Turning on Settings Sync..."))));
|
|
536
536
|
}
|
|
537
537
|
if (badge) {
|
|
538
538
|
this.globalActivityBadgeDisposable.value = this.activityService.showGlobalActivity({
|
|
@@ -544,7 +544,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
544
544
|
this.accountBadgeDisposable.clear();
|
|
545
545
|
let badge = undefined;
|
|
546
546
|
if (this.userDataSyncService.status !== SyncStatus.Uninitialized && this.userDataSyncEnablementService.isEnabled() && this.userDataSyncWorkbenchService.accountStatus === AccountStatus.Unavailable) {
|
|
547
|
-
badge = ( new NumberBadge(1, () => ( localize(
|
|
547
|
+
badge = ( new NumberBadge(1, () => ( localize(14729, "Sign in to Sync Settings"))));
|
|
548
548
|
}
|
|
549
549
|
if (badge) {
|
|
550
550
|
this.accountBadgeDisposable.value = this.activityService.showAccountsActivity({
|
|
@@ -555,7 +555,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
555
555
|
async turnOn() {
|
|
556
556
|
try {
|
|
557
557
|
if (!this.userDataSyncWorkbenchService.authenticationProviders.length) {
|
|
558
|
-
throw ( new Error(( localize(
|
|
558
|
+
throw ( new Error(( localize(14730, "No authentication providers are available."))));
|
|
559
559
|
}
|
|
560
560
|
const turnOn = await this.askToConfigure();
|
|
561
561
|
if (!turnOn) {
|
|
@@ -574,7 +574,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
574
574
|
case UserDataSyncErrorCode.TooLarge:
|
|
575
575
|
if (e.resource === SyncResource.Keybindings || e.resource === SyncResource.Settings || e.resource === SyncResource.Tasks) {
|
|
576
576
|
this.handleTooLargeError(e.resource, ( localize(
|
|
577
|
-
|
|
577
|
+
14731,
|
|
578
578
|
"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",
|
|
579
579
|
getSyncAreaLabel(e.resource).toLowerCase(),
|
|
580
580
|
"100kb"
|
|
@@ -587,12 +587,12 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
587
587
|
case UserDataSyncErrorCode.UpgradeRequired:
|
|
588
588
|
{
|
|
589
589
|
const message = ( localize(
|
|
590
|
-
|
|
590
|
+
14732,
|
|
591
591
|
"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.",
|
|
592
592
|
this.productService.version,
|
|
593
593
|
this.productService.commit
|
|
594
594
|
));
|
|
595
|
-
const operationId = e.operationId ? ( localize(
|
|
595
|
+
const operationId = e.operationId ? ( localize(14714, "Operation Id: {0}", e.operationId)) : undefined;
|
|
596
596
|
this.notificationService.notify({
|
|
597
597
|
severity: Severity.Error,
|
|
598
598
|
message: operationId ? `${message} ${operationId}` : message
|
|
@@ -603,17 +603,17 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
603
603
|
this.notificationService.notify({
|
|
604
604
|
severity: Severity.Error,
|
|
605
605
|
message: ( localize(
|
|
606
|
-
|
|
606
|
+
14733,
|
|
607
607
|
"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."
|
|
608
608
|
)),
|
|
609
609
|
actions: {
|
|
610
610
|
primary: [toAction({
|
|
611
611
|
id: "reset",
|
|
612
|
-
label: ( localize(
|
|
612
|
+
label: ( localize(14719, "Clear Data in Cloud...")),
|
|
613
613
|
run: () => this.userDataSyncWorkbenchService.resetSyncedData()
|
|
614
614
|
}), toAction({
|
|
615
615
|
id: "show synced data",
|
|
616
|
-
label: ( localize(
|
|
616
|
+
label: ( localize(14720, "Show Synced Data")),
|
|
617
617
|
run: () => this.userDataSyncWorkbenchService.showSyncActivity()
|
|
618
618
|
})]
|
|
619
619
|
}
|
|
@@ -621,16 +621,16 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
621
621
|
return;
|
|
622
622
|
case UserDataSyncErrorCode.Unauthorized:
|
|
623
623
|
case UserDataSyncErrorCode.Forbidden:
|
|
624
|
-
this.notificationService.error(( localize(
|
|
624
|
+
this.notificationService.error(( localize(14734, "Error while turning on Settings Sync: Authentication failed.")));
|
|
625
625
|
return;
|
|
626
626
|
}
|
|
627
627
|
this.notificationService.error(( localize(
|
|
628
|
-
|
|
628
|
+
14735,
|
|
629
629
|
"Error while turning on Settings Sync. Please check [logs]({0}) for more details.",
|
|
630
630
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
631
631
|
)));
|
|
632
632
|
} else {
|
|
633
|
-
this.notificationService.error(( localize(
|
|
633
|
+
this.notificationService.error(( localize(14736, "Error while turning on Settings Sync. {0}", getErrorMessage(e))));
|
|
634
634
|
}
|
|
635
635
|
}
|
|
636
636
|
}
|
|
@@ -642,8 +642,8 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
642
642
|
quickPick.title = SYNC_TITLE.value;
|
|
643
643
|
quickPick.ok = false;
|
|
644
644
|
quickPick.customButton = true;
|
|
645
|
-
quickPick.customLabel = ( localize(
|
|
646
|
-
quickPick.description = ( localize(
|
|
645
|
+
quickPick.customLabel = ( localize(14737, "Sign in"));
|
|
646
|
+
quickPick.description = ( localize(14738, "Please sign in to backup and sync your data across devices."));
|
|
647
647
|
quickPick.canSelectMany = true;
|
|
648
648
|
quickPick.ignoreFocusOut = true;
|
|
649
649
|
quickPick.hideInput = true;
|
|
@@ -718,8 +718,8 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
718
718
|
const disposables = ( new DisposableStore());
|
|
719
719
|
const quickPick = this.quickInputService.createQuickPick();
|
|
720
720
|
disposables.add(quickPick);
|
|
721
|
-
quickPick.title = ( localize(
|
|
722
|
-
quickPick.placeholder = ( localize(
|
|
721
|
+
quickPick.title = ( localize(14739, "{0}: Configure...", SYNC_TITLE.value));
|
|
722
|
+
quickPick.placeholder = ( localize(14740, "Choose what to sync"));
|
|
723
723
|
quickPick.canSelectMany = true;
|
|
724
724
|
quickPick.ignoreFocusOut = true;
|
|
725
725
|
quickPick.ok = true;
|
|
@@ -741,15 +741,15 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
741
741
|
}
|
|
742
742
|
async turnOff() {
|
|
743
743
|
const result = await this.dialogService.confirm({
|
|
744
|
-
message: ( localize(
|
|
744
|
+
message: ( localize(14741, "Do you want to turn off sync?")),
|
|
745
745
|
detail: ( localize(
|
|
746
|
-
|
|
746
|
+
14742,
|
|
747
747
|
"Your settings, keybindings, extensions, snippets and UI State will no longer be synced."
|
|
748
748
|
)),
|
|
749
|
-
primaryButton: ( localize(
|
|
749
|
+
primaryButton: ( localize(14743, "&&Turn off")),
|
|
750
750
|
checkbox: this.userDataSyncWorkbenchService.accountStatus === AccountStatus.Available ? {
|
|
751
751
|
label: ( localize(
|
|
752
|
-
|
|
752
|
+
14744,
|
|
753
753
|
"Turn off sync on all your devices and clear the data from the cloud."
|
|
754
754
|
))
|
|
755
755
|
} : undefined
|
|
@@ -783,9 +783,9 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
783
783
|
return (new Promise((c, e) => {
|
|
784
784
|
const disposables = ( new DisposableStore());
|
|
785
785
|
const quickPick = disposables.add(this.quickInputService.createQuickPick());
|
|
786
|
-
quickPick.title = ( localize(
|
|
786
|
+
quickPick.title = ( localize(14745, "{0}: Select Service", SYNC_TITLE.value));
|
|
787
787
|
quickPick.description = ( localize(
|
|
788
|
-
|
|
788
|
+
14746,
|
|
789
789
|
"Ensure you are using the same settings sync service when syncing with multiple environments"
|
|
790
790
|
));
|
|
791
791
|
quickPick.hideInput = true;
|
|
@@ -793,17 +793,17 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
793
793
|
const getDescription = url => {
|
|
794
794
|
const isDefault = isEqual(url, userDataSyncStore.defaultUrl);
|
|
795
795
|
if (isDefault) {
|
|
796
|
-
return localize(
|
|
796
|
+
return localize(14747, "Default");
|
|
797
797
|
}
|
|
798
798
|
return undefined;
|
|
799
799
|
};
|
|
800
800
|
quickPick.items = [{
|
|
801
801
|
id: "insiders",
|
|
802
|
-
label: ( localize(
|
|
802
|
+
label: ( localize(14748, "Insiders")),
|
|
803
803
|
description: getDescription(userDataSyncStore.insidersUrl)
|
|
804
804
|
}, {
|
|
805
805
|
id: "stable",
|
|
806
|
-
label: ( localize(
|
|
806
|
+
label: ( localize(14749, "Stable")),
|
|
807
807
|
description: getDescription(userDataSyncStore.stableUrl)
|
|
808
808
|
}];
|
|
809
809
|
disposables.add(quickPick.onDidAccept(async () => {
|
|
@@ -849,7 +849,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
849
849
|
constructor() {
|
|
850
850
|
super({
|
|
851
851
|
id: "workbench.userDataSync.actions.turnOn",
|
|
852
|
-
title: ( localize2(
|
|
852
|
+
title: ( localize2(14750, "Backup and Sync Settings...")),
|
|
853
853
|
category: SYNC_TITLE,
|
|
854
854
|
f1: true,
|
|
855
855
|
precondition: when,
|
|
@@ -882,7 +882,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
882
882
|
constructor() {
|
|
883
883
|
super({
|
|
884
884
|
id: "workbench.userData.actions.turningOn",
|
|
885
|
-
title: ( localize(
|
|
885
|
+
title: ( localize(14751, "Turning on Settings Sync...")),
|
|
886
886
|
precondition: ( ContextKeyExpr.false()),
|
|
887
887
|
menu: [{
|
|
888
888
|
group: "3_configuration",
|
|
@@ -905,7 +905,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
905
905
|
constructor() {
|
|
906
906
|
super({
|
|
907
907
|
id: "workbench.userData.actions.cancelTurnOn",
|
|
908
|
-
title: ( localize(
|
|
908
|
+
title: ( localize(14752, "Cancel")),
|
|
909
909
|
icon: Codicon.stopCircle,
|
|
910
910
|
menu: {
|
|
911
911
|
id: MenuId.ViewContainerTitle,
|
|
@@ -928,7 +928,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
928
928
|
constructor() {
|
|
929
929
|
super({
|
|
930
930
|
id: "workbench.userData.actions.signin",
|
|
931
|
-
title: ( localize(
|
|
931
|
+
title: ( localize(14753, "Sign in to Sync Settings")),
|
|
932
932
|
menu: {
|
|
933
933
|
group: "3_configuration",
|
|
934
934
|
id: MenuId.GlobalActivity,
|
|
@@ -949,13 +949,13 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
949
949
|
group: "1_settings",
|
|
950
950
|
command: {
|
|
951
951
|
id,
|
|
952
|
-
title: ( localize(
|
|
952
|
+
title: ( localize(14754, "Sign in to Sync Settings (1)"))
|
|
953
953
|
},
|
|
954
954
|
when
|
|
955
955
|
})));
|
|
956
956
|
}
|
|
957
957
|
getShowConflictsTitle() {
|
|
958
|
-
return localize2(
|
|
958
|
+
return localize2(14755, "Show Conflicts ({0})", this.getConflictsCount());
|
|
959
959
|
}
|
|
960
960
|
registerShowConflictsAction() {
|
|
961
961
|
this.conflictsActionDisposable.value = undefined;
|
|
@@ -995,7 +995,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
995
995
|
constructor() {
|
|
996
996
|
super({
|
|
997
997
|
id: "workbench.userDataSync.actions.manage",
|
|
998
|
-
title: ( localize(
|
|
998
|
+
title: ( localize(14756, "Settings Sync is On")),
|
|
999
999
|
toggled: ContextKeyTrueExpr.INSTANCE,
|
|
1000
1000
|
menu: [{
|
|
1001
1001
|
id: MenuId.GlobalActivity,
|
|
@@ -1137,7 +1137,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1137
1137
|
} catch (e) {
|
|
1138
1138
|
if (!isCancellationError(e)) {
|
|
1139
1139
|
that.notificationService.error(( localize(
|
|
1140
|
-
|
|
1140
|
+
14757,
|
|
1141
1141
|
"Error while turning off Settings Sync. Please check [logs]({0}) for more details.",
|
|
1142
1142
|
`command:${SHOW_SYNC_LOG_COMMAND_ID}`
|
|
1143
1143
|
)));
|
|
@@ -1156,7 +1156,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1156
1156
|
title: configureSyncCommand.title,
|
|
1157
1157
|
category: SYNC_TITLE,
|
|
1158
1158
|
icon: Codicon.settingsGear,
|
|
1159
|
-
tooltip: ( localize(
|
|
1159
|
+
tooltip: ( localize(14758, "Configure...")),
|
|
1160
1160
|
menu: [{
|
|
1161
1161
|
id: MenuId.CommandPalette,
|
|
1162
1162
|
when
|
|
@@ -1179,8 +1179,8 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1179
1179
|
constructor() {
|
|
1180
1180
|
super({
|
|
1181
1181
|
id: SHOW_SYNC_LOG_COMMAND_ID,
|
|
1182
|
-
title: ( localize(
|
|
1183
|
-
tooltip: ( localize(
|
|
1182
|
+
title: ( localize(14759, "{0}: Show Log", SYNC_TITLE.value)),
|
|
1183
|
+
tooltip: ( localize(14760, "Show Log")),
|
|
1184
1184
|
icon: Codicon.output,
|
|
1185
1185
|
menu: [{
|
|
1186
1186
|
id: MenuId.CommandPalette,
|
|
@@ -1252,7 +1252,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1252
1252
|
constructor() {
|
|
1253
1253
|
super({
|
|
1254
1254
|
id: "workbench.userDataSync.actions.acceptMerges",
|
|
1255
|
-
title: ( localize(
|
|
1255
|
+
title: ( localize(14761, "Complete Merge")),
|
|
1256
1256
|
menu: [{
|
|
1257
1257
|
id: MenuId.EditorContent,
|
|
1258
1258
|
when: ( ContextKeyExpr.and(ctxIsMergeResultEditor, ( ContextKeyExpr.regex(ctxMergeBaseUri.key, ( new RegExp(`^${USER_DATA_SYNC_SCHEME}:`))))))
|
|
@@ -1293,7 +1293,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1293
1293
|
const notificationService = accessor.get(INotificationService);
|
|
1294
1294
|
const folder = await userDataSyncWorkbenchService.downloadSyncActivity();
|
|
1295
1295
|
if (folder) {
|
|
1296
|
-
notificationService.info(( localize(
|
|
1296
|
+
notificationService.info(( localize(14762, "Successfully downloaded Settings Sync activity.")));
|
|
1297
1297
|
}
|
|
1298
1298
|
}
|
|
1299
1299
|
}));
|
|
@@ -1319,7 +1319,7 @@ let UserDataSyncWorkbenchContribution = class UserDataSyncWorkbenchContribution
|
|
|
1319
1319
|
constructor() {
|
|
1320
1320
|
super({
|
|
1321
1321
|
id: "workbench.actions.syncData.reset",
|
|
1322
|
-
title: ( localize(
|
|
1322
|
+
title: ( localize(14763, "Clear Data in Cloud...")),
|
|
1323
1323
|
menu: [{
|
|
1324
1324
|
id: MenuId.ViewContainerTitle,
|
|
1325
1325
|
when: ( ContextKeyExpr.equals("viewContainer", SYNC_VIEW_CONTAINER_ID)),
|
|
@@ -76,7 +76,7 @@ let UserDataSyncConflictsViewPane = class UserDataSyncConflictsViewPane extends
|
|
|
76
76
|
renderTreeView(container) {
|
|
77
77
|
super.renderTreeView(append(container, $("")));
|
|
78
78
|
const that = this;
|
|
79
|
-
this.treeView.message = ( localize(
|
|
79
|
+
this.treeView.message = ( localize(14764, "Please go through each entry and merge to resolve conflicts."));
|
|
80
80
|
this.treeView.dataProvider = {
|
|
81
81
|
getChildren() {
|
|
82
82
|
return that.getTreeItems();
|
|
@@ -157,7 +157,7 @@ let UserDataSyncConflictsViewPane = class UserDataSyncConflictsViewPane extends
|
|
|
157
157
|
constructor() {
|
|
158
158
|
super({
|
|
159
159
|
id: `workbench.actions.sync.openConflicts`,
|
|
160
|
-
title: ( localize(
|
|
160
|
+
title: ( localize(14765, "Show Conflicts"))
|
|
161
161
|
});
|
|
162
162
|
}
|
|
163
163
|
async run(accessor, handle) {
|
|
@@ -169,7 +169,7 @@ let UserDataSyncConflictsViewPane = class UserDataSyncConflictsViewPane extends
|
|
|
169
169
|
constructor() {
|
|
170
170
|
super({
|
|
171
171
|
id: `workbench.actions.sync.acceptRemote`,
|
|
172
|
-
title: ( localize(
|
|
172
|
+
title: ( localize(14766, "Accept Remote")),
|
|
173
173
|
icon: Codicon.cloudDownload,
|
|
174
174
|
menu: {
|
|
175
175
|
id: MenuId.ViewItemContext,
|
|
@@ -191,7 +191,7 @@ let UserDataSyncConflictsViewPane = class UserDataSyncConflictsViewPane extends
|
|
|
191
191
|
constructor() {
|
|
192
192
|
super({
|
|
193
193
|
id: `workbench.actions.sync.acceptLocal`,
|
|
194
|
-
title: ( localize(
|
|
194
|
+
title: ( localize(14767, "Accept Local")),
|
|
195
195
|
icon: Codicon.cloudUpload,
|
|
196
196
|
menu: {
|
|
197
197
|
id: MenuId.ViewItemContext,
|
|
@@ -222,17 +222,17 @@ let UserDataSyncConflictsViewPane = class UserDataSyncConflictsViewPane extends
|
|
|
222
222
|
) => isEqual(localResource, conflictToOpen.localResource)))))) {
|
|
223
223
|
return;
|
|
224
224
|
}
|
|
225
|
-
const remoteResourceName = ( localize(
|
|
226
|
-
const localResourceName = ( localize(
|
|
225
|
+
const remoteResourceName = ( localize(14768, "{0} (Remote)", basename(conflictToOpen.remoteResource)));
|
|
226
|
+
const localResourceName = ( localize(14769, "{0} (Local)", basename(conflictToOpen.remoteResource)));
|
|
227
227
|
await this.editorService.openEditor({
|
|
228
228
|
input1: {
|
|
229
229
|
resource: conflictToOpen.remoteResource,
|
|
230
|
-
label: ( localize(
|
|
230
|
+
label: ( localize(14770, "Theirs")),
|
|
231
231
|
description: remoteResourceName
|
|
232
232
|
},
|
|
233
233
|
input2: {
|
|
234
234
|
resource: conflictToOpen.localResource,
|
|
235
|
-
label: ( localize(
|
|
235
|
+
label: ( localize(14771, "Yours")),
|
|
236
236
|
description: localResourceName
|
|
237
237
|
},
|
|
238
238
|
base: {
|
|
@@ -61,7 +61,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
61
61
|
}
|
|
62
62
|
registerConflictsView(container) {
|
|
63
63
|
const viewsRegistry = ( Registry.as(Extensions.ViewsRegistry));
|
|
64
|
-
const viewName = ( localize2(
|
|
64
|
+
const viewName = ( localize2(14772, "Conflicts"));
|
|
65
65
|
const viewDescriptor = {
|
|
66
66
|
id: SYNC_CONFLICTS_VIEW_ID,
|
|
67
67
|
name: viewName,
|
|
@@ -77,7 +77,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
77
77
|
}
|
|
78
78
|
registerMachinesView(container) {
|
|
79
79
|
const id = `workbench.views.sync.machines`;
|
|
80
|
-
const name = ( localize2(
|
|
80
|
+
const name = ( localize2(14773, "Synced Machines"));
|
|
81
81
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
82
82
|
const dataProvider = this.instantiationService.createInstance(UserDataSyncMachinesViewDataProvider, treeView);
|
|
83
83
|
treeView.showRefreshAction = true;
|
|
@@ -104,7 +104,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
104
104
|
constructor() {
|
|
105
105
|
super({
|
|
106
106
|
id: `workbench.actions.sync.editMachineName`,
|
|
107
|
-
title: ( localize(
|
|
107
|
+
title: ( localize(14774, "Edit Name")),
|
|
108
108
|
icon: Codicon.edit,
|
|
109
109
|
menu: {
|
|
110
110
|
id: MenuId.ViewItemContext,
|
|
@@ -124,7 +124,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
124
124
|
constructor() {
|
|
125
125
|
super({
|
|
126
126
|
id: `workbench.actions.sync.turnOffSyncOnMachine`,
|
|
127
|
-
title: ( localize(
|
|
127
|
+
title: ( localize(14775, "Turn off Settings Sync")),
|
|
128
128
|
menu: {
|
|
129
129
|
id: MenuId.ViewItemContext,
|
|
130
130
|
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals("view", id)), ( ContextKeyExpr.equals("viewItem", "sync-machine"))))
|
|
@@ -140,7 +140,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
140
140
|
}
|
|
141
141
|
registerActivityView(container, remote) {
|
|
142
142
|
const id = `workbench.views.sync.${remote ? "remote" : "local"}Activity`;
|
|
143
|
-
const name = remote ? ( localize2(
|
|
143
|
+
const name = remote ? ( localize2(14776, "Sync Activity (Remote)")) : ( localize2(14777, "Sync Activity (Local)"));
|
|
144
144
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
145
145
|
treeView.showCollapseAllAction = true;
|
|
146
146
|
treeView.showRefreshAction = true;
|
|
@@ -169,7 +169,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
169
169
|
}
|
|
170
170
|
registerExternalActivityView(container) {
|
|
171
171
|
const id = `workbench.views.sync.externalActivity`;
|
|
172
|
-
const name = ( localize2(
|
|
172
|
+
const name = ( localize2(14778, "Sync Activity (Developer)"));
|
|
173
173
|
const dataProvider = this.instantiationService.createInstance(ExtractedUserDataSyncActivityViewDataProvider, undefined);
|
|
174
174
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
175
175
|
treeView.showCollapseAllAction = false;
|
|
@@ -192,7 +192,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
192
192
|
constructor() {
|
|
193
193
|
super({
|
|
194
194
|
id: `workbench.actions.sync.loadActivity`,
|
|
195
|
-
title: ( localize(
|
|
195
|
+
title: ( localize(14779, "Load Sync Activity")),
|
|
196
196
|
icon: Codicon.cloudUpload,
|
|
197
197
|
menu: {
|
|
198
198
|
id: MenuId.ViewTitle,
|
|
@@ -204,7 +204,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
204
204
|
async run(accessor) {
|
|
205
205
|
const fileDialogService = accessor.get(IFileDialogService);
|
|
206
206
|
const result = await fileDialogService.showOpenDialog({
|
|
207
|
-
title: ( localize(
|
|
207
|
+
title: ( localize(14780, "Select Sync Activity File or Folder")),
|
|
208
208
|
canSelectFiles: true,
|
|
209
209
|
canSelectFolders: true,
|
|
210
210
|
canSelectMany: false
|
|
@@ -222,7 +222,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
222
222
|
constructor() {
|
|
223
223
|
super({
|
|
224
224
|
id: `workbench.actions.sync.${viewId}.resolveResource`,
|
|
225
|
-
title: ( localize(
|
|
225
|
+
title: ( localize(14781, "Show raw JSON sync data")),
|
|
226
226
|
menu: {
|
|
227
227
|
id: MenuId.ViewItemContext,
|
|
228
228
|
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals("view", viewId)), ( ContextKeyExpr.regex("viewItem", /sync-resource-.*/i))))
|
|
@@ -246,7 +246,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
246
246
|
constructor() {
|
|
247
247
|
super({
|
|
248
248
|
id: `workbench.actions.sync.${viewId}.compareWithLocal`,
|
|
249
|
-
title: ( localize(
|
|
249
|
+
title: ( localize(14782, "Compare with Local")),
|
|
250
250
|
menu: {
|
|
251
251
|
id: MenuId.ViewItemContext,
|
|
252
252
|
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals("view", viewId)), ( ContextKeyExpr.regex("viewItem", /sync-associatedResource-.*/i))))
|
|
@@ -266,10 +266,10 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
266
266
|
remoteResource,
|
|
267
267
|
localResource,
|
|
268
268
|
( localize(
|
|
269
|
-
|
|
269
|
+
14783,
|
|
270
270
|
"{0} ↔ {1}",
|
|
271
|
-
localize(
|
|
272
|
-
localize(
|
|
271
|
+
localize(14784, "{0} (Remote)", basename(remoteResource)),
|
|
272
|
+
localize(14785, "{0} (Local)", basename(localResource))
|
|
273
273
|
)),
|
|
274
274
|
undefined
|
|
275
275
|
);
|
|
@@ -279,7 +279,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
279
279
|
constructor() {
|
|
280
280
|
super({
|
|
281
281
|
id: `workbench.actions.sync.${viewId}.replaceCurrent`,
|
|
282
|
-
title: ( localize(
|
|
282
|
+
title: ( localize(14786, "Restore")),
|
|
283
283
|
icon: Codicon.discard,
|
|
284
284
|
menu: {
|
|
285
285
|
id: MenuId.ViewItemContext,
|
|
@@ -297,7 +297,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
297
297
|
} = JSON.parse(handle.$treeItemHandle);
|
|
298
298
|
const result = await dialogService.confirm({
|
|
299
299
|
message: ( localize(
|
|
300
|
-
|
|
300
|
+
14787,
|
|
301
301
|
"Would you like to replace your current {0} with selected?",
|
|
302
302
|
getSyncAreaLabel(syncResource)
|
|
303
303
|
)),
|
|
@@ -315,7 +315,7 @@ let UserDataSyncDataViews = class UserDataSyncDataViews extends Disposable {
|
|
|
315
315
|
}
|
|
316
316
|
registerTroubleShootView(container) {
|
|
317
317
|
const id = `workbench.views.sync.troubleshoot`;
|
|
318
|
-
const name = ( localize2(
|
|
318
|
+
const name = ( localize2(14788, "Troubleshoot"));
|
|
319
319
|
const treeView = this.instantiationService.createInstance(TreeView, id, name.value);
|
|
320
320
|
const dataProvider = this.instantiationService.createInstance(UserDataSyncTroubleshootViewDataProvider);
|
|
321
321
|
treeView.showRefreshAction = true;
|
|
@@ -381,7 +381,7 @@ let UserDataSyncActivityViewDataProvider = class UserDataSyncActivityViewDataPro
|
|
|
381
381
|
actions: {
|
|
382
382
|
primary: [toAction({
|
|
383
383
|
id: "reset",
|
|
384
|
-
label: ( localize(
|
|
384
|
+
label: ( localize(14789, "Reset Synced Data")),
|
|
385
385
|
run: () => this.userDataSyncWorkbenchService.resetSyncedData()
|
|
386
386
|
})]
|
|
387
387
|
}
|
|
@@ -445,7 +445,7 @@ let UserDataSyncActivityViewDataProvider = class UserDataSyncActivityViewDataPro
|
|
|
445
445
|
id: API_OPEN_DIFF_EDITOR_COMMAND_ID,
|
|
446
446
|
title: "",
|
|
447
447
|
arguments: [previousResource, resource, ( localize(
|
|
448
|
-
|
|
448
|
+
14790,
|
|
449
449
|
"{0} ↔ {1}",
|
|
450
450
|
`${basename(resource)} (${fromNow(syncResourceHandle.previous.created, true)})`,
|
|
451
451
|
`${basename(resource)} (${fromNow(syncResourceHandle.created, true)})`
|
|
@@ -553,7 +553,7 @@ let RemoteUserDataSyncActivityViewDataProvider = class RemoteUserDataSyncActivit
|
|
|
553
553
|
id
|
|
554
554
|
}
|
|
555
555
|
) => id === machineId);
|
|
556
|
-
children[0].description = machine?.isCurrent ? ( localize(
|
|
556
|
+
children[0].description = machine?.isCurrent ? ( localize(14791, "Current")) : machine?.name;
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
559
|
return children;
|
|
@@ -625,7 +625,7 @@ let ExtractedUserDataSyncActivityViewDataProvider = class ExtractedUserDataSyncA
|
|
|
625
625
|
id
|
|
626
626
|
}
|
|
627
627
|
) => id === machineId);
|
|
628
|
-
children[0].description = machine?.isCurrent ? ( localize(
|
|
628
|
+
children[0].description = machine?.isCurrent ? ( localize(14791, "Current")) : machine?.name;
|
|
629
629
|
}
|
|
630
630
|
}
|
|
631
631
|
return children;
|
|
@@ -661,7 +661,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
661
661
|
try {
|
|
662
662
|
let machines = await this.getMachines();
|
|
663
663
|
machines = machines.filter(m => !m.disabled).sort((m1, m2) => m1.isCurrent ? -1 : 1);
|
|
664
|
-
this.treeView.message = machines.length ? undefined : ( localize(
|
|
664
|
+
this.treeView.message = machines.length ? undefined : ( localize(14792, "No Machines"));
|
|
665
665
|
return (machines.map((
|
|
666
666
|
{
|
|
667
667
|
id,
|
|
@@ -675,7 +675,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
675
675
|
label: {
|
|
676
676
|
label: name
|
|
677
677
|
},
|
|
678
|
-
description: isCurrent ? ( localize(
|
|
678
|
+
description: isCurrent ? ( localize(14791, "Current")) : undefined,
|
|
679
679
|
themeIcon: platform && isWebPlatform(platform) ? Codicon.globe : Codicon.vm,
|
|
680
680
|
contextValue: "sync-machine"
|
|
681
681
|
})));
|
|
@@ -698,16 +698,16 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
698
698
|
}
|
|
699
699
|
) => machineIds.includes(id));
|
|
700
700
|
if (!machinesToDisable.length) {
|
|
701
|
-
throw ( new Error(( localize(
|
|
701
|
+
throw ( new Error(( localize(14793, "machine not found with id: {0}", machineIds.join(",")))));
|
|
702
702
|
}
|
|
703
703
|
const result = await this.dialogService.confirm({
|
|
704
704
|
type: "info",
|
|
705
|
-
message: machinesToDisable.length > 1 ? ( localize(
|
|
706
|
-
|
|
705
|
+
message: machinesToDisable.length > 1 ? ( localize(14794, "Are you sure you want to turn off sync on selected machines?")) : ( localize(
|
|
706
|
+
14795,
|
|
707
707
|
"Are you sure you want to turn off sync on {0}?",
|
|
708
708
|
machinesToDisable[0].name
|
|
709
709
|
)),
|
|
710
|
-
primaryButton: ( localize(
|
|
710
|
+
primaryButton: ( localize(14796, "&&Turn off"))
|
|
711
711
|
});
|
|
712
712
|
if (!result.confirmed) {
|
|
713
713
|
return false;
|
|
@@ -724,7 +724,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
724
724
|
async rename(machineId) {
|
|
725
725
|
const disposableStore = ( new DisposableStore());
|
|
726
726
|
const inputBox = disposableStore.add(this.quickInputService.createInputBox());
|
|
727
|
-
inputBox.placeholder = ( localize(
|
|
727
|
+
inputBox.placeholder = ( localize(14797, "Enter the name of the machine"));
|
|
728
728
|
inputBox.busy = true;
|
|
729
729
|
inputBox.show();
|
|
730
730
|
const machines = await this.getMachines();
|
|
@@ -741,7 +741,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
741
741
|
if (!machine) {
|
|
742
742
|
inputBox.hide();
|
|
743
743
|
disposableStore.dispose();
|
|
744
|
-
throw ( new Error(( localize(
|
|
744
|
+
throw ( new Error(( localize(14793, "machine not found with id: {0}", machineId))));
|
|
745
745
|
}
|
|
746
746
|
inputBox.busy = false;
|
|
747
747
|
inputBox.value = machine.name;
|
|
@@ -750,7 +750,7 @@ let UserDataSyncMachinesViewDataProvider = class UserDataSyncMachinesViewDataPro
|
|
|
750
750
|
return machineName && !( enabledMachines.some(m => m.id !== machineId && m.name === machineName)) ? machineName : null;
|
|
751
751
|
};
|
|
752
752
|
disposableStore.add(inputBox.onDidChangeValue(
|
|
753
|
-
() => inputBox.validationMessage = validateMachineName(inputBox.value) ? "" : ( localize(
|
|
753
|
+
() => inputBox.validationMessage = validateMachineName(inputBox.value) ? "" : ( localize(14798, "Machine name should be unique and not empty"))
|
|
754
754
|
));
|
|
755
755
|
return ( new Promise((c, e) => {
|
|
756
756
|
disposableStore.add(inputBox.onDidAccept(async () => {
|
|
@@ -789,14 +789,14 @@ let UserDataSyncTroubleshootViewDataProvider = class UserDataSyncTroubleshootVie
|
|
|
789
789
|
handle: "SYNC_LOGS",
|
|
790
790
|
collapsibleState: TreeItemCollapsibleState.Collapsed,
|
|
791
791
|
label: {
|
|
792
|
-
label: ( localize(
|
|
792
|
+
label: ( localize(14799, "Logs"))
|
|
793
793
|
},
|
|
794
794
|
themeIcon: Codicon.folder
|
|
795
795
|
}, {
|
|
796
796
|
handle: "LAST_SYNC_STATES",
|
|
797
797
|
collapsibleState: TreeItemCollapsibleState.Collapsed,
|
|
798
798
|
label: {
|
|
799
|
-
label: ( localize(
|
|
799
|
+
label: ( localize(14800, "Last Synced Remotes"))
|
|
800
800
|
},
|
|
801
801
|
themeIcon: Codicon.folder
|
|
802
802
|
}];
|
|
@@ -848,7 +848,7 @@ let UserDataSyncTroubleshootViewDataProvider = class UserDataSyncTroubleshootVie
|
|
|
848
848
|
label: {
|
|
849
849
|
label: this.uriIdentityService.extUri.basename(logFolder)
|
|
850
850
|
},
|
|
851
|
-
description: this.uriIdentityService.extUri.isEqual(logFolder, this.environmentService.logsHome) ? ( localize(
|
|
851
|
+
description: this.uriIdentityService.extUri.isEqual(logFolder, this.environmentService.logsHome) ? ( localize(14791, "Current")) : undefined,
|
|
852
852
|
command: {
|
|
853
853
|
id: API_OPEN_EDITOR_COMMAND_ID,
|
|
854
854
|
title: "",
|
package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.js
CHANGED
|
@@ -347,7 +347,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
347
347
|
async turnOn() {
|
|
348
348
|
if (!this.authenticationProviders.length) {
|
|
349
349
|
throw ( new Error(( localize(
|
|
350
|
-
|
|
350
|
+
16282,
|
|
351
351
|
"Settings sync cannot be turned on because there are no authentication providers available."
|
|
352
352
|
))));
|
|
353
353
|
}
|
|
@@ -362,7 +362,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
362
362
|
throw ( new CancellationError());
|
|
363
363
|
}
|
|
364
364
|
if (this.accountStatus !== AccountStatus.Available) {
|
|
365
|
-
throw ( new Error(( localize(
|
|
365
|
+
throw ( new Error(( localize(16283, "No account available"))));
|
|
366
366
|
}
|
|
367
367
|
const turnOnSyncCancellationToken = this.turnOnSyncCancellationToken = ( new CancellationTokenSource());
|
|
368
368
|
const disposable = isWeb ? Disposable.None : this.lifecycleService.onBeforeShutdown(e => e.veto((async () => {
|
|
@@ -370,10 +370,10 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
370
370
|
confirmed
|
|
371
371
|
} = await this.dialogService.confirm({
|
|
372
372
|
type: "warning",
|
|
373
|
-
message: ( localize(
|
|
374
|
-
title: ( localize(
|
|
375
|
-
primaryButton: ( localize(
|
|
376
|
-
cancelButton: ( localize(
|
|
373
|
+
message: ( localize(16284, "Settings Sync is being turned on. Would you like to cancel it?")),
|
|
374
|
+
title: ( localize(16285, "Settings Sync")),
|
|
375
|
+
primaryButton: ( localize(16286, "&&Yes")),
|
|
376
|
+
cancelButton: ( localize(16287, "No"))
|
|
377
377
|
});
|
|
378
378
|
if (confirmed) {
|
|
379
379
|
turnOnSyncCancellationToken.cancel();
|
|
@@ -394,7 +394,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
394
394
|
if (this.environmentService.options?.settingsSyncOptions?.enablementHandler && this.currentAuthenticationProviderId) {
|
|
395
395
|
this.environmentService.options.settingsSyncOptions.enablementHandler(true, this.currentAuthenticationProviderId);
|
|
396
396
|
}
|
|
397
|
-
this.notificationService.info(( localize(
|
|
397
|
+
this.notificationService.info(( localize(16288, "{0} is turned on", SYNC_TITLE.value)));
|
|
398
398
|
this._onDidTurnOnSync.fire();
|
|
399
399
|
}
|
|
400
400
|
async turnoff(everywhere) {
|
|
@@ -442,16 +442,16 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
442
442
|
delay: 500
|
|
443
443
|
}, async progress => {
|
|
444
444
|
progress.report({
|
|
445
|
-
message: ( localize(
|
|
445
|
+
message: ( localize(16289, "Turning on..."))
|
|
446
446
|
});
|
|
447
447
|
disposables.add(this.userDataSyncService.onDidChangeStatus(status => {
|
|
448
448
|
if (status === SyncStatus.HasConflicts) {
|
|
449
449
|
progress.report({
|
|
450
|
-
message: ( localize(
|
|
450
|
+
message: ( localize(16290, "Resolving conflicts..."))
|
|
451
451
|
});
|
|
452
452
|
} else {
|
|
453
453
|
progress.report({
|
|
454
|
-
message: ( localize(
|
|
454
|
+
message: ( localize(16291, "Turning on..."))
|
|
455
455
|
});
|
|
456
456
|
}
|
|
457
457
|
}));
|
|
@@ -470,7 +470,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
470
470
|
}
|
|
471
471
|
async handleConflictsWhileTurningOn(token) {
|
|
472
472
|
const conflicts = this.userDataSyncService.conflicts;
|
|
473
|
-
const andSeparator = ( localize(
|
|
473
|
+
const andSeparator = ( localize(16292, " and "));
|
|
474
474
|
let conflictsText = "";
|
|
475
475
|
for (let i = 0; i < conflicts.length; i++) {
|
|
476
476
|
if (i === conflicts.length - 1 && i !== 0) {
|
|
@@ -483,10 +483,10 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
483
483
|
const singleConflictResource = conflicts.length === 1 ? getSyncAreaLabel(conflicts[0].syncResource) : undefined;
|
|
484
484
|
await this.dialogService.prompt({
|
|
485
485
|
type: Severity.Warning,
|
|
486
|
-
message: ( localize(
|
|
487
|
-
detail: ( localize(
|
|
486
|
+
message: ( localize(16293, "Conflicts Detected in {0}", conflictsText)),
|
|
487
|
+
detail: ( localize(16294, "Please resolve conflicts to turn on...")),
|
|
488
488
|
buttons: [{
|
|
489
|
-
label: ( localize(
|
|
489
|
+
label: ( localize(16295, "&&Show Conflicts")),
|
|
490
490
|
run: async () => {
|
|
491
491
|
const waitUntilConflictsAreResolvedPromise = raceCancellationError(Event.toPromise(Event.filter(
|
|
492
492
|
this.userDataSyncService.onDidChangeConflicts,
|
|
@@ -496,10 +496,10 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
496
496
|
await waitUntilConflictsAreResolvedPromise;
|
|
497
497
|
}
|
|
498
498
|
}, {
|
|
499
|
-
label: singleConflictResource ? ( localize(
|
|
499
|
+
label: singleConflictResource ? ( localize(16296, "Accept &&Remote {0}", singleConflictResource)) : ( localize(16297, "Accept &&Remote")),
|
|
500
500
|
run: async () => this.replace(true)
|
|
501
501
|
}, {
|
|
502
|
-
label: singleConflictResource ? ( localize(
|
|
502
|
+
label: singleConflictResource ? ( localize(16298, "Accept &&Local {0}", singleConflictResource)) : ( localize(16299, "Accept &&Local")),
|
|
503
503
|
run: () => this.replace(false)
|
|
504
504
|
}],
|
|
505
505
|
cancelButton: {
|
|
@@ -540,11 +540,11 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
540
540
|
} = await this.dialogService.confirm({
|
|
541
541
|
type: "info",
|
|
542
542
|
message: ( localize(
|
|
543
|
-
|
|
543
|
+
16300,
|
|
544
544
|
"This will clear your data in the cloud and stop sync on all your devices."
|
|
545
545
|
)),
|
|
546
|
-
title: ( localize(
|
|
547
|
-
primaryButton: ( localize(
|
|
546
|
+
title: ( localize(16301, "Clear")),
|
|
547
|
+
primaryButton: ( localize(16302, "&&Reset"))
|
|
548
548
|
});
|
|
549
549
|
if (confirmed) {
|
|
550
550
|
await this.userDataSyncService.resetRemote();
|
|
@@ -575,11 +575,11 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
575
575
|
}
|
|
576
576
|
async downloadSyncActivity() {
|
|
577
577
|
const result = await this.fileDialogService.showOpenDialog({
|
|
578
|
-
title: ( localize(
|
|
578
|
+
title: ( localize(16303, "Select folder to download Settings Sync activity")),
|
|
579
579
|
canSelectFiles: false,
|
|
580
580
|
canSelectFolders: true,
|
|
581
581
|
canSelectMany: false,
|
|
582
|
-
openLabel: ( localize(
|
|
582
|
+
openLabel: ( localize(16304, "Save"))
|
|
583
583
|
});
|
|
584
584
|
if (!result?.[0]) {
|
|
585
585
|
return;
|
|
@@ -648,7 +648,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
648
648
|
} else {
|
|
649
649
|
if (!this.authenticationProviders.length) {
|
|
650
650
|
throw ( new Error(( localize(
|
|
651
|
-
|
|
651
|
+
16305,
|
|
652
652
|
"Cannot sign in because there are no authentication providers available."
|
|
653
653
|
))));
|
|
654
654
|
}
|
|
@@ -695,7 +695,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
695
695
|
quickPick.title = SYNC_TITLE.value;
|
|
696
696
|
quickPick.ok = false;
|
|
697
697
|
quickPick.ignoreFocusOut = true;
|
|
698
|
-
quickPick.placeholder = ( localize(
|
|
698
|
+
quickPick.placeholder = ( localize(16306, "Select an account to sign in"));
|
|
699
699
|
quickPick.show();
|
|
700
700
|
if (authenticationProviders.length > 1) {
|
|
701
701
|
quickPick.busy = true;
|
|
@@ -742,7 +742,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
742
742
|
if (allAccounts.size) {
|
|
743
743
|
quickPickItems.push({
|
|
744
744
|
type: "separator",
|
|
745
|
-
label: ( localize(
|
|
745
|
+
label: ( localize(16307, "Signed in"))
|
|
746
746
|
});
|
|
747
747
|
for (const authenticationProvider of authenticationProviders) {
|
|
748
748
|
const accounts = (allAccounts.get(authenticationProvider.id) || []).sort((
|
|
@@ -754,7 +754,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
754
754
|
for (const account of accounts) {
|
|
755
755
|
quickPickItems.push({
|
|
756
756
|
label: `${account.accountName} (${providerName})`,
|
|
757
|
-
description: account.sessionId === this.current?.sessionId ? ( localize(
|
|
757
|
+
description: account.sessionId === this.current?.sessionId ? ( localize(16308, "Last Used with Sync")) : undefined,
|
|
758
758
|
account,
|
|
759
759
|
authenticationProvider
|
|
760
760
|
});
|
|
@@ -762,7 +762,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
762
762
|
}
|
|
763
763
|
quickPickItems.push({
|
|
764
764
|
type: "separator",
|
|
765
|
-
label: ( localize(
|
|
765
|
+
label: ( localize(16309, "Others"))
|
|
766
766
|
});
|
|
767
767
|
}
|
|
768
768
|
for (const authenticationProvider of authenticationProviders) {
|
|
@@ -770,7 +770,7 @@ let UserDataSyncWorkbenchService = class UserDataSyncWorkbenchService extends Di
|
|
|
770
770
|
if (!( allAccounts.has(authenticationProvider.id)) || provider.supportsMultipleAccounts) {
|
|
771
771
|
const providerName = provider.label;
|
|
772
772
|
quickPickItems.push({
|
|
773
|
-
label: ( localize(
|
|
773
|
+
label: ( localize(16310, "Sign in with {0}", providerName)),
|
|
774
774
|
authenticationProvider
|
|
775
775
|
});
|
|
776
776
|
}
|