fix(lib): correct next sibling of zero width node

This commit is contained in:
Will Lillis 2024-11-12 18:17:45 -05:00 committed by GitHub
parent 51dfe3dbdb
commit 5d1be545c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 63 additions and 4 deletions

View file

@ -306,6 +306,33 @@ fn test_parent_of_zero_width_node() {
assert_eq!(parent, script_element);
}
#[test]
fn test_next_sibling_of_zero_width_node() {
let grammar_json = load_grammar_file(
&fixtures_dir()
.join("test_grammars")
.join("next_sibling_from_zwt")
.join("grammar.js"),
None,
)
.unwrap();
let (parser_name, parser_code) = generate_parser_for_grammar(&grammar_json).unwrap();
let mut parser = Parser::new();
let language = get_test_language(&parser_name, &parser_code, None);
parser.set_language(&language).unwrap();
let tree = parser.parse("abdef", None).unwrap();
let root_node = tree.root_node();
let missing_c = root_node.child(2).unwrap();
assert!(missing_c.is_missing());
assert_eq!(missing_c.kind(), "c");
let node_d = root_node.child(3).unwrap();
assert_eq!(missing_c.next_sibling().unwrap(), node_d);
}
#[test]
fn test_node_field_name_for_child() {
let mut parser = Parser::new();