defaultTextCompletionRequest function

TextCompletionRequest defaultTextCompletionRequest(
  1. TextEditingValue value
)

Builds a completion request for the selected range or current word.

Implementation

TextCompletionRequest defaultTextCompletionRequest(TextEditingValue value) {
  if (!value.selection.isCollapsed) {
    final range = value.selection.range;
    return TextCompletionRequest(
      value: value,
      range: range,
      query: value.text.substring(range.normalizedStart, range.normalizedEnd),
    );
  }

  final end = value.selection.extentOffset;
  var start = end;
  while (start > 0) {
    final previous = TextEditingModel.previousGraphemeBoundary(
      value.text,
      start,
    );
    final grapheme = value.text.substring(previous, start);
    if (grapheme.trim().isEmpty) break;
    start = previous;
  }
  return TextCompletionRequest(
    value: value,
    range: TextRange(start: start, end: end),
    query: value.text.substring(start, end),
  );
}