update rust bindings to use tree-sitter-language

This commit is contained in:
Gered 2024-11-10 11:52:35 -05:00
parent 08ab1fbc18
commit 9ffe10a1b8
2 changed files with 11 additions and 10 deletions

View file

@ -21,7 +21,10 @@ include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*"]
path = "bindings/rust/lib.rs" path = "bindings/rust/lib.rs"
[dependencies] [dependencies]
tree-sitter = ">=0.21.0" tree-sitter-language = "0.1.2"
[dev-dependencies]
tree-sitter = ">=0.22"
[build-dependencies] [build-dependencies]
cc = "1.0.92" cc = "1.0.92"

16
bindings/rust/lib.rs generated
View file

@ -11,7 +11,7 @@
//! - item2 //! - item2
//! "#; //! "#;
//! let mut parser = tree_sitter::Parser::new(); //! 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(); //! let tree = parser.parse(code, None).unwrap();
//! assert!(!tree.root_node().has_error()); //! assert!(!tree.root_node().has_error());
//! ``` //! ```
@ -21,18 +21,16 @@
//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html //! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
//! [tree-sitter]: https://tree-sitter.github.io/ //! [tree-sitter]: https://tree-sitter.github.io/
use tree_sitter::Language; use tree_sitter_language::LanguageFn;
extern "C" { 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 /// [LanguageFn]: https://docs.rs/tree-sitter-language/*/tree_sitter_language/struct.LanguageFn.html
pub fn language() -> Language { pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_yaml) };
unsafe { tree_sitter_yaml() }
}
/// The content of the [`node-types.json`][] file for this grammar. /// The content of the [`node-types.json`][] file for this grammar.
/// ///
@ -48,7 +46,7 @@ mod tests {
fn test_can_load_grammar() { fn test_can_load_grammar() {
let mut parser = tree_sitter::Parser::new(); let mut parser = tree_sitter::Parser::new();
parser parser
.set_language(&super::language()) .set_language(&super::LANGUAGE.into())
.expect("Error loading YAML grammar"); .expect("Error loading YAML grammar");
} }
} }