12 unstable releases (5 breaking)

0.6.1 Mar 3, 2025
0.5.0 Jun 5, 2024
0.4.3 Mar 19, 2024
0.4.1 Nov 8, 2023
0.0.3 Jul 8, 2022

#446 in Parser implementations

Download history 620/week @ 2024-12-21 764/week @ 2024-12-28 1455/week @ 2025-01-04 2247/week @ 2025-01-11 2483/week @ 2025-01-18 2665/week @ 2025-01-25 3093/week @ 2025-02-01 3015/week @ 2025-02-08 2387/week @ 2025-02-15 2719/week @ 2025-02-22 2674/week @ 2025-03-01 2071/week @ 2025-03-08 1045/week @ 2025-03-15 560/week @ 2025-03-22 1052/week @ 2025-03-29 625/week @ 2025-04-05

3,310 downloads per month
Used in 5 crates (3 directly)

MIT license

525KB
19K SLoC

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

This crate provides Cmake language support for the tree-sitter parsing library.

Typically, you will use the [LANGUAGE][] constant to add this language to a tree-sitter Parser, and then use the parser to parse some code:

let code = r#"
"#;
let mut parser = tree_sitter::Parser::new();
let language = tree_sitter_cmake::LANGUAGE;
parser
    .set_language(&language.into())
    .expect("Error loading Cmake parser");
let tree = parser.parse(code, None).unwrap();
assert!(!tree.root_node().has_error());

A Tree-sitter parser for CMake

This project provides a cmake parser. Its primary use case is to provide a cmake parser for nvim-treesitter.

Parsed syntax

  • Command
    • General commands
    • For and while loops
    • If conditions
    • Functions and macros
  • Arguments
    • Quoted arguments
    • Bracket arguments
    • Unquoted arguments
    • Parentheses
  • Variable references
    • Environment and cache variables
    • Normal variables

Dependencies

~4–280KB