deleteTextInFragment static method

bool deleteTextInFragment(
  1. Fragment fragment,
  2. int offset, {
  3. int count = 1,
})

Deletes count characters from fragment starting from offset. Returns false if the range is invalid. Optimised edge cases avoid temp substring allocations.

Implementation

static bool deleteTextInFragment(Fragment fragment, int offset, {int count = 1}) {
  if (offset < 0 || offset + count > fragment.text.length) return false;
  if (count <= 0) return true;
  if (count == fragment.text.length) {
    fragment.text = '';
  } else if (offset == 0) {
    fragment.text = fragment.text.substring(count);
  } else if (offset + count == fragment.text.length) {
    fragment.text = fragment.text.substring(0, offset);
  } else {
    fragment.text =
        fragment.text.substring(0, offset) + fragment.text.substring(offset + count);
  }
  return true;
}