diff --git a/Cargo.toml b/Cargo.toml index 52ba959..6fb8cba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,10 @@ include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*"] path = "bindings/rust/lib.rs" [dependencies] -tree-sitter = ">=0.21.0" +tree-sitter-language = "0.1.2" + +[dev-dependencies] +tree-sitter = ">=0.22" [build-dependencies] cc = "1.0.92" diff --git a/bindings/rust/lib.rs b/bindings/rust/lib.rs index c7560ae..3373033 100644 --- a/bindings/rust/lib.rs +++ b/bindings/rust/lib.rs @@ -11,7 +11,7 @@ //! - item2 //! "#; //! let mut parser = tree_sitter::Parser::new(); -//! parser.set_language(&tree_sitter_yaml::language()).expect("Error loading YAML grammar"); +//! parser.set_language(&tree_sitter_yaml::LANGUAGE.into()).expect("Error loading YAML grammar"); //! let tree = parser.parse(code, None).unwrap(); //! assert!(!tree.root_node().has_error()); //! ``` @@ -21,18 +21,16 @@ //! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html //! [tree-sitter]: https://tree-sitter.github.io/ -use tree_sitter::Language; +use tree_sitter_language::LanguageFn; extern "C" { - fn tree_sitter_yaml() -> Language; + fn tree_sitter_yaml() -> *const (); } -/// Get the tree-sitter [Language][] for this grammar. +/// The tree-sitter [`LanguageFn`][LanguageFn] for this grammar. /// -/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html -pub fn language() -> Language { - unsafe { tree_sitter_yaml() } -} +/// [LanguageFn]: https://docs.rs/tree-sitter-language/*/tree_sitter_language/struct.LanguageFn.html +pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_yaml) }; /// The content of the [`node-types.json`][] file for this grammar. /// @@ -48,7 +46,7 @@ mod tests { fn test_can_load_grammar() { let mut parser = tree_sitter::Parser::new(); parser - .set_language(&super::language()) + .set_language(&super::LANGUAGE.into()) .expect("Error loading YAML grammar"); } }