1 unstable release

0.1.0 Oct 13, 2024

#34 in #git-diff

Download history 2911/week @ 2025-03-11 2710/week @ 2025-03-18 2839/week @ 2025-03-25 3053/week @ 2025-04-01 3309/week @ 2025-04-08 3107/week @ 2025-04-15 2895/week @ 2025-04-22 3246/week @ 2025-04-29 3973/week @ 2025-05-06 2913/week @ 2025-05-13 3600/week @ 2025-05-20 3245/week @ 2025-05-27 3408/week @ 2025-06-03 3149/week @ 2025-06-10 3405/week @ 2025-06-17 3179/week @ 2025-06-24

13,637 downloads per month
Used in 3 crates (2 directly)

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