From ed0e90391fbcc2362b565a05f274340a2e015e59 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 20 Feb 2018 10:08:35 +0100 Subject: [PATCH] Fix #17068 --- .../electron-browser/extensionsViewlet.ts | 20 +++++++++++++++++-- .../electron-browser/extensionsViews.ts | 12 +++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 847eaf1b997..594a6114a88 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -34,7 +34,7 @@ import { import { LocalExtensionType, IExtensionManagementService } from 'vs/platform/extensionManagement/common/extensionManagement'; import { InstallVSIXAction } from 'vs/workbench/parts/extensions/electron-browser/extensionsActions'; import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput'; -import { ExtensionsListView, InstalledExtensionsView, RecommendedExtensionsView, WorkspaceRecommendedExtensionsView } from './extensionsViews'; +import { ExtensionsListView, InstalledExtensionsView, RecommendedExtensionsView, WorkspaceRecommendedExtensionsView, BuiltInExtensionsView } from './extensionsViews'; import { OpenGlobalSettingsAction } from 'vs/workbench/parts/preferences/browser/preferencesActions'; import { IProgressService } from 'vs/platform/progress/common/progress'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; @@ -64,6 +64,7 @@ interface SearchInputEvent extends Event { const NonEmptyWorkspaceContext = new RawContextKey('nonEmptyWorkspace', false); const SearchExtensionsContext = new RawContextKey('searchExtensions', false); const SearchInstalledExtensionsContext = new RawContextKey('searchInstalledExtensions', false); +const SearchBuiltInExtensionsContext = new RawContextKey('searchBuiltInExtensions', false); const RecommendedExtensionsContext = new RawContextKey('recommendedExtensions', false); const DefaultRecommendedExtensionsContext = new RawContextKey('defaultRecommendedExtensions', false); @@ -73,6 +74,7 @@ export class ExtensionsViewlet extends PersistentViewsViewlet implements IExtens private nonEmptyWorkspaceContextKey: IContextKey; private searchExtensionsContextKey: IContextKey; private searchInstalledExtensionsContextKey: IContextKey; + private searchBuiltInExtensionsContextKey: IContextKey; private recommendedExtensionsContextKey: IContextKey; private defaultRecommendedExtensionsContextKey: IContextKey; @@ -109,6 +111,7 @@ export class ExtensionsViewlet extends PersistentViewsViewlet implements IExtens this.nonEmptyWorkspaceContextKey = NonEmptyWorkspaceContext.bindTo(contextKeyService); this.searchExtensionsContextKey = SearchExtensionsContext.bindTo(contextKeyService); this.searchInstalledExtensionsContextKey = SearchInstalledExtensionsContext.bindTo(contextKeyService); + this.searchBuiltInExtensionsContextKey = SearchBuiltInExtensionsContext.bindTo(contextKeyService); this.recommendedExtensionsContextKey = RecommendedExtensionsContext.bindTo(contextKeyService); this.defaultRecommendedExtensionsContextKey = DefaultRecommendedExtensionsContext.bindTo(contextKeyService); this.defaultRecommendedExtensionsContextKey.set(!this.configurationService.getValue(ShowRecommendationsOnlyOnDemandKey)); @@ -130,6 +133,7 @@ export class ExtensionsViewlet extends PersistentViewsViewlet implements IExtens viewDescriptors.push(this.createMarketPlaceExtensionsListViewDescriptor()); viewDescriptors.push(this.createInstalledExtensionsListViewDescriptor()); viewDescriptors.push(this.createSearchInstalledExtensionsListViewDescriptor()); + viewDescriptors.push(this.createSearchBuiltInExtensionsListViewDescriptor()); viewDescriptors.push(this.createDefaultRecommendedExtensionsListViewDescriptor()); viewDescriptors.push(this.createOtherRecommendedExtensionsListViewDescriptor()); viewDescriptors.push(this.createWorkspaceRecommendedExtensionsListViewDescriptor()); @@ -142,7 +146,7 @@ export class ExtensionsViewlet extends PersistentViewsViewlet implements IExtens name: localize('marketPlace', "Marketplace"), location: ViewLocation.Extensions, ctor: ExtensionsListView, - when: ContextKeyExpr.and(ContextKeyExpr.has('searchExtensions'), ContextKeyExpr.not('searchInstalledExtensions'), ContextKeyExpr.not('recommendedExtensions')), + when: ContextKeyExpr.and(ContextKeyExpr.has('searchExtensions'), ContextKeyExpr.not('searchInstalledExtensions'), ContextKeyExpr.not('searchBuiltInExtensions'), ContextKeyExpr.not('recommendedExtensions')), weight: 100 }; } @@ -207,6 +211,17 @@ export class ExtensionsViewlet extends PersistentViewsViewlet implements IExtens }; } + private createSearchBuiltInExtensionsListViewDescriptor(): IViewDescriptor { + return { + id: 'extensions.builtInExtensionsList', + name: localize('builtInExtensions', "Built-In"), + location: ViewLocation.Extensions, + ctor: BuiltInExtensionsView, + when: ContextKeyExpr.has('searchBuiltInExtensions'), + weight: 100 + }; + } + async create(parent: Builder): TPromise { parent.addClass('extensions-viewlet'); this.root = parent.getHTMLElement(); @@ -336,6 +351,7 @@ export class ExtensionsViewlet extends PersistentViewsViewlet implements IExtens const value = this.searchBox.value || ''; this.searchExtensionsContextKey.set(!!value); this.searchInstalledExtensionsContextKey.set(InstalledExtensionsView.isInsalledExtensionsQuery(value)); + this.searchBuiltInExtensionsContextKey.set(ExtensionsListView.isBuiltInExtensionsQuery(value)); this.recommendedExtensionsContextKey.set(ExtensionsListView.isRecommendedExtensionsQuery(value)); this.nonEmptyWorkspaceContextKey.set(this.contextService.getWorkbenchState() !== WorkbenchState.EMPTY); diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts index ad80f68fdfb..dbb7bf36faa 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts @@ -536,6 +536,18 @@ export class InstalledExtensionsView extends ExtensionsListView { } } +export class BuiltInExtensionsView extends ExtensionsListView { + + async show(query: string): TPromise> { + if (!ExtensionsListView.isBuiltInExtensionsQuery(query)) { + return super.show(query); + } + let searchBuiltInQuery = '@builtin'; + searchBuiltInQuery = query ? searchBuiltInQuery + ' ' + query : searchBuiltInQuery; + return super.show(searchBuiltInQuery); + } +} + export class RecommendedExtensionsView extends ExtensionsListView { async show(query: string): TPromise> { -- GitLab