backspace method
Deletes the complete grapheme before the cursor.
Implementation
bool backspace() {
if (cursorAtStart) return false;
final start = _boundaries.lastWhere((p) => p < _cursorPosition);
_replace(text.substring(0, start) + textAfterCursor, start);
return true;
}