docs.rs failed to build escriba-lisp-0.1.9
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Tatara-Lisp ↔ escriba bridge.
Mirrors frost-lisp
for the editor domain. The pleme-io Rust + Lisp pattern:
- Rust owns the types, invariants, and execution.
- Lisp owns the authoring surface — users declare what they want the editor to be, and the runtime resolves it.
This crate parses a Lisp source and returns an [ApplyPlan] —
a typed bundle of every declaration found. The escriba binary
then applies the plan to live state (keymap, command registry,
options, hooks). Keeping the plan as data (vs. mutating live
state directly) means the bridge stays trivially testable and
composable: load several files, merge plans, apply once.
Supported forms
| Keyword | Spec type |
|---|---|
defkeybind |
[KeybindSpec] |
defcmd |
[CmdSpec] |
defoption |
[OptionSpec] |
deftheme |
[ThemeSpec] |
defhook |
[HookSpec] |
defft |
[FiletypeSpec] |
defabbrev |
[AbbrevSpec] |
defsnippet |
[SnippetSpec] |
defmode |
[MajorModeSpec] |
defplugin |
[PluginSpec] |
defhighlight |
[HighlightSpec] |
defstatusline |
[StatusLineSpec] |
defbufferline |
[BufferLineSpec] |
deflsp |
[LspServerSpec] |
defformatter |
[FormatterSpec] |
defpalette |
[PaletteSpec] |
deficon |
[IconSpec] |
defdap |
[DapAdapterSpec] |
defgate |
[GateSpec] — convergence pre/post-condition on an editor event |
deftextobject |
[TextObjectSpec] — tree-sitter text object bound to vim i/a grammar |
defworkflow |
[WorkflowSpec] — named DAG of gates + actions (editor-layer workflow) |
defsession |
[SessionSpec] — named workspace layout (absorbs vim :mksession / vscode workspaces) |
defeffect |
[EffectSpec] — ghostty-style GPU shader effect (cursor glow / bloom / scanlines) |
defterm |
[TermSpec] — terminal session spec (wire-compatible with mado::term_spec::TermSpec) |
defmark |
[MarkSpec] — named marks with jump/anchor/glance kind semantics |
deftask |
[TaskSpec] — single shell task with filetype + cwd + env scope (absorbs vscode tasks.json / nvim asynctasks) |
defschedule |
[ScheduleSpec] — typed declarative triggers (cron / interval / idle / startup) for commands + workflows (invention — no editor ships this typed) |
defkmacro |
[KmacroSpec] — declarative keyboard macro (vim q-register / emacs kmacro.el as rc-authored typed spec) |
defattest |
[AttestSpec] — content-addressed rc integrity attestation (BLAKE3-128 of ApplyPlan::summary(); invention — pleme-io convergence-computing at the editor layer) |
defruler |
[RulerSpec] — declarative column rulers / visual guides (absorbs vim colorcolumn, vscode editor.rulers, jetbrains hard-wrap margin) |
defmcp |
[McpToolSpec] — declarative MCP-tool binding (invention — no editor ships typed cross-process MCP import) |
deffold |
[FoldSpec] — declarative folding rules per filetype (absorbs vim foldmethod, nvim-treesitter-fold, vscode FoldingRangeProvider) |
Extending
Add a new module next to the others with a #[derive(DeriveTataraDomain)]
struct plus #[tatara(keyword = "…")], re-export it from [lib], and
add a line in [apply_source] that pulls it out via
tatara_lisp::compile_typed.