#tree-sitter #diff #incremental #parser

tree-sitter-diff

diff grammar for the tree-sitter parsing library

1 unstable release

0.1.0 Oct 13, 2024

#137 in Text editors

Download history 38/week @ 2024-10-08 1737/week @ 2024-10-15 1822/week @ 2024-10-22 1798/week @ 2024-10-29 1425/week @ 2024-11-05 1690/week @ 2024-11-12

6,986 downloads per month

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

~2–285KB