Skip to main content

api.ui

Interface: IUiApi

Implementation tier: T1 (panels, decorators, hovers, menus, notifications) / T2 (displayMode, statusBar, file picker)

Contribute UI elements: panels, verse decorators, hover providers, context menu items, display modes, status bar items, notifications, quick-picks, input boxes, confirm dialogs, and file pickers.

Permissions

  • ui:contribute-pane
  • ui:verse-decorator
  • ui:verse-hover
  • ui:context-menu
  • ui:notification
  • ui:status-bar
  • fs:read-user (for pickFile)
  • fs:write-user (for saveFile)

Methods

registerPanelType

registerPanelType(def: ExtensionPanelTypeDef): Promise<DisposableHandle>

Contribute a new panel/content type.

Parameters:

NameTypeRequiredDescription
defExtensionPanelTypeDefYes

Returns: Promise<DisposableHandle>


registerVerseDecorator

registerVerseDecorator(d: VerseDecoratorDescriptor): Promise<DisposableHandle>

Contribute a verse decorator.

Parameters:

NameTypeRequiredDescription
dVerseDecoratorDescriptorYes

Returns: Promise<DisposableHandle>


updateVerseDecorations

updateVerseDecorations(
groupId: string,
decorations: DecorationDto[],
): Promise<void>

Update an existing decoration group (matched by groupId). Use this when data behind a decoration changes — e.g. a stemming overlay rebuilds.

Parameters:

NameTypeRequiredDescription
groupIdstringYes
decorationsDecorationDto[]Yes

Returns: Promise<void>


registerVerseHover

registerVerseHover(h: VerseHoverProviderDescriptor): Promise<DisposableHandle>

Contribute hover content for verses.

Parameters:

NameTypeRequiredDescription
hVerseHoverProviderDescriptorYes

Returns: Promise<DisposableHandle>


registerContextMenu

registerContextMenu(
target: ContextMenuTarget,
item: ContextMenuItemDescriptor,
): Promise<DisposableHandle>

Add an item to a built-in context menu.

Parameters:

NameTypeRequiredDescription
targetContextMenuTargetYes
itemContextMenuItemDescriptorYes

Returns: Promise<DisposableHandle>


registerDisplayMode

registerDisplayMode(def: DisplayModeDescriptor): Promise<DisposableHandle>

Contribute a custom verse display mode. Appears in the Bible pane's Display Mode picker alongside Simple/Standard/Study. The host calls renderEndpoint for each visible verse, and the extension returns either decorations to overlay on the standard rendering, or an iframe URL to fully replace the verse's rendering.

Parameters:

NameTypeRequiredDescription
defDisplayModeDescriptorYes

Returns: Promise<DisposableHandle>


registerStatusBarItem

registerStatusBarItem(item: StatusBarItemDescriptor): Promise<DisposableHandle>

Contribute a status bar item. Useful for "X items indexed", "Connected to logos.com", etc.

Parameters:

NameTypeRequiredDescription
itemStatusBarItemDescriptorYes

Returns: Promise<DisposableHandle>


showNotification

showNotification(msg: LocalizedString, opts?: NotificationOpts): Promise<void>

Show a non-modal toast.

Parameters:

NameTypeRequiredDescription
msgLocalizedStringYes
optsNotificationOptsNo

Returns: Promise<void>


showQuickPick

showQuickPick<T>(
items: QuickPickItemDescriptor<T>[],
opts?: QuickPickOpts,
): Promise<T | undefined>

Show a quick-pick prompt. The promise resolves with the user's selection or undefined.

Parameters:

NameTypeRequiredDescription
itemsQuickPickItemDescriptor<T>[]Yes
optsQuickPickOptsNo

Returns: Promise<T | undefined>


showInputBox

showInputBox(opts: InputBoxOpts): Promise<string | undefined>

Show a single-line input prompt.

Parameters:

NameTypeRequiredDescription
optsInputBoxOptsYes

Returns: Promise<string | undefined>


showConfirm

showConfirm(opts: ConfirmOpts): Promise<boolean>

Show a modal confirm dialog.

Parameters:

NameTypeRequiredDescription
optsConfirmOptsYes

Returns: Promise<boolean>


pickFile

pickFile(opts?: PickFileOpts): Promise<PickedFileDto | undefined>

Open the system file picker for the user to choose a file. Requires fs:read-user. The host returns the file contents (not the path) so the extension never sees absolute paths.

Parameters:

NameTypeRequiredDescription
optsPickFileOptsNo

Returns: Promise<PickedFileDto | undefined>


saveFile

saveFile(
content: string | ArrayBuffer | Uint8Array,
opts?: SaveFileOpts,
): Promise<boolean>

Open the system save picker. Requires fs:write-user.

Parameters:

NameTypeRequiredDescription
contentstring | ArrayBuffer | Uint8ArrayYes
optsSaveFileOptsNo

Returns: Promise<boolean>