Skip to content

Commit f03b141

Browse files
committed
add web extensions filter
1 parent 807eb37 commit f03b141

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import { IPreferencesService } from 'vs/workbench/services/preferences/common/pr
5959
import { DragAndDropObserver } from 'vs/workbench/browser/dnd';
6060
import { URI } from 'vs/base/common/uri';
6161
import { SIDE_BAR_DRAG_AND_DROP_BACKGROUND } from 'vs/workbench/common/theme';
62+
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
6263

6364
const NonEmptyWorkspaceContext = new RawContextKey<boolean>('nonEmptyWorkspace', false);
6465
const DefaultViewsContext = new RawContextKey<boolean>('defaultExtensionViews', true);
@@ -349,6 +350,8 @@ export class ExtensionsViewPaneContainer extends ViewPaneContainer implements IE
349350
@IInstantiationService instantiationService: IInstantiationService,
350351
@IEditorGroupsService private readonly editorGroupService: IEditorGroupsService,
351352
@IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService,
353+
@IExtensionManagementServerService private readonly extensionManagementServerService: IExtensionManagementServerService,
354+
@IWorkbenchEnvironmentService private readonly environmentService: IWorkbenchEnvironmentService,
352355
@IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService,
353356
@INotificationService private readonly notificationService: INotificationService,
354357
@IViewletService private readonly viewletService: IViewletService,
@@ -519,14 +522,19 @@ export class ExtensionsViewPaneContainer extends ViewPaneContainer implements IE
519522
]);
520523

521524
if (this.extensionGalleryService.isEnabled()) {
522-
filterActions.splice(0, 0, ...[
525+
const galleryFilterActions = [
523526
this.instantiationService.createInstance(PredefinedExtensionFilterAction, 'extensions.filter.featured', localize('featured filter', "Featured"), '@featured'),
524527
this.instantiationService.createInstance(PredefinedExtensionFilterAction, 'extensions.filter.popular', localize('most popular filter', "Most Popular"), '@popular'),
525528
this.instantiationService.createInstance(PredefinedExtensionFilterAction, 'extensions.filter.recommended', localize('most popular recommended', "Recommended"), '@recommended'),
526529
this.instantiationService.createInstance(RecentlyPublishedExtensionsAction, RecentlyPublishedExtensionsAction.ID, localize('recently published filter', "Recently Published")),
530+
new Separator(),
527531
new SubmenuAction('workbench.extensions.action.filterExtensionsByCategory', localize('filter by category', "Category"), EXTENSION_CATEGORIES.map(category => this.instantiationService.createInstance(SearchCategoryAction, `extensions.actions.searchByCategory.${category}`, category, category))),
528532
new Separator(),
529-
]);
533+
];
534+
if (this.extensionManagementServerService.webExtensionManagementServer || !this.environmentService.isBuilt) {
535+
galleryFilterActions.splice(4, 0, this.instantiationService.createInstance(PredefinedExtensionFilterAction, 'extensions.filter.web', localize('web filter', "Web"), '@web'));
536+
}
537+
filterActions.splice(0, 0, ...galleryFilterActions);
530538
filterActions.push(...[
531539
new Separator(),
532540
new SubmenuAction('workbench.extensions.action.sortBy', localize('sorty by', "Sort By"), this.sortActions),
@@ -580,6 +588,7 @@ export class ExtensionsViewPaneContainer extends ViewPaneContainer implements IE
580588
.replace(/@tag:/g, 'tag:')
581589
.replace(/@ext:/g, 'ext:')
582590
.replace(/@featured/g, 'featured')
591+
.replace(/@web/g, 'tag:"__web_extension"')
583592
.replace(/@popular/g, '@sort:installs')
584593
: '';
585594
}

0 commit comments

Comments
 (0)