Skip to content

Plugin

Defined in: plugin.ts:212

Base class for Lapis plugins.

Plugins extend Component, so teardown callbacks, events, commands, and DOM listeners registered through helper methods are cleaned up when the plugin unloads.

new Plugin(app, manifest): Plugin

Defined in: plugin.ts:225

App

PluginManifest

Plugin

Component.constructor

readonly app: App

Defined in: plugin.ts:226


basePath: string = ""

Defined in: plugin.ts:213


children: Component<Record<string, any>>[] = []

Defined in: view.svelte.ts:32

Component.children


loaded: boolean = false

Defined in: view.svelte.ts:34

Component.loaded


readonly manifest: PluginManifest

Defined in: plugin.ts:227

get containerEl(): HTMLElement

Defined in: view.svelte.ts:38

HTMLElement

set containerEl(el): void

Defined in: view.svelte.ts:42

HTMLElement

void

Component.containerEl


get enabled(): boolean

Defined in: plugin.ts:305

boolean


get errorMessage(): string | null

Defined in: plugin.ts:325

string | null


get failureCount(): number

Defined in: plugin.ts:333

number


get grantedCapabilities(): HostedPluginCapability[]

Defined in: plugin.ts:345

HostedPluginCapability[]


get hostMode(): string

Defined in: plugin.ts:337

string


get id(): string

Defined in: plugin.ts:349

string


get lastFailureMessage(): string | null

Defined in: plugin.ts:329

string | null


get provenance(): PluginProvenance

Defined in: plugin.ts:313

PluginProvenance


get requestedCapabilities(): HostedPluginCapability[]

Defined in: plugin.ts:341

HostedPluginCapability[]


get required(): boolean

Defined in: plugin.ts:317

boolean


get source(): PluginSource

Defined in: plugin.ts:309

PluginSource


get state(): PluginRuntimeState

Defined in: plugin.ts:321

PluginRuntimeState

addChild<T>(component): T

Defined in: view.svelte.ts:162

Adds a child component, loading it if this component is loaded

T extends Component<Record<string, any>>

T

T

Component.addChild


addCommand(command): Command

Defined in: plugin.ts:629

Command

Command


addRibbonIcon(icon, title, callback): void

Defined in: plugin.ts:612

string

string

(evt) => any

void


addSettingTab(settingTab): void

Defined in: plugin.ts:960

Register a settings tab, which allows users to change settings.

PluginSettingTab

void

https://docs.obsidian.md/Plugins/User+interface/Settings#Register+a+settings+tab


addStatusBarItem(): HTMLElement

Defined in: plugin.ts:454

HTMLElement


configureRuntime(options?): void

Defined in: plugin.ts:252

Apply runtime metadata resolved by the plugin manager before activation.

PluginRuntimeOptions = {}

Runtime source, host, and capability information.

void


deleteGeneratedState(key): Promise<void>

Defined in: plugin.ts:540

string

Promise<void>


disable(): Promise<void>

Defined in: plugin.ts:431

Promise<void>


dispatch<T>(eventName, …args): boolean

Defined in: events.ts:105

T extends string

T

any[]

boolean

Component.dispatch


emit<T>(eventName, …args): boolean

Defined in: events.ts:98

T extends string

T

any[]

boolean

Component.emit


enable(): Promise<void>

Defined in: plugin.ts:283

Enable the plugin and run its onload() lifecycle.

Promise<void>

A promise that resolves when activation completes.


load(): void

Defined in: view.svelte.ts:51

Load this component and its children

void

Component.load


loadData(): Promise<any>

Defined in: plugin.ts:493

Load settings data from disk. Data is stored in data.json in the plugin folder.

Promise<any>

https://docs.obsidian.md/Plugins/User+interface/Settings


loadGeneratedState<T>(key): Promise<T | null>

Defined in: plugin.ts:525

T

string

Promise<T | null>


measureTelemetry<T>(name, callback, options?): T

Defined in: plugin.ts:409

T

string

(span) => T

TelemetryMeasurementOptions = {}

T


measureTelemetryAsync<T>(name, callback, options?): Promise<T>

Defined in: plugin.ts:420

T

string

(span) => Promise<T>

TelemetryMeasurementOptions = {}

Promise<T>


migrateDataToGeneratedState<T>(legacyKey, options?): Promise<T | null>

Defined in: plugin.ts:547

T = unknown

string

string

boolean

Promise<T | null>


off<T>(eventName, listener, context?, once?): void

Defined in: events.ts:78

T extends string

T

(…args) => void

any

boolean

void

Component.off


offref<T>(ref): void

Defined in: events.ts:87

T extends string

EventRef<Record<string, any>, T>

void

Component.offref


on<T>(eventName, listener, context?): EventRef<Record<string, any>, T, any>

Defined in: events.ts:48

T extends string

T

(…args) => void

any

EventRef<Record<string, any>, T, any>

Component.on


once<T>(eventName, listener, context?): EventRef<Record<string, any>, T, any>

Defined in: events.ts:63

T extends string

T

(…args) => void

any

EventRef<Record<string, any>, T, any>

Component.once


onExternalSettingsChange(): void | Promise<void>

Defined in: plugin.ts:784

void | Promise<void>


abstract onload(): void | Promise<void>

Defined in: plugin.ts:237

Load plugin state and register plugin-owned resources.

void | Promise<void>

Component.onload


onunload(): void | Promise<void>

Defined in: plugin.ts:244

Release plugin-owned resources before the plugin unloads.

void | Promise<void>

Component.onunload


onUserEnable(): void | Promise<void>

Defined in: plugin.ts:782

void | Promise<void>


register(cb): void

Defined in: view.svelte.ts:189

Registers a callback to be called when unloading

() => any

void

Component.register


registerBasesView(viewId, registration): boolean

Defined in: plugin.ts:756

string

any

boolean


registerCliHandler(name, prefix, callback): void

Defined in: plugin.ts:748

string

string

(…args) => any

void


registerConfigurationOptionSource(id, provider): ConfigurationOptionSourceRegistration

Defined in: plugin.ts:716

string

Omit<ConfigurationOptionSourceProvider, "pluginId">

ConfigurationOptionSourceRegistration


registerContextKey(key, defaultValue?): ScopedContextKey

Defined in: plugin.ts:656

string

ContextKeyValue

ScopedContextKey


registerDomEvent<K>(el, type, callback, options?): void

Defined in: view.svelte.ts:208

Registers an DOM event to be detached when unloading

K extends keyof HTMLElementEventMap

HTMLElement

K

(this, ev) => any

boolean | AddEventListenerOptions

void

Component.registerDomEvent

registerDomEvent<K>(el, type, callback, options?): void

Defined in: view.svelte.ts:214

Registers an DOM event to be detached when unloading

K extends keyof DocumentEventMap

Document

K

(this, ev) => any

boolean | AddEventListenerOptions

void

Component.registerDomEvent

registerDomEvent<K>(el, type, callback, options?): void

Defined in: view.svelte.ts:220

Registers an DOM event to be detached when unloading

K extends keyof WindowEventMap

Window

K

(this, ev) => any

boolean | AddEventListenerOptions

void

Component.registerDomEvent


registerEditorExtension(extension, viewType?): void

Defined in: plugin.ts:834

Registers a CodeMirror 6 extension. To reconfigure cm6 extensions for a plugin on the fly, an array should be passed in, and modified dynamically. Once this array is modified, calling Workspace.updateOptions will apply the changes.

ExtType

Must be a CodeMirror 6 Extension, or an array of Extensions.

string

void


registerEditorSuggest(editorSuggest, viewType?): void

Defined in: plugin.ts:814

Register an EditorSuggest which can provide live suggestions while the user is typing.

EditorSuggest<any>

string = "markdown"

void


registerEditorView(contribution): void

Defined in: plugin.ts:707

EditorViewContribution

void


registerEvent<T, K>(eventRef): void

Defined in: view.svelte.ts:193

T extends ValidEventTypes

K extends string | symbol

EventRef<T, K, any>

void

Component.registerEvent


registerExtensions(extensions, viewType?): void

Defined in: plugin.ts:786

string[]

string = "markdown"

void


registerHoverLinkSource(id, info): void

Defined in: plugin.ts:733

string

any

void


registerInterval(id): void

Defined in: view.svelte.ts:199

Timeout

void

Component.registerInterval


registerLapisServiceProvider(registration): void

Defined in: plugin.ts:772

Omit<LapisServiceProviderRegistration, "pluginId">

void


registerMarkdownCodeBlockProcessor(language, handler, sortOrder?): MarkdownPostProcessor

Defined in: plugin.ts:882

string

(source, el, ctx) => void | Promise<any>

number

MarkdownPostProcessor


registerMarkdownDirectiveRenderer(directive, renderer): void

Defined in: plugin.ts:930

string

MarkdownDirectiveRenderer

void


registerMarkdownPostProcessor(postProcessor, sortOrder?): MarkdownPostProcessor

Defined in: plugin.ts:848

Registers a post processor, to change how the document looks in reading mode.

MarkdownPostProcessor

number

MarkdownPostProcessor

https://docs.obsidian.md/Plugins/Editor/Markdown+post+processing


registerMarkdownViewMenuItem(provider): void

Defined in: plugin.ts:940

MarkdownViewMenuItemProvider

void


registerMetadataProcessor(processor, ext?): void

Defined in: plugin.ts:947

MetadataProcessor

string = "md"

void


registerObsidianProtocolHandler(action, handler): void

Defined in: plugin.ts:740

string

(params) => any

void


registerShortcut(handler): void

Defined in: plugin.ts:671

KeymapEventHandler

void


registerSidebarView(type, viewCreator, options?): void

Defined in: plugin.ts:687

string

ViewCreator

string

string

string

boolean

string

"right" | "left"

string

void


registerTypeWidget(widget): void

Defined in: plugin.ts:796

TypeWidget

void


registerView(type, viewCreator): void

Defined in: plugin.ts:675

string

ViewCreator

void


removeChild<T>(component): T

Defined in: view.svelte.ts:176

Removes a child component, unloading it

T extends Component<Record<string, any>>

T

T

Component.removeChild


removeCommand(commandId): void

Defined in: plugin.ts:652

string

void


saveData(data): Promise<void>

Defined in: plugin.ts:516

Write settings data to disk. Data is stored in data.json in the plugin folder.

any

Promise<void>

https://docs.obsidian.md/Plugins/User+interface/Settings


saveGeneratedState(key, value): Promise<void>

Defined in: plugin.ts:533

string

unknown

Promise<void>


startTelemetrySpan(name, options?): TelemetrySpan

Defined in: plugin.ts:399

string

TelemetrySpanOptions = {}

TelemetrySpan


trigger<T>(eventName, …args): boolean

Defined in: events.ts:91

T extends string

T

any[]

boolean

Component.trigger


tryTrigger<T>(evt, …args): void

Defined in: events.ts:112

T extends string

EventRef<Record<string, any>, T>

any[]

void

Component.tryTrigger


unload(): void

Defined in: view.svelte.ts:92

Unload this component and its children

void

Component.unload