mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 19:18:59 +01:00
Show the custom views contributed to custom view container by the same extension on the top
This commit is contained in:
@@ -90,7 +90,7 @@ class ViewsContainersExtensionHandler implements IWorkbenchContribution {
|
||||
const cssClass = `extensionViewlet-test`;
|
||||
const icon = URI.parse(require.toUrl('./media/test.svg'));
|
||||
|
||||
this.registerCustomViewlet({ id: TEST_VIEW_CONTAINER_ID, title, icon }, TEST_VIEW_CONTAINER_ORDER, cssClass);
|
||||
this.registerCustomViewlet({ id: TEST_VIEW_CONTAINER_ID, title, icon }, TEST_VIEW_CONTAINER_ORDER, cssClass, void 0);
|
||||
}
|
||||
|
||||
private handleAndRegisterCustomViewContainers() {
|
||||
@@ -143,18 +143,18 @@ class ViewsContainersExtensionHandler implements IWorkbenchContribution {
|
||||
containers.forEach((descriptor, index) => {
|
||||
const cssClass = `extensionViewlet-${descriptor.id}`;
|
||||
const icon = resources.joinPath(extension.extensionLocation, descriptor.icon);
|
||||
this.registerCustomViewlet({ id: `workbench.view.extension.${descriptor.id}`, title: descriptor.title, icon }, TEST_VIEW_CONTAINER_ORDER + index + 1, cssClass);
|
||||
this.registerCustomViewlet({ id: `workbench.view.extension.${descriptor.id}`, title: descriptor.title, icon }, TEST_VIEW_CONTAINER_ORDER + index + 1, cssClass, extension.id);
|
||||
});
|
||||
}
|
||||
|
||||
private registerCustomViewlet(descriptor: IUserFriendlyViewsContainerDescriptor2, order: number, cssClass: string): void {
|
||||
private registerCustomViewlet(descriptor: IUserFriendlyViewsContainerDescriptor2, order: number, cssClass: string, extensionId: string): void {
|
||||
const viewContainersRegistry = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry);
|
||||
const viewletRegistry = Registry.as<ViewletRegistry>(ViewletExtensions.Viewlets);
|
||||
const id = descriptor.id;
|
||||
|
||||
if (!viewletRegistry.getViewlet(id)) {
|
||||
|
||||
viewContainersRegistry.registerViewContainer(id);
|
||||
viewContainersRegistry.registerViewContainer(id, extensionId);
|
||||
|
||||
// Register as viewlet
|
||||
class CustomViewlet extends ViewContainerViewlet {
|
||||
|
||||
@@ -113,7 +113,7 @@ class ViewsContainersExtensionHandler implements IWorkbenchContribution {
|
||||
}
|
||||
const registeredViews = ViewsRegistry.getViews(container);
|
||||
const viewIds = [];
|
||||
const viewDescriptors = coalesce(entry.value.map(item => {
|
||||
const viewDescriptors = coalesce(entry.value.map((item, index) => {
|
||||
// validate
|
||||
if (viewIds.indexOf(item.id) !== -1) {
|
||||
collector.error(localize('duplicateView1', "Cannot register multiple views with same id `{0}` in the view container `{1}`", item.id, container.id));
|
||||
@@ -132,7 +132,8 @@ class ViewsContainersExtensionHandler implements IWorkbenchContribution {
|
||||
when: ContextKeyExpr.deserialize(item.when),
|
||||
canToggleVisibility: true,
|
||||
collapsed: this.showCollapsed(container),
|
||||
treeViewer: this.instantiationService.createInstance(CustomTreeViewer, item.id, container)
|
||||
treeViewer: this.instantiationService.createInstance(CustomTreeViewer, item.id, container),
|
||||
order: extension.description.id === container.extensionId ? index + 1 : void 0
|
||||
};
|
||||
|
||||
viewIds.push(viewDescriptor.id);
|
||||
|
||||
Reference in New Issue
Block a user