This commit is contained in:
Sandeep Somavarapu 2021-03-25 09:46:19 +01:00
parent 5b636c4a7b
commit e8111f76b5
2 changed files with 15 additions and 6 deletions

View file

@ -44,7 +44,7 @@ import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegis
import { Color } from 'vs/base/common/color';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation';
import { ExtensionsTree, ExtensionData, ExtensionsGridView, getExtensions } from 'vs/workbench/contrib/extensions/browser/extensionsViewer';
import { ExtensionsTree, ExtensionData, ExtensionsGridView, getExtensions, IExtensionsGridViewVirtualDelegate } from 'vs/workbench/contrib/extensions/browser/extensionsViewer';
import { ShowCurrentReleaseNotesActionId } from 'vs/workbench/contrib/update/common/update';
import { KeybindingParser } from 'vs/base/common/keybindingParser';
import { IStorageService } from 'vs/platform/storage/common/storage';
@ -1045,7 +1045,9 @@ export class ExtensionEditor extends EditorPane {
const scrollableContent = new DomScrollableElement(content, { useShadows: false });
append(parent, scrollableContent.getDomNode());
const extensionsGridView = this.instantiationService.createInstance(ExtensionsGridView, content, new Delegate());
const extensionsGridView = this.instantiationService.createInstance(ExtensionsGridView, content, new class ExtensionsGridViewVirtualDelegate extends Delegate implements IExtensionsGridViewVirtualDelegate {
getWidth() { return 275; }
});
const extensions: IExtension[] = await getExtensions(manifest.extensionPack!, this.extensionsWorkbenchService);
extensionsGridView.setExtensions(extensions);
scrollableContent.scanDomNode();

View file

@ -22,23 +22,27 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { CancellationToken } from 'vs/base/common/cancellation';
import { isNonEmptyArray } from 'vs/base/common/arrays';
import { IColorMapping } from 'vs/platform/theme/common/styler';
import { Renderer, Delegate } from 'vs/workbench/contrib/extensions/browser/extensionsList';
import { Renderer } from 'vs/workbench/contrib/extensions/browser/extensionsList';
import { listFocusForeground, listFocusBackground } from 'vs/platform/theme/common/colorRegistry';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { StandardMouseEvent } from 'vs/base/browser/mouseEvent';
import { KeyCode } from 'vs/base/common/keyCodes';
import { IListAccessibilityProvider } from 'vs/base/browser/ui/list/listWidget';
export interface IExtensionsGridViewVirtualDelegate extends IListVirtualDelegate<IExtension> {
getWidth?(element: IExtension): number;
}
export class ExtensionsGridView extends Disposable {
readonly element: HTMLElement;
private readonly renderer: Renderer;
private readonly delegate: Delegate;
private readonly delegate: IExtensionsGridViewVirtualDelegate;
private readonly disposableStore: DisposableStore;
constructor(
parent: HTMLElement,
delegate: Delegate,
delegate: IExtensionsGridViewVirtualDelegate,
@IInstantiationService private readonly instantiationService: IInstantiationService
) {
super();
@ -55,7 +59,10 @@ export class ExtensionsGridView extends Disposable {
private renderExtension(extension: IExtension, index: number): void {
const extensionContainer = dom.append(this.element, dom.$('.extension-container'));
extensionContainer.style.height = `${this.delegate.getHeight()}px`;
extensionContainer.style.height = `${this.delegate.getHeight(extension)}px`;
if (this.delegate.getWidth) {
extensionContainer.style.width = `${this.delegate.getWidth(extension)}px`;
}
extensionContainer.setAttribute('tabindex', '0');
const template = this.renderer.renderTemplate(extensionContainer);