#cmake #incremental #parser

tree-sitter-cmake

tree-sitter 解析库的 cmake 语法

10 个版本

0.5.0 2024年6月5日
0.4.3 2024年3月19日
0.4.2 2024年2月22日
0.4.1 2023年11月8日
0.0.3 2022年7月8日

#101 in 文本编辑器

Download history 817/week @ 2024-04-21 701/week @ 2024-04-28 646/week @ 2024-05-05 666/week @ 2024-05-12 922/week @ 2024-05-19 765/week @ 2024-05-26 1786/week @ 2024-06-02 1261/week @ 2024-06-09 1387/week @ 2024-06-16 976/week @ 2024-06-23 841/week @ 2024-06-30 790/week @ 2024-07-07 684/week @ 2024-07-14 805/week @ 2024-07-21 747/week @ 2024-07-28 707/week @ 2024-08-04

3,067 每月下载量
用于 neocmakelsp

MIT 许可证

525KB
19K SLoC

C 19K SLoC JavaScript 83 SLoC Rust 36 SLoC // 0.1% comments

CMake 的 Tree-sitter 解析器

此项目提供了一个 cmake 解析器。其主要用例是为 nvim-treesitter 提供一个 cmake 解析器。

解析语法

  • 命令
    • 通用命令
    • for 和 while 循环
    • if 条件
    • 函数和宏
  • 参数
    • 引号参数
    • 括号参数
    • 无引号参数
    • 括号
  • 变量引用
    • 环境和缓存变量
    • 常规变量

lib.rs:

此 crate 为 tree-sitter 解析库提供 cmake 语言支持

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

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

依赖

~2.7–4MB
~71K SLoC