splitFragment static method

({Fragment left, Fragment right}) splitFragment(
  1. Fragment fragment,
  2. int offset
)

Splits fragment at offset: returns (left, right). The original fragment is mutated (becomes the left part). The right part is a new Fragment with the same style (cloneFragment).

The caller is responsible for inserting right in the container.

Implementation

static ({Fragment left, Fragment right}) splitFragment(
    Fragment fragment, int offset) {
  assert(offset >= 0 && offset <= fragment.text.length);
  final leftText = fragment.text.substring(0, offset);
  final rightText = fragment.text.substring(offset);
  fragment.text = leftText;
  final right = cloneFragment(fragment);
  right.text = rightText;
  return (left: fragment, right: right);
}