code: function getNextBreakPoint (str, width, from, lastIndex) {
    let idealIndex = from
    let length = str.length
    let subWidth = 0
  
    // 获取下一个理论上的分割点的索引
    do {
      idealIndex++
      subWidth = stringWidth(str.slice(from, idealIndex))
    } while ((subWidth <= width) && (idealIndex <= length))
  
    // 获取下一个实际分割点（只退不进）
    let index = idealIndex - 1
  
    if (index >= length) {
      return length
    }
  
    while (index > lastIndex) {
      let preValue = str.charAt(index - 1)
      let value = str.charAt(index)
      let canBreak = preValue === ' ' || value === ' ' ||
        (isFullWidthChar(value) && isFullWidthChar(preValue)) ||
        (isClosePunctuation(preValue) && !isPunctuation(value)) ||
        (!isPunctuation(preValue) && isOpenPunctuation(value)) ||
        (isClosePunctuation(preValue) && isOpenPunctuation(value))
  
      if (canBreak) {
        break
      } else {
        index--
      }
    }
  
    // 强制截断
    if (index <= lastIndex) {
      index = idealIndex
    }
  
    return index
  }
docs: 获取下一个分割点