2 个不稳定版本
0.4.0 | 2024年4月1日 |
---|---|
0.3.1 |
|
0.3.0 | 2023年7月18日 |
#939 in 解析器实现
每月 29 次下载
在 type-sitter-lib 中使用
60KB
1K SLoC
yak-sitter: 具有观点的 tree-sitter 面板,让您可以存储对节点可见的数据,并提供其他改进
此库提供的 API 几乎与 tree-sitter
相同,但有以下更改
- 树可以可选地存储任意类型的
Custom
数据,每个节点都可以通过共享引用访问。通常,自定义数据将包含节点到附加元数据的映射或诊断记录器(假设所有诊断至少有一个源位置)。然后,您不需要将此额外信息传递给处理节点的函数,您可以直接从节点中检索它。 - 树存储其原始源代码,节点可以访问其文本
- 树还存储解析它们的路径,节点可以访问此路径
- 节点按其在树中的位置排序,不同树的节点按路径排序
TreeCursor
被分为LocalTreeCursor
和GlobalTreeCursor
。当GlobalTreeCursor
重置到一个节点时,它仍然可以访问父节点和兄弟节点,但性能会受到影响。《code>LocalTreeCursor 是原始的TreeCursor
因为其行为有点令人困惑。QueryMatches
是一个StreamingIterator
正如它应该那样- 所有解析的文本都必须是有效的 UTF-8
该库旨在将tree-sitter与现有项目(https://github.com/Jakobeha/nominalscript)集成,因此得名。无论怎样,如果您有任何更改或建议,请随时提交github issue或PR
依赖关系
~2.9–4MB
~75K SLoC