insertText method

int insertText(
  1. String text
)

Inserts text at the cursor position.

Returns the number of characters actually inserted (respects maxLength).

Implementation

int insertText(String text) {
  if (text.isEmpty) return 0;

  var toInsert = text;
  if (maxLength != null) {
    final available = maxLength! - _buffer.length;
    if (available <= 0) return 0;
    if (text.length > available) {
      toInsert = text.substring(0, available);
    }
  }

  final before = this.text.substring(0, _cursorPosition);
  final after = this.text.substring(_cursorPosition);

  _buffer.clear();
  _buffer.write(before);
  _buffer.write(toInsert);
  _buffer.write(after);

  _cursorPosition += toInsert.length;
  return toInsert.length;
}