Merge pull request #2714 from MrPrezident/test_point_range_captures_fix

fix "test_point_range_captures not working"
This commit is contained in:
Amaan Qureshi 2023-11-12 21:09:09 -08:00 committed by GitHub
commit 0ff28346be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 80 additions and 2 deletions

View file

@ -4048,9 +4048,20 @@ bool ts_query_cursor_next_capture(
continue;
}
// Skip captures that precede the cursor's start byte.
TSNode node = captures->contents[state->consumed_capture_count].node;
if (ts_node_end_byte(node) <= self->start_byte) {
bool node_precedes_range = (
ts_node_end_byte(node) <= self->start_byte ||
point_lte(ts_node_end_point(node), self->start_point)
);
bool node_follows_range = (
ts_node_start_byte(node) >= self->end_byte ||
point_gte(ts_node_start_point(node), self->end_point)
);
bool node_outside_of_range = node_precedes_range || node_follows_range;
// Skip captures that are outside of the cursor's range.
if (node_outside_of_range) {
state->consumed_capture_count++;
continue;
}