deleteAitUser method

AitMsg? deleteAitUser(
  1. String deletedText,
  2. int endIndex,
  3. int length
)

根据删除后的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;
}