backspace method
void
backspace()
Implementation
void backspace() {
TextEditingValue v = this.value;
if (v.text.isEmpty) {
return;
}
String oldText = v.text;
TextSelection old = v.selection;
if (old.isValid && old.isNormalized) {
if (old.isCollapsed) {
if (old.start == 0) {
return;
} else if (old.start == 1) {
this.value = TextEditingValue(text: oldText.substring(1), selection: TextSelection.collapsed(offset: 0));
} else {
int ch = oldText.codeUnitAt(old.start - 2);
if (isUtf16Lead(ch)) {
this.value = TextEditingValue(
text: oldText.substring(0, old.start - 2) + oldText.substring(old.end),
selection: TextSelection.collapsed(offset: old.start - 2),
);
} else {
this.value = TextEditingValue(
text: oldText.substring(0, old.start - 1) + oldText.substring(old.end),
selection: TextSelection.collapsed(offset: old.start - 1),
);
}
}
} else {
this.value = TextEditingValue(
text: old.textBefore(oldText) + old.textAfter(oldText),
selection: TextSelection.collapsed(offset: old.start),
);
}
}
}