applyInsertion method
void
applyInsertion(
{ - required int offset,
- required String text,
})
Implementation
void applyInsertion({required int offset, required String text}) {
final insertOffset = offset.clamp(0, 1 << 30);
final length = text.characters.length;
if (length <= 0) {
return;
}
for (final entry in _extmarks.entries.toList(growable: false)) {
final extmark = entry.value;
if (extmark.startOffset >= insertOffset) {
_extmarks[entry.key] = TextExtmark(
id: extmark.id,
type: extmark.type,
startOffset: extmark.startOffset + length,
endOffset: extmark.endOffset + length,
virtual: extmark.virtual,
styleKey: extmark.styleKey,
priority: extmark.priority,
data: extmark.data,
);
} else if (extmark.endOffset > insertOffset) {
_extmarks[entry.key] = TextExtmark(
id: extmark.id,
type: extmark.type,
startOffset: extmark.startOffset,
endOffset: extmark.endOffset + length,
virtual: extmark.virtual,
styleKey: extmark.styleKey,
priority: extmark.priority,
data: extmark.data,
);
}
}
}