提交 ed0e9039 编写于 作者: S Sandeep Somavarapu

Fix #17068

上级 aacec92b
......@@ -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<boolean>('nonEmptyWorkspace', false);
const SearchExtensionsContext = new RawContextKey<boolean>('searchExtensions', false);
const SearchInstalledExtensionsContext = new RawContextKey<boolean>('searchInstalledExtensions', false);
const SearchBuiltInExtensionsContext = new RawContextKey<boolean>('searchBuiltInExtensions', false);
const RecommendedExtensionsContext = new RawContextKey<boolean>('recommendedExtensions', false);
const DefaultRecommendedExtensionsContext = new RawContextKey<boolean>('defaultRecommendedExtensions', false);
......@@ -73,6 +74,7 @@ export class ExtensionsViewlet extends PersistentViewsViewlet implements IExtens
private nonEmptyWorkspaceContextKey: IContextKey<boolean>;
private searchExtensionsContextKey: IContextKey<boolean>;
private searchInstalledExtensionsContextKey: IContextKey<boolean>;
private searchBuiltInExtensionsContextKey: IContextKey<boolean>;
private recommendedExtensionsContextKey: IContextKey<boolean>;
private defaultRecommendedExtensionsContextKey: IContextKey<boolean>;
......@@ -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<boolean>(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<void> {
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);
......
......@@ -536,6 +536,18 @@ export class InstalledExtensionsView extends ExtensionsListView {
}
}
export class BuiltInExtensionsView extends ExtensionsListView {
async show(query: string): TPromise<IPagedModel<IExtension>> {
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<IPagedModel<IExtension>> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册