Skip to content
bury9555Public
forked from rudedogg/rope

About

Ropes for Swift based on the article by Boehm, Atkinson, Plass

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

301 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Rope

Ropes for Swift based on the article by Boehm, Atkinson, and Plass.

Terminology

extent: a rope may contain zero or more nested spans called extents. Sometimes, in my notes and code comments, I use parentheses to denote extents.

*Note*: Someday I will rename extents "zones".

    extent controller: every extent has an associated controller
        that either modifies and performs or suppresses rope
        insertions, deletions, et cetera, that overlap the extent.

step: from the exterior of an extent to its interior, from the interior of an extent to its exterior, and across one UTF-16 code unit is one step

index: a labeled entity embedded in a rope, or an Rope.Index struct identifying to such an entity by its label.

adjacent: two indices are adjacent if no *steps* separate them
alias: two indices *alias* one another if they are adjacent
label: an object that uniquely identifies an index
    expired: each embedded index holds a weak reference to
        its label; an index whose reference turns to `nil` is
        *expired*.  Expired indices are cleaned up by occasional
        garbage-collecting sweeps.

About

Ropes for Swift based on the article by Boehm, Atkinson, Plass

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages