plainTextLength property
int
get
plainTextLength
Длина текста без символов новой строки.
Семантика сохранена: переносы строк не учитываются, embed-объекты считаются как 1 символ. Единственный проход без выделения строк — O(n) по времени, O(1) по памяти.
Implementation
int get plainTextLength {
var length = 0;
for (final op in operations) {
if (!op.isInsert) continue;
final data = op.data;
if (data is String) {
for (var i = 0; i < data.length; i++) {
if (data[i] != '\n') length++;
}
} else if (data is Map) {
length++;
}
}
return length;
}