Trees for text.
A module for representing a set of breaks, typically used for storing the result of line breaking.
Fast comparison of rope regions, principally for diffing.
A data structure for representing editing operations on ropes. It's useful to explicitly represent these operations so they can be shared across multiple subsystems.
Computing deltas between two ropes.
An engine for handling edits (possibly from async sources) and undo. It conceptually represents the current text and all edit history for that text.
Implementation of string finding in ropes.
Closed-open intervals, and operations on them.
A data structure for representing multi-subsets of sequences (typically strings).
A rope data structure with a line count metric and (soon) other useful info.
A module for representing spans (in an interval tree), useful for rich text annotations. It is parameterized over a data type, so can be used for storing different annotations.
A general b-tree structure suitable for ropes and the like.