@codingame/monaco-vscode-extension-gallery-service-override 3.2.2 → 4.0.0
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/extensionGallery.js +7 -1
- package/override/vs/platform/dialogs/common/dialogs.js +2 -0
- package/package.json +9 -9
- package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +18 -16
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +24 -23
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementIpc.js +5 -2
- package/vscode/src/vs/platform/extensionManagement/common/extensionTipsService.js +10 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +33 -19
- package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/deprecatedExtensionsChecker.js +8 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +109 -40
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +11 -8
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +31 -11
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.js +35 -21
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +54 -29
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsList.js +6 -6
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +11 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +18 -17
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +71 -31
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +63 -20
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +551 -134
- package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +3 -3
- package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +78 -4
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +7 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionsProfileScannerService.js +24 -0
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +15 -8
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementChannelClient.js +2 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +3 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +469 -57
- package/vscode/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.js +5 -2
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/extensionIgnoredRecommendationsService.js +1 -0
- package/vscode/src/vs/workbench/services/extensions/browser/extensionsScannerService.js +33 -0
|
@@ -19,14 +19,24 @@ import { CountBadge } from 'vscode/vscode/vs/base/browser/ui/countBadge/countBad
|
|
|
19
19
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
|
|
20
20
|
import { IUserDataSyncEnablementService } from 'vscode/vscode/vs/platform/userDataSync/common/userDataSync';
|
|
21
21
|
import { starFullIcon, verifiedPublisherIcon, sponsorIcon, installCountIcon, starHalfIcon, starEmptyIcon, remoteIcon, ratingIcon, preReleaseIcon, syncIgnoredIcon, activationTimeIcon, errorIcon, warningIcon, infoIcon } from 'vscode/vscode/vs/workbench/contrib/extensions/browser/extensionsIcons';
|
|
22
|
-
import { registerColor
|
|
22
|
+
import { registerColor } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
23
|
+
import { textLinkForeground } from 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
24
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
25
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
26
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
27
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
28
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
29
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
30
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
31
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
32
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
23
33
|
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover';
|
|
24
34
|
import { MarkdownString } from 'vscode/vscode/vs/base/common/htmlContent';
|
|
25
35
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
26
36
|
import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
27
37
|
import { areSameExtensions } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagementUtil';
|
|
28
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
29
|
-
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/
|
|
38
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
39
|
+
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/hover/updatableHoverWidget';
|
|
30
40
|
import { Color } from 'vscode/vscode/vs/base/common/color';
|
|
31
41
|
import { renderMarkdown } from 'vscode/vscode/vs/base/browser/markdownRenderer';
|
|
32
42
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener';
|
|
@@ -35,6 +45,8 @@ import { renderIcon } from 'vscode/vscode/vs/base/browser/ui/iconLabel/iconLabel
|
|
|
35
45
|
import { StandardKeyboardEvent } from 'vscode/vscode/vs/base/browser/keyboardEvent';
|
|
36
46
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
37
47
|
import { defaultCountBadgeStyles } from 'vscode/vscode/vs/platform/theme/browser/defaultStyles';
|
|
48
|
+
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
49
|
+
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
38
50
|
|
|
39
51
|
var ExtensionHoverWidget_1;
|
|
40
52
|
class ExtensionWidget extends Disposable {
|
|
@@ -115,11 +127,11 @@ class RatingsWidget extends ExtensionWidget {
|
|
|
115
127
|
if (this.small) {
|
|
116
128
|
container.classList.add('small');
|
|
117
129
|
}
|
|
130
|
+
this.containerHover = this._register(setupCustomHover(getDefaultHoverDelegate('mouse'), container, ''));
|
|
118
131
|
this.render();
|
|
119
132
|
}
|
|
120
133
|
render() {
|
|
121
134
|
this.container.innerText = '';
|
|
122
|
-
this.container.title = '';
|
|
123
135
|
if (!this.extension) {
|
|
124
136
|
return;
|
|
125
137
|
}
|
|
@@ -133,12 +145,12 @@ class RatingsWidget extends ExtensionWidget {
|
|
|
133
145
|
return;
|
|
134
146
|
}
|
|
135
147
|
const rating = Math.round(this.extension.rating * 2) / 2;
|
|
136
|
-
this.
|
|
148
|
+
this.containerHover.update(( localizeWithPath(
|
|
137
149
|
'vs/workbench/contrib/extensions/browser/extensionsWidgets',
|
|
138
150
|
'ratedLabel',
|
|
139
151
|
"Average rating: {0} out of 5",
|
|
140
152
|
rating
|
|
141
|
-
));
|
|
153
|
+
)));
|
|
142
154
|
if (this.small) {
|
|
143
155
|
append(this.container, $('span' + ThemeIcon.asCSSSelector(starFullIcon)));
|
|
144
156
|
const count = append(this.container, $('span.count'));
|
|
@@ -170,6 +182,7 @@ let VerifiedPublisherWidget = class VerifiedPublisherWidget extends ExtensionWid
|
|
|
170
182
|
this.small = small;
|
|
171
183
|
this.openerService = openerService;
|
|
172
184
|
this.disposables = this._register(( new DisposableStore()));
|
|
185
|
+
this.containerHover = this._register(setupCustomHover(getDefaultHoverDelegate('mouse'), container, ''));
|
|
173
186
|
this.render();
|
|
174
187
|
}
|
|
175
188
|
render() {
|
|
@@ -178,12 +191,18 @@ let VerifiedPublisherWidget = class VerifiedPublisherWidget extends ExtensionWid
|
|
|
178
191
|
if (!this.extension?.publisherDomain?.verified) {
|
|
179
192
|
return;
|
|
180
193
|
}
|
|
194
|
+
if (this.extension.resourceExtension) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (this.extension.local?.source === 'resource') {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
181
200
|
const publisherDomainLink = ( URI.parse(this.extension.publisherDomain.link));
|
|
182
201
|
const verifiedPublisher = append(this.container, $('span.extension-verified-publisher.clickable'));
|
|
183
202
|
append(verifiedPublisher, renderIcon(verifiedPublisherIcon));
|
|
184
203
|
if (!this.small) {
|
|
185
204
|
verifiedPublisher.tabIndex = 0;
|
|
186
|
-
|
|
205
|
+
this.containerHover.update(`Verified Domain: ${this.extension.publisherDomain.link}`);
|
|
187
206
|
verifiedPublisher.setAttribute('role', 'link');
|
|
188
207
|
append(verifiedPublisher, $('span.extension-verified-publisher-domain', undefined, publisherDomainLink.authority.startsWith('www.') ? publisherDomainLink.authority.substring(4) : publisherDomainLink.authority));
|
|
189
208
|
this.disposables.add(onClick(verifiedPublisher, () => this.openerService.open(publisherDomainLink)));
|
|
@@ -208,7 +227,8 @@ let SponsorWidget = class SponsorWidget extends ExtensionWidget {
|
|
|
208
227
|
if (!this.extension?.publisherSponsorLink) {
|
|
209
228
|
return;
|
|
210
229
|
}
|
|
211
|
-
const sponsor = append(this.container, $('span.sponsor.clickable', { tabIndex: 0
|
|
230
|
+
const sponsor = append(this.container, $('span.sponsor.clickable', { tabIndex: 0 }));
|
|
231
|
+
this.disposables.add(setupCustomHover(getDefaultHoverDelegate('mouse'), sponsor, this.extension?.publisherSponsorLink.toString() ?? ''));
|
|
212
232
|
sponsor.setAttribute('role', 'link');
|
|
213
233
|
const sponsorIconElement = renderIcon(sponsorIcon);
|
|
214
234
|
const label = $('span', undefined, ( localizeWithPath(
|
|
@@ -322,6 +342,7 @@ let RemoteBadge = class RemoteBadge extends Disposable {
|
|
|
322
342
|
this.themeService = themeService;
|
|
323
343
|
this.extensionManagementServerService = extensionManagementServerService;
|
|
324
344
|
this.element = $('div.extension-badge.extension-remote-badge');
|
|
345
|
+
this.elementHover = this._register(setupCustomHover(getDefaultHoverDelegate('mouse'), this.element, ''));
|
|
325
346
|
this.render();
|
|
326
347
|
}
|
|
327
348
|
render() {
|
|
@@ -340,12 +361,12 @@ let RemoteBadge = class RemoteBadge extends Disposable {
|
|
|
340
361
|
if (this.tooltip) {
|
|
341
362
|
const updateTitle = () => {
|
|
342
363
|
if (this.element && this.extensionManagementServerService.remoteExtensionManagementServer) {
|
|
343
|
-
this.
|
|
364
|
+
this.elementHover.update(( localizeWithPath(
|
|
344
365
|
'vs/workbench/contrib/extensions/browser/extensionsWidgets',
|
|
345
366
|
'remote extension title',
|
|
346
367
|
"Extension in {0}",
|
|
347
368
|
this.extensionManagementServerService.remoteExtensionManagementServer.label
|
|
348
|
-
));
|
|
369
|
+
)));
|
|
349
370
|
}
|
|
350
371
|
};
|
|
351
372
|
this._register(this.labelService.onDidChangeFormatters(() => updateTitle()));
|
|
@@ -385,19 +406,21 @@ let SyncIgnoredWidget = class SyncIgnoredWidget extends ExtensionWidget {
|
|
|
385
406
|
this.configurationService = configurationService;
|
|
386
407
|
this.extensionsWorkbenchService = extensionsWorkbenchService;
|
|
387
408
|
this.userDataSyncEnablementService = userDataSyncEnablementService;
|
|
409
|
+
this.disposables = this._register(( new DisposableStore()));
|
|
388
410
|
this._register(Event.filter(this.configurationService.onDidChangeConfiguration, e => e.affectsConfiguration('settingsSync.ignoredExtensions'))(() => this.render()));
|
|
389
411
|
this._register(userDataSyncEnablementService.onDidChangeEnablement(() => this.update()));
|
|
390
412
|
this.render();
|
|
391
413
|
}
|
|
392
414
|
render() {
|
|
415
|
+
this.disposables.clear();
|
|
393
416
|
this.container.innerText = '';
|
|
394
417
|
if (this.extension && this.extension.state === 1 && this.userDataSyncEnablementService.isEnabled() && this.extensionsWorkbenchService.isExtensionIgnoredToSync(this.extension)) {
|
|
395
418
|
const element = append(this.container, $('span.extension-sync-ignored' + ThemeIcon.asCSSSelector(syncIgnoredIcon)));
|
|
396
|
-
|
|
419
|
+
this.disposables.add(setupCustomHover(getDefaultHoverDelegate('mouse'), element, ( localizeWithPath(
|
|
397
420
|
'vs/workbench/contrib/extensions/browser/extensionsWidgets',
|
|
398
421
|
'syncingore.label',
|
|
399
422
|
"This extension is ignored during sync."
|
|
400
|
-
));
|
|
423
|
+
))));
|
|
401
424
|
element.classList.add(...ThemeIcon.asClassNameArray(syncIgnoredIcon));
|
|
402
425
|
}
|
|
403
426
|
}
|
|
@@ -453,7 +476,7 @@ ExtensionActivationStatusWidget = ( __decorate([
|
|
|
453
476
|
( __param(3, IExtensionsWorkbenchService))
|
|
454
477
|
], ExtensionActivationStatusWidget));
|
|
455
478
|
let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget extends ExtensionWidget {
|
|
456
|
-
constructor(options, extensionStatusAction, extensionsWorkbenchService, hoverService, configurationService, extensionRecommendationsService, themeService) {
|
|
479
|
+
constructor(options, extensionStatusAction, extensionsWorkbenchService, hoverService, configurationService, extensionRecommendationsService, themeService, contextService) {
|
|
457
480
|
super();
|
|
458
481
|
this.options = options;
|
|
459
482
|
this.extensionStatusAction = extensionStatusAction;
|
|
@@ -462,6 +485,7 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
462
485
|
this.configurationService = configurationService;
|
|
463
486
|
this.extensionRecommendationsService = extensionRecommendationsService;
|
|
464
487
|
this.themeService = themeService;
|
|
488
|
+
this.contextService = contextService;
|
|
465
489
|
this.hover = this._register(( new MutableDisposable()));
|
|
466
490
|
}
|
|
467
491
|
render() {
|
|
@@ -526,6 +550,24 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
526
550
|
markdown.appendText(`\n`);
|
|
527
551
|
}
|
|
528
552
|
}
|
|
553
|
+
const location = this.extension.resourceExtension?.location ?? (this.extension.local?.source === 'resource' ? this.extension.local?.location : undefined);
|
|
554
|
+
if (location) {
|
|
555
|
+
if (this.extension.isWorkspaceScoped && this.contextService.isInsideWorkspace(location)) {
|
|
556
|
+
markdown.appendMarkdown(( localizeWithPath(
|
|
557
|
+
'vs/workbench/contrib/extensions/browser/extensionsWidgets',
|
|
558
|
+
'workspace extension',
|
|
559
|
+
"Workspace Extension"
|
|
560
|
+
)));
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
markdown.appendMarkdown(( localizeWithPath(
|
|
564
|
+
'vs/workbench/contrib/extensions/browser/extensionsWidgets',
|
|
565
|
+
'local extension',
|
|
566
|
+
"Local Extension"
|
|
567
|
+
)));
|
|
568
|
+
}
|
|
569
|
+
markdown.appendText(`\n`);
|
|
570
|
+
}
|
|
529
571
|
if (this.extension.description) {
|
|
530
572
|
markdown.appendMarkdown(`${this.extension.description}`);
|
|
531
573
|
markdown.appendText(`\n`);
|
|
@@ -553,9 +595,9 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
553
595
|
const preReleaseMessage = ExtensionHoverWidget_1.getPreReleaseMessage(this.extension);
|
|
554
596
|
const extensionRuntimeStatus = this.extensionsWorkbenchService.getExtensionStatus(this.extension);
|
|
555
597
|
const extensionStatus = this.extensionStatusAction.status;
|
|
556
|
-
const
|
|
598
|
+
const runtimeState = this.extension.runtimeState;
|
|
557
599
|
const recommendationMessage = this.getRecommendationMessage(this.extension);
|
|
558
|
-
if (extensionRuntimeStatus || extensionStatus ||
|
|
600
|
+
if (extensionRuntimeStatus || extensionStatus || runtimeState || recommendationMessage || preReleaseMessage) {
|
|
559
601
|
markdown.appendMarkdown(`---`);
|
|
560
602
|
markdown.appendText(`\n`);
|
|
561
603
|
if (extensionRuntimeStatus) {
|
|
@@ -573,8 +615,8 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
573
615
|
markdown.appendText(`\n`);
|
|
574
616
|
}
|
|
575
617
|
if (extensionRuntimeStatus.runtimeErrors.length || extensionRuntimeStatus.messages.length) {
|
|
576
|
-
const hasErrors = extensionRuntimeStatus.runtimeErrors.length || ( extensionRuntimeStatus.messages.some(message => message.type === Severity.Error));
|
|
577
|
-
const hasWarnings = ( extensionRuntimeStatus.messages.some(message => message.type === Severity.Warning));
|
|
618
|
+
const hasErrors = extensionRuntimeStatus.runtimeErrors.length || ( extensionRuntimeStatus.messages.some(message => message.type === Severity$1.Error));
|
|
619
|
+
const hasWarnings = ( extensionRuntimeStatus.messages.some(message => message.type === Severity$1.Warning));
|
|
578
620
|
const errorsLink = extensionRuntimeStatus.runtimeErrors.length ? `[${extensionRuntimeStatus.runtimeErrors.length === 1 ? ( localizeWithPath(
|
|
579
621
|
'vs/workbench/contrib/extensions/browser/extensionsWidgets',
|
|
580
622
|
'uncaught error',
|
|
@@ -625,9 +667,9 @@ let ExtensionHoverWidget = ExtensionHoverWidget_1 = class ExtensionHoverWidget e
|
|
|
625
667
|
}
|
|
626
668
|
markdown.appendText(`\n`);
|
|
627
669
|
}
|
|
628
|
-
if (
|
|
670
|
+
if (runtimeState) {
|
|
629
671
|
markdown.appendMarkdown(`$(${infoIcon.id}) `);
|
|
630
|
-
markdown.appendMarkdown(`${
|
|
672
|
+
markdown.appendMarkdown(`${runtimeState.reason}`);
|
|
631
673
|
markdown.appendText(`\n`);
|
|
632
674
|
}
|
|
633
675
|
if (preReleaseMessage) {
|
|
@@ -689,7 +731,8 @@ ExtensionHoverWidget = ExtensionHoverWidget_1 = ( __decorate([
|
|
|
689
731
|
( __param(3, IHoverService)),
|
|
690
732
|
( __param(4, IConfigurationService)),
|
|
691
733
|
( __param(5, IExtensionRecommendationsService)),
|
|
692
|
-
( __param(6, IThemeService))
|
|
734
|
+
( __param(6, IThemeService)),
|
|
735
|
+
( __param(7, IWorkspaceContextService))
|
|
693
736
|
], ExtensionHoverWidget));
|
|
694
737
|
let ExtensionStatusWidget = class ExtensionStatusWidget extends ExtensionWidget {
|
|
695
738
|
constructor(container, extensionStatusAction, openerService) {
|