Set byte range on cursor again

This commit is contained in:
Blaž Hrastnik 2022-01-10 00:42:06 +09:00
parent 24314bd844
commit 2f4a9fea03

View file

@ -560,6 +560,7 @@ impl Syntax {
let ts_parser = &mut ts_parser.borrow_mut();
let mut cursor = ts_parser.cursors.pop().unwrap_or_else(QueryCursor::new);
// TODO: might need to set cursor range
cursor.set_byte_range(0..usize::MAX);
let source_slice = source.slice(..);
@ -729,6 +730,9 @@ impl Syntax {
highlighter.cursors.pop().unwrap_or_else(QueryCursor::new)
});
// TODO: if range doesn't overlap layer range, skip it
// we can calculate intersection and use it later for set_byte_range
// The `captures` iterator borrows the `Tree` and the `QueryCursor`, which
// prevents them from being moved. But both of these values are really just
// pointers, so it's actually ok to move them.
@ -737,8 +741,7 @@ impl Syntax {
// if reusing cursors & no range this resets to whole range
// TODO: handle intersect (range & layer.range)
// cursor_ref.set_byte_range(range.clone().unwrap_or(0..usize::MAX));
cursor_ref.set_byte_range(0..usize::MAX);
cursor_ref.set_byte_range(range.clone().unwrap_or(0..usize::MAX));
let mut captures = cursor_ref
.captures(