fix: rework parser.h includes for test grammars and multi-grammar repos

This commit is contained in:
Amaan Qureshi 2024-02-02 10:26:18 -05:00
parent 422e74fbdb
commit 9f2dc9d6b5
No known key found for this signature in database
GPG key ID: E67890ADC4227273
13 changed files with 48 additions and 22 deletions

View file

@ -1,3 +1,4 @@
use anyhow::Context;
use lazy_static::lazy_static;
use std::path::{Path, PathBuf};
use std::{env, fs};
@ -28,7 +29,10 @@ pub fn fixtures_dir<'a>() -> &'static Path {
pub fn get_language(name: &str) -> Language {
TEST_LOADER
.load_language_at_path(&GRAMMARS_DIR.join(name).join("src"), &HEADER_DIR)
.load_language_at_path(
&GRAMMARS_DIR.join(name).join("src"),
&[&HEADER_DIR, &GRAMMARS_DIR.join(name).join("src")],
)
.unwrap()
}
@ -93,7 +97,18 @@ pub fn get_test_language(name: &str, parser_code: &str, path: Option<&Path>) ->
}
}
let header_path = src_dir.join("tree_sitter");
fs::create_dir_all(&header_path).unwrap();
fs::write(&header_path.join("parser.h"), tree_sitter::PARSER_HEADER)
.with_context(|| {
format!(
"Failed to write {:?}",
header_path.join("parser.h").file_name().unwrap()
)
})
.unwrap();
TEST_LOADER
.load_language_at_path_with_name(&src_dir, &HEADER_DIR, name)
.load_language_at_path_with_name(&src_dir, &[&HEADER_DIR], name)
.unwrap()
}

View file

@ -432,7 +432,7 @@ fn test_parsing_after_editing_tree_that_depends_on_column_values() {
let dir = fixtures_dir()
.join("test_grammars")
.join("uses_current_column");
let grammar = fs::read_to_string(&dir.join("grammar.json")).unwrap();
let grammar = fs::read_to_string(dir.join("grammar.json")).unwrap();
let (grammar_name, parser_code) = generate_parser_for_grammar(&grammar).unwrap();
let mut parser = Parser::new();