skipAtoms function

SelectionRange skipAtoms(
  1. dynamic view,
  2. SelectionRange oldPos,
  3. SelectionRange pos
)

Skip atomic ranges for a single position movement.

Implementation

SelectionRange skipAtoms(
  dynamic view,
  SelectionRange oldPos,
  SelectionRange pos,
) {
  final state = view.state as EditorState;
  final atoms = state.facet(atomicRanges).map((f) => f(view)).toList();
  final newPos = skipAtomicRanges(atoms, pos.from, oldPos.head > pos.from ? -1 : 1);
  return newPos == pos.from ? pos : EditorSelection.cursor(newPos, assoc: newPos < pos.from ? 1 : -1);
}