textEditingValue property
Gets the current text input.
Implementation
@override
TextEditingValue get textEditingValue {
return widget.configurations.controller.plainTextEditingValue;
}
Implementation
set textEditingValue(TextEditingValue value) {
final cursorPosition = value.selection.extentOffset;
final oldText = widget.configurations.controller.document.toPlainText();
final newText = value.text;
final diff = getDiff(oldText, newText, cursorPosition);
if (diff.deleted == '' && diff.inserted == '') {
// Only changing selection range
widget.configurations.controller
.updateSelection(value.selection, ChangeSource.local);
return;
}
widget.configurations.controller.replaceTextWithEmbeds(
diff.start, diff.deleted.length, diff.inserted, value.selection);
}