selectWordEdge method

void selectWordEdge({
  1. required SelectionChangedCause cause,
})

Implementation

void selectWordEdge({required SelectionChangedCause cause}) {
  assert(cause != null);
  _computeTextMetricsIfNeeded();
  assert(lastTapDownPosition != null);
  final TextPosition position = textPainter.getPositionForOffset(
      globalToLocal(lastTapDownPosition! - paintOffset));
  final TextRange word = textPainter.getWordBoundary(position);
  late TextSelection newSelection;
  if (position.offset <= word.start) {
    newSelection = TextSelection.collapsed(offset: word.start);
  } else {
    newSelection = TextSelection.collapsed(
        offset: word.end, affinity: TextAffinity.upstream);
  }

  /// zmt
  newSelection = hasSpecialInlineSpanBase
      ? convertTextPainterSelectionToTextInputSelection(text!, newSelection)
      : newSelection;
  setSelection(newSelection, cause);
}