#![doc = include_str!("../README.md")]
use tree_sitter_language::LanguageFn;
unsafe extern "C" {
fn tree_sitter_typescript() -> *const ();
}
pub const fn language() -> LanguageFn {
unsafe { LanguageFn::from_raw(tree_sitter_typescript) }
}
const HIGHLIGHTS_QUERY_BASE: &str = include_str!("../queries/highlights.scm");
pub static HIGHLIGHTS_QUERY: std::sync::LazyLock<String> = std::sync::LazyLock::new(|| {
let mut query = String::new();
query.push_str(&arborium_javascript::HIGHLIGHTS_QUERY);
query.push('\n');
query.push_str(HIGHLIGHTS_QUERY_BASE);
query
});
pub const INJECTIONS_QUERY: &str = "";
pub const LOCALS_QUERY: &str = include_str!("../queries/locals.scm");
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_grammar() {
arborium_test_harness::test_grammar(
language(),
"typescript",
&HIGHLIGHTS_QUERY,
INJECTIONS_QUERY,
LOCALS_QUERY,
env!("CARGO_MANIFEST_DIR"),
);
}
#[test]
fn test_corpus() {
arborium_test_harness::test_corpus(language(), "typescript", env!("CARGO_MANIFEST_DIR"));
}
}