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