Compare commits

...

1 commit

Author SHA1 Message Date
Gered ca73f2e024 update rust bindings to use tree-sitter-language 2024-11-10 11:28:29 -05:00
2 changed files with 11 additions and 10 deletions

View file

@ -20,7 +20,10 @@ include = [
path = "bindings/rust/lib.rs" path = "bindings/rust/lib.rs"
[dependencies] [dependencies]
tree-sitter = "0.20" tree-sitter-language = "0.1.2"
[dev-dependencies]
tree-sitter = ">=0.22"
[build-dependencies] [build-dependencies]
cc = "1.0" cc = "1.0"

16
bindings/rust/lib.rs generated
View file

@ -6,7 +6,7 @@
//! ``` //! ```
//! let code = ""; //! let code = "";
//! let mut parser = tree_sitter::Parser::new(); //! let mut parser = tree_sitter::Parser::new();
//! parser.set_language(tree_sitter_dockerfile::language()).expect("Error loading dockerfile grammar"); //! parser.set_language(&tree_sitter_dockerfile::LANGUAGE.into()).expect("Error loading dockerfile grammar");
//! let tree = parser.parse(code, None).unwrap(); //! let tree = parser.parse(code, None).unwrap();
//! ``` //! ```
//! //!
@ -15,18 +15,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_dockerfile() -> Language; fn tree_sitter_dockerfile() -> *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_dockerfile) };
unsafe { tree_sitter_dockerfile() }
}
/// The content of the [`node-types.json`][] file for this grammar. /// The content of the [`node-types.json`][] file for this grammar.
/// ///
@ -46,7 +44,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 dockerfile language"); .expect("Error loading dockerfile language");
} }
} }