• Robert Knight's avatar
    Convert `RangeAnchor` to use `TextRange` · 6943f6dd
    Robert Knight authored
    Convert `RangeAnchor` to use `TextRange` and the XPath <-> Node mapping
    functions in xpath.js directly, rather than the `SerializedRange` and
    `NormalizedRange` classes.
    
    This change will mean that all conversion between text positions and
    (text node, offset) points in the client will use the same implementation.
    For `RangeAnchor` selectors this conversion is used for the
    `startOffset` and `endOffset` fields.
    
    The new implementation also avoids modifying the DOM, unlike the
    previous implementation which would sometimes split text nodes. Avoid
    DOM modifications during anchoring opens up the possibility of
    optimizing anchoring by caching text position <-> text node associations.
    6943f6dd
text-range.js 9.19 KB