15个不稳定版本 (5 个重大变化)
0.22.6 | 2024年5月5日 |
---|---|
0.22.2 | 2024年3月17日 |
0.20.2 | 2022年3月2日 |
0.20.1 | 2021年11月21日 |
0.2.0 | 2020年5月12日 |
#1535 在 解析器实现 中
每月21,675 次下载
在 14 个 链接中使用 (2 个直接使用)
640KB
16K SLoC
Tree-sitter Tags
用法
将此crate以及您要解析的任何语言的特定crate添加到您的 Cargo.toml
[dependencies]
tree-sitter-tags = "0.19"
tree-sitter-javascript = "0.19"
tree-sitter-python = "0.19"
创建一个标签上下文。您需要为每个用于标签计算的线程创建一个
use tree_sitter_tags::TagsContext;
let context = TagsContext::new();
从某些语言仓库的 queries
目录加载一些标记查询
use tree_sitter_tags::TagsConfiguration;
let python_config = TagsConfiguration::new(
tree_sitter_python::language(),
tree_sitter_python::TAGGING_QUERY,
"",
).unwrap();
let javascript_config = TagsConfiguration::new(
tree_sitter_javascript::language(),
tree_sitter_javascript::TAGGING_QUERY,
tree_sitter_javascript::LOCALS_QUERY,
).unwrap();
为一些源代码计算代码导航标签
let tags = context.generate_tags(
&javascript_config,
b"class A { getB() { return c(); } }",
None,
);
for tag in tags {
println!("kind: {:?}", tag.kind);
println!("range: {:?}", tag.range);
println!("name_range: {:?}", tag.name_range);
println!("docs: {:?}", tag.docs);
}
依赖项
~2.6–4.5MB
~78K SLoC