escriba-core 0.1.3

Foundational types for the escriba editor — Position, Range, Cursor, Selection, Mode, Motion, Operator, Edit, Action. No I/O, no rendering, pure types.
Documentation

escriba-core — foundational types.

No I/O. No rendering. No tatara-lisp. Just the typed vocabulary every other escriba crate speaks:

  • [Position] — line + column, 0-indexed, UTF-8 char offsets.
  • [Range] — half-open [start, end).
  • [Cursor] — anchor + head (for selection growth).
  • [Selection] — multi-cursor ordered set.
  • [Mode] — the vim-ish modal state.
  • [Motion] / [Operator] — compose into commands.
  • [Edit] — primitive mutation.
  • [Action] — top-level dispatched-to-buffer command.
  • [BufferId] / [WindowId] — opaque identifiers.

Every type derives schemars::JsonSchema so escriba-api can emit an OpenAPI spec over the full domain surface — the editor's entire public shape is spec-first by construction.