getWordBoundary method

  1. @override
TextRange getWordBoundary(
  1. TextPosition position
)
override

Returns the text range of the word at the given offset. Characters not part of a word, such as spaces, symbols, and punctuation, have word breaks on both sides. In such cases, this method will return a text range that contains the given text position.

Word boundaries are defined more precisely in Unicode Standard Annex #29 www.unicode.org/reports/tr29/#Word_Boundaries.

Implementation

@override
TextRange getWordBoundary(TextPosition position) {
  final child = childAtPosition(position);
  final nodeOffset = child.container.offset;
  final localPosition = TextPosition(
      offset: position.offset - nodeOffset, affinity: position.affinity);
  final localWord = child.getWordBoundary(localPosition);
  return TextRange(
    start: localWord.start + nodeOffset,
    end: localWord.end + nodeOffset,
  );
}