| 26 | } |
| 27 | |
| 28 | std::size_t LineOffset::GetCol(std::size_t colOffset) { |
| 29 | std::size_t col = 0; |
| 30 | std::size_t offset = colOffset; |
| 31 | for (auto &uc: CharsOffsets) { |
| 32 | if (offset > uc.TotalLen) { |
| 33 | offset -= uc.TotalLen; |
| 34 | col += uc.CharsNum; |
| 35 | } else { |
| 36 | col += offset / uc.Unit; |
| 37 | break; |
| 38 | } |
| 39 | } |
| 40 | return col; |
| 41 | } |
| 42 | |
| 43 | std::size_t LineOffset::GetOffset(std::size_t colNum) { |
| 44 | std::size_t colOffset = 0; |