#tree-sitter #diff #parser #incremental

tree-sitter-diff

diff grammar for the tree-sitter parsing library

1 unstable release

0.1.0 Oct 13, 2024

#184 in Text editors

Download history 1779/week @ 2024-11-16 1563/week @ 2024-11-23 1674/week @ 2024-11-30 1483/week @ 2024-12-07 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 2523/week @ 2025-03-01

10,041 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

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):


lib.rs:

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());

Dependencies

~4–310KB