#incremental-parser #diff #parser

tree-sitter-diff

diff grammar for the tree-sitter parsing library

1 unstable release

0.1.0 Oct 13, 2024

#1646 in Parser implementations

Download history 1429/week @ 2024-12-14 953/week @ 2024-12-21 1624/week @ 2024-12-28 2618/week @ 2025-01-04 2282/week @ 2025-01-11 1702/week @ 2025-01-18 1852/week @ 2025-01-25 2044/week @ 2025-02-01 2175/week @ 2025-02-08 2465/week @ 2025-02-15 2497/week @ 2025-02-22 2901/week @ 2025-03-01 2772/week @ 2025-03-08 2877/week @ 2025-03-15 2820/week @ 2025-03-22 2174/week @ 2025-03-29

11,073 downloads per month
Used in 2 crates

MIT license

105KB
3.5K SLoC

C 3K SLoC JavaScript 98 SLoC Rust 32 SLoC // 0.4% comments Scheme 5 SLoC // 0.3% comments

This crate provides Diff 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#"
diff --git a/tree-sitter-gitdiff.wasm b/tree-sitter-gitdiff.wasm
index 0e9e828..3e32290 100755
Binary files a/tree-sitter-gitdiff.wasm and b/tree-sitter-gitdiff.wasm differ

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

tree-sitter-diff

CI

A tree-sitter grammar for diffs

Highlighting a .diff file:

Injecting this grammar into tree-sitter-git-commit in a verbose commit (git commit --verbose):

Dependencies

~4–280KB