]> git.eshelyaron.com Git - emacs.git/commit
Fix comment in treesit_record_change (bug#61369)
authorYuan Fu <casouri@gmail.com>
Sat, 18 Feb 2023 10:20:12 +0000 (02:20 -0800)
committerYuan Fu <casouri@gmail.com>
Sat, 18 Feb 2023 10:32:25 +0000 (02:32 -0800)
commite985466556c71743ec9f47ee969bb4f45da141aa
tree68a05c4c4126103bf91f6fee8a8dc9828db5f591
parent1e5cebc88bb5f028058e072071fee03529d0b204
Fix comment in treesit_record_change (bug#61369)

Turns out the previous commit message and comment is not entirely
correct: the old behavior is in fact wrong, not just "correct but has
problems".

Here is why the old code is wrong:

|visible range|     -> markup for visible range

updated range       -> markup for updated range
-------------

First we have some text

|aaaaaa|

Now we insert something at the beginning, because we clip
new_end_offset to visible_end, out of eight b's inserted, only the
first six are known to tree-sitter.

|bbbbbbbbaaaa|aa  start: 0, old_end: 0, new_end: 6
 ------

In treesit_sync_visible_region, we sync up visible region, but the two
missing b's are not in the updated range.

|bbbbbbbbaaaaaa|  start: 12, old_end: 12, new_end: 14
             --

The old behavior not only is wrong, but also doesn't make much sense.

* src/treesit.c (treesit_record_change): Update comment.
src/treesit.c