Skip to main content

Crate escriba_plugin

Crate escriba_plugin 

Source
Expand description

escriba-plugin — caixa-native plugin model for escriba.

An escriba plugin IS a caixa. A plugin is a directory (a git repo with a caixa.lisp at its root — the pleme-io git-as-registry model) whose escriba entry is tatara-lisp declaring the plugin’s keybinds / commands / options / highlights via escriba-lisp def-forms (and, later, imperative setup via escriba-vm). The user’s rc DECLARES a plugin; escriba RESOLVES it to a plugin directory, LOADS its entry, and ACTIVATES it (applies the entry’s def-forms to live EditorState) either eagerly or when an activation trigger fires.

Lineage-safe by design. escriba reads the plugin’s tatara-lisp with its OWN (pleme-io/tatara-lisp) parser; it deliberately does NOT depend on caixa-core (which is on the other tatara-lisp lineage) — that would re-introduce a two-lineage conflict. Plugin install/resolve uses the caixa git model (feira / git) out of band; this crate is the consumer side: discovery, load, and trigger-gated activation.

Re-exports§

pub use forge::CaixaArtifacts;
pub use forge::ForgeError;
pub use forge::emit_flake_nix;
pub use forge::forge_plugin;
pub use forge::write_plugin_caixa;

Modules§

forge
escriba-plugin::forge — emit a plugin caixa’s published artifacts from ONE typed catalog source.

Structs§

PluginCaixa
A loaded plugin caixa: identity + the tatara-lisp entry source + parsed activation triggers + on-disk root.

Enums§

ActivationTrigger
When a plugin’s setup is applied to the editor — the lazy.nvim activation model, typed.
PluginError

Constants§

ENTRY_CANDIDATES
The conventional relative paths (priority order) where a plugin caixa keeps its escriba entry. First existing wins.