arborium_typescript/
lib.rs1#![doc = include_str!("../README.md")]
4
5use tree_sitter_language::LanguageFn;
6
7unsafe extern "C" {
8 fn tree_sitter_typescript() -> *const ();
9}
10
11pub const fn language() -> LanguageFn {
13 unsafe { LanguageFn::from_raw(tree_sitter_typescript) }
14}
15
16
17
18const HIGHLIGHTS_QUERY_BASE: &str = include_str!("../queries/highlights.scm");
21
22pub static HIGHLIGHTS_QUERY: std::sync::LazyLock<String> = std::sync::LazyLock::new(|| {
25 let mut query = String::new();
26
27 query.push_str(&arborium_javascript::HIGHLIGHTS_QUERY);
28 query.push('\n');
29
30 query.push_str(HIGHLIGHTS_QUERY_BASE);
31 query
32});
33
34
35
36
37pub const INJECTIONS_QUERY: &str = "";
39
40
41
42pub const LOCALS_QUERY: &str = include_str!("../queries/locals.scm");
44
45
46
47#[cfg(test)]
48mod tests {
49 use super::*;
50
51 #[test]
52 fn test_grammar() {
53 arborium_test_harness::test_grammar(
54 language(),
55 "typescript",
56
57 &HIGHLIGHTS_QUERY,
58
59 INJECTIONS_QUERY,
60 LOCALS_QUERY,
61 env!("CARGO_MANIFEST_DIR"),
62 );
63 }
64
65 #[test]
66 fn test_corpus() {
67 arborium_test_harness::test_corpus(language(), "typescript", env!("CARGO_MANIFEST_DIR"));
68 }
69}