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

MIT 许可证

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