deleteWordForwardRange function
({int end, int start})
deleteWordForwardRange(
- List<
String> graphemes, - int offset, {
- required GraphemePredicate isWord,
Implementation
({int start, int end}) deleteWordForwardRange(
List<String> graphemes,
int offset, {
required GraphemePredicate isWord,
}) {
if (offset < 0 || offset >= graphemes.length) {
final clamped = offset.clamp(0, graphemes.length);
return (start: clamped, end: clamped);
}
var end = offset;
if (isWord(graphemes[offset])) {
while (end < graphemes.length && isWord(graphemes[end])) {
end++;
}
} else {
while (end < graphemes.length && !isWord(graphemes[end])) {
end++;
}
while (end < graphemes.length && isWord(graphemes[end])) {
end++;
}
}
return (start: offset, end: end.clamp(0, graphemes.length));
}