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:
| Name | Type | Required | Description |
|---|---|---|---|
contentType | string | Yes | |
opts | OpenPanelOpts | No |
Returns: Promise<string>
closePanel
closePanel(panelId: string): Promise<void>
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
panelId | string | Yes |
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();