diff --git a/build.rs b/build.rs index cadd1ad7c..af5ca03ec 100644 --- a/build.rs +++ b/build.rs @@ -82,6 +82,11 @@ fn main() { src_dir: "vendored_parsers/tree-sitter-cmake-src", extra_files: vec!["scanner.c"], }, + TreeSitterParser { + name: "tree-sitter-commonlisp", + src_dir: "vendored_parsers/tree-sitter-commonlisp-src", + extra_files: vec![], + }, TreeSitterParser { name: "tree-sitter-dart", src_dir: "vendored_parsers/tree-sitter-dart-src", diff --git a/src/parse/tree_sitter_parser.rs b/src/parse/tree_sitter_parser.rs index b25f56d38..68fbd0c10 100644 --- a/src/parse/tree_sitter_parser.rs +++ b/src/parse/tree_sitter_parser.rs @@ -73,6 +73,7 @@ extern "C" { fn tree_sitter_apex() -> ts::Language; fn tree_sitter_clojure() -> ts::Language; fn tree_sitter_cmake() -> ts::Language; + fn tree_sitter_commonlisp() -> ts::Language; fn tree_sitter_dart() -> ts::Language; fn tree_sitter_devicetree() -> ts::Language; fn tree_sitter_elisp() -> ts::Language; @@ -225,8 +226,7 @@ pub(crate) fn from_language(language: guess::Language) -> TreeSitterConfig { } } CommonLisp => { - let language_fn = tree_sitter_commonlisp::LANGUAGE_COMMONLISP; - let language = tree_sitter::Language::new(language_fn); + let language = unsafe { tree_sitter_commonlisp() }; TreeSitterConfig { language: language.clone(), diff --git a/vendored_parsers/tree-sitter-commonlisp-src b/vendored_parsers/tree-sitter-commonlisp-src new file mode 120000 index 000000000..2daf16a55 --- /dev/null +++ b/vendored_parsers/tree-sitter-commonlisp-src @@ -0,0 +1 @@ +tree-sitter-commonlisp/src \ No newline at end of file