tryAutoComplete method
Try to parse input but return suggestions if parsing failed.
Implementation
AutoCompleteResult tryAutoComplete(String input) {
// Attempt strict parsing
final result = parser.expression.end().parse(input);
if (result is Success) {
// Already valid & complete, no suggestions needed
return AutoCompleteResult.complete(result.value);
}
if (result is Failure) {
// PetitParser error messages usually say what was expected
final expected = result.message;
final pos = result.position;
return AutoCompleteResult.incomplete(
input: input,
position: pos,
expected: expected,
);
}
// Fallback
return AutoCompleteResult.unknown();
}