@codingame/monaco-vscode-extension-gallery-service-override 11.0.1 → 11.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +17 -17
- package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +35 -35
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +16 -16
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +4 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +3 -3
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +41 -41
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +10 -10
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +20 -20
- package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-extension-gallery-service-override",
|
|
3
|
-
"version": "11.0.
|
|
3
|
+
"version": "11.0.2",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@11.0.
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@11.0.2"
|
|
30
30
|
}
|
|
31
31
|
}
|
package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js
CHANGED
|
@@ -237,13 +237,13 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
|
|
|
237
237
|
const activationId = activationTimes.activationReason.extensionId.value;
|
|
238
238
|
const activationEvent = activationTimes.activationReason.activationEvent;
|
|
239
239
|
if (activationEvent === '*') {
|
|
240
|
-
title = ( localize(
|
|
240
|
+
title = ( localize(9650, "Activated by {0} on start-up", activationId));
|
|
241
241
|
}
|
|
242
242
|
else if (/^workspaceContains:/.test(activationEvent)) {
|
|
243
243
|
const fileNameOrGlob = activationEvent.substr('workspaceContains:'.length);
|
|
244
244
|
if (fileNameOrGlob.indexOf('*') >= 0 || fileNameOrGlob.indexOf('?') >= 0) {
|
|
245
245
|
title = ( localize(
|
|
246
|
-
|
|
246
|
+
9651,
|
|
247
247
|
"Activated by {1} because a file matching {0} exists in your workspace",
|
|
248
248
|
fileNameOrGlob,
|
|
249
249
|
activationId
|
|
@@ -251,7 +251,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
|
|
|
251
251
|
}
|
|
252
252
|
else {
|
|
253
253
|
title = ( localize(
|
|
254
|
-
|
|
254
|
+
9652,
|
|
255
255
|
"Activated by {1} because file {0} exists in your workspace",
|
|
256
256
|
fileNameOrGlob,
|
|
257
257
|
activationId
|
|
@@ -261,41 +261,41 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
|
|
|
261
261
|
else if (/^workspaceContainsTimeout:/.test(activationEvent)) {
|
|
262
262
|
const glob = activationEvent.substr('workspaceContainsTimeout:'.length);
|
|
263
263
|
title = ( localize(
|
|
264
|
-
|
|
264
|
+
9653,
|
|
265
265
|
"Activated by {1} because searching for {0} took too long",
|
|
266
266
|
glob,
|
|
267
267
|
activationId
|
|
268
268
|
));
|
|
269
269
|
}
|
|
270
270
|
else if (activationEvent === 'onStartupFinished') {
|
|
271
|
-
title = ( localize(
|
|
271
|
+
title = ( localize(9654, "Activated by {0} after start-up finished", activationId));
|
|
272
272
|
}
|
|
273
273
|
else if (/^onLanguage:/.test(activationEvent)) {
|
|
274
274
|
const language = activationEvent.substr('onLanguage:'.length);
|
|
275
275
|
title = ( localize(
|
|
276
|
-
|
|
276
|
+
9655,
|
|
277
277
|
"Activated by {1} because you opened a {0} file",
|
|
278
278
|
language,
|
|
279
279
|
activationId
|
|
280
280
|
));
|
|
281
281
|
}
|
|
282
282
|
else {
|
|
283
|
-
title = ( localize(
|
|
283
|
+
title = ( localize(9656, "Activated by {1} on {0}", activationEvent, activationId));
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
else {
|
|
287
|
-
title = ( localize(
|
|
287
|
+
title = ( localize(9657, "Extension is activating..."));
|
|
288
288
|
}
|
|
289
289
|
data.elementDisposables.push(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), data.activationTime, title));
|
|
290
290
|
clearNode(data.msgContainer);
|
|
291
291
|
if (this._getUnresponsiveProfile(element.description.identifier)) {
|
|
292
292
|
const el = $('span', undefined, ...renderLabelWithIcons(` $(alert) Unresponsive`));
|
|
293
|
-
const extensionHostFreezTitle = ( localize(
|
|
293
|
+
const extensionHostFreezTitle = ( localize(9658, "Extension has caused the extension host to freeze."));
|
|
294
294
|
data.elementDisposables.push(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), el, extensionHostFreezTitle));
|
|
295
295
|
data.msgContainer.appendChild(el);
|
|
296
296
|
}
|
|
297
297
|
if (isNonEmptyArray(element.status.runtimeErrors)) {
|
|
298
|
-
const el = $('span', undefined, ...renderLabelWithIcons(`$(bug) ${( localize(
|
|
298
|
+
const el = $('span', undefined, ...renderLabelWithIcons(`$(bug) ${( localize(9659, "{0} uncaught errors", element.status.runtimeErrors.length))}`));
|
|
299
299
|
data.msgContainer.appendChild(el);
|
|
300
300
|
}
|
|
301
301
|
if (element.status.messages && element.status.messages.length > 0) {
|
|
@@ -334,10 +334,10 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
|
|
|
334
334
|
data.msgContainer.appendChild($('span', undefined, ...renderLabelWithIcons(`$(${status.severity === Severity$1.Error ? errorIcon.id : warningIcon.id}) ${status.message}`)));
|
|
335
335
|
}
|
|
336
336
|
if (accessData?.totalCount > 0) {
|
|
337
|
-
const element = $('span', undefined, `${( localize(
|
|
337
|
+
const element = $('span', undefined, `${( localize(9660, "{0} Requests: {1} (Overall)", feature.label, accessData.totalCount))}${accessData.current ? ( localize(9661, ", {0} (Session)", accessData.current.count)) : ''}`);
|
|
338
338
|
if (accessData.current) {
|
|
339
339
|
const title = ( localize(
|
|
340
|
-
|
|
340
|
+
9662,
|
|
341
341
|
"Last request was {0}.",
|
|
342
342
|
fromNow(accessData.current.lastAccessed, true, true)
|
|
343
343
|
));
|
|
@@ -367,7 +367,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
|
|
|
367
367
|
},
|
|
368
368
|
accessibilityProvider: new (class {
|
|
369
369
|
getWidgetAriaLabel() {
|
|
370
|
-
return ( localize(
|
|
370
|
+
return ( localize(9663, "Runtime Extensions"));
|
|
371
371
|
}
|
|
372
372
|
getAriaLabel(element) {
|
|
373
373
|
return element.description.name;
|
|
@@ -380,7 +380,7 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
|
|
|
380
380
|
return;
|
|
381
381
|
}
|
|
382
382
|
const actions = [];
|
|
383
|
-
actions.push(( (new Action('runtimeExtensionsEditor.action.copyId', ( localize(
|
|
383
|
+
actions.push(( (new Action('runtimeExtensionsEditor.action.copyId', ( localize(9664, "Copy id ({0})", e.element.description.identifier.value)), undefined, true, () => {
|
|
384
384
|
this._clipboardService.writeText(e.element.description.identifier.value);
|
|
385
385
|
}))));
|
|
386
386
|
const reportExtensionIssueAction = this._createReportExtensionIssueAction(e.element);
|
|
@@ -389,8 +389,8 @@ let AbstractRuntimeExtensionsEditor = class AbstractRuntimeExtensionsEditor exte
|
|
|
389
389
|
}
|
|
390
390
|
actions.push(( (new Separator())));
|
|
391
391
|
if (e.element.marketplaceInfo) {
|
|
392
|
-
actions.push(( (new Action('runtimeExtensionsEditor.action.disableWorkspace', ( localize(
|
|
393
|
-
actions.push(( (new Action('runtimeExtensionsEditor.action.disable', ( localize(
|
|
392
|
+
actions.push(( (new Action('runtimeExtensionsEditor.action.disableWorkspace', ( localize(9665, "Disable (Workspace)")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, 8 )))));
|
|
393
|
+
actions.push(( (new Action('runtimeExtensionsEditor.action.disable', ( localize(9666, "Disable")), undefined, true, () => this._extensionsWorkbenchService.setEnablement(e.element.marketplaceInfo, 7 )))));
|
|
394
394
|
}
|
|
395
395
|
actions.push(( (new Separator())));
|
|
396
396
|
const menuActions = this._menuService.getMenuActions(MenuId.ExtensionEditorContextMenu, this.contextKeyService);
|
|
@@ -426,7 +426,7 @@ class ShowRuntimeExtensionsAction extends Action2 {
|
|
|
426
426
|
constructor() {
|
|
427
427
|
super({
|
|
428
428
|
id: 'workbench.action.showRuntimeExtensions',
|
|
429
|
-
title: ( localize2(
|
|
429
|
+
title: ( localize2(9667, "Show Running Extensions")),
|
|
430
430
|
category: Categories.Developer,
|
|
431
431
|
f1: true,
|
|
432
432
|
menu: {
|
|
@@ -127,7 +127,7 @@ class VersionWidget extends ExtensionWithDifferentGalleryVersionWidget {
|
|
|
127
127
|
constructor(container, hoverService) {
|
|
128
128
|
super();
|
|
129
129
|
this.element = append(container, $('code.version'));
|
|
130
|
-
this._register(hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), this.element, ( localize(
|
|
130
|
+
this._register(hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), this.element, ( localize(9597, "Extension Version"))));
|
|
131
131
|
this.render();
|
|
132
132
|
}
|
|
133
133
|
render() {
|
|
@@ -187,13 +187,13 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
187
187
|
const details = append(header, $('.details'));
|
|
188
188
|
const title = append(details, $('.title'));
|
|
189
189
|
const name = append(title, $('span.name.clickable', { role: 'heading', tabIndex: 0 }));
|
|
190
|
-
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), name, ( localize(
|
|
190
|
+
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), name, ( localize(9598, "Extension name"))));
|
|
191
191
|
const versionWidget = ( (new VersionWidget(title, this.hoverService)));
|
|
192
192
|
const preview = append(title, $('span.preview'));
|
|
193
|
-
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), preview, ( localize(
|
|
194
|
-
preview.textContent = ( localize(
|
|
193
|
+
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), preview, ( localize(9599, "Preview"))));
|
|
194
|
+
preview.textContent = ( localize(9599, "Preview"));
|
|
195
195
|
const builtin = append(title, $('span.builtin'));
|
|
196
|
-
builtin.textContent = ( localize(
|
|
196
|
+
builtin.textContent = ( localize(9600, "Built-in"));
|
|
197
197
|
const subtitle = append(details, $('.subtitle'));
|
|
198
198
|
const publisher = append(append(subtitle, $('.subtitle-entry')), $('.publisher.clickable', { tabIndex: 0 }));
|
|
199
199
|
publisher.setAttribute('role', 'button');
|
|
@@ -202,10 +202,10 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
202
202
|
const resource = append(append(subtitle, $('.subtitle-entry.resource')), $('', { tabIndex: 0 }));
|
|
203
203
|
resource.setAttribute('role', 'button');
|
|
204
204
|
const installCount = append(append(subtitle, $('.subtitle-entry')), $('span.install', { tabIndex: 0 }));
|
|
205
|
-
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), installCount, ( localize(
|
|
205
|
+
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), installCount, ( localize(9601, "Install count"))));
|
|
206
206
|
const installCountWidget = this.instantiationService.createInstance(InstallCountWidget, installCount, false);
|
|
207
207
|
const rating = append(append(subtitle, $('.subtitle-entry')), $('span.rating.clickable', { tabIndex: 0 }));
|
|
208
|
-
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), rating, ( localize(
|
|
208
|
+
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), rating, ( localize(9602, "Rating"))));
|
|
209
209
|
rating.setAttribute('role', 'link');
|
|
210
210
|
const ratingsWidget = this.instantiationService.createInstance(RatingsWidget, rating, false);
|
|
211
211
|
const sponsorWidget = this.instantiationService.createInstance(SponsorWidget, append(subtitle, $('.subtitle-entry')));
|
|
@@ -428,7 +428,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
428
428
|
template.publisher.classList.toggle('clickable', !!extension.url);
|
|
429
429
|
template.publisherDisplayName.textContent = extension.publisherDisplayName;
|
|
430
430
|
template.publisher.parentElement?.classList.toggle('hide', !!extension.resourceExtension || extension.local?.source === 'resource');
|
|
431
|
-
this.transientDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.publisher, ( localize(
|
|
431
|
+
this.transientDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.publisher, ( localize(9603, "Publisher ({0})", extension.publisher))));
|
|
432
432
|
const location = extension.resourceExtension?.location ?? (extension.local?.source === 'resource' ? extension.local?.location : undefined);
|
|
433
433
|
template.resource.parentElement?.classList.toggle('hide', !location);
|
|
434
434
|
if (location) {
|
|
@@ -436,7 +436,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
436
436
|
if (workspaceFolder && extension.isWorkspaceScoped) {
|
|
437
437
|
template.resource.parentElement?.classList.add('clickable');
|
|
438
438
|
this.transientDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.resource, this.uriIdentityService.extUri.relativePath(workspaceFolder.uri, location)));
|
|
439
|
-
template.resource.textContent = ( localize(
|
|
439
|
+
template.resource.textContent = ( localize(9604, "Workspace Extension"));
|
|
440
440
|
this.transientDisposables.add(onClick(template.resource, () => {
|
|
441
441
|
this.viewsService.openView(VIEW_ID, true).then(() => this.explorerService.select(location, true));
|
|
442
442
|
}));
|
|
@@ -444,7 +444,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
444
444
|
else {
|
|
445
445
|
template.resource.parentElement?.classList.remove('clickable');
|
|
446
446
|
this.transientDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.resource, location.path));
|
|
447
|
-
template.resource.textContent = ( localize(
|
|
447
|
+
template.resource.textContent = ( localize(9605, "Local Extension"));
|
|
448
448
|
}
|
|
449
449
|
}
|
|
450
450
|
template.installCount.parentElement?.classList.toggle('hide', !extension.url);
|
|
@@ -477,22 +477,22 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
477
477
|
this.initialScrollProgress.clear();
|
|
478
478
|
this.currentIdentifier = extension.identifier.id;
|
|
479
479
|
}
|
|
480
|
-
template.navbar.push("readme" , ( localize(
|
|
480
|
+
template.navbar.push("readme" , ( localize(9606, "Details")), ( localize(9607, "Extension details, rendered from the extension's 'README.md' file")));
|
|
481
481
|
if (manifest) {
|
|
482
|
-
template.navbar.push("features" , ( localize(
|
|
482
|
+
template.navbar.push("features" , ( localize(9608, "Features")), ( localize(9609, "Lists features contributed by this extension")));
|
|
483
483
|
}
|
|
484
484
|
if (extension.hasChangelog()) {
|
|
485
|
-
template.navbar.push("changelog" , ( localize(
|
|
486
|
-
|
|
485
|
+
template.navbar.push("changelog" , ( localize(9610, "Changelog")), ( localize(
|
|
486
|
+
9611,
|
|
487
487
|
"Extension update history, rendered from the extension's 'CHANGELOG.md' file"
|
|
488
488
|
)));
|
|
489
489
|
}
|
|
490
490
|
if (extension.dependencies.length) {
|
|
491
|
-
template.navbar.push("dependencies" , ( localize(
|
|
491
|
+
template.navbar.push("dependencies" , ( localize(9612, "Dependencies")), ( localize(9613, "Lists extensions this extension depends on")));
|
|
492
492
|
}
|
|
493
493
|
if (manifest && manifest.extensionPack?.length && !this.shallRenderAsExtensionPack(manifest)) {
|
|
494
|
-
template.navbar.push("extensionPack" , ( localize(
|
|
495
|
-
|
|
494
|
+
template.navbar.push("extensionPack" , ( localize(9614, "Extension Pack")), ( localize(
|
|
495
|
+
9615,
|
|
496
496
|
"Lists extensions those will be installed together with this extension"
|
|
497
497
|
)));
|
|
498
498
|
}
|
|
@@ -699,7 +699,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
699
699
|
activeElement = await this.openExtensionPackReadme(extension, manifest, readmeContainer, token);
|
|
700
700
|
}
|
|
701
701
|
else {
|
|
702
|
-
activeElement = await this.openMarkdown(extension, this.extensionReadme.get(), ( localize(
|
|
702
|
+
activeElement = await this.openMarkdown(extension, this.extensionReadme.get(), ( localize(9616, "No README available.")), readmeContainer, 0 , ( localize(9617, "Readme")), token);
|
|
703
703
|
}
|
|
704
704
|
this.renderAdditionalDetails(additionalDetailsContainer, extension);
|
|
705
705
|
return activeElement;
|
|
@@ -728,14 +728,14 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
728
728
|
extensionPackReadme.classList.add('more-rows');
|
|
729
729
|
}
|
|
730
730
|
const extensionPackHeader = append(extensionPack, $('div.header'));
|
|
731
|
-
extensionPackHeader.textContent = ( localize(
|
|
731
|
+
extensionPackHeader.textContent = ( localize(9618, "Extension Pack ({0})", manifest.extensionPack.length));
|
|
732
732
|
const extensionPackContent = append(extensionPack, $('div', { class: 'extension-pack-content' }));
|
|
733
733
|
extensionPackContent.setAttribute('tabindex', '0');
|
|
734
734
|
append(extensionPack, $('div.footer'));
|
|
735
735
|
const readmeContent = append(extensionPackReadme, $('div.readme-content'));
|
|
736
736
|
await Promise.all([
|
|
737
737
|
this.renderExtensionPack(manifest, extensionPackContent, token),
|
|
738
|
-
this.openMarkdown(extension, this.extensionReadme.get(), ( localize(
|
|
738
|
+
this.openMarkdown(extension, this.extensionReadme.get(), ( localize(9616, "No README available.")), readmeContent, 0 , ( localize(9617, "Readme")), token),
|
|
739
739
|
]);
|
|
740
740
|
return { focus: () => extensionPackContent.focus() };
|
|
741
741
|
}
|
|
@@ -755,7 +755,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
755
755
|
renderCategories(container, extension) {
|
|
756
756
|
if (extension.categories.length) {
|
|
757
757
|
const categoriesContainer = append(container, $('.categories-container.additional-details-element'));
|
|
758
|
-
append(categoriesContainer, $('.additional-details-title', undefined, ( localize(
|
|
758
|
+
append(categoriesContainer, $('.additional-details-title', undefined, ( localize(9619, "Categories"))));
|
|
759
759
|
const categoriesElement = append(categoriesContainer, $('.categories'));
|
|
760
760
|
for (const category of extension.categories) {
|
|
761
761
|
this.transientDisposables.add(onClick(append(categoriesElement, $('span.category', { tabindex: '0' }, category)), () => this.extensionsWorkbenchService.openSearch(`@category:"${category}"`)));
|
|
@@ -765,23 +765,23 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
765
765
|
renderExtensionResources(container, extension) {
|
|
766
766
|
const resources = [];
|
|
767
767
|
if (extension.url) {
|
|
768
|
-
resources.push([( localize(
|
|
768
|
+
resources.push([( localize(9620, "Marketplace")), ( (URI.parse(extension.url)))]);
|
|
769
769
|
}
|
|
770
770
|
if (extension.url && extension.supportUrl) {
|
|
771
771
|
try {
|
|
772
|
-
resources.push([( localize(
|
|
772
|
+
resources.push([( localize(9621, "Issues")), ( (URI.parse(extension.supportUrl)))]);
|
|
773
773
|
}
|
|
774
774
|
catch (error) { }
|
|
775
775
|
}
|
|
776
776
|
if (extension.repository) {
|
|
777
777
|
try {
|
|
778
|
-
resources.push([( localize(
|
|
778
|
+
resources.push([( localize(9622, "Repository")), ( (URI.parse(extension.repository)))]);
|
|
779
779
|
}
|
|
780
780
|
catch (error) { }
|
|
781
781
|
}
|
|
782
782
|
if (extension.url && extension.licenseUrl) {
|
|
783
783
|
try {
|
|
784
|
-
resources.push([( localize(
|
|
784
|
+
resources.push([( localize(9623, "License")), ( (URI.parse(extension.licenseUrl)))]);
|
|
785
785
|
}
|
|
786
786
|
catch (error) { }
|
|
787
787
|
}
|
|
@@ -790,7 +790,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
790
790
|
}
|
|
791
791
|
if (resources.length || extension.publisherSponsorLink) {
|
|
792
792
|
const extensionResourcesContainer = append(container, $('.resources-container.additional-details-element'));
|
|
793
|
-
append(extensionResourcesContainer, $('.additional-details-title', undefined, ( localize(
|
|
793
|
+
append(extensionResourcesContainer, $('.additional-details-title', undefined, ( localize(9624, "Resources"))));
|
|
794
794
|
const resourcesElement = append(extensionResourcesContainer, $('.resources'));
|
|
795
795
|
for (const [label, uri] of resources) {
|
|
796
796
|
const resource = append(resourcesElement, $('a.resource', { tabindex: '0' }, label));
|
|
@@ -804,19 +804,19 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
804
804
|
renderMoreInfo(container, extension) {
|
|
805
805
|
const gallery = extension.gallery;
|
|
806
806
|
const moreInfoContainer = append(container, $('.more-info-container.additional-details-element'));
|
|
807
|
-
append(moreInfoContainer, $('.additional-details-title', undefined, ( localize(
|
|
807
|
+
append(moreInfoContainer, $('.additional-details-title', undefined, ( localize(9625, "More Info"))));
|
|
808
808
|
const moreInfo = append(moreInfoContainer, $('.more-info'));
|
|
809
809
|
const toDateString = (date) => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}, ${date.toLocaleTimeString(language, { hourCycle: 'h23' })}`;
|
|
810
810
|
if (gallery) {
|
|
811
|
-
append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(
|
|
811
|
+
append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9626, "Published"))), $('div', undefined, toDateString(( (new Date(gallery.releaseDate)))))), $('.more-info-entry', undefined, $('div', undefined, ( localize(9627, "Last released"))), $('div', undefined, toDateString(( (new Date(gallery.lastUpdated)))))));
|
|
812
812
|
}
|
|
813
813
|
if (extension.local && extension.local.installedTimestamp) {
|
|
814
|
-
append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(
|
|
814
|
+
append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9628, "Last updated"))), $('div', undefined, toDateString(( (new Date(extension.local.installedTimestamp)))))));
|
|
815
815
|
}
|
|
816
|
-
append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(
|
|
816
|
+
append(moreInfo, $('.more-info-entry', undefined, $('div', undefined, ( localize(9629, "Identifier"))), $('code', undefined, extension.identifier.id)));
|
|
817
817
|
}
|
|
818
818
|
openChangelog(extension, template, token) {
|
|
819
|
-
return this.openMarkdown(extension, this.extensionChangelog.get(), ( localize(
|
|
819
|
+
return this.openMarkdown(extension, this.extensionChangelog.get(), ( localize(9630, "No Changelog available.")), template.content, 1 , ( localize(9631, "Changelog")), token);
|
|
820
820
|
}
|
|
821
821
|
async openFeatures(template, token) {
|
|
822
822
|
const manifest = await this.loadContents(() => this.extensionManifest.get(), template.content);
|
|
@@ -839,7 +839,7 @@ let ExtensionEditor = class ExtensionEditor extends EditorPane {
|
|
|
839
839
|
return Promise.resolve(null);
|
|
840
840
|
}
|
|
841
841
|
if (isFalsyOrEmpty(extension.dependencies)) {
|
|
842
|
-
append(template.content, $('p.nocontent')).textContent = ( localize(
|
|
842
|
+
append(template.content, $('p.nocontent')).textContent = ( localize(9632, "No Dependencies"));
|
|
843
843
|
return Promise.resolve(template.content);
|
|
844
844
|
}
|
|
845
845
|
const content = $('div', { class: 'subcontent' });
|
|
@@ -941,7 +941,7 @@ registerAction2(class ShowExtensionEditorFindAction extends Action2 {
|
|
|
941
941
|
constructor() {
|
|
942
942
|
super({
|
|
943
943
|
id: 'editor.action.extensioneditor.showfind',
|
|
944
|
-
title: ( localize(
|
|
944
|
+
title: ( localize(9633, "Find")),
|
|
945
945
|
keybinding: {
|
|
946
946
|
when: contextKeyExpr,
|
|
947
947
|
weight: 100 ,
|
|
@@ -958,7 +958,7 @@ registerAction2(class StartExtensionEditorFindNextAction extends Action2 {
|
|
|
958
958
|
constructor() {
|
|
959
959
|
super({
|
|
960
960
|
id: 'editor.action.extensioneditor.findNext',
|
|
961
|
-
title: ( localize(
|
|
961
|
+
title: ( localize(9634, "Find Next")),
|
|
962
962
|
keybinding: {
|
|
963
963
|
when: ( (ContextKeyExpr.and(contextKeyExpr, KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED))),
|
|
964
964
|
primary: 3 ,
|
|
@@ -975,7 +975,7 @@ registerAction2(class StartExtensionEditorFindPreviousAction extends Action2 {
|
|
|
975
975
|
constructor() {
|
|
976
976
|
super({
|
|
977
977
|
id: 'editor.action.extensioneditor.findPrevious',
|
|
978
|
-
title: ( localize(
|
|
978
|
+
title: ( localize(9635, "Find Previous")),
|
|
979
979
|
keybinding: {
|
|
980
980
|
when: ( (ContextKeyExpr.and(contextKeyExpr, KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED))),
|
|
981
981
|
primary: 1024 | 3 ,
|
|
@@ -22,7 +22,7 @@ let ExtensionEnablementWorkspaceTrustTransitionParticipant = class ExtensionEnab
|
|
|
22
22
|
hostService.reload();
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
25
|
-
const stopped = await extensionService.stopExtensionHosts(( localize(
|
|
25
|
+
const stopped = await extensionService.stopExtensionHosts(( localize(9668, "Restarting extension host due to workspace trust change.")));
|
|
26
26
|
await extensionEnablementService.updateExtensionsEnablementsWhenWorkspaceTrustChanges();
|
|
27
27
|
if (stopped) {
|
|
28
28
|
extensionService.startExtensionHosts();
|
|
@@ -71,7 +71,7 @@ let RuntimeStatusMarkdownRenderer = class RuntimeStatusMarkdownRenderer extends
|
|
|
71
71
|
const extensionId = ( (new ExtensionIdentifier(getExtensionId(manifest.publisher, manifest.name))));
|
|
72
72
|
const status = this.extensionService.getExtensionsStatus()[extensionId.value];
|
|
73
73
|
if (( (this.extensionService.extensions.some(extension => ExtensionIdentifier.equals(extension.identifier, extensionId))))) {
|
|
74
|
-
data.appendMarkdown(`### ${( localize(
|
|
74
|
+
data.appendMarkdown(`### ${( localize(11418, "Activation"))}\n\n`);
|
|
75
75
|
if (status.activationTimes) {
|
|
76
76
|
if (status.activationTimes.activationReason.startup) {
|
|
77
77
|
data.appendMarkdown(`Activated on Startup: \`${status.activationTimes.activateCallTime}ms\``);
|
|
@@ -84,13 +84,13 @@ let RuntimeStatusMarkdownRenderer = class RuntimeStatusMarkdownRenderer extends
|
|
|
84
84
|
data.appendMarkdown('Not yet activated');
|
|
85
85
|
}
|
|
86
86
|
if (status.runtimeErrors.length) {
|
|
87
|
-
data.appendMarkdown(`\n ### ${( localize(
|
|
87
|
+
data.appendMarkdown(`\n ### ${( localize(11419, "Uncaught Errors ({0})", status.runtimeErrors.length))}\n`);
|
|
88
88
|
for (const error of status.runtimeErrors) {
|
|
89
89
|
data.appendMarkdown(`$(${Codicon.error.id}) ${getErrorMessage(error)}\n\n`);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
if (status.messages.length) {
|
|
93
|
-
data.appendMarkdown(`\n ### ${( localize(
|
|
93
|
+
data.appendMarkdown(`\n ### ${( localize(11420, "Messages ({0})", status.messages.length))}\n`);
|
|
94
94
|
for (const message of status.messages) {
|
|
95
95
|
data.appendMarkdown(`$(${(message.type === Severity$1.Error ? Codicon.error : message.type === Severity$1.Warning ? Codicon.warning : Codicon.info).id}) ${message.message}\n\n`);
|
|
96
96
|
}
|
|
@@ -113,13 +113,13 @@ let RuntimeStatusMarkdownRenderer = class RuntimeStatusMarkdownRenderer extends
|
|
|
113
113
|
if (accessData?.totalCount) {
|
|
114
114
|
if (accessData.current) {
|
|
115
115
|
data.appendMarkdown(`${( localize(
|
|
116
|
-
|
|
116
|
+
11421,
|
|
117
117
|
"Last Request: `{0}`",
|
|
118
118
|
fromNow(accessData.current.lastAccessed, true, true)
|
|
119
119
|
))}\n\n`);
|
|
120
|
-
data.appendMarkdown(`${( localize(
|
|
120
|
+
data.appendMarkdown(`${( localize(11422, "Requests (Session) : `{0}`", accessData.current.count))}\n\n`);
|
|
121
121
|
}
|
|
122
|
-
data.appendMarkdown(`${( localize(
|
|
122
|
+
data.appendMarkdown(`${( localize(11423, "Requests (Overall): `{0}`", accessData.totalCount))}\n\n`);
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -132,7 +132,7 @@ RuntimeStatusMarkdownRenderer = ( (__decorate([
|
|
|
132
132
|
], RuntimeStatusMarkdownRenderer)));
|
|
133
133
|
const runtimeStatusFeature = {
|
|
134
134
|
id: RuntimeStatusMarkdownRenderer.ID,
|
|
135
|
-
label: ( localize(
|
|
135
|
+
label: ( localize(11424, "Runtime Status")),
|
|
136
136
|
access: {
|
|
137
137
|
canToggle: false
|
|
138
138
|
},
|
|
@@ -156,7 +156,7 @@ let ExtensionFeaturesTab = class ExtensionFeaturesTab extends Themable {
|
|
|
156
156
|
create() {
|
|
157
157
|
const features = this.getFeatures();
|
|
158
158
|
if (features.length === 0) {
|
|
159
|
-
append($('.no-features'), this.domNode).textContent = ( localize(
|
|
159
|
+
append($('.no-features'), this.domNode).textContent = ( localize(11425, "No features contributed."));
|
|
160
160
|
return;
|
|
161
161
|
}
|
|
162
162
|
const splitView = this._register(( (new SplitView(this.domNode, {
|
|
@@ -218,7 +218,7 @@ let ExtensionFeaturesTab = class ExtensionFeaturesTab extends Themable {
|
|
|
218
218
|
return extensionFeature?.label ?? '';
|
|
219
219
|
},
|
|
220
220
|
getWidgetAriaLabel() {
|
|
221
|
-
return ( localize(
|
|
221
|
+
return ( localize(11426, "Extension Features"));
|
|
222
222
|
}
|
|
223
223
|
},
|
|
224
224
|
openOnSingleClick: true
|
|
@@ -274,7 +274,7 @@ let ExtensionFeatureItemRenderer = class ExtensionFeatureItemRenderer {
|
|
|
274
274
|
container.classList.add('extension-feature-list-item');
|
|
275
275
|
const label = append(container, $('.extension-feature-label'));
|
|
276
276
|
const disabledElement = append(container, $('.extension-feature-disabled-label'));
|
|
277
|
-
disabledElement.textContent = ( localize(
|
|
277
|
+
disabledElement.textContent = ( localize(11427, "No Access"));
|
|
278
278
|
const statusElement = append(container, $('.extension-feature-status'));
|
|
279
279
|
return { label, disabledElement, statusElement, disposables: ( (new DisposableStore())) };
|
|
280
280
|
}
|
|
@@ -345,23 +345,23 @@ let ExtensionFeatureView = class ExtensionFeatureView extends Disposable {
|
|
|
345
345
|
this._register(button.onDidClick(async () => {
|
|
346
346
|
const enabled = this.extensionFeaturesManagementService.isEnabled(this.extensionId, this.feature.id);
|
|
347
347
|
const confirmationResult = await this.dialogService.confirm({
|
|
348
|
-
title: ( localize(
|
|
348
|
+
title: ( localize(11428, "Enable '{0}' Feature", this.feature.label)),
|
|
349
349
|
message: enabled
|
|
350
350
|
? ( localize(
|
|
351
|
-
|
|
351
|
+
11429,
|
|
352
352
|
"Would you like to revoke '{0}' extension to access '{1}' feature?",
|
|
353
353
|
this.manifest.displayName ?? this.extensionId.value,
|
|
354
354
|
this.feature.label
|
|
355
355
|
))
|
|
356
356
|
: ( localize(
|
|
357
|
-
|
|
357
|
+
11430,
|
|
358
358
|
"Would you like to allow '{0}' extension to access '{1}' feature?",
|
|
359
359
|
this.manifest.displayName ?? this.extensionId.value,
|
|
360
360
|
this.feature.label
|
|
361
361
|
)),
|
|
362
362
|
custom: true,
|
|
363
|
-
primaryButton: enabled ? ( localize(
|
|
364
|
-
cancelButton: ( localize(
|
|
363
|
+
primaryButton: enabled ? ( localize(11431, "Revoke Access")) : ( localize(11432, "Allow Access")),
|
|
364
|
+
cancelButton: ( localize(11433, "Cancel")),
|
|
365
365
|
});
|
|
366
366
|
if (confirmationResult.confirmed) {
|
|
367
367
|
this.extensionFeaturesManagementService.setEnablement(this.extensionId, this.feature.id, !enabled);
|
|
@@ -397,7 +397,7 @@ let ExtensionFeatureView = class ExtensionFeatureView extends Disposable {
|
|
|
397
397
|
}
|
|
398
398
|
}
|
|
399
399
|
updateButtonLabel(button) {
|
|
400
|
-
button.label = this.extensionFeaturesManagementService.isEnabled(this.extensionId, this.feature.id) ? ( localize(
|
|
400
|
+
button.label = this.extensionFeaturesManagementService.isEnabled(this.extensionId, this.feature.id) ? ( localize(11431, "Revoke Access")) : ( localize(11434, "Allow Access"));
|
|
401
401
|
}
|
|
402
402
|
renderTableData(container, renderer) {
|
|
403
403
|
const tableData = this._register(renderer.render(this.manifest));
|
|
@@ -10,7 +10,7 @@ let ExtensionActivationProgress = class ExtensionActivationProgress {
|
|
|
10
10
|
constructor(extensionService, progressService, logService) {
|
|
11
11
|
const options = {
|
|
12
12
|
location: 10 ,
|
|
13
|
-
title: ( localize(
|
|
13
|
+
title: ( localize(9640, "Activating Extensions..."))
|
|
14
14
|
};
|
|
15
15
|
let deferred;
|
|
16
16
|
let count = 0;
|
package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js
CHANGED
|
@@ -48,7 +48,7 @@ let ExtensionsCompletionItemsProvider = class ExtensionsCompletionItemsProvider
|
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
50
|
const text = '"vscode.csharp": {\n\t"supported": true,\n\t"version": "0.0.0"\n},';
|
|
51
|
-
suggestions.push({ label: ( localize(
|
|
51
|
+
suggestions.push({ label: ( localize(9693, "Example")), kind: 13 , insertText: text, filterText: text, range });
|
|
52
52
|
}
|
|
53
53
|
return suggestions;
|
|
54
54
|
}
|
|
@@ -25,8 +25,8 @@ let ExtensionDependencyChecker = class ExtensionDependencyChecker extends Dispos
|
|
|
25
25
|
MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
|
|
26
26
|
command: {
|
|
27
27
|
id: 'workbench.extensions.installMissingDependencies',
|
|
28
|
-
category: ( localize(
|
|
29
|
-
title: ( localize(
|
|
28
|
+
category: ( localize(9641, "Extensions")),
|
|
29
|
+
title: ( localize(9642, "Install Missing Dependencies"))
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
}
|
|
@@ -59,17 +59,17 @@ let ExtensionDependencyChecker = class ExtensionDependencyChecker extends Dispos
|
|
|
59
59
|
this.notificationService.notify({
|
|
60
60
|
severity: Severity$1.Info,
|
|
61
61
|
message: ( localize(
|
|
62
|
-
|
|
62
|
+
9643,
|
|
63
63
|
"Finished installing missing dependencies. Please reload the window now."
|
|
64
64
|
)),
|
|
65
65
|
actions: {
|
|
66
|
-
primary: [( (new Action('realod', ( localize(
|
|
66
|
+
primary: [( (new Action('realod', ( localize(9644, "Reload Window")), '', true, () => this.hostService.reload())))]
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
|
-
this.notificationService.info(( localize(
|
|
72
|
+
this.notificationService.info(( localize(9645, "There are no missing dependencies to install.")));
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
};
|
|
@@ -21,11 +21,11 @@ let InstallExtensionQuickAccessProvider = class InstallExtensionQuickAccessProvi
|
|
|
21
21
|
_getPicks(filter, disposables, token) {
|
|
22
22
|
if (!filter) {
|
|
23
23
|
return [{
|
|
24
|
-
label: ( localize(
|
|
24
|
+
label: ( localize(9646, "Type an extension name to install or search."))
|
|
25
25
|
}];
|
|
26
26
|
}
|
|
27
27
|
const genericSearchPickItem = {
|
|
28
|
-
label: ( localize(
|
|
28
|
+
label: ( localize(9647, "Press Enter to search for extension '{0}'.", filter)),
|
|
29
29
|
accept: () => this.extensionsWorkbenchService.openSearch(filter)
|
|
30
30
|
};
|
|
31
31
|
if (/\./.test(filter)) {
|
|
@@ -43,7 +43,7 @@ let InstallExtensionQuickAccessProvider = class InstallExtensionQuickAccessProvi
|
|
|
43
43
|
return [fallback];
|
|
44
44
|
}
|
|
45
45
|
return [{
|
|
46
|
-
label: ( localize(
|
|
46
|
+
label: ( localize(9648, "Press Enter to install extension '{0}'.", filter)),
|
|
47
47
|
accept: () => this.installExtension(galleryExtension, filter)
|
|
48
48
|
}];
|
|
49
49
|
}
|
|
@@ -81,7 +81,7 @@ let ManageExtensionsQuickAccessProvider = class ManageExtensionsQuickAccessProvi
|
|
|
81
81
|
}
|
|
82
82
|
_getPicks() {
|
|
83
83
|
return [{
|
|
84
|
-
label: ( localize(
|
|
84
|
+
label: ( localize(9649, "Press Enter to manage your extensions.")),
|
|
85
85
|
accept: () => this.extensionsWorkbenchService.openSearch('')
|
|
86
86
|
}];
|
|
87
87
|
}
|
|
@@ -150,8 +150,8 @@ class UnknownExtensionRenderer {
|
|
|
150
150
|
}
|
|
151
151
|
renderTemplate(container) {
|
|
152
152
|
const messageContainer = append(container, $('div.unknown-extension'));
|
|
153
|
-
append(messageContainer, $('span.error-marker')).textContent = ( localize(
|
|
154
|
-
append(messageContainer, $('span.message')).textContent = ( localize(
|
|
153
|
+
append(messageContainer, $('span.error-marker')).textContent = ( localize(11435, "Error"));
|
|
154
|
+
append(messageContainer, $('span.message')).textContent = ( localize(11436, "Unknown Extension:"));
|
|
155
155
|
const identifier = append(messageContainer, $('span.message'));
|
|
156
156
|
return { identifier };
|
|
157
157
|
}
|
|
@@ -199,7 +199,7 @@ let ExtensionsTree = class ExtensionsTree extends WorkbenchAsyncDataTree {
|
|
|
199
199
|
return getAriaLabelForExtension(extensionData.extension);
|
|
200
200
|
},
|
|
201
201
|
getWidgetAriaLabel() {
|
|
202
|
-
return ( localize(
|
|
202
|
+
return ( localize(11437, "Extensions"));
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
}, instantiationService, contextKeyService, listService, configurationService);
|
|
@@ -83,7 +83,7 @@ const SearchUnsupportedWorkspaceExtensionsContext = ( (new RawContextKey('search
|
|
|
83
83
|
const SearchDeprecatedExtensionsContext = ( (new RawContextKey('searchDeprecatedExtensions', false)));
|
|
84
84
|
const RecommendedExtensionsContext = ( (new RawContextKey('recommendedExtensions', false)));
|
|
85
85
|
const SortByUpdateDateContext = ( (new RawContextKey('sortByUpdateDate', false)));
|
|
86
|
-
const REMOTE_CATEGORY = ( localize2(
|
|
86
|
+
const REMOTE_CATEGORY = ( localize2(9556, "Remote"));
|
|
87
87
|
let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContribution extends Disposable {
|
|
88
88
|
constructor(extensionManagementServerService, labelService, viewDescriptorService, contextKeyService) {
|
|
89
89
|
super();
|
|
@@ -126,7 +126,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
126
126
|
}
|
|
127
127
|
const serverLabelChangeEvent = Event.any(this.labelService.onDidChangeFormatters, installedWebExtensionsContextChangeEvent);
|
|
128
128
|
for (const server of servers) {
|
|
129
|
-
const getInstalledViewName = () => getViewName(( localize(
|
|
129
|
+
const getInstalledViewName = () => getViewName(( localize(9557, "Installed")), server);
|
|
130
130
|
const onDidChangeTitle = ( (Event.map(serverLabelChangeEvent, () => getInstalledViewName())));
|
|
131
131
|
const id = servers.length > 1 ? `workbench.views.extensions.${server.id}.installed` : `workbench.views.extensions.installed`;
|
|
132
132
|
viewDescriptors.push({
|
|
@@ -152,7 +152,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
152
152
|
super({
|
|
153
153
|
id: 'workbench.extensions.installLocalExtensions',
|
|
154
154
|
get title() {
|
|
155
|
-
return ( localize2(
|
|
155
|
+
return ( localize2(9558, "Install Local Extensions in '{0}'...", server.label));
|
|
156
156
|
},
|
|
157
157
|
category: REMOTE_CATEGORY,
|
|
158
158
|
icon: installLocalInRemoteIcon,
|
|
@@ -175,7 +175,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
175
175
|
constructor() {
|
|
176
176
|
super({
|
|
177
177
|
id: 'workbench.extensions.actions.installLocalExtensionsInRemote',
|
|
178
|
-
title: ( localize2(
|
|
178
|
+
title: ( localize2(9559, 'Install Remote Extensions Locally...')),
|
|
179
179
|
category: REMOTE_CATEGORY,
|
|
180
180
|
f1: true
|
|
181
181
|
});
|
|
@@ -187,7 +187,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
187
187
|
}
|
|
188
188
|
viewDescriptors.push({
|
|
189
189
|
id: 'workbench.views.extensions.popular',
|
|
190
|
-
name: ( localize2(
|
|
190
|
+
name: ( localize2(9560, "Popular")),
|
|
191
191
|
ctorDescriptor: ( (new SyncDescriptor(DefaultPopularExtensionsView, [{ hideBadge: true }]))),
|
|
192
192
|
when: ( (ContextKeyExpr.and(
|
|
193
193
|
DefaultViewsContext,
|
|
@@ -200,7 +200,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
200
200
|
});
|
|
201
201
|
viewDescriptors.push({
|
|
202
202
|
id: 'extensions.recommendedList',
|
|
203
|
-
name: ( localize2(
|
|
203
|
+
name: ( localize2(9561, "Recommended")),
|
|
204
204
|
ctorDescriptor: ( (new SyncDescriptor(DefaultRecommendedExtensionsView, [{ flexibleHeight: true }]))),
|
|
205
205
|
when: ( (ContextKeyExpr.and(
|
|
206
206
|
DefaultViewsContext,
|
|
@@ -215,7 +215,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
215
215
|
if (servers.length === 1) {
|
|
216
216
|
viewDescriptors.push({
|
|
217
217
|
id: 'workbench.views.extensions.enabled',
|
|
218
|
-
name: ( localize2(
|
|
218
|
+
name: ( localize2(9562, "Enabled")),
|
|
219
219
|
ctorDescriptor: ( (new SyncDescriptor(EnabledExtensionsView, [{}]))),
|
|
220
220
|
when: ( (ContextKeyExpr.and(
|
|
221
221
|
DefaultViewsContext,
|
|
@@ -228,7 +228,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
228
228
|
});
|
|
229
229
|
viewDescriptors.push({
|
|
230
230
|
id: 'workbench.views.extensions.disabled',
|
|
231
|
-
name: ( localize2(
|
|
231
|
+
name: ( localize2(9563, "Disabled")),
|
|
232
232
|
ctorDescriptor: ( (new SyncDescriptor(DisabledExtensionsView, [{}]))),
|
|
233
233
|
when: ( (ContextKeyExpr.and(
|
|
234
234
|
DefaultViewsContext,
|
|
@@ -246,13 +246,13 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
246
246
|
const viewDescriptors = [];
|
|
247
247
|
viewDescriptors.push({
|
|
248
248
|
id: 'workbench.views.extensions.marketplace',
|
|
249
|
-
name: ( localize2(
|
|
249
|
+
name: ( localize2(9564, "Marketplace")),
|
|
250
250
|
ctorDescriptor: ( (new SyncDescriptor(SearchMarketplaceExtensionsView, [{}]))),
|
|
251
251
|
when: ( (ContextKeyExpr.and( (ContextKeyExpr.has('searchMarketplaceExtensions'))))),
|
|
252
252
|
});
|
|
253
253
|
viewDescriptors.push({
|
|
254
254
|
id: 'workbench.views.extensions.searchInstalled',
|
|
255
|
-
name: ( localize2(
|
|
255
|
+
name: ( localize2(9557, "Installed")),
|
|
256
256
|
ctorDescriptor: ( (new SyncDescriptor(ExtensionsListView, [{}]))),
|
|
257
257
|
when: ( (ContextKeyExpr.or(
|
|
258
258
|
(ContextKeyExpr.has('searchInstalledExtensions')),
|
|
@@ -261,7 +261,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
261
261
|
});
|
|
262
262
|
viewDescriptors.push({
|
|
263
263
|
id: 'workbench.views.extensions.searchRecentlyUpdated',
|
|
264
|
-
name: ( localize2(
|
|
264
|
+
name: ( localize2(9565, "Recently Updated")),
|
|
265
265
|
ctorDescriptor: ( (new SyncDescriptor(RecentlyUpdatedExtensionsView, [{}]))),
|
|
266
266
|
when: ( (ContextKeyExpr.or(
|
|
267
267
|
SearchExtensionUpdatesContext,
|
|
@@ -271,19 +271,19 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
271
271
|
});
|
|
272
272
|
viewDescriptors.push({
|
|
273
273
|
id: 'workbench.views.extensions.searchEnabled',
|
|
274
|
-
name: ( localize2(
|
|
274
|
+
name: ( localize2(9566, "Enabled")),
|
|
275
275
|
ctorDescriptor: ( (new SyncDescriptor(ExtensionsListView, [{}]))),
|
|
276
276
|
when: ( (ContextKeyExpr.and( (ContextKeyExpr.has('searchEnabledExtensions'))))),
|
|
277
277
|
});
|
|
278
278
|
viewDescriptors.push({
|
|
279
279
|
id: 'workbench.views.extensions.searchDisabled',
|
|
280
|
-
name: ( localize2(
|
|
280
|
+
name: ( localize2(9567, "Disabled")),
|
|
281
281
|
ctorDescriptor: ( (new SyncDescriptor(ExtensionsListView, [{}]))),
|
|
282
282
|
when: ( (ContextKeyExpr.and( (ContextKeyExpr.has('searchDisabledExtensions'))))),
|
|
283
283
|
});
|
|
284
284
|
viewDescriptors.push({
|
|
285
285
|
id: OUTDATED_EXTENSIONS_VIEW_ID,
|
|
286
|
-
name: ( localize2(
|
|
286
|
+
name: ( localize2(9568, "Available Updates")),
|
|
287
287
|
ctorDescriptor: ( (new SyncDescriptor(OutdatedExtensionsView, [{}]))),
|
|
288
288
|
when: ( (ContextKeyExpr.or(
|
|
289
289
|
SearchExtensionUpdatesContext,
|
|
@@ -293,13 +293,13 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
293
293
|
});
|
|
294
294
|
viewDescriptors.push({
|
|
295
295
|
id: 'workbench.views.extensions.searchBuiltin',
|
|
296
|
-
name: ( localize2(
|
|
296
|
+
name: ( localize2(9569, "Builtin")),
|
|
297
297
|
ctorDescriptor: ( (new SyncDescriptor(ExtensionsListView, [{}]))),
|
|
298
298
|
when: ( (ContextKeyExpr.and( (ContextKeyExpr.has('searchBuiltInExtensions'))))),
|
|
299
299
|
});
|
|
300
300
|
viewDescriptors.push({
|
|
301
301
|
id: 'workbench.views.extensions.searchWorkspaceUnsupported',
|
|
302
|
-
name: ( localize2(
|
|
302
|
+
name: ( localize2(9570, "Workspace Unsupported")),
|
|
303
303
|
ctorDescriptor: ( (new SyncDescriptor(ExtensionsListView, [{}]))),
|
|
304
304
|
when: ( (ContextKeyExpr.and( (ContextKeyExpr.has('searchWorkspaceUnsupportedExtensions'))))),
|
|
305
305
|
});
|
|
@@ -309,7 +309,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
309
309
|
const viewDescriptors = [];
|
|
310
310
|
viewDescriptors.push({
|
|
311
311
|
id: WORKSPACE_RECOMMENDATIONS_VIEW_ID,
|
|
312
|
-
name: ( localize2(
|
|
312
|
+
name: ( localize2(9571, "Workspace Recommendations")),
|
|
313
313
|
ctorDescriptor: ( (new SyncDescriptor(WorkspaceRecommendedExtensionsView, [{}]))),
|
|
314
314
|
when: ( (ContextKeyExpr.and(
|
|
315
315
|
(ContextKeyExpr.has('recommendedExtensions')),
|
|
@@ -319,7 +319,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
319
319
|
});
|
|
320
320
|
viewDescriptors.push({
|
|
321
321
|
id: 'workbench.views.extensions.otherRecommendations',
|
|
322
|
-
name: ( localize2(
|
|
322
|
+
name: ( localize2(9572, "Other Recommendations")),
|
|
323
323
|
ctorDescriptor: ( (new SyncDescriptor(RecommendedExtensionsView, [{}]))),
|
|
324
324
|
when: ( (ContextKeyExpr.has('recommendedExtensions'))),
|
|
325
325
|
order: 2
|
|
@@ -334,19 +334,19 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
334
334
|
const otherCategoriesQuery = `${( (otherCategories.map(c => `category:"${c}"`))).join(' ')} ${( (configuredCategories.map(c => `category:"-${c}"`))).join(' ')}`;
|
|
335
335
|
viewDescriptors.push({
|
|
336
336
|
id: 'workbench.views.extensions.builtinFeatureExtensions',
|
|
337
|
-
name: ( localize2(
|
|
337
|
+
name: ( localize2(9573, "Features")),
|
|
338
338
|
ctorDescriptor: ( (new SyncDescriptor(StaticQueryExtensionsView, [{ query: `@builtin ${otherCategoriesQuery}` }]))),
|
|
339
339
|
when: ( (ContextKeyExpr.has('builtInExtensions'))),
|
|
340
340
|
});
|
|
341
341
|
viewDescriptors.push({
|
|
342
342
|
id: 'workbench.views.extensions.builtinThemeExtensions',
|
|
343
|
-
name: ( localize2(
|
|
343
|
+
name: ( localize2(9574, "Themes")),
|
|
344
344
|
ctorDescriptor: ( (new SyncDescriptor(StaticQueryExtensionsView, [{ query: `@builtin category:themes` }]))),
|
|
345
345
|
when: ( (ContextKeyExpr.has('builtInExtensions'))),
|
|
346
346
|
});
|
|
347
347
|
viewDescriptors.push({
|
|
348
348
|
id: 'workbench.views.extensions.builtinProgrammingLanguageExtensions',
|
|
349
|
-
name: ( localize2(
|
|
349
|
+
name: ( localize2(9575, "Programming Languages")),
|
|
350
350
|
ctorDescriptor: ( (new SyncDescriptor(
|
|
351
351
|
StaticQueryExtensionsView,
|
|
352
352
|
[{ query: `@builtin category:"programming languages"` }]
|
|
@@ -359,25 +359,25 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
359
359
|
const viewDescriptors = [];
|
|
360
360
|
viewDescriptors.push({
|
|
361
361
|
id: 'workbench.views.extensions.untrustedUnsupportedExtensions',
|
|
362
|
-
name: ( localize2(
|
|
362
|
+
name: ( localize2(9576, "Disabled in Restricted Mode")),
|
|
363
363
|
ctorDescriptor: ( (new SyncDescriptor(UntrustedWorkspaceUnsupportedExtensionsView, [{}]))),
|
|
364
364
|
when: ( (ContextKeyExpr.and(SearchUnsupportedWorkspaceExtensionsContext))),
|
|
365
365
|
});
|
|
366
366
|
viewDescriptors.push({
|
|
367
367
|
id: 'workbench.views.extensions.untrustedPartiallySupportedExtensions',
|
|
368
|
-
name: ( localize2(
|
|
368
|
+
name: ( localize2(9577, "Limited in Restricted Mode")),
|
|
369
369
|
ctorDescriptor: ( (new SyncDescriptor(UntrustedWorkspacePartiallySupportedExtensionsView, [{}]))),
|
|
370
370
|
when: ( (ContextKeyExpr.and(SearchUnsupportedWorkspaceExtensionsContext))),
|
|
371
371
|
});
|
|
372
372
|
viewDescriptors.push({
|
|
373
373
|
id: 'workbench.views.extensions.virtualUnsupportedExtensions',
|
|
374
|
-
name: ( localize2(
|
|
374
|
+
name: ( localize2(9578, "Disabled in Virtual Workspaces")),
|
|
375
375
|
ctorDescriptor: ( (new SyncDescriptor(VirtualWorkspaceUnsupportedExtensionsView, [{}]))),
|
|
376
376
|
when: ( (ContextKeyExpr.and(VirtualWorkspaceContext, SearchUnsupportedWorkspaceExtensionsContext))),
|
|
377
377
|
});
|
|
378
378
|
viewDescriptors.push({
|
|
379
379
|
id: 'workbench.views.extensions.virtualPartiallySupportedExtensions',
|
|
380
|
-
name: ( localize2(
|
|
380
|
+
name: ( localize2(9579, "Limited in Virtual Workspaces")),
|
|
381
381
|
ctorDescriptor: ( (new SyncDescriptor(VirtualWorkspacePartiallySupportedExtensionsView, [{}]))),
|
|
382
382
|
when: ( (ContextKeyExpr.and(VirtualWorkspaceContext, SearchUnsupportedWorkspaceExtensionsContext))),
|
|
383
383
|
});
|
|
@@ -387,7 +387,7 @@ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContributio
|
|
|
387
387
|
const viewDescriptors = [];
|
|
388
388
|
viewDescriptors.push({
|
|
389
389
|
id: 'workbench.views.extensions.deprecatedExtensions',
|
|
390
|
-
name: ( localize2(
|
|
390
|
+
name: ( localize2(9580, "Deprecated")),
|
|
391
391
|
ctorDescriptor: ( (new SyncDescriptor(DeprecatedExtensionsView, [{}]))),
|
|
392
392
|
when: ( (ContextKeyExpr.and(SearchDeprecatedExtensionsContext))),
|
|
393
393
|
});
|
|
@@ -449,7 +449,7 @@ let ExtensionsViewPaneContainer = class ExtensionsViewPaneContainer extends View
|
|
|
449
449
|
overlay.style.backgroundColor = overlayBackgroundColor;
|
|
450
450
|
hide(overlay);
|
|
451
451
|
this.header = append(this.root, $('.header'));
|
|
452
|
-
const placeholder = ( localize(
|
|
452
|
+
const placeholder = ( localize(9581, "Search Extensions in Marketplace"));
|
|
453
453
|
const searchValue = this.searchViewletState['query.value'] ? this.searchViewletState['query.value'] : '';
|
|
454
454
|
const searchContainer = append(this.header, $('.extensions-search-container'));
|
|
455
455
|
this.searchBox = this._register(this.instantiationService.createInstance(SuggestEnabledInput, `${VIEWLET_ID}.searchbox`, searchContainer, {
|
|
@@ -589,8 +589,8 @@ let ExtensionsViewPaneContainer = class ExtensionsViewPaneContainer extends View
|
|
|
589
589
|
const showAction = append(messageContainer, $('span.message-text-action', {
|
|
590
590
|
'tabindex': '0',
|
|
591
591
|
'role': 'button',
|
|
592
|
-
'aria-label': `${status.message}. ${( localize(
|
|
593
|
-
}, ( localize(
|
|
592
|
+
'aria-label': `${status.message}. ${( localize(9582, "Click to Show"))}`
|
|
593
|
+
}, ( localize(9583, "Show"))));
|
|
594
594
|
this.notificationDisposables.value.add(addDisposableListener(showAction, EventType.CLICK, () => this.search(query ?? '')));
|
|
595
595
|
this.notificationDisposables.value.add(addDisposableListener(showAction, EventType.KEY_DOWN, (e) => {
|
|
596
596
|
const standardKeyboardEvent = ( (new StandardKeyboardEvent(e)));
|
|
@@ -602,8 +602,8 @@ let ExtensionsViewPaneContainer = class ExtensionsViewPaneContainer extends View
|
|
|
602
602
|
const dismissAction = append(this.notificationContainer, $(`span.message-action${ThemeIcon.asCSSSelector(Codicon.close)}`, {
|
|
603
603
|
'tabindex': '0',
|
|
604
604
|
'role': 'button',
|
|
605
|
-
'aria-label': ( localize(
|
|
606
|
-
'title': ( localize(
|
|
605
|
+
'aria-label': ( localize(9584, "Dismiss")),
|
|
606
|
+
'title': ( localize(9584, "Dismiss"))
|
|
607
607
|
}));
|
|
608
608
|
this.notificationDisposables.value.add(addDisposableListener(dismissAction, EventType.CLICK, () => status.dismiss()));
|
|
609
609
|
this.notificationDisposables.value.add(addDisposableListener(dismissAction, EventType.KEY_DOWN, (e) => {
|
|
@@ -688,18 +688,18 @@ let ExtensionsViewPaneContainer = class ExtensionsViewPaneContainer extends View
|
|
|
688
688
|
break;
|
|
689
689
|
case 1:
|
|
690
690
|
if (view) {
|
|
691
|
-
alert(( localize(
|
|
691
|
+
alert(( localize(9585, "1 extension found in the {0} section.", view.name.value)));
|
|
692
692
|
}
|
|
693
693
|
else {
|
|
694
|
-
alert(( localize(
|
|
694
|
+
alert(( localize(9586, "1 extension found.")));
|
|
695
695
|
}
|
|
696
696
|
break;
|
|
697
697
|
default:
|
|
698
698
|
if (view) {
|
|
699
|
-
alert(( localize(
|
|
699
|
+
alert(( localize(9587, "{0} extensions found in the {1} section.", count, view.name.value)));
|
|
700
700
|
}
|
|
701
701
|
else {
|
|
702
|
-
alert(( localize(
|
|
702
|
+
alert(( localize(9588, "{0} extensions found.", count)));
|
|
703
703
|
}
|
|
704
704
|
break;
|
|
705
705
|
}
|
|
@@ -740,10 +740,10 @@ let ExtensionsViewPaneContainer = class ExtensionsViewPaneContainer extends View
|
|
|
740
740
|
const message = err && err.message || '';
|
|
741
741
|
if (/ECONNREFUSED/.test(message)) {
|
|
742
742
|
const error = createErrorWithActions(( localize(
|
|
743
|
-
|
|
743
|
+
9589,
|
|
744
744
|
"Marketplace returned 'ECONNREFUSED'. Please check the 'http.proxy' setting."
|
|
745
745
|
)), [
|
|
746
|
-
( (new Action('open user settings', ( localize(
|
|
746
|
+
( (new Action('open user settings', ( localize(9590, "Open User Settings")), undefined, true, () => this.preferencesService.openUserSettings())))
|
|
747
747
|
]);
|
|
748
748
|
this.notificationService.error(error);
|
|
749
749
|
return;
|
|
@@ -806,13 +806,13 @@ let StatusUpdater = class StatusUpdater extends Disposable {
|
|
|
806
806
|
if (newBadgeNumber > 0) {
|
|
807
807
|
let msg = '';
|
|
808
808
|
if (outdated) {
|
|
809
|
-
msg += outdated === 1 ? ( localize(
|
|
809
|
+
msg += outdated === 1 ? ( localize(9591, '{0} requires update', outdated)) : ( localize(9592, '{0} require update', outdated));
|
|
810
810
|
}
|
|
811
811
|
if (outdated > 0 && actionRequired.length > 0) {
|
|
812
812
|
msg += ', ';
|
|
813
813
|
}
|
|
814
814
|
if (actionRequired.length) {
|
|
815
|
-
msg += actionRequired.length === 1 ? ( localize(
|
|
815
|
+
msg += actionRequired.length === 1 ? ( localize(9593, '{0} requires restart', actionRequired.length)) : ( localize(9594, '{0} require restart', actionRequired.length));
|
|
816
816
|
}
|
|
817
817
|
badge = ( (new NumberBadge(newBadgeNumber, () => msg)));
|
|
818
818
|
}
|
|
@@ -852,11 +852,11 @@ let MaliciousExtensionChecker = class MaliciousExtensionChecker {
|
|
|
852
852
|
if (maliciousExtensions.length) {
|
|
853
853
|
return Promises.settled(( (maliciousExtensions.map(e => this.extensionsManagementService.uninstall(e).then(() => {
|
|
854
854
|
this.notificationService.prompt(Severity$1.Warning, ( localize(
|
|
855
|
-
|
|
855
|
+
9595,
|
|
856
856
|
"We have uninstalled '{0}' which was reported to be problematic.",
|
|
857
857
|
e.identifier.id
|
|
858
858
|
)), [{
|
|
859
|
-
label: ( localize(
|
|
859
|
+
label: ( localize(9596, "Reload Now")),
|
|
860
860
|
run: () => this.hostService.reload()
|
|
861
861
|
}], {
|
|
862
862
|
sticky: true,
|
|
@@ -154,7 +154,7 @@ let ExtensionsListView = class ExtensionsListView extends ViewPane {
|
|
|
154
154
|
return getAriaLabelForExtension(extension);
|
|
155
155
|
},
|
|
156
156
|
getWidgetAriaLabel() {
|
|
157
|
-
return ( localize(
|
|
157
|
+
return ( localize(11407, "Extensions"));
|
|
158
158
|
}
|
|
159
159
|
},
|
|
160
160
|
overrideStyles: this.getLocationBasedColors().listOverrideStyles,
|
|
@@ -943,18 +943,18 @@ let ExtensionsListView = class ExtensionsListView extends ViewPane {
|
|
|
943
943
|
if (this.isOfflineError(error)) {
|
|
944
944
|
this.bodyTemplate.messageSeverityIcon.className = SeverityIcon.className(Severity$1.Warning);
|
|
945
945
|
this.bodyTemplate.messageBox.textContent = ( localize(
|
|
946
|
-
|
|
946
|
+
11408,
|
|
947
947
|
"Unable to search the Marketplace when offline, please check your network connection."
|
|
948
948
|
));
|
|
949
949
|
}
|
|
950
950
|
else {
|
|
951
951
|
this.bodyTemplate.messageSeverityIcon.className = SeverityIcon.className(Severity$1.Error);
|
|
952
|
-
this.bodyTemplate.messageBox.textContent = ( localize(
|
|
952
|
+
this.bodyTemplate.messageBox.textContent = ( localize(11409, "Error while fetching extensions. {0}", getErrorMessage(error)));
|
|
953
953
|
}
|
|
954
954
|
}
|
|
955
955
|
else {
|
|
956
956
|
this.bodyTemplate.messageSeverityIcon.className = '';
|
|
957
|
-
this.bodyTemplate.messageBox.textContent = ( localize(
|
|
957
|
+
this.bodyTemplate.messageBox.textContent = ( localize(11410, "No extensions found."));
|
|
958
958
|
}
|
|
959
959
|
alert(this.bodyTemplate.messageBox.textContent);
|
|
960
960
|
}
|
|
@@ -984,10 +984,10 @@ let ExtensionsListView = class ExtensionsListView extends ViewPane {
|
|
|
984
984
|
const message = err && err.message || '';
|
|
985
985
|
if (/ECONNREFUSED/.test(message)) {
|
|
986
986
|
const error = createErrorWithActions(( localize(
|
|
987
|
-
|
|
987
|
+
11411,
|
|
988
988
|
"Marketplace returned 'ECONNREFUSED'. Please check the 'http.proxy' setting."
|
|
989
989
|
)), [
|
|
990
|
-
( (new Action('open user settings', ( localize(
|
|
990
|
+
( (new Action('open user settings', ( localize(11412, "Open User Settings")), undefined, true, () => this.preferencesService.openUserSettings())))
|
|
991
991
|
]);
|
|
992
992
|
this.notificationService.error(error);
|
|
993
993
|
return;
|
|
@@ -1381,7 +1381,7 @@ class WorkspaceRecommendedExtensionsView extends ExtensionsListView {
|
|
|
1381
1381
|
else {
|
|
1382
1382
|
this.notificationService.notify({
|
|
1383
1383
|
severity: Severity$1.Info,
|
|
1384
|
-
message: ( localize(
|
|
1384
|
+
message: ( localize(11413, "There are no extensions to install."))
|
|
1385
1385
|
});
|
|
1386
1386
|
}
|
|
1387
1387
|
}
|
|
@@ -1390,10 +1390,10 @@ function getAriaLabelForExtension(extension) {
|
|
|
1390
1390
|
if (!extension) {
|
|
1391
1391
|
return '';
|
|
1392
1392
|
}
|
|
1393
|
-
const publisher = extension.publisherDomain?.verified ? ( localize(
|
|
1394
|
-
const deprecated = extension?.deprecationInfo ? ( localize(
|
|
1393
|
+
const publisher = extension.publisherDomain?.verified ? ( localize(11414, "Verified Publisher {0}", extension.publisherDisplayName)) : ( localize(11415, "Publisher {0}", extension.publisherDisplayName));
|
|
1394
|
+
const deprecated = extension?.deprecationInfo ? ( localize(11416, "Deprecated")) : '';
|
|
1395
1395
|
const rating = extension?.rating ? ( localize(
|
|
1396
|
-
|
|
1396
|
+
11417,
|
|
1397
1397
|
"Rated {0} out of 5 stars by {1} users",
|
|
1398
1398
|
extension.rating.toFixed(2),
|
|
1399
1399
|
extension.ratingCount
|
|
@@ -145,7 +145,7 @@ let RatingsWidget = class RatingsWidget extends ExtensionWidget {
|
|
|
145
145
|
return;
|
|
146
146
|
}
|
|
147
147
|
const rating = Math.round(this.extension.rating * 2) / 2;
|
|
148
|
-
this.containerHover.update(( localize(
|
|
148
|
+
this.containerHover.update(( localize(11438, "Average rating: {0} out of 5", rating)));
|
|
149
149
|
if (this.small) {
|
|
150
150
|
append(this.container, $('span' + ThemeIcon.asCSSSelector(starFullIcon)));
|
|
151
151
|
const count = append(this.container, $('span.count'));
|
|
@@ -231,7 +231,7 @@ let SponsorWidget = class SponsorWidget extends ExtensionWidget {
|
|
|
231
231
|
this.disposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), sponsor, this.extension?.publisherSponsorLink.toString() ?? ''));
|
|
232
232
|
sponsor.setAttribute('role', 'link');
|
|
233
233
|
const sponsorIconElement = renderIcon(sponsorIcon);
|
|
234
|
-
const label = $('span', undefined, ( localize(
|
|
234
|
+
const label = $('span', undefined, ( localize(11439, "Sponsor")));
|
|
235
235
|
append(sponsor, sponsorIconElement, label);
|
|
236
236
|
this.disposables.add(onClick(sponsor, () => {
|
|
237
237
|
this.telemetryService.publicLog2('extensionsAction.sponsorExtension', { extensionId: this.extension.identifier.id });
|
|
@@ -353,7 +353,7 @@ let RemoteBadge = class RemoteBadge extends Disposable {
|
|
|
353
353
|
const updateTitle = () => {
|
|
354
354
|
if (this.element && this.extensionManagementServerService.remoteExtensionManagementServer) {
|
|
355
355
|
this.elementHover.update(( localize(
|
|
356
|
-
|
|
356
|
+
11440,
|
|
357
357
|
"Extension in {0}",
|
|
358
358
|
this.extensionManagementServerService.remoteExtensionManagementServer.label
|
|
359
359
|
)));
|
|
@@ -408,7 +408,7 @@ let SyncIgnoredWidget = class SyncIgnoredWidget extends ExtensionWidget {
|
|
|
408
408
|
this.container.innerText = '';
|
|
409
409
|
if (this.extension && this.extension.state === 1 && this.userDataSyncEnablementService.isEnabled() && this.extensionsWorkbenchService.isExtensionIgnoredToSync(this.extension)) {
|
|
410
410
|
const element = append(this.container, $('span.extension-sync-ignored' + ThemeIcon.asCSSSelector(syncIgnoredIcon)));
|
|
411
|
-
this.disposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), element, ( localize(
|
|
411
|
+
this.disposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), element, ( localize(11441, "This extension is ignored during sync."))));
|
|
412
412
|
element.classList.add(...ThemeIcon.asClassNameArray(syncIgnoredIcon));
|
|
413
413
|
}
|
|
414
414
|
}
|
|
@@ -448,7 +448,7 @@ let ExtensionActivationStatusWidget = class ExtensionActivationStatusWidget exte
|
|
|
448
448
|
}
|
|
449
449
|
else {
|
|
450
450
|
const activationTimeElement = append(this.container, $('span.activationTime'));
|
|
451
|
-
activationTimeElement.textContent = `${( localize(
|
|
451
|
+
activationTimeElement.textContent = `${( localize(11442, "Activation time"))}${extensionStatus.activationTimes.activationReason.startup ? ` (${( localize(11443, "Startup"))})` : ''} : ${activationTime}ms`;
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
};
|
|
@@ -530,7 +530,7 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
530
530
|
if (addSeparator) {
|
|
531
531
|
markdown.appendText(` | `);
|
|
532
532
|
}
|
|
533
|
-
markdown.appendMarkdown(`$(${sponsorIcon.id}) [${( localize(
|
|
533
|
+
markdown.appendMarkdown(`$(${sponsorIcon.id}) [${( localize(11439, "Sponsor"))}](${this.extension.publisherSponsorLink})`);
|
|
534
534
|
addSeparator = true;
|
|
535
535
|
}
|
|
536
536
|
if (addSeparator) {
|
|
@@ -540,10 +540,10 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
540
540
|
const location = this.extension.resourceExtension?.location ?? (this.extension.local?.source === 'resource' ? this.extension.local?.location : undefined);
|
|
541
541
|
if (location) {
|
|
542
542
|
if (this.extension.isWorkspaceScoped && this.contextService.isInsideWorkspace(location)) {
|
|
543
|
-
markdown.appendMarkdown(( localize(
|
|
543
|
+
markdown.appendMarkdown(( localize(11444, "Workspace Extension")));
|
|
544
544
|
}
|
|
545
545
|
else {
|
|
546
|
-
markdown.appendMarkdown(( localize(
|
|
546
|
+
markdown.appendMarkdown(( localize(11445, "Local Extension")));
|
|
547
547
|
}
|
|
548
548
|
markdown.appendText(`\n`);
|
|
549
549
|
}
|
|
@@ -554,7 +554,7 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
554
554
|
if (this.extension.publisherDomain?.verified) {
|
|
555
555
|
const bgColor = this.themeService.getColorTheme().getColor(extensionVerifiedPublisherIconColor);
|
|
556
556
|
const publisherVerifiedTooltip = ( localize(
|
|
557
|
-
|
|
557
|
+
11446,
|
|
558
558
|
"This publisher has verified ownership of {0}",
|
|
559
559
|
`[${( (URI.parse(this.extension.publisherDomain.link))).authority}](${this.extension.publisherDomain.link})`
|
|
560
560
|
));
|
|
@@ -562,7 +562,7 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
562
562
|
markdown.appendText(`\n`);
|
|
563
563
|
}
|
|
564
564
|
if (this.extension.outdated) {
|
|
565
|
-
markdown.appendMarkdown(( localize(
|
|
565
|
+
markdown.appendMarkdown(( localize(11447, "Latest version:")));
|
|
566
566
|
markdown.appendMarkdown(` <span style="background-color:#8080802B;">** _v${this.extension.latestVersion}_** </span>`);
|
|
567
567
|
markdown.appendText(`\n`);
|
|
568
568
|
}
|
|
@@ -577,16 +577,16 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
577
577
|
if (extensionRuntimeStatus) {
|
|
578
578
|
if (extensionRuntimeStatus.activationTimes) {
|
|
579
579
|
const activationTime = extensionRuntimeStatus.activationTimes.codeLoadingTime + extensionRuntimeStatus.activationTimes.activateCallTime;
|
|
580
|
-
markdown.appendMarkdown(`${( localize(
|
|
580
|
+
markdown.appendMarkdown(`${( localize(11442, "Activation time"))}${extensionRuntimeStatus.activationTimes.activationReason.startup ? ` (${( localize(11443, "Startup"))})` : ''}: \`${activationTime}ms\``);
|
|
581
581
|
markdown.appendText(`\n`);
|
|
582
582
|
}
|
|
583
583
|
if (extensionRuntimeStatus.runtimeErrors.length || extensionRuntimeStatus.messages.length) {
|
|
584
584
|
const hasErrors = extensionRuntimeStatus.runtimeErrors.length || ( (extensionRuntimeStatus.messages.some(message => message.type === Severity$1.Error)));
|
|
585
585
|
const hasWarnings = ( (extensionRuntimeStatus.messages.some(message => message.type === Severity$1.Warning)));
|
|
586
|
-
const errorsLink = extensionRuntimeStatus.runtimeErrors.length ? `[${extensionRuntimeStatus.runtimeErrors.length === 1 ? ( localize(
|
|
586
|
+
const errorsLink = extensionRuntimeStatus.runtimeErrors.length ? `[${extensionRuntimeStatus.runtimeErrors.length === 1 ? ( localize(11448, '1 uncaught error')) : ( localize(11449, '{0} uncaught errors', extensionRuntimeStatus.runtimeErrors.length))}](${( (URI.parse(
|
|
587
587
|
`command:extension.open?${encodeURIComponent(JSON.stringify([this.extension.identifier.id, "features" ]))}`
|
|
588
588
|
)))})` : undefined;
|
|
589
|
-
const messageLink = extensionRuntimeStatus.messages.length ? `[${extensionRuntimeStatus.messages.length === 1 ? ( localize(
|
|
589
|
+
const messageLink = extensionRuntimeStatus.messages.length ? `[${extensionRuntimeStatus.messages.length === 1 ? ( localize(11450, '1 message')) : ( localize(11451, '{0} messages', extensionRuntimeStatus.messages.length))}](${( (URI.parse(
|
|
590
590
|
`command:extension.open?${encodeURIComponent(JSON.stringify([this.extension.identifier.id, "features" ]))}`
|
|
591
591
|
)))})` : undefined;
|
|
592
592
|
markdown.appendMarkdown(`$(${hasErrors ? errorIcon.id : hasWarnings ? warningIcon.id : infoIcon.id}) This extension has reported `);
|
|
@@ -650,10 +650,10 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
650
650
|
if (extension.preRelease) {
|
|
651
651
|
return undefined;
|
|
652
652
|
}
|
|
653
|
-
const preReleaseVersionLink = `[${( localize(
|
|
653
|
+
const preReleaseVersionLink = `[${( localize(11452, "Pre-Release version"))}](${( (URI.parse(
|
|
654
654
|
`command:workbench.extensions.action.showPreReleaseVersion?${encodeURIComponent(JSON.stringify([extension.identifier.id]))}`
|
|
655
655
|
)))})`;
|
|
656
|
-
return ( localize(
|
|
656
|
+
return ( localize(11453, "This extension has a {0} available", preReleaseVersionLink));
|
|
657
657
|
}
|
|
658
658
|
};
|
|
659
659
|
ExtensionHoverWidget = ExtensionHoverWidget_1 = ( (__decorate([
|
|
@@ -747,7 +747,7 @@ let ExtensionRecommendationWidget = class ExtensionRecommendationWidget extends
|
|
|
747
747
|
}
|
|
748
748
|
else if (this.extensionIgnoredRecommendationsService.globalIgnoredRecommendations.indexOf(this.extension.identifier.id.toLowerCase()) !== -1) {
|
|
749
749
|
return { icon: undefined, message: ( localize(
|
|
750
|
-
|
|
750
|
+
11454,
|
|
751
751
|
"You have chosen not to receive recommendations for this extension."
|
|
752
752
|
)) };
|
|
753
753
|
}
|
|
@@ -758,10 +758,10 @@ ExtensionRecommendationWidget = ( (__decorate([
|
|
|
758
758
|
( (__param(1, IExtensionRecommendationsService))),
|
|
759
759
|
( (__param(2, IExtensionIgnoredRecommendationsService)))
|
|
760
760
|
], ExtensionRecommendationWidget)));
|
|
761
|
-
const extensionRatingIconColor = registerColor('extensionIcon.starForeground', { light: '#DF6100', dark: '#FF8E00', hcDark: '#FF8E00', hcLight: textLinkForeground }, ( localize(
|
|
762
|
-
const extensionVerifiedPublisherIconColor = registerColor('extensionIcon.verifiedForeground', textLinkForeground, ( localize(
|
|
763
|
-
const extensionPreReleaseIconColor = registerColor('extensionIcon.preReleaseForeground', { dark: '#1d9271', light: '#1d9271', hcDark: '#1d9271', hcLight: textLinkForeground }, ( localize(
|
|
764
|
-
registerColor('extensionIcon.sponsorForeground', { light: '#B51E78', dark: '#D758B3', hcDark: null, hcLight: '#B51E78' }, ( localize(
|
|
761
|
+
const extensionRatingIconColor = registerColor('extensionIcon.starForeground', { light: '#DF6100', dark: '#FF8E00', hcDark: '#FF8E00', hcLight: textLinkForeground }, ( localize(11455, "The icon color for extension ratings.")), true);
|
|
762
|
+
const extensionVerifiedPublisherIconColor = registerColor('extensionIcon.verifiedForeground', textLinkForeground, ( localize(11456, "The icon color for extension verified publisher.")), true);
|
|
763
|
+
const extensionPreReleaseIconColor = registerColor('extensionIcon.preReleaseForeground', { dark: '#1d9271', light: '#1d9271', hcDark: '#1d9271', hcLight: textLinkForeground }, ( localize(11457, "The icon color for pre-release extension.")), true);
|
|
764
|
+
registerColor('extensionIcon.sponsorForeground', { light: '#B51E78', dark: '#D758B3', hcDark: null, hcLight: '#B51E78' }, ( localize(11458, "The icon color for extension sponsor.")), true);
|
|
765
765
|
registerThemingParticipant((theme, collector) => {
|
|
766
766
|
const extensionRatingIcon = theme.getColor(extensionRatingIconColor);
|
|
767
767
|
if (extensionRatingIcon) {
|
|
@@ -44,7 +44,7 @@ let FileBasedRecommendations = class FileBasedRecommendations extends ExtensionR
|
|
|
44
44
|
reason: {
|
|
45
45
|
reasonId: 1 ,
|
|
46
46
|
reasonText: ( localize(
|
|
47
|
-
|
|
47
|
+
9550,
|
|
48
48
|
"This extension is recommended based on the files you recently opened."
|
|
49
49
|
))
|
|
50
50
|
}
|
|
@@ -240,7 +240,7 @@ let FileBasedRecommendations = class FileBasedRecommendations extends ExtensionR
|
|
|
240
240
|
const language = model.getLanguageId();
|
|
241
241
|
const languageName = this.languageService.getLanguageName(language);
|
|
242
242
|
if (importantRecommendations.size &&
|
|
243
|
-
this.promptRecommendedExtensionForFileType(languageName && isImportantRecommendationForLanguage && language !== PLAINTEXT_LANGUAGE_ID ? ( localize(
|
|
243
|
+
this.promptRecommendedExtensionForFileType(languageName && isImportantRecommendationForLanguage && language !== PLAINTEXT_LANGUAGE_ID ? ( localize(9551, "the {0} language", languageName)) : basename(uri), language, [...importantRecommendations])) {
|
|
244
244
|
return;
|
|
245
245
|
}
|
|
246
246
|
}
|
|
@@ -101,7 +101,7 @@ let WorkspaceRecommendations = class WorkspaceRecommendations extends ExtensionR
|
|
|
101
101
|
extension: extensionId,
|
|
102
102
|
reason: {
|
|
103
103
|
reasonId: 0 ,
|
|
104
|
-
reasonText: ( localize(
|
|
104
|
+
reasonText: ( localize(9549, "This extension is recommended by users of the current workspace."))
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
107
|
}
|
|
@@ -113,7 +113,7 @@ let WorkspaceRecommendations = class WorkspaceRecommendations extends ExtensionR
|
|
|
113
113
|
extension,
|
|
114
114
|
reason: {
|
|
115
115
|
reasonId: 0 ,
|
|
116
|
-
reasonText: ( localize(
|
|
116
|
+
reasonText: ( localize(9549, "This extension is recommended by users of the current workspace."))
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
}
|
|
@@ -4,7 +4,7 @@ import { EditorInput } from 'vscode/vscode/vs/workbench/common/editor/editorInpu
|
|
|
4
4
|
import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
|
|
5
5
|
import { registerIcon } from 'vscode/vscode/vs/platform/theme/common/iconRegistry';
|
|
6
6
|
|
|
7
|
-
const RuntimeExtensionsEditorIcon = registerIcon('runtime-extensions-editor-label-icon', Codicon.extensions, ( localize(
|
|
7
|
+
const RuntimeExtensionsEditorIcon = registerIcon('runtime-extensions-editor-label-icon', Codicon.extensions, ( localize(9554, 'Icon of the runtime extensions editor label.')));
|
|
8
8
|
class RuntimeExtensionsInput extends EditorInput {
|
|
9
9
|
constructor() {
|
|
10
10
|
super(...arguments);
|
|
@@ -27,7 +27,7 @@ class RuntimeExtensionsInput extends EditorInput {
|
|
|
27
27
|
return RuntimeExtensionsInput._instance;
|
|
28
28
|
}
|
|
29
29
|
getName() {
|
|
30
|
-
return ( localize(
|
|
30
|
+
return ( localize(9555, "Running Extensions"));
|
|
31
31
|
}
|
|
32
32
|
getIcon() {
|
|
33
33
|
return RuntimeExtensionsEditorIcon;
|