textEditingValue property

  1. @override
TextEditingValue textEditingValue
override

Gets the current text input.

Implementation

@override
TextEditingValue get textEditingValue {
  return widget.controller.plainTextEditingValue;
}
void textEditingValue=(TextEditingValue value)

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);
}