getRangeForNode method

({String endFrag, int endOff, String startFrag, int startOff})? getRangeForNode(
  1. String nodeId
)

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;
}