getRangeForNode method
Returns the selection range for a given node. Uses an internal cache so repeated lookups during a single sync pass (e.g. one per visible paragraph) are O(1) instead of O(visible).
Implementation
({String startFrag, int startOff, String endFrag, int endOff})? getRangeForNode(String nodeId) {
if (_rangeCache.containsKey(nodeId)) return _rangeCache[nodeId];
final range = _state.getSelectionRangeForNode(nodeId, positionIndex: _positionIndex);
_rangeCache[nodeId] = range;
return range;
}