tree_sitter_objectscript/
lib.rs1use tree_sitter_language::LanguageFn;
6
7extern "C" {
8 fn tree_sitter_objectscript_udl() -> *const ();
9 fn tree_sitter_objectscript_routine() -> *const ();
10}
11
12pub const LANGUAGE_OBJECTSCRIPT_UDL: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_objectscript_udl) };
16
17pub const UDL_NODE_TYPES: &str = include_str!("../../udl/src/node-types.json");
21
22pub const UDL_HIGHLIGHTS_QUERY: &str = include_str!("../../udl/queries/highlights.scm");
24
25pub const UDL_INJECTIONS_QUERY: &str = include_str!("../../udl/queries/injections.scm");
27
28pub const UDL_INDENTS_QUERY: &str = include_str!("../../udl/queries/indents.scm");
30
31pub const LANGUAGE_OBJECTSCRIPT_ROUTINE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_objectscript_routine) };
35
36pub const ROUTINE_NODE_TYPES: &str = include_str!("../../objectscript_routine/src/node-types.json");
40
41pub const ROUTINE_HIGHLIGHTS_QUERY: &str = include_str!("../../objectscript_routine/queries/highlights.scm");
43
44pub const ROUTINE_INJECTIONS_QUERY: &str = include_str!("../../objectscript_routine/queries/injections.scm");
46
47pub const ROUTINE_INDENTS_QUERY: &str = include_str!("../../objectscript_routine/queries/indents.scm");
49
50#[cfg(test)]
51mod tests {
52 #[test]
53 fn test_can_load_objectscript_udl_grammar() {
54 let mut parser = tree_sitter::Parser::new();
55 parser
56 .set_language(&super::LANGUAGE_OBJECTSCRIPT_UDL.into())
57 .expect("Error loading ObjectScript UDL parser");
58 }
59
60
61 #[test]
62 fn test_iudl_ndents_query_is_loaded() {
63 assert!(super::UDL_INDENTS_QUERY.contains("indent"));
64 }
65
66 #[test]
67 fn test_udl_injections_query_is_loaded() {
68 assert!(super::UDL_INJECTIONS_QUERY.contains("injection"));
69 }
70
71 #[test]
72 fn test_udl_highlights_query_is_loaded() {
73 assert!(super::UDL_HIGHLIGHTS_QUERY.contains("@keyword"));
74 }
75
76 #[test]
77 fn test_can_load_objectscript_routine_grammar() {
78 let mut parser = tree_sitter::Parser::new();
79 parser
80 .set_language(&super::LANGUAGE_OBJECTSCRIPT_ROUTINE.into())
81 .expect("Error loading ObjectScript UDL parser");
82 }
83
84
85 #[test]
86 fn test_routine_indents_query_is_loaded() {
87 assert!(super::ROUTINE_INDENTS_QUERY.contains("indent"));
88 }
89
90 #[test]
91 fn test_routine_injections_query_is_loaded() {
92 assert!(super::ROUTINE_INJECTIONS_QUERY.contains("injection"));
93 }
94
95 #[test]
96 fn test_routine_highlights_query_is_loaded() {
97 assert!(super::ROUTINE_HIGHLIGHTS_QUERY.contains("@keyword"));
98 }
99}