merge-selection-spans ( spans -- merged )


Vocabulary
core-text

Inputs
spansan object


Outputs
mergedan object


Definition


:: merge-selection-spans ( spans -- merged )
V{ } clone :> merged spans [ first ] sort-by [| span |
merged empty?
[ span merged push ] [
merged last :> previous span first previous second
<= [
previous first previous second span second max
2array merged set-last
] [ span merged push ] if
] if
] each merged >array ;