deleteAitUser method
根据删除后的Text 文案,返回删除的文本
endIndex 删除的文本的光标所在位置
length 删除的文本的长度
Implementation
AitMsg? deleteAitUser(String deletedText, int endIndex, int length) {
//如果deletedText为空,直接返回
if (deletedText.isEmpty) {
return null;
}
var len = deletedText.length;
//如果_aitBlocks 总有Value值和deletedText不匹配则返回
AitMsg? removedBlack;
for (var aitMsg in _aitBlocks.values) {
for (var segment in aitMsg.segments) {
if (endIndex < segment.start) {
segment.start -= length;
segment.endIndex -= length;
continue;
}
if (len < segment.endIndex + 1 ||
deletedText.substring(segment.start, segment.endIndex + 1) !=
aitMsg.text) {
removedBlack = AitMsg(aitMsg.text);
removedBlack.addSegment(segment.start, segment.endIndex);
}
}
}
if (removedBlack != null) {
_removeSegment(removedBlack, length);
}
return removedBlack;
}