DroppyMarkdownEditorCommands

A handle onto the host editor's command bus (DroppyKit 0.2.2).

@MainActor final class DroppyMarkdownEditorCommands

A droplet creates one, hands it to DroppyMarkdownEditor through DroppyMarkdownEditorContext, and calls apply(_:) from its toolbar buttons. Before the editor mounts, and in any host that supplies no editor, every call is a no-op rather than an error: a formatting button that cannot act yet is a cosmetic problem, not one worth throwing over.

Initializers

init()

@MainActor init()

Creates an unbound command bus.

Properties

hostRefreshFormatting

@MainActor var hostRefreshFormatting: (() -> Void)?

Bound by the host when the editor mounts, cleared on dismantle. Droplets never assign this.

hostResign

@MainActor var hostResign: (() -> Void)?

Bound by the host when the editor mounts, cleared on dismantle. Droplets never assign this.

hostSink

@MainActor var hostSink: ((DroppyMarkdownToolbarAction) -> Void)?

Bound by the host when the editor mounts, cleared on dismantle. Droplets never assign this.

Methods

apply(_:)

@MainActor func apply(_ action: DroppyMarkdownToolbarAction)

Applies a formatting command to the bound editor.

refreshFormatting()

@MainActor func refreshFormatting()

Re-runs the markdown formatter without a text change, so existing ==spans== recolor live after a pen change.

resign()

@MainActor func resign()

Resigns first responder. Used when a title field takes focus.