3 个不稳定版本
使用旧的 Rust 2015
0.21.1 | 2024 年 4 月 18 日 |
---|---|
0.21.0 | 2024 年 2 月 23 日 |
0.20.2 | 2023 年 3 月 17 日 |
#1386 in 解析器实现
在 ttags 中使用
41KB
835 行
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);
}
依赖项
~3.5–5MB
~95K SLoC