Skip to content

Interface: LayoutService

Defined in: packages/sdk/src/layout-service.ts:40

Consumer API for app layout, exposed as ExtensionContext.layout. Read side-panel collapse state and drive it.

Methods

getState()

ts
getState(): LayoutState;

Defined in: packages/sdk/src/layout-service.ts:42

Current frozen layout state.

Returns

LayoutState


subscribe()

ts
subscribe(listener): Disposable;

Defined in: packages/sdk/src/layout-service.ts:44

Subscribe to layout changes; dispose to stop.

Parameters

listener

(s) => void

Returns

Disposable


toggleSidePanel()

ts
toggleSidePanel(location): void;

Defined in: packages/sdk/src/layout-service.ts:46

Toggle a side column between collapsed and expanded.

Parameters

location

SideLocation

Returns

void


setSidePanelCollapsed()

ts
setSidePanelCollapsed(location, collapsed): void;

Defined in: packages/sdk/src/layout-service.ts:48

Set a side column's collapsed state explicitly.

Parameters

location

SideLocation

collapsed

boolean

Returns

void


revealSidePanel()

ts
revealSidePanel(id): void;

Defined in: packages/sdk/src/layout-service.ts:55

Reveal a registered side panel by its SidePanel.id: make it the active panel in its column and expand that column if collapsed. Use to bring a panel to the foreground from a command or keybinding (e.g. "Find in Files" focusing the Search panel). No-op if no panel with that id is registered.

Parameters

id

string

Returns

void


openPanel()

ts
openPanel(
   kindId, 
   params?, 
   options?): void;

Defined in: packages/sdk/src/layout-service.ts:71

Open a new tab in the center dock for the given registered DockPanelKind. Use this to programmatically open a custom panel kind from a command (e.g. a "Web Viewer: Open" command that creates a new web-viewer tab). No-op when the center dock has no active workspace.

Parameters

kindId

string

The DockPanelKind.id to instantiate.

params?

Record<string, unknown>

Arbitrary params forwarded to the panel component. Serialized into ws.dockLayout so state survives workspace close/reopen.

options?

singleton: true opens at most one instance at a time: if a panel with kindId already exists, it is focused instead of creating a new one. The panel's id equals kindId (not UUID-based) when singleton is set.

singleton?

boolean

Returns

void


openSingletonPanel()

ts
openSingletonPanel(kindId, params?): void;

Defined in: packages/sdk/src/layout-service.ts:81

Open a singleton dock panel.

Parameters

kindId

string

params?

Record<string, unknown>

Returns

void

Deprecated

Use openPanel(kindId, params, { singleton: true }) instead. This method will be removed in a future release.