Skip to main content

api.workspace

Interface: IWorkspaceApi

Implementation tier: T1

Query and manage the workspace layout: get active/open panels, open or close panels, and listen for panel lifecycle events.

Methods

getActivePanel

getActivePanel(): Promise<PanelInfoDto | null>

Returns: Promise<PanelInfoDto | null>


getOpenPanels

getOpenPanels(): Promise<PanelInfoDto[]>

Returns: Promise<PanelInfoDto[]>


openPanel

openPanel(contentType: string, opts?: OpenPanelOpts): Promise<string>

Returns the panelId.

Parameters:

NameTypeRequiredDescription
contentTypestringYes
optsOpenPanelOptsNo

Returns: Promise<string>


closePanel

closePanel(panelId: string): Promise<void>

Parameters:

NameTypeRequiredDescription
panelIdstringYes

Returns: Promise<void>


Events

onDidChangeActivePanel

onDidChangeActivePanel: IEventApi<PanelInfoDto | null>

Payload type: PanelInfoDto | null

Subscribe to this event:

const handle = await api.workspace.onDidChangeActivePanel.subscribe((payload) => {
// Handle event
});

// Later, to unsubscribe:
await handle.dispose();

onDidOpenPanel

onDidOpenPanel: IEventApi<PanelInfoDto>

Payload type: PanelInfoDto

Subscribe to this event:

const handle = await api.workspace.onDidOpenPanel.subscribe((payload) => {
// Handle event
});

// Later, to unsubscribe:
await handle.dispose();

onDidClosePanel

onDidClosePanel: IEventApi<{ panelId: string; contentType: string }>

Payload type: { panelId: string; contentType: string }

Subscribe to this event:

const handle = await api.workspace.onDidClosePanel.subscribe((payload) => {
// Handle event
});

// Later, to unsubscribe:
await handle.dispose();