@codingame/monaco-vscode-extensions-service-override 37.3.3 → 37.3.4
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/workbench/api/browser/mainThreadAuthentication.js +28 -28
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +6 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +11 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +20 -20
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +4 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +3 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +5 -5
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +23 -23
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +2 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +12 -12
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +1 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +1 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +4 -4
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +5 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-extensions-service-override",
|
|
3
|
-
"version": "37.3.
|
|
3
|
+
"version": "37.3.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - extensions service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "37.3.
|
|
19
|
-
"@codingame/monaco-vscode-files-service-override": "37.3.
|
|
18
|
+
"@codingame/monaco-vscode-api": "37.3.4",
|
|
19
|
+
"@codingame/monaco-vscode-files-service-override": "37.3.4"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
|
22
22
|
"module": "index.js",
|
|
@@ -294,8 +294,8 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
294
294
|
return await deferredPromise.p;
|
|
295
295
|
}
|
|
296
296
|
$showContinueNotification(message) {
|
|
297
|
-
const yes = ( localize(
|
|
298
|
-
const no = ( localize(
|
|
297
|
+
const yes = ( localize(5034, "Yes"));
|
|
298
|
+
const no = ( localize(5035, "No"));
|
|
299
299
|
const deferredPromise = ( new DeferredPromise());
|
|
300
300
|
let result = false;
|
|
301
301
|
const handle = this.notificationService.prompt(Severity.Warning, message, [{
|
|
@@ -351,26 +351,26 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
351
351
|
message = customMessage;
|
|
352
352
|
} else {
|
|
353
353
|
message = recreatingSession ? ( localize(
|
|
354
|
-
|
|
354
|
+
5036,
|
|
355
355
|
"The extension '{0}' wants you to sign in again using {1}.",
|
|
356
356
|
extensionName,
|
|
357
357
|
provider.label
|
|
358
358
|
)) : ( localize(
|
|
359
|
-
|
|
359
|
+
5037,
|
|
360
360
|
"The extension '{0}' wants to sign in using {1}.",
|
|
361
361
|
extensionName,
|
|
362
362
|
provider.label
|
|
363
363
|
));
|
|
364
364
|
}
|
|
365
365
|
const buttons = [{
|
|
366
|
-
label: ( localize(
|
|
366
|
+
label: ( localize(5038, "&&Allow")),
|
|
367
367
|
run() {
|
|
368
368
|
return true;
|
|
369
369
|
}
|
|
370
370
|
}];
|
|
371
371
|
if (options?.learnMore) {
|
|
372
372
|
buttons.push({
|
|
373
|
-
label: ( localize(
|
|
373
|
+
label: ( localize(5039, "Learn more")),
|
|
374
374
|
run: async () => {
|
|
375
375
|
const result = this.loginPrompt(provider, extensionName, recreatingSession, options);
|
|
376
376
|
await this.openerService.open(URI.revive(options.learnMore), {
|
|
@@ -393,9 +393,9 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
393
393
|
}
|
|
394
394
|
async continueWithIncorrectAccountPrompt(chosenAccountLabel, requestedAccountLabel) {
|
|
395
395
|
const result = await this.dialogService.prompt({
|
|
396
|
-
message: ( localize(
|
|
396
|
+
message: ( localize(5040, "Incorrect account detected")),
|
|
397
397
|
detail: ( localize(
|
|
398
|
-
|
|
398
|
+
5041,
|
|
399
399
|
"The chosen account, {0}, does not match the requested account, {1}.",
|
|
400
400
|
chosenAccountLabel,
|
|
401
401
|
requestedAccountLabel
|
|
@@ -403,10 +403,10 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
403
403
|
type: Severity.Warning,
|
|
404
404
|
cancelButton: true,
|
|
405
405
|
buttons: [{
|
|
406
|
-
label: ( localize(
|
|
406
|
+
label: ( localize(5042, "Keep {0}", chosenAccountLabel)),
|
|
407
407
|
run: () => chosenAccountLabel
|
|
408
408
|
}, {
|
|
409
|
-
label: ( localize(
|
|
409
|
+
label: ( localize(5043, "Login with {0}", requestedAccountLabel)),
|
|
410
410
|
run: () => requestedAccountLabel
|
|
411
411
|
}]
|
|
412
412
|
});
|
|
@@ -559,15 +559,15 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
559
559
|
result
|
|
560
560
|
} = await this.dialogService.prompt({
|
|
561
561
|
type: Severity.Info,
|
|
562
|
-
message: ( localize(
|
|
562
|
+
message: ( localize(5044, "Device Code Authentication")),
|
|
563
563
|
detail: ( localize(
|
|
564
|
-
|
|
564
|
+
5045,
|
|
565
565
|
"Your code: {0}\n\nTo complete authentication, navigate to {1} and enter the code above.",
|
|
566
566
|
userCode,
|
|
567
567
|
verificationUri
|
|
568
568
|
)),
|
|
569
569
|
buttons: [{
|
|
570
|
-
label: ( localize(
|
|
570
|
+
label: ( localize(5046, "Copy & Continue")),
|
|
571
571
|
run: () => true
|
|
572
572
|
}],
|
|
573
573
|
cancelButton: true
|
|
@@ -577,7 +577,7 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
577
577
|
await this.clipboardService.writeText(userCode);
|
|
578
578
|
return await this.openerService.open(( URI.parse(verificationUri)));
|
|
579
579
|
} catch (error) {
|
|
580
|
-
this.notificationService.error(( localize(
|
|
580
|
+
this.notificationService.error(( localize(5047, "Failed to open {0}", verificationUri)));
|
|
581
581
|
}
|
|
582
582
|
}
|
|
583
583
|
return false;
|
|
@@ -586,44 +586,44 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
586
586
|
const redirectUrls = "http://127.0.0.1:33418\nhttps://vscode.dev/redirect";
|
|
587
587
|
const result = await this.dialogService.prompt({
|
|
588
588
|
type: Severity.Info,
|
|
589
|
-
message: ( localize(
|
|
589
|
+
message: ( localize(5048, "Dynamic Client Registration not supported")),
|
|
590
590
|
detail: ( localize(
|
|
591
|
-
|
|
591
|
+
5049,
|
|
592
592
|
"The authorization server '{0}' does not support automatic client registration. Do you want to proceed by manually providing a client registration (client ID)?\n\nNote: When registering your OAuth application, make sure to include these redirect URIs:\n{1}",
|
|
593
593
|
authorizationServerUrl,
|
|
594
594
|
redirectUrls
|
|
595
595
|
)),
|
|
596
596
|
buttons: [{
|
|
597
|
-
label: ( localize(
|
|
597
|
+
label: ( localize(5050, "Copy URIs & Proceed")),
|
|
598
598
|
run: async () => {
|
|
599
599
|
try {
|
|
600
600
|
await this.clipboardService.writeText(redirectUrls);
|
|
601
601
|
} catch (error) {
|
|
602
|
-
this.notificationService.error(( localize(
|
|
602
|
+
this.notificationService.error(( localize(5051, "Failed to copy redirect URIs to clipboard.")));
|
|
603
603
|
}
|
|
604
604
|
return true;
|
|
605
605
|
}
|
|
606
606
|
}],
|
|
607
607
|
cancelButton: {
|
|
608
|
-
label: ( localize(
|
|
608
|
+
label: ( localize(5052, "Cancel")),
|
|
609
609
|
run: () => false
|
|
610
610
|
}
|
|
611
611
|
});
|
|
612
612
|
if (!result) {
|
|
613
613
|
return undefined;
|
|
614
614
|
}
|
|
615
|
-
const sharedTitle = ( localize(
|
|
615
|
+
const sharedTitle = ( localize(5053, "Add Client Registration Details"));
|
|
616
616
|
const clientId = await this.quickInputService.input({
|
|
617
617
|
title: sharedTitle,
|
|
618
618
|
prompt: ( localize(
|
|
619
|
-
|
|
619
|
+
5054,
|
|
620
620
|
"Enter an existing client ID that has been registered with the following redirect URIs: http://127.0.0.1:33418, https://vscode.dev/redirect"
|
|
621
621
|
)),
|
|
622
|
-
placeHolder: ( localize(
|
|
622
|
+
placeHolder: ( localize(5055, "OAuth client ID (azye39d...)")),
|
|
623
623
|
ignoreFocusLost: true,
|
|
624
624
|
validateInput: async value => {
|
|
625
625
|
if (!value || value.trim().length === 0) {
|
|
626
|
-
return localize(
|
|
626
|
+
return localize(5056, "Client ID is required");
|
|
627
627
|
}
|
|
628
628
|
return undefined;
|
|
629
629
|
}
|
|
@@ -634,11 +634,11 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
634
634
|
const clientSecret = await this.quickInputService.input({
|
|
635
635
|
title: sharedTitle,
|
|
636
636
|
prompt: ( localize(
|
|
637
|
-
|
|
637
|
+
5057,
|
|
638
638
|
"(optional) Enter an existing client secret associated with the client id '{0}' or leave this field blank",
|
|
639
639
|
clientId
|
|
640
640
|
)),
|
|
641
|
-
placeHolder: ( localize(
|
|
641
|
+
placeHolder: ( localize(5058, "OAuth client secret (wer32o50f...) or leave it blank")),
|
|
642
642
|
password: true,
|
|
643
643
|
ignoreFocusLost: true
|
|
644
644
|
});
|
|
@@ -649,14 +649,14 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
649
649
|
}
|
|
650
650
|
async $promptForResourceClientSecret(resourceClientId, resource) {
|
|
651
651
|
const value = await this.quickInputService.input({
|
|
652
|
-
title: ( localize(
|
|
652
|
+
title: ( localize(5059, "Resource Client Secret Required")),
|
|
653
653
|
prompt: ( localize(
|
|
654
|
-
|
|
654
|
+
5060,
|
|
655
655
|
"The resource at '{0}' uses a per-resource client identifier '{1}'. Enter the matching client secret (leave blank if none). The value is saved in OS secret storage; manage it later via the 'Set Client Secret' code lens in mcp.json.",
|
|
656
656
|
resource,
|
|
657
657
|
resourceClientId
|
|
658
658
|
)),
|
|
659
|
-
placeHolder: ( localize(
|
|
659
|
+
placeHolder: ( localize(5061, "Resource client secret")),
|
|
660
660
|
password: true,
|
|
661
661
|
ignoreFocusLost: true
|
|
662
662
|
});
|
|
@@ -108,7 +108,7 @@ let RemoteExtensionManagementCLI = class RemoteExtensionManagementCLI extends Ex
|
|
|
108
108
|
if (
|
|
109
109
|
!this._extensionManifestPropertiesService.canExecuteOnWorkspace(manifest) && !(isWeb && this._extensionManifestPropertiesService.canExecuteOnWeb(manifest))) {
|
|
110
110
|
this.logger.info(( localize(
|
|
111
|
-
|
|
111
|
+
5062,
|
|
112
112
|
"Cannot install the '{0}' extension because it is declared to not run in this setup.",
|
|
113
113
|
getExtensionId(manifest.publisher, manifest.name)
|
|
114
114
|
)));
|
|
@@ -468,7 +468,7 @@ let MainThreadCommentController = class MainThreadCommentController extends Disp
|
|
|
468
468
|
}
|
|
469
469
|
};
|
|
470
470
|
MainThreadCommentController = ( __decorate([( __param(6, ICommentService)), ( __param(7, IUriIdentityService))], MainThreadCommentController));
|
|
471
|
-
const commentsViewIcon = registerIcon("comments-view-icon", Codicon.commentDiscussion, ( localize(
|
|
471
|
+
const commentsViewIcon = registerIcon("comments-view-icon", Codicon.commentDiscussion, ( localize(5065, "View icon of the comments view.")));
|
|
472
472
|
let MainThreadComments = class MainThreadComments extends Disposable {
|
|
473
473
|
constructor(
|
|
474
474
|
extHostContext,
|
|
@@ -532,7 +532,7 @@ let MainThreadCustomEditorModel = MainThreadCustomEditorModel_1 = class MainThre
|
|
|
532
532
|
this._register(workingCopyService.registerWorkingCopy(this));
|
|
533
533
|
this._register(extensionService.onWillStop(e => {
|
|
534
534
|
e.veto(true, ( localize(
|
|
535
|
-
|
|
535
|
+
5066,
|
|
536
536
|
"An extension provided editor for '{0}' is still open that would close otherwise.",
|
|
537
537
|
this.name
|
|
538
538
|
)));
|
|
@@ -600,7 +600,7 @@ let MainThreadCustomEditorModel = MainThreadCustomEditorModel_1 = class MainThre
|
|
|
600
600
|
this._undoService.pushElement({
|
|
601
601
|
type: UndoRedoElementType.Resource,
|
|
602
602
|
resource: this._editorResource,
|
|
603
|
-
label: label ?? ( localize(
|
|
603
|
+
label: label ?? ( localize(5067, "Edit")),
|
|
604
604
|
code: "undoredo.customEditorEdit",
|
|
605
605
|
undo: () => this.undo(),
|
|
606
606
|
redo: () => this.redo()
|
|
@@ -54,13 +54,13 @@ let MainThreadDataChannels = class MainThreadDataChannels extends Disposable {
|
|
|
54
54
|
kind,
|
|
55
55
|
status: {
|
|
56
56
|
kind: "error",
|
|
57
|
-
label: ( localize(
|
|
57
|
+
label: ( localize(5068, "Not available"))
|
|
58
58
|
},
|
|
59
59
|
tooltip: ( localize(
|
|
60
|
-
|
|
60
|
+
5069,
|
|
61
61
|
"The selected link presentation provider does not accept this resource."
|
|
62
62
|
)),
|
|
63
|
-
ariaLabel: ( localize(
|
|
63
|
+
ariaLabel: ( localize(5070, "Link presentation is not available"))
|
|
64
64
|
});
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
@@ -105,10 +105,10 @@ let MainThreadDataChannels = class MainThreadDataChannels extends Disposable {
|
|
|
105
105
|
kind: "resource",
|
|
106
106
|
status: {
|
|
107
107
|
kind: "error",
|
|
108
|
-
label: ( localize(
|
|
108
|
+
label: ( localize(5068, "Not available"))
|
|
109
109
|
},
|
|
110
|
-
tooltip: ( localize(
|
|
111
|
-
ariaLabel: ( localize(
|
|
110
|
+
tooltip: ( localize(5071, "The link presentation provider failed to load.")),
|
|
111
|
+
ariaLabel: ( localize(5070, "Link presentation is not available"))
|
|
112
112
|
});
|
|
113
113
|
});
|
|
114
114
|
return watcher;
|
|
@@ -14,7 +14,7 @@ class ExtHostEditSessionIdentityCreateParticipant {
|
|
|
14
14
|
}
|
|
15
15
|
async participate(workspaceFolder, token) {
|
|
16
16
|
const p = ( new Promise((resolve, reject) => {
|
|
17
|
-
setTimeout(() => reject(( new Error(( localize(
|
|
17
|
+
setTimeout(() => reject(( new Error(( localize(5072, "Aborted onWillCreateEditSessionIdentity-event after 10000ms"))))), this.timeout);
|
|
18
18
|
this._proxy.$onWillCreateEditSessionIdentity(workspaceFolder.uri, token, this.timeout).then(resolve, reject);
|
|
19
19
|
}));
|
|
20
20
|
return raceCancellationError(p, token);
|
|
@@ -111,7 +111,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
111
111
|
this._notificationService.notify({
|
|
112
112
|
severity: Severity.Error,
|
|
113
113
|
message: ( localize(
|
|
114
|
-
|
|
114
|
+
5073,
|
|
115
115
|
"Cannot activate the '{0}' extension because it depends on the '{1}' extension, which is not loaded. Would you like to reload the window to load the extension?",
|
|
116
116
|
extName,
|
|
117
117
|
missingInstalledDependency.manifest.displayName || missingInstalledDependency.manifest.name
|
|
@@ -119,7 +119,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
119
119
|
actions: {
|
|
120
120
|
primary: [toAction({
|
|
121
121
|
id: "reload",
|
|
122
|
-
label: ( localize(
|
|
122
|
+
label: ( localize(5074, "Reload Window")),
|
|
123
123
|
run: () => this._hostService.reload()
|
|
124
124
|
})]
|
|
125
125
|
}
|
|
@@ -130,7 +130,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
130
130
|
this._notificationService.notify({
|
|
131
131
|
severity: Severity.Error,
|
|
132
132
|
message: ( localize(
|
|
133
|
-
|
|
133
|
+
5075,
|
|
134
134
|
"Cannot activate the '{0}' extension because it depends on the '{1}' extension which is not supported in the current workspace",
|
|
135
135
|
extName,
|
|
136
136
|
missingInstalledDependency.manifest.displayName || missingInstalledDependency.manifest.name
|
|
@@ -140,7 +140,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
140
140
|
this._notificationService.notify({
|
|
141
141
|
severity: Severity.Error,
|
|
142
142
|
message: ( localize(
|
|
143
|
-
|
|
143
|
+
5076,
|
|
144
144
|
"Cannot activate the '{0}' extension because it depends on the '{1}' extension which is not supported in Restricted Mode",
|
|
145
145
|
extName,
|
|
146
146
|
missingInstalledDependency.manifest.displayName || missingInstalledDependency.manifest.name
|
|
@@ -148,7 +148,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
148
148
|
actions: {
|
|
149
149
|
primary: [toAction({
|
|
150
150
|
id: "manageWorkspaceTrust",
|
|
151
|
-
label: ( localize(
|
|
151
|
+
label: ( localize(5077, "Manage Workspace Trust")),
|
|
152
152
|
run: () => this._commandService.executeCommand("workbench.trust.manage")
|
|
153
153
|
})]
|
|
154
154
|
}
|
|
@@ -157,7 +157,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
157
157
|
this._notificationService.notify({
|
|
158
158
|
severity: Severity.Error,
|
|
159
159
|
message: ( localize(
|
|
160
|
-
|
|
160
|
+
5078,
|
|
161
161
|
"Cannot activate the '{0}' extension because it depends on the '{1}' extension which is disabled. Would you like to enable the extension and reload the window?",
|
|
162
162
|
extName,
|
|
163
163
|
missingInstalledDependency.manifest.displayName || missingInstalledDependency.manifest.name
|
|
@@ -165,7 +165,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
165
165
|
actions: {
|
|
166
166
|
primary: [toAction({
|
|
167
167
|
id: "enable",
|
|
168
|
-
label: ( localize(
|
|
168
|
+
label: ( localize(5079, "Enable and Reload")),
|
|
169
169
|
enabled: true,
|
|
170
170
|
run: () => this._extensionEnablementService.setEnablement(
|
|
171
171
|
[missingInstalledDependency],
|
|
@@ -178,7 +178,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
178
178
|
this._notificationService.notify({
|
|
179
179
|
severity: Severity.Error,
|
|
180
180
|
message: ( localize(
|
|
181
|
-
|
|
181
|
+
5080,
|
|
182
182
|
"Cannot activate the '{0}' extension because it depends on the '{1}' extension which is disabled.",
|
|
183
183
|
extName,
|
|
184
184
|
missingInstalledDependency.manifest.displayName || missingInstalledDependency.manifest.name
|
|
@@ -199,7 +199,7 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
199
199
|
this._notificationService.notify({
|
|
200
200
|
severity: Severity.Error,
|
|
201
201
|
message: ( localize(
|
|
202
|
-
|
|
202
|
+
5081,
|
|
203
203
|
"Cannot activate the '{0}' extension because it depends on the '{1}' extension from '{2}', which is not installed. Would you like to install the extension and reload the window?",
|
|
204
204
|
extName,
|
|
205
205
|
dependencyExtension.displayName,
|
|
@@ -208,14 +208,14 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
208
208
|
actions: {
|
|
209
209
|
primary: [toAction({
|
|
210
210
|
id: "install",
|
|
211
|
-
label: ( localize(
|
|
211
|
+
label: ( localize(5082, "Install and Reload")),
|
|
212
212
|
run: () => this._extensionsWorkbenchService.install(dependencyExtension).then(() => this._hostService.reload(), e => this._notificationService.error(e))
|
|
213
213
|
})]
|
|
214
214
|
}
|
|
215
215
|
});
|
|
216
216
|
} else {
|
|
217
217
|
this._notificationService.error(( localize(
|
|
218
|
-
|
|
218
|
+
5083,
|
|
219
219
|
"Cannot activate the '{0}' extension because it depends on an unknown '{1}' extension.",
|
|
220
220
|
extName,
|
|
221
221
|
missingDependency
|
|
@@ -94,25 +94,25 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
|
|
|
94
94
|
if (data.extensionNames.length === 1) {
|
|
95
95
|
if (operation === FileOperation.CREATE) {
|
|
96
96
|
message = ( localize(
|
|
97
|
-
|
|
97
|
+
5084,
|
|
98
98
|
"Extension '{0}' wants to make refactoring changes with this file creation",
|
|
99
99
|
data.extensionNames[0]
|
|
100
100
|
));
|
|
101
101
|
} else if (operation === FileOperation.COPY) {
|
|
102
102
|
message = ( localize(
|
|
103
|
-
|
|
103
|
+
5085,
|
|
104
104
|
"Extension '{0}' wants to make refactoring changes with this file copy",
|
|
105
105
|
data.extensionNames[0]
|
|
106
106
|
));
|
|
107
107
|
} else if (operation === FileOperation.MOVE) {
|
|
108
108
|
message = ( localize(
|
|
109
|
-
|
|
109
|
+
5086,
|
|
110
110
|
"Extension '{0}' wants to make refactoring changes with this file move",
|
|
111
111
|
data.extensionNames[0]
|
|
112
112
|
));
|
|
113
113
|
} else {
|
|
114
114
|
message = ( localize(
|
|
115
|
-
|
|
115
|
+
5087,
|
|
116
116
|
"Extension '{0}' wants to make refactoring changes with this file deletion",
|
|
117
117
|
data.extensionNames[0]
|
|
118
118
|
));
|
|
@@ -120,25 +120,25 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
|
|
|
120
120
|
} else {
|
|
121
121
|
if (operation === FileOperation.CREATE) {
|
|
122
122
|
message = ( localize(
|
|
123
|
-
|
|
123
|
+
5088,
|
|
124
124
|
"{0} extensions want to make refactoring changes with this file creation",
|
|
125
125
|
data.extensionNames.length
|
|
126
126
|
));
|
|
127
127
|
} else if (operation === FileOperation.COPY) {
|
|
128
128
|
message = ( localize(
|
|
129
|
-
|
|
129
|
+
5089,
|
|
130
130
|
"{0} extensions want to make refactoring changes with this file copy",
|
|
131
131
|
data.extensionNames.length
|
|
132
132
|
));
|
|
133
133
|
} else if (operation === FileOperation.MOVE) {
|
|
134
134
|
message = ( localize(
|
|
135
|
-
|
|
135
|
+
5090,
|
|
136
136
|
"{0} extensions want to make refactoring changes with this file move",
|
|
137
137
|
data.extensionNames.length
|
|
138
138
|
));
|
|
139
139
|
} else {
|
|
140
140
|
message = ( localize(
|
|
141
|
-
|
|
141
|
+
5091,
|
|
142
142
|
"{0} extensions want to make refactoring changes with this file deletion",
|
|
143
143
|
data.extensionNames.length
|
|
144
144
|
));
|
|
@@ -150,8 +150,8 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
|
|
|
150
150
|
} = await dialogService.confirm({
|
|
151
151
|
type: Severity.Info,
|
|
152
152
|
message,
|
|
153
|
-
primaryButton: ( localize(
|
|
154
|
-
cancelButton: ( localize(
|
|
153
|
+
primaryButton: ( localize(5092, "Show &&Preview")),
|
|
154
|
+
cancelButton: ( localize(5093, "Skip Changes"))
|
|
155
155
|
});
|
|
156
156
|
showPreview = true;
|
|
157
157
|
if (!confirmed) {
|
|
@@ -171,18 +171,18 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
|
|
|
171
171
|
type: Severity.Info,
|
|
172
172
|
message,
|
|
173
173
|
buttons: [{
|
|
174
|
-
label: ( localize(
|
|
174
|
+
label: ( localize(5094, "&&OK")),
|
|
175
175
|
run: () => Choice.OK
|
|
176
176
|
}, {
|
|
177
|
-
label: ( localize(
|
|
177
|
+
label: ( localize(5092, "Show &&Preview")),
|
|
178
178
|
run: () => Choice.Preview
|
|
179
179
|
}],
|
|
180
180
|
cancelButton: {
|
|
181
|
-
label: ( localize(
|
|
181
|
+
label: ( localize(5093, "Skip Changes")),
|
|
182
182
|
run: () => Choice.Cancel
|
|
183
183
|
},
|
|
184
184
|
checkbox: {
|
|
185
|
-
label: ( localize(
|
|
185
|
+
label: ( localize(5095, "Do not ask me again"))
|
|
186
186
|
}
|
|
187
187
|
});
|
|
188
188
|
if (result === Choice.Cancel) {
|
|
@@ -211,15 +211,15 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
|
|
|
211
211
|
_progressLabel(operation) {
|
|
212
212
|
switch (operation) {
|
|
213
213
|
case FileOperation.CREATE:
|
|
214
|
-
return localize(
|
|
214
|
+
return localize(5096, "Running 'File Create' participants...");
|
|
215
215
|
case FileOperation.MOVE:
|
|
216
|
-
return localize(
|
|
216
|
+
return localize(5097, "Running 'File Rename' participants...");
|
|
217
217
|
case FileOperation.COPY:
|
|
218
|
-
return localize(
|
|
218
|
+
return localize(5098, "Running 'File Copy' participants...");
|
|
219
219
|
case FileOperation.DELETE:
|
|
220
|
-
return localize(
|
|
220
|
+
return localize(5099, "Running 'File Delete' participants...");
|
|
221
221
|
case FileOperation.WRITE:
|
|
222
|
-
return localize(
|
|
222
|
+
return localize(5100, "Running 'File Write' participants...");
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
})();
|
|
@@ -307,7 +307,7 @@ registerAction2(class ResetMemento extends Action2 {
|
|
|
307
307
|
super({
|
|
308
308
|
id: "files.participants.resetChoice",
|
|
309
309
|
title: {
|
|
310
|
-
value: ( localize(
|
|
310
|
+
value: ( localize(5101, "Reset choice for 'File operation needs preview'")),
|
|
311
311
|
original: `Reset choice for 'File operation needs preview'`
|
|
312
312
|
},
|
|
313
313
|
f1: true
|
|
@@ -66,13 +66,13 @@ let MainThreadMessageService = class MainThreadMessageService {
|
|
|
66
66
|
sourceIsUrgent = MainThreadMessageService_1.URGENT_NOTIFICATION_SOURCES.includes(source.id);
|
|
67
67
|
}
|
|
68
68
|
if (!source) {
|
|
69
|
-
source = ( localize(
|
|
69
|
+
source = ( localize(5117, "Extension"));
|
|
70
70
|
}
|
|
71
71
|
const secondaryActions = [];
|
|
72
72
|
if (options.source) {
|
|
73
73
|
secondaryActions.push(toAction({
|
|
74
74
|
id: options.source.identifier.value,
|
|
75
|
-
label: ( localize(
|
|
75
|
+
label: ( localize(5118, "Manage Extension")),
|
|
76
76
|
run: () => {
|
|
77
77
|
return this._commandService.executeCommand("_extensions.manage", options.source.identifier.value);
|
|
78
78
|
}
|
|
@@ -111,12 +111,12 @@ let MainThreadMessageService = class MainThreadMessageService {
|
|
|
111
111
|
if (!cancelButton) {
|
|
112
112
|
if (buttons.length > 0) {
|
|
113
113
|
cancelButton = {
|
|
114
|
-
label: ( localize(
|
|
114
|
+
label: ( localize(5119, "Cancel")),
|
|
115
115
|
run: () => undefined
|
|
116
116
|
};
|
|
117
117
|
} else {
|
|
118
118
|
cancelButton = {
|
|
119
|
-
label: ( localize(
|
|
119
|
+
label: ( localize(5120, "&&OK")),
|
|
120
120
|
run: () => undefined
|
|
121
121
|
};
|
|
122
122
|
}
|
|
@@ -94,11 +94,11 @@ let MainThreadOutputService = class MainThreadOutputService extends Disposable {
|
|
|
94
94
|
}
|
|
95
95
|
_showChannelQuietly(channel) {
|
|
96
96
|
const statusProperties = {
|
|
97
|
-
name: ( localize(
|
|
97
|
+
name: ( localize(5122, "Show Output")),
|
|
98
98
|
text: "$(output)",
|
|
99
|
-
ariaLabel: ( localize(
|
|
99
|
+
ariaLabel: ( localize(5123, "Show {0} Output Channel", channel.label)),
|
|
100
100
|
command: `workbench.action.output.show.${channel.id}`,
|
|
101
|
-
tooltip: ( localize(
|
|
101
|
+
tooltip: ( localize(5124, "Show {0} Output Channel", channel.label)),
|
|
102
102
|
kind: "prominent"
|
|
103
103
|
};
|
|
104
104
|
if (!this._outputStatusItem.value) {
|
|
@@ -38,7 +38,7 @@ let MainThreadProgress = class MainThreadProgress {
|
|
|
38
38
|
location: ProgressLocation.Notification,
|
|
39
39
|
secondaryActions: [toAction({
|
|
40
40
|
id: extensionId,
|
|
41
|
-
label: ( localize(
|
|
41
|
+
label: ( localize(5125, "Manage Extension")),
|
|
42
42
|
run: () => this._commandService.executeCommand("_extensions.manage", extensionId)
|
|
43
43
|
})]
|
|
44
44
|
};
|
|
@@ -17,7 +17,7 @@ class ExtHostSaveParticipant {
|
|
|
17
17
|
return undefined;
|
|
18
18
|
}
|
|
19
19
|
const p = ( new Promise((resolve, reject) => {
|
|
20
|
-
setTimeout(() => reject(( new Error(( localize(
|
|
20
|
+
setTimeout(() => reject(( new Error(( localize(5126, "Aborted onWillSaveTextDocument-event after 1750ms"))))), 1750);
|
|
21
21
|
this._proxy.$participateInSave(editorModel.resource, context.reason).then(values => {
|
|
22
22
|
if (!values.every(success => success)) {
|
|
23
23
|
return Promise.reject(( new Error("listener failed")));
|
|
@@ -397,7 +397,7 @@ var TaskDTO;
|
|
|
397
397
|
}
|
|
398
398
|
command.presentation = TaskPresentationOptionsDTO.to(task.presentationOptions);
|
|
399
399
|
const source = TaskSourceDTO.to(task.source, workspace);
|
|
400
|
-
const label = ( localize(
|
|
400
|
+
const label = ( localize(5127, "{0}: {1}", source.label, task.name));
|
|
401
401
|
const definition = TaskDefinitionDTO.to(task.definition, executeOnly);
|
|
402
402
|
const id = (CustomExecutionDTO.is(task.execution) && task._id) ? task._id : `${task.source.extensionId}.${definition._key}`;
|
|
403
403
|
const result = ( new ContributedTask(
|
|
@@ -116,13 +116,13 @@ let MainThreadTunnelService = class MainThreadTunnelService extends Disposable {
|
|
|
116
116
|
}
|
|
117
117
|
async elevationPrompt(tunnelOptions, tunnel, source) {
|
|
118
118
|
return this.notificationService.prompt(Severity.Info, ( localize(
|
|
119
|
-
|
|
119
|
+
5128,
|
|
120
120
|
"The extension {0} has forwarded port {1}. You'll need to run as superuser to use port {2} locally.",
|
|
121
121
|
source,
|
|
122
122
|
tunnelOptions.remoteAddress.port,
|
|
123
123
|
tunnelOptions.localAddressPort
|
|
124
124
|
)), [{
|
|
125
|
-
label: ( localize(
|
|
125
|
+
label: ( localize(5129, "Use Port {0} as Sudo...", tunnel.tunnelRemotePort)),
|
|
126
126
|
run: async () => {
|
|
127
127
|
this.elevateionRetry = true;
|
|
128
128
|
await this.remoteExplorerService.close({
|
|
@@ -63,7 +63,7 @@ let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
|
|
|
63
63
|
}, token);
|
|
64
64
|
} catch (e) {
|
|
65
65
|
if (!isCancellationError(e)) {
|
|
66
|
-
const openDefaultAction = ( new Action("default", ( localize(
|
|
66
|
+
const openDefaultAction = ( new Action("default", ( localize(5130, "Open using default opener")), undefined, undefined, async () => {
|
|
67
67
|
await this.openerService.open(uri, {
|
|
68
68
|
allowTunneling: false,
|
|
69
69
|
allowContributedOpeners: defaultExternalUriOpenerId
|
|
@@ -72,7 +72,7 @@ let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
|
|
|
72
72
|
openDefaultAction.tooltip = ( uri.toString());
|
|
73
73
|
this.notificationService.notify({
|
|
74
74
|
severity: Severity.Error,
|
|
75
|
-
message: ( localize(
|
|
75
|
+
message: ( localize(5131, "Could not open uri with '{0}': {1}", id, (e.toString()))),
|
|
76
76
|
actions: {
|
|
77
77
|
primary: [openDefaultAction]
|
|
78
78
|
}
|
|
@@ -118,7 +118,7 @@ let MainThreadWebviews = class MainThreadWebviews extends Disposable {
|
|
|
118
118
|
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
|
119
119
|
<meta http-equiv="Content-Security-Policy" content="default-src 'none';">
|
|
120
120
|
</head>
|
|
121
|
-
<body>${( localize(
|
|
121
|
+
<body>${( localize(5132, "An error occurred while loading view: {0}", escape(viewType)))}</body>
|
|
122
122
|
</html>`;
|
|
123
123
|
}
|
|
124
124
|
};
|
|
@@ -114,10 +114,10 @@ let MainThreadWorkspace = class MainThreadWorkspace extends Disposable {
|
|
|
114
114
|
const wantsToDelete = removeCount > 0;
|
|
115
115
|
if (wantsToAdd && !wantsToDelete) {
|
|
116
116
|
if (addCount === 1) {
|
|
117
|
-
message = ( localize(
|
|
117
|
+
message = ( localize(5133, "Extension '{0}' added 1 folder to the workspace", extensionName));
|
|
118
118
|
} else {
|
|
119
119
|
message = ( localize(
|
|
120
|
-
|
|
120
|
+
5134,
|
|
121
121
|
"Extension '{0}' added {1} folders to the workspace",
|
|
122
122
|
extensionName,
|
|
123
123
|
addCount
|
|
@@ -126,10 +126,10 @@ let MainThreadWorkspace = class MainThreadWorkspace extends Disposable {
|
|
|
126
126
|
}
|
|
127
127
|
else if (wantsToDelete && !wantsToAdd) {
|
|
128
128
|
if (removeCount === 1) {
|
|
129
|
-
message = ( localize(
|
|
129
|
+
message = ( localize(5135, "Extension '{0}' removed 1 folder from the workspace", extensionName));
|
|
130
130
|
} else {
|
|
131
131
|
message = ( localize(
|
|
132
|
-
|
|
132
|
+
5136,
|
|
133
133
|
"Extension '{0}' removed {1} folders from the workspace",
|
|
134
134
|
extensionName,
|
|
135
135
|
removeCount
|
|
@@ -137,7 +137,7 @@ let MainThreadWorkspace = class MainThreadWorkspace extends Disposable {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
else {
|
|
140
|
-
message = ( localize(
|
|
140
|
+
message = ( localize(5137, "Extension '{0}' changed folders of the workspace", extensionName));
|
|
141
141
|
}
|
|
142
142
|
return message;
|
|
143
143
|
}
|
|
@@ -60,7 +60,7 @@ let CustomTextEditorModel = CustomTextEditorModel_1 = class CustomTextEditorMode
|
|
|
60
60
|
}));
|
|
61
61
|
this._register(extensionService.onWillStop(e => {
|
|
62
62
|
e.veto(true, ( localize(
|
|
63
|
-
|
|
63
|
+
13528,
|
|
64
64
|
"An extension provided text editor for '{0}' is still open that would close otherwise.",
|
|
65
65
|
this.name
|
|
66
66
|
)));
|
|
@@ -169,11 +169,11 @@ let ExtensionBisectUi = class ExtensionBisectUi {
|
|
|
169
169
|
}
|
|
170
170
|
_showBisectPrompt() {
|
|
171
171
|
const goodPrompt = {
|
|
172
|
-
label: ( localize(
|
|
172
|
+
label: ( localize(21878, "I can't reproduce")),
|
|
173
173
|
run: () => this._commandService.executeCommand("extension.bisect.next", false)
|
|
174
174
|
};
|
|
175
175
|
const badPrompt = {
|
|
176
|
-
label: ( localize(
|
|
176
|
+
label: ( localize(21879, "I can reproduce")),
|
|
177
177
|
run: () => this._commandService.executeCommand("extension.bisect.next", true)
|
|
178
178
|
};
|
|
179
179
|
const stop = {
|
|
@@ -181,10 +181,10 @@ let ExtensionBisectUi = class ExtensionBisectUi {
|
|
|
181
181
|
run: () => this._commandService.executeCommand("extension.bisect.stop")
|
|
182
182
|
};
|
|
183
183
|
const message = this._extensionBisectService.disabledCount === 1 ? ( localize(
|
|
184
|
-
|
|
184
|
+
21880,
|
|
185
185
|
"Extension Bisect is active and has disabled 1 extension. Check if you can still reproduce the problem and proceed by selecting from these options."
|
|
186
186
|
)) : ( localize(
|
|
187
|
-
|
|
187
|
+
21881,
|
|
188
188
|
"Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
|
|
189
189
|
this._extensionBisectService.disabledCount
|
|
190
190
|
));
|
|
@@ -200,7 +200,7 @@ registerAction2(class extends Action2 {
|
|
|
200
200
|
constructor() {
|
|
201
201
|
super({
|
|
202
202
|
id: "extension.bisect.start",
|
|
203
|
-
title: ( localize2(
|
|
203
|
+
title: ( localize2(21882, "Start Extension Bisect")),
|
|
204
204
|
category: Categories.Help,
|
|
205
205
|
f1: true,
|
|
206
206
|
precondition: ( ExtensionBisectUi.ctxIsBisectActive.negate()),
|
|
@@ -220,13 +220,13 @@ registerAction2(class extends Action2 {
|
|
|
220
220
|
const extensionsBisect = accessor.get(IExtensionBisectService);
|
|
221
221
|
const extensions = (await extensionManagement.getInstalled(ExtensionType.User)).filter(ext => extensionEnablementService.isEnabled(ext));
|
|
222
222
|
const res = await dialogService.confirm({
|
|
223
|
-
message: ( localize(
|
|
223
|
+
message: ( localize(21883, "Extension Bisect")),
|
|
224
224
|
detail: ( localize(
|
|
225
|
-
|
|
225
|
+
21884,
|
|
226
226
|
"Extension Bisect will use binary search to find an extension that causes a problem. During the process the window reloads repeatedly (~{0} times). Each time you must confirm if you are still seeing problems.",
|
|
227
227
|
2 + Math.log2(extensions.length) | 0
|
|
228
228
|
)),
|
|
229
|
-
primaryButton: ( localize(
|
|
229
|
+
primaryButton: ( localize(21885, "&&Start Extension Bisect"))
|
|
230
230
|
});
|
|
231
231
|
if (res.confirmed) {
|
|
232
232
|
await extensionsBisect.start(extensions);
|
|
@@ -238,7 +238,7 @@ registerAction2(class extends Action2 {
|
|
|
238
238
|
constructor() {
|
|
239
239
|
super({
|
|
240
240
|
id: "extension.bisect.next",
|
|
241
|
-
title: ( localize2(
|
|
241
|
+
title: ( localize2(21886, "Continue Extension Bisect")),
|
|
242
242
|
category: Categories.Help,
|
|
243
243
|
f1: true,
|
|
244
244
|
precondition: ExtensionBisectUi.ctxIsBisectActive
|
|
@@ -272,24 +272,24 @@ registerAction2(class extends Action2 {
|
|
|
272
272
|
return;
|
|
273
273
|
}
|
|
274
274
|
if (done.bad) {
|
|
275
|
-
await dialogService.info(( localize(
|
|
276
|
-
|
|
275
|
+
await dialogService.info(( localize(21887, "Extension Bisect")), ( localize(
|
|
276
|
+
21888,
|
|
277
277
|
"Extension Bisect is done but no extension has been identified. This might be a problem with {0}.",
|
|
278
278
|
productService.nameShort
|
|
279
279
|
)));
|
|
280
280
|
} else {
|
|
281
281
|
const res = await dialogService.confirm({
|
|
282
282
|
type: Severity.Info,
|
|
283
|
-
message: ( localize(
|
|
284
|
-
primaryButton: ( localize(
|
|
285
|
-
cancelButton: ( localize(
|
|
283
|
+
message: ( localize(21887, "Extension Bisect")),
|
|
284
|
+
primaryButton: ( localize(21889, "&&Report Issue & Continue")),
|
|
285
|
+
cancelButton: ( localize(21890, "Continue")),
|
|
286
286
|
detail: ( localize(
|
|
287
|
-
|
|
287
|
+
21891,
|
|
288
288
|
"Extension Bisect is done and has identified {0} as the extension causing the problem.",
|
|
289
289
|
done.id
|
|
290
290
|
)),
|
|
291
291
|
checkbox: {
|
|
292
|
-
label: ( localize(
|
|
292
|
+
label: ( localize(21892, "Keep this extension disabled")),
|
|
293
293
|
checked: true
|
|
294
294
|
}
|
|
295
295
|
});
|
|
@@ -310,24 +310,24 @@ registerAction2(class extends Action2 {
|
|
|
310
310
|
result
|
|
311
311
|
} = await dialogService.prompt({
|
|
312
312
|
type: Severity.Info,
|
|
313
|
-
message: ( localize(
|
|
313
|
+
message: ( localize(21893, "Extension Bisect")),
|
|
314
314
|
detail: ( localize(
|
|
315
|
-
|
|
315
|
+
21894,
|
|
316
316
|
"Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
|
|
317
317
|
bisectService.disabledCount
|
|
318
318
|
)),
|
|
319
319
|
buttons: [{
|
|
320
|
-
label: ( localize(
|
|
320
|
+
label: ( localize(21895, "I ca&&n't reproduce")),
|
|
321
321
|
run: () => false
|
|
322
322
|
}, {
|
|
323
|
-
label: ( localize(
|
|
323
|
+
label: ( localize(21896, "I can &&reproduce")),
|
|
324
324
|
run: () => true
|
|
325
325
|
}, {
|
|
326
|
-
label: ( localize(
|
|
326
|
+
label: ( localize(21897, "&&Stop Bisect")),
|
|
327
327
|
run: () => undefined
|
|
328
328
|
}],
|
|
329
329
|
cancelButton: {
|
|
330
|
-
label: ( localize(
|
|
330
|
+
label: ( localize(21898, "&&Cancel Bisect")),
|
|
331
331
|
run: () => null
|
|
332
332
|
}
|
|
333
333
|
});
|
|
@@ -338,7 +338,7 @@ registerAction2(class extends Action2 {
|
|
|
338
338
|
constructor() {
|
|
339
339
|
super({
|
|
340
340
|
id: "extension.bisect.stop",
|
|
341
|
-
title: ( localize2(
|
|
341
|
+
title: ( localize2(21899, "Stop Extension Bisect")),
|
|
342
342
|
category: Categories.Help,
|
|
343
343
|
f1: true,
|
|
344
344
|
precondition: ExtensionBisectUi.ctxIsBisectActive
|
package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js
CHANGED
|
@@ -772,7 +772,7 @@ let WebExtensionsScannerService = class WebExtensionsScannerService extends Disp
|
|
|
772
772
|
}
|
|
773
773
|
if (!this.extensionManifestPropertiesService.canExecuteOnWeb(manifest)) {
|
|
774
774
|
throw ( new Error(( localize(
|
|
775
|
-
|
|
775
|
+
21914,
|
|
776
776
|
"Cannot add '{0}' because this extension is not a web extension.",
|
|
777
777
|
manifest.displayName || manifest.name
|
|
778
778
|
))));
|
|
@@ -1051,7 +1051,7 @@ if (isWeb) {
|
|
|
1051
1051
|
constructor() {
|
|
1052
1052
|
super({
|
|
1053
1053
|
id: "workbench.extensions.action.openInstalledWebExtensionsResource",
|
|
1054
|
-
title: ( localize2(
|
|
1054
|
+
title: ( localize2(21915, "Open Installed Web Extensions Resource")),
|
|
1055
1055
|
category: Categories.Developer,
|
|
1056
1056
|
f1: true,
|
|
1057
1057
|
precondition: IsWebContext
|
|
@@ -224,13 +224,13 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
224
224
|
}
|
|
225
225
|
}, {
|
|
226
226
|
id: "join.disconnectRemote",
|
|
227
|
-
label: ( localize(
|
|
227
|
+
label: ( localize(21981, "Disconnect Remote Agent")),
|
|
228
228
|
order: WillShutdownJoinerOrder.Last
|
|
229
229
|
});
|
|
230
230
|
} else {
|
|
231
231
|
event.join(this._doStopExtensionHosts(), {
|
|
232
232
|
id: "join.stopExtensionHosts",
|
|
233
|
-
label: ( localize(
|
|
233
|
+
label: ( localize(21982, "Stopping Extension Hosts"))
|
|
234
234
|
});
|
|
235
235
|
}
|
|
236
236
|
}));
|
|
@@ -305,7 +305,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
305
305
|
this._notificationService.notify({
|
|
306
306
|
severity: Severity.Error,
|
|
307
307
|
message: ( localize(
|
|
308
|
-
|
|
308
|
+
21983,
|
|
309
309
|
"The following extensions contain dependency loops and have been disabled: {0}",
|
|
310
310
|
result.removedDueToLooping.map(e => `'${e.identifier.value}'`).join(", ")
|
|
311
311
|
))
|
|
@@ -542,7 +542,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
542
542
|
this._notificationService.notify({
|
|
543
543
|
severity: Severity.Error,
|
|
544
544
|
message: ( localize(
|
|
545
|
-
|
|
545
|
+
21983,
|
|
546
546
|
"The following extensions contain dependency loops and have been disabled: {0}",
|
|
547
547
|
result.removedDueToLooping.map(e => `'${e.identifier.value}'`).join(", ")
|
|
548
548
|
))
|
|
@@ -557,7 +557,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
557
557
|
const extensionHostManager = this.findTestExtensionHost(this._environmentService.extensionTestsLocationURI);
|
|
558
558
|
if (!extensionHostManager) {
|
|
559
559
|
const msg = ( localize(
|
|
560
|
-
|
|
560
|
+
21984,
|
|
561
561
|
"No extension host found that can launch the test runner at {0}.",
|
|
562
562
|
(this._environmentService.extensionTestsLocationURI.toString())
|
|
563
563
|
));
|
|
@@ -727,7 +727,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
727
727
|
vetoReasons.add(reason);
|
|
728
728
|
}
|
|
729
729
|
}).catch(error => {
|
|
730
|
-
vetoReasons.add(( localize(
|
|
730
|
+
vetoReasons.add(( localize(21985, "{0} (Error: {1})", reason, toErrorMessage(error))));
|
|
731
731
|
});
|
|
732
732
|
}
|
|
733
733
|
}
|
|
@@ -745,9 +745,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
745
745
|
confirmed
|
|
746
746
|
} = await this._dialogService.confirm({
|
|
747
747
|
type: Severity.Warning,
|
|
748
|
-
message: ( localize(
|
|
748
|
+
message: ( localize(21986, "Please confirm restart of extensions.")),
|
|
749
749
|
detail: vetoReasonsArray.length === 1 ? vetoReasonsArray[0] : vetoReasonsArray.join("\n -"),
|
|
750
|
-
primaryButton: ( localize(
|
|
750
|
+
primaryButton: ( localize(21987, "Restart Anyway"))
|
|
751
751
|
});
|
|
752
752
|
if (confirmed) {
|
|
753
753
|
return true;
|
|
@@ -861,16 +861,16 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
861
861
|
this._remoteCrashTracker.registerCrash();
|
|
862
862
|
if (this._remoteCrashTracker.shouldAutomaticallyRestart()) {
|
|
863
863
|
this._logService.info(`Automatically restarting the remote extension host.`);
|
|
864
|
-
this._notificationService.status(( localize(
|
|
864
|
+
this._notificationService.status(( localize(21988, "The remote extension host terminated unexpectedly. Restarting...")), {
|
|
865
865
|
hideAfter: 5000
|
|
866
866
|
});
|
|
867
867
|
this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
|
|
868
868
|
} else {
|
|
869
869
|
this._notificationService.prompt(Severity.Error, ( localize(
|
|
870
|
-
|
|
870
|
+
21989,
|
|
871
871
|
"Remote Extension host terminated unexpectedly 3 times within the last 5 minutes."
|
|
872
872
|
)), [{
|
|
873
|
-
label: ( localize(
|
|
873
|
+
label: ( localize(21990, "Restart Remote Extension Host")),
|
|
874
874
|
run: () => {
|
|
875
875
|
this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
|
|
876
876
|
}
|
|
@@ -1424,7 +1424,7 @@ class ActivationFeatureMarkdowneRenderer extends Disposable {
|
|
|
1424
1424
|
}
|
|
1425
1425
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
1426
1426
|
id: "activationEvents",
|
|
1427
|
-
label: ( localize(
|
|
1427
|
+
label: ( localize(21991, "Activation Events")),
|
|
1428
1428
|
access: {
|
|
1429
1429
|
canToggle: false
|
|
1430
1430
|
},
|
|
@@ -485,7 +485,7 @@ registerAction2(class MeasureExtHostLatencyAction extends Action2 {
|
|
|
485
485
|
constructor() {
|
|
486
486
|
super({
|
|
487
487
|
id: "editor.action.measureExtHostLatency",
|
|
488
|
-
title: ( localize2(
|
|
488
|
+
title: ( localize2(21992, "Measure Extension Host Latency")),
|
|
489
489
|
category: Categories.Developer,
|
|
490
490
|
f1: true
|
|
491
491
|
});
|
|
@@ -112,7 +112,7 @@ class ApiProposalsMarkdowneRenderer extends Disposable {
|
|
|
112
112
|
}
|
|
113
113
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
114
114
|
id: "enabledApiProposals",
|
|
115
|
-
label: ( localize(
|
|
115
|
+
label: ( localize(21993, "API Proposals")),
|
|
116
116
|
access: {
|
|
117
117
|
canToggle: false
|
|
118
118
|
},
|
|
@@ -9,7 +9,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
9
9
|
const extension = result.get(systemExtension.identifier);
|
|
10
10
|
if (extension) {
|
|
11
11
|
logService.warn(( localize(
|
|
12
|
-
|
|
12
|
+
22084,
|
|
13
13
|
"Overwriting extension {0} with {1}.",
|
|
14
14
|
extension.extensionLocation.fsPath,
|
|
15
15
|
systemExtension.extensionLocation.fsPath
|
|
@@ -30,7 +30,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
30
30
|
userExtension.isBuiltin = true;
|
|
31
31
|
} else {
|
|
32
32
|
logService.warn(( localize(
|
|
33
|
-
|
|
33
|
+
22084,
|
|
34
34
|
"Overwriting extension {0} with {1}.",
|
|
35
35
|
extension.extensionLocation.fsPath,
|
|
36
36
|
userExtension.extensionLocation.fsPath
|
|
@@ -48,7 +48,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
48
48
|
const extension = result.get(workspaceExtension.identifier);
|
|
49
49
|
if (extension) {
|
|
50
50
|
logService.warn(( localize(
|
|
51
|
-
|
|
51
|
+
22085,
|
|
52
52
|
"Overwriting {0} with Workspace Extension {1}.",
|
|
53
53
|
extension.extensionLocation.fsPath,
|
|
54
54
|
workspaceExtension.extensionLocation.fsPath
|
|
@@ -58,7 +58,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
58
58
|
});
|
|
59
59
|
development.forEach(developedExtension => {
|
|
60
60
|
logService.info(( localize(
|
|
61
|
-
|
|
61
|
+
22086,
|
|
62
62
|
"Loading development extension at {0}",
|
|
63
63
|
developedExtension.extensionLocation.fsPath
|
|
64
64
|
)));
|
|
@@ -22,14 +22,14 @@ const CSS_CACHE_STORAGE_KEY = "workbench.contrib.css.cache";
|
|
|
22
22
|
const cssExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
23
23
|
extensionPoint: "css",
|
|
24
24
|
jsonSchema: {
|
|
25
|
-
description: ( localize(
|
|
25
|
+
description: ( localize(22333, "Contributes CSS files to be loaded in the workbench.")),
|
|
26
26
|
type: "array",
|
|
27
27
|
items: {
|
|
28
28
|
type: "object",
|
|
29
29
|
properties: {
|
|
30
30
|
path: {
|
|
31
31
|
description: ( localize(
|
|
32
|
-
|
|
32
|
+
22334,
|
|
33
33
|
"Path to the CSS file. The path is relative to the extension folder."
|
|
34
34
|
)),
|
|
35
35
|
type: "string"
|
|
@@ -121,7 +121,7 @@ let CSSExtensionPoint = class CSSExtensionPoint {
|
|
|
121
121
|
const extensionValue = extension.value;
|
|
122
122
|
const collector = extension.collector;
|
|
123
123
|
if (!extensionValue || !Array.isArray(extensionValue)) {
|
|
124
|
-
collector.error(( localize(
|
|
124
|
+
collector.error(( localize(22335, "'contributes.css' must be an array.")));
|
|
125
125
|
continue;
|
|
126
126
|
}
|
|
127
127
|
const extensionId = extension.description.identifier.value;
|
|
@@ -166,13 +166,13 @@ let CSSExtensionPoint = class CSSExtensionPoint {
|
|
|
166
166
|
const cssLocations = [];
|
|
167
167
|
for (const cssContribution of extensionValue) {
|
|
168
168
|
if (!cssContribution.path || typeof cssContribution.path !== "string") {
|
|
169
|
-
collector.error(( localize(
|
|
169
|
+
collector.error(( localize(22336, "'contributes.css.path' must be a string.")));
|
|
170
170
|
continue;
|
|
171
171
|
}
|
|
172
172
|
const cssLocation = joinPath(extensionLocation, cssContribution.path);
|
|
173
173
|
if (!isEqualOrParent(cssLocation, extensionLocation)) {
|
|
174
174
|
collector.warn(( localize(
|
|
175
|
-
|
|
175
|
+
22337,
|
|
176
176
|
"Expected 'contributes.css.path' ({0}) to be included inside extension's folder ({1}).",
|
|
177
177
|
cssLocation.path,
|
|
178
178
|
extensionLocation.path
|