Buffer Internals

Arcus stores text in a rope (src/core/rope.lisp) and indexes line starts in mutable fixnum arrays (src/core/buffer.lisp).

Buffer state

Beyond text, buffer stores:

  • undo history
  • parse state (tree-sitter)
  • buffer modes
  • folds
  • diagnostics
  • virtual text
  • edit version counters for cache invalidation