wordBoundaryAt method

({TextPosition end, TextPosition start}) wordBoundaryAt(
  1. TextPosition position
)

Implementation

({TextPosition start, TextPosition end}) wordBoundaryAt(
  TextPosition position,
) {
  final clamped = clampPosition(position);
  final lineLength = this.lineLength(clamped.line);
  if (lineLength == 0) {
    return (
      start: TextPosition(line: clamped.line, column: 0),
      end: TextPosition(line: clamped.line, column: 0),
    );
  }

  final column = clamped.column.clamp(0, lineLength - 1);
  final boundary = _storage.wordBoundaryAtInLine(clamped.line, column);
  return (
    start: TextPosition(line: clamped.line, column: boundary.start),
    end: TextPosition(line: clamped.line, column: boundary.end),
  );
}