Scribe: A text editor toolkit
Scribe was extracted from Amp, a text editor written in Rust. It provides a layered set of types for dealing with text documents.
GapBuffer- Data structure optimized for successive, close-proximity edits.
Buffer- Wrapper that provides bounds-checked cursor management, file persistence, undo/redo (with grouping), lexing (scope-qualified tokens), search, and more.
Workspace- Collection of buffers with type detection, and buffer selection and lexer management.
More documentation can be found here.