Convert `RangeAnchor` to use `TextRange`
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.
Showing
Please register or sign in to comment