3个不稳定版本
0.2.0 | 2023年3月5日 |
---|---|
0.1.1 | 2023年2月27日 |
0.1.0 | 2023年2月27日 |
76 在 #runtime 中排名
每月下载量 32
用于 code-blocks-server
11KB
197 行
tree-sitter-installer
一个库,用于在运行时下载、编译和加载tree-sitter解析器。
示例
use tree_sitter_installer::ParserInstaller;
fn main() {
let text = r#"
struct A {
a: i32
}
fn main() {}
"#;
let installer = ParserInstaller {
download_cmd: "git clone https://github.com/tree-sitter/tree-sitter-rust",
symbol: b"language",
name: "tree_sitter_rust",
};
let mut parser = installer
.install_parser(
&tempfile::tempdir()
.expect("failed to get tempdir")
.path()
.join("rust-parser"),
)
.expect("failed to install rust parser");
let tree = parser.parse(text, None).expect("failed to parse text");
println!("{}", tree.root_node().to_sexp());
// prints: (source_file (struct_item name: (type_identifier) body: (field_declaration_list (field_declaration name: (field_identifier) type: (primitive_type)))) (function_item name: (identifier) parameters: (parameters) body: (block)))
}
依赖关系
~2.9–4.5MB
~74K SLoC