From c2cec5d93fe2108746514e8176fdc8c88cb3f0dc Mon Sep 17 00:00:00 2001 From: Alan Ren Date: Wed, 26 Jun 2019 23:17:35 -0700 Subject: [PATCH] enable lang pack filter in extension manager (#6148) * enable lang pack filter in extension manager * fix null check issue --- .../node/extensionGalleryService.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts index 0050543941..c92dcc4c96 100644 --- a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts +++ b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts @@ -550,6 +550,20 @@ export class ExtensionGalleryService implements IExtensionGalleryService { if (names && names.length > 0) { filteredExtensions = filteredExtensions.filter(e => e.extensionName && e.publisher.publisherName && names.includes(`${e.publisher.publisherName.toLocaleLowerCase()}.${e.extensionName.toLocaleLowerCase()}`)); } + const categoryFilters = query.criteria.filter(x => x.filterType === FilterType.Category).map(v => v.value ? v.value.toLowerCase() : undefined); + if (categoryFilters && categoryFilters.length > 0) { + // Implement the @category: "language packs" filtering + if (categoryFilters.includes('language packs')) { + filteredExtensions = filteredExtensions.filter(e => { + // we only have 1 version for our extensions in the gallery file, so this should always be the case + if (e.versions.length === 1) { + const extension = toExtension(e, e.versions[0], 0, query); + return extension.properties.localizedLanguages && extension.properties.localizedLanguages.length > 0; + } + return false; + }); + } + } const searchTexts = query.criteria.filter(x => x.filterType === FilterType.SearchText).map(v => v.value ? v.value.toLocaleLowerCase() : undefined); if (searchTexts && searchTexts.length > 0) { searchTexts.forEach(searchText => {