▲ | eviks 5 days ago | |
Maybe I got confused, but how do they then count the newlines in all the previous chunks? That information is still needed to calculate the line for a specific position in the last chunk | ||
▲ | teo_zero 5 days ago | parent | next [-] | |
It's not you who's confused, it's that this part of the process is not described. We only have some hints, here: > If you called rope.offset_to_point(7234), the Rope would traverse its SumTree to find the Chunk that contains offset 7234 and then, on that Chunk, it would call offset_to_point again. And here: > while the Rope can get us to the right Chunk in O(log(n)) I would guess that each node of the SumTree includes the number of newlines of all the chunks before it. | ||
▲ | DylanSp 4 days ago | parent | prev [-] | |
It's outlined in their previous post on the Rope/SumTree data structure they use, which this article links to: https://zed.dev/blog/zed-decoded-rope-sumtree. |