insertText method
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;
}