#dart #parser #incremental

tree-sitter-dart

tree-sitter 解析库的dart语法

4个版本

0.0.4 2024年5月7日
0.0.3 2023年1月23日
0.0.2 2023年1月19日
0.0.1 2023年1月19日

#93 in 文本编辑器

Download history 537/week @ 2024-04-16 687/week @ 2024-04-23 721/week @ 2024-04-30 1251/week @ 2024-05-07 587/week @ 2024-05-14 584/week @ 2024-05-21 629/week @ 2024-05-28 659/week @ 2024-06-04 620/week @ 2024-06-11 667/week @ 2024-06-18 612/week @ 2024-06-25 519/week @ 2024-07-02 592/week @ 2024-07-09 483/week @ 2024-07-16 521/week @ 2024-07-23 584/week @ 2024-07-30

2,256 每月下载量
用于 ast-grep-language

MIT 许可证

5MB
154K SLoC

C 151K SLoC JavaScript 2K SLoC // 0.2% comments Scheme 153 SLoC // 0.2% comments Rust 34 SLoC // 0.4% comments

tree-sitter-dart

这是一个为dart编程语言编写的tree-sitter语法。我尽量与dart语言规范保持一致。最初我是从tree-sitter Java语法的副本开始的,这也是为什么这里可能包含一些遗留下来的内容。为了简化语法树,许多项都使用tree-sitter的“下划线”方法编写规则进行了内联。

入门指南

  • 转到项目目录
  • 运行 npm install (第一次)
  • 运行 npm run build_init (第一次) npm run build (后续)
  • 运行 npm run test

测试单个高亮文件

  • 运行 tree-sitter highlight test /highlight/types.dart

测试单个测试文件

  • 运行 tree-sitter test -f 'testcasefilter'
  • 例如,运行 tree-sitter test -f 'dart string literals'

显示样本文件解析的输出(例如,在调试高亮问题时)

  • 运行 tree-sitter parse path/to/file.dart

lib.rs:

这个crate为tree-sitter解析库提供了dart语言支持。

通常,您将使用 language 函数将此语言添加到tree-sitter Parser,然后使用解析器解析一些代码。

let code = "";
let mut parser = tree_sitter::Parser::new();
parser.set_language(tree_sitter_dart::language()).expect("Error loading dart grammar");
let tree = parser.parse(code, None).unwrap();

依赖项

~2.8–4MB
~72K SLoC