defaultTextCompletionRequest function
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),
);
}