insertText method

void insertText(
  1. String text
)

Implementation

void insertText(String text) {
  final TextEditingValue value = this.value;
  final int start = value.selection.baseOffset;
  int end = value.selection.extentOffset;
  if (value.selection.isValid && value.text.isNotEmpty) {
    String newText = '';
    if (value.selection.isCollapsed) {
      if (end > 0) {
        newText += value.text.substring(0, end);
      }
      newText += text;
      if (value.text.length > end) {
        newText += value.text.substring(end, value.text.length);
      }
    } else {
      newText = value.text.replaceRange(start, end, text);
      end = start;
    }
    this.value = value.copyWith(
        text: newText,
        selection: value.selection.copyWith(
            baseOffset: end + text.length, extentOffset: end + text.length));
  } else {
    newValue(text);
  }
}