Skip to content

Commit bc2758a

Browse files
authored
show private extension indicator in extensions view (microsoft#250277)
1 parent e252fce commit bc2758a

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import { IUriIdentityService } from '../../../../platform/uriIdentity/common/uri
5050
import { IExplorerService } from '../../files/browser/files.js';
5151
import { IViewsService } from '../../../services/views/common/viewsService.js';
5252
import { VIEW_ID as EXPLORER_VIEW_ID } from '../../files/common/files.js';
53+
import { IExtensionGalleryManifest, IExtensionGalleryManifestService } from '../../../../platform/extensionManagement/common/extensionGalleryManifest.js';
5354

5455
export abstract class ExtensionWidget extends Disposable implements IExtensionContainer {
5556
private _extension: IExtension | null = null;
@@ -586,6 +587,7 @@ export class ExtensionPackCountWidget extends ExtensionWidget {
586587
export class ExtensionKindIndicatorWidget extends ExtensionWidget {
587588

588589
private element: HTMLElement | undefined;
590+
private extensionGalleryManifest: IExtensionGalleryManifest | null = null;
589591

590592
private readonly disposables = this._register(new DisposableStore());
591593

@@ -597,10 +599,18 @@ export class ExtensionKindIndicatorWidget extends ExtensionWidget {
597599
@IUriIdentityService private readonly uriIdentityService: IUriIdentityService,
598600
@IExplorerService private readonly explorerService: IExplorerService,
599601
@IViewsService private readonly viewsService: IViewsService,
602+
@IExtensionGalleryManifestService extensionGalleryManifestService: IExtensionGalleryManifestService,
600603
) {
601604
super();
602605
this.render();
603606
this._register(toDisposable(() => this.clear()));
607+
extensionGalleryManifestService.getExtensionGalleryManifest().then(manifest => {
608+
if (this._store.isDisposed) {
609+
return;
610+
}
611+
this.extensionGalleryManifest = manifest;
612+
this.render();
613+
});
604614
}
605615

606616
private clear(): void {
@@ -611,23 +621,25 @@ export class ExtensionKindIndicatorWidget extends ExtensionWidget {
611621
render(): void {
612622
this.clear();
613623

614-
if (this.small) {
615-
return;
616-
}
617-
618624
if (!this.extension) {
619625
return;
620626
}
621627

622628
if (this.extension?.private) {
623629
this.element = append(this.container, $('.extension-kind-indicator'));
624-
append(this.element, $('span' + ThemeIcon.asCSSSelector(privateExtensionIcon)));
630+
if (!this.small || (this.extensionGalleryManifest?.capabilities.extensions?.includePublicExtensions && this.extensionGalleryManifest?.capabilities.extensions?.includePrivateExtensions)) {
631+
append(this.element, $('span' + ThemeIcon.asCSSSelector(privateExtensionIcon)));
632+
}
625633
if (!this.small) {
626634
append(this.element, $('span.private-extension-label', undefined, localize('privateExtension', "Private Extension")));
627635
}
628636
return;
629637
}
630638

639+
if (!this.small) {
640+
return;
641+
}
642+
631643
const location = this.extension.resourceExtension?.location ?? (this.extension.local?.source === 'resource' ? this.extension.local?.location : undefined);
632644
if (!location) {
633645
return;

src/vs/workbench/contrib/extensions/browser/media/extension.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292

9393
.extension-list-item > .details > .header-container > .header .extension-kind-indicator {
9494
font-size: 80%;
95-
margin-left: 2px;
95+
margin-left: 4px;
9696
}
9797

9898
.extension-list-item > .details > .header-container > .header > .install-count:not(:empty) {

0 commit comments

Comments
 (0)