#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

#176 in Text editors

Download history 1776/week @ 2024-10-26 1579/week @ 2024-11-02 1594/week @ 2024-11-09 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 2055/week @ 2025-02-01 1705/week @ 2025-02-08

7,537 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

~4–310KB