fix(lib): correct descendant-for-range behavior with zero-width tokens

(cherry picked from commit 0c43988a5e)
This commit is contained in:
Amaan Qureshi 2024-09-26 23:15:26 -04:00
parent 7561e813b8
commit 865f6595e7
2 changed files with 34 additions and 4 deletions

View file

@ -613,6 +613,26 @@ fn test_node_descendant_for_range() {
assert_eq!(pair_node.end_byte(), string_index + 9);
assert_eq!(pair_node.start_position(), Point::new(6, 4));
assert_eq!(pair_node.end_position(), Point::new(6, 13));
// Zero-width token
{
let code = "<script></script>";
let mut parser = Parser::new();
parser.set_language(&get_language("html")).unwrap();
let tree = parser.parse(code, None).unwrap();
let root = tree.root_node();
let child = root
.named_descendant_for_point_range(Point::new(0, 8), Point::new(0, 8))
.unwrap();
assert_eq!(child.kind(), "raw_text");
let child2 = root.named_descendant_for_byte_range(8, 8).unwrap();
assert_eq!(child2.kind(), "raw_text");
assert_eq!(child, child2);
}
}
#[test]