Skip to content

Commit 2dbf7d0

Browse files
committed
Use character position for ranges in treesit_sync_visible_region
* src/treesit.c (treesit_sync_visible_region): Use character position instead of byte position when comparing to ranges, because the ranges are in character position.
1 parent 9c1d13c commit 2dbf7d0

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/treesit.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,12 +1072,12 @@ treesit_sync_visible_region (Lisp_Object parser)
10721072
ptrdiff_t beg = XFIXNUM (XCAR (range));
10731073
ptrdiff_t end = XFIXNUM (XCDR (range));
10741074

1075-
if (end <= visible_beg)
1076-
/* Even the end is before visible_beg, discard this range. */
1075+
if (end <= BUF_BEGV (buffer))
1076+
/* Even the end is before BUF_BEGV (buffer), discard this range. */
10771077
new_ranges_head = XCDR (new_ranges_head);
1078-
else if (beg >= visible_end)
1078+
else if (beg >= BUF_ZV (buffer))
10791079
{
1080-
/* Even the beg is after visible_end, discard this range and all
1080+
/* Even the beg is after BUF_ZV (buffer), discard this range and all
10811081
the ranges after it. */
10821082
if (NILP (prev_cons))
10831083
new_ranges_head = Qnil;
@@ -1090,10 +1090,10 @@ treesit_sync_visible_region (Lisp_Object parser)
10901090
/* At this point, the range overlaps with the visible portion of
10911091
the buffer in some way (in front / in back / completely
10921092
encased / completely encases). */
1093-
if (beg < visible_beg)
1094-
XSETCAR (range, make_fixnum (visible_beg));
1095-
if (end > visible_end)
1096-
XSETCDR (range, make_fixnum (visible_end));
1093+
if (beg < BUF_BEGV (buffer))
1094+
XSETCAR (range, make_fixnum (BUF_BEGV (buffer)));
1095+
if (end > BUF_ZV (buffer))
1096+
XSETCDR (range, make_fixnum (BUF_ZV (buffer)));
10971097
}
10981098
prev_cons = lisp_ranges;
10991099
}
@@ -1103,8 +1103,8 @@ treesit_sync_visible_region (Lisp_Object parser)
11031103
options, so just throw the towel: just give the parser a zero
11041104
range. (Perfect filling!!) */
11051105
if (NILP (new_ranges_head))
1106-
new_ranges_head = Fcons (Fcons (make_fixnum (visible_beg),
1107-
make_fixnum (visible_beg)),
1106+
new_ranges_head = Fcons (Fcons (make_fixnum (BUF_BEGV (buffer)),
1107+
make_fixnum (BUF_BEGV (buffer))),
11081108
Qnil);
11091109

11101110
XTS_PARSER (parser)->last_set_ranges = new_ranges_head;

0 commit comments

Comments
 (0)