@codingame/monaco-vscode-extension-gallery-service-override 11.0.0 → 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/platform/extensionManagement/common/abstractExtensionManagementService.js +13 -13
- 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/extensionRecommendationNotificationService.js +15 -15
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +138 -138
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +1 -1
- 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/extensionsWorkbenchService.js +53 -53
- 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/reportExtensionIssueAction.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +2 -2
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +12 -12
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +2 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeaturesManagemetService.js +4 -4
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +2 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +21 -21
- package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
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/platform/extensionManagement/common/abstractExtensionManagementService.js
CHANGED
|
@@ -80,7 +80,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
80
80
|
async installGalleryExtensions(extensions) {
|
|
81
81
|
if (!this.galleryService.isEnabled()) {
|
|
82
82
|
throw ( (new ExtensionManagementError(
|
|
83
|
-
localize(
|
|
83
|
+
localize(11393, "Marketplace is not enabled"),
|
|
84
84
|
"NotAllowed"
|
|
85
85
|
)));
|
|
86
86
|
}
|
|
@@ -507,7 +507,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
507
507
|
const extensionsControlManifest = await this.getExtensionsControlManifest();
|
|
508
508
|
if (( (extensionsControlManifest.malicious.some(identifier => areSameExtensions(extension.identifier, identifier))))) {
|
|
509
509
|
throw ( (new ExtensionManagementError(localize(
|
|
510
|
-
|
|
510
|
+
11394,
|
|
511
511
|
"Can't install '{0}' extension since it was reported to be problematic.",
|
|
512
512
|
extension.identifier.id
|
|
513
513
|
), "Malicious" )));
|
|
@@ -518,7 +518,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
518
518
|
compatibleExtension = (await this.galleryService.getExtensions([{ id: deprecationInfo.extension.id, preRelease: deprecationInfo.extension.preRelease }], { targetPlatform: await this.getTargetPlatform(), compatible: true, productVersion }, CancellationToken.None))[0];
|
|
519
519
|
if (!compatibleExtension) {
|
|
520
520
|
throw ( (new ExtensionManagementError(localize(
|
|
521
|
-
|
|
521
|
+
11395,
|
|
522
522
|
"Can't install '{0}' extension since it was deprecated and the replacement extension '{1}' can't be found.",
|
|
523
523
|
extension.identifier.id,
|
|
524
524
|
deprecationInfo.extension.id
|
|
@@ -529,7 +529,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
529
529
|
if (!(await this.canInstall(extension))) {
|
|
530
530
|
const targetPlatform = await this.getTargetPlatform();
|
|
531
531
|
throw ( (new ExtensionManagementError(localize(
|
|
532
|
-
|
|
532
|
+
11396,
|
|
533
533
|
"The '{0}' extension is not available in {1} for {2}.",
|
|
534
534
|
extension.identifier.id,
|
|
535
535
|
this.productService.nameLong,
|
|
@@ -541,7 +541,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
541
541
|
const incompatibleApiProposalsMessages = [];
|
|
542
542
|
if (!areApiProposalsCompatible(extension.properties.enabledApiProposals ?? [], incompatibleApiProposalsMessages)) {
|
|
543
543
|
throw ( (new ExtensionManagementError(localize(
|
|
544
|
-
|
|
544
|
+
11397,
|
|
545
545
|
"Can't install '{0}' extension. {1}",
|
|
546
546
|
extension.displayName ?? extension.identifier.id,
|
|
547
547
|
incompatibleApiProposalsMessages[0]
|
|
@@ -549,13 +549,13 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
549
549
|
}
|
|
550
550
|
if (!installPreRelease && extension.properties.isPreReleaseVersion && (await this.galleryService.getExtensions([extension.identifier], CancellationToken.None))[0]) {
|
|
551
551
|
throw ( (new ExtensionManagementError(localize(
|
|
552
|
-
|
|
552
|
+
11398,
|
|
553
553
|
"Can't install release version of '{0}' extension because it has no release version.",
|
|
554
554
|
extension.displayName ?? extension.identifier.id
|
|
555
555
|
), "ReleaseVersionNotFound" )));
|
|
556
556
|
}
|
|
557
557
|
throw ( (new ExtensionManagementError(localize(
|
|
558
|
-
|
|
558
|
+
11399,
|
|
559
559
|
"Can't install '{0}' extension because it is not compatible with the current version of {1} (version {2}).",
|
|
560
560
|
extension.identifier.id,
|
|
561
561
|
this.productService.nameLong,
|
|
@@ -729,7 +729,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
729
729
|
if (extensionToUninstall === dependingExtension) {
|
|
730
730
|
if (dependents.length === 1) {
|
|
731
731
|
return ( localize(
|
|
732
|
-
|
|
732
|
+
11400,
|
|
733
733
|
"Cannot uninstall '{0}' extension. '{1}' extension depends on this.",
|
|
734
734
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
735
735
|
dependents[0].manifest.displayName || dependents[0].manifest.name
|
|
@@ -737,7 +737,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
737
737
|
}
|
|
738
738
|
if (dependents.length === 2) {
|
|
739
739
|
return ( localize(
|
|
740
|
-
|
|
740
|
+
11401,
|
|
741
741
|
"Cannot uninstall '{0}' extension. '{1}' and '{2}' extensions depend on this.",
|
|
742
742
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
743
743
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -745,7 +745,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
745
745
|
));
|
|
746
746
|
}
|
|
747
747
|
return ( localize(
|
|
748
|
-
|
|
748
|
+
11402,
|
|
749
749
|
"Cannot uninstall '{0}' extension. '{1}', '{2}' and other extension depend on this.",
|
|
750
750
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
751
751
|
dependents[0].manifest.displayName || dependents[0].manifest.name,
|
|
@@ -754,7 +754,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
754
754
|
}
|
|
755
755
|
if (dependents.length === 1) {
|
|
756
756
|
return ( localize(
|
|
757
|
-
|
|
757
|
+
11403,
|
|
758
758
|
"Cannot uninstall '{0}' extension . It includes uninstalling '{1}' extension and '{2}' extension depends on this.",
|
|
759
759
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
760
760
|
dependingExtension.manifest.displayName
|
|
@@ -764,7 +764,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
764
764
|
}
|
|
765
765
|
if (dependents.length === 2) {
|
|
766
766
|
return ( localize(
|
|
767
|
-
|
|
767
|
+
11404,
|
|
768
768
|
"Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}' and '{3}' extensions depend on this.",
|
|
769
769
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
770
770
|
dependingExtension.manifest.displayName
|
|
@@ -774,7 +774,7 @@ let AbstractExtensionManagementService = class AbstractExtensionManagementServic
|
|
|
774
774
|
));
|
|
775
775
|
}
|
|
776
776
|
return ( localize(
|
|
777
|
-
|
|
777
|
+
11405,
|
|
778
778
|
"Cannot uninstall '{0}' extension. It includes uninstalling '{1}' extension and '{2}', '{3}' and other extensions depend on this.",
|
|
779
779
|
extensionToUninstall.manifest.displayName || extensionToUninstall.manifest.name,
|
|
780
780
|
dependingExtension.manifest.displayName
|
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));
|