Skip to main content

normalize_languages/
diff.rs

1//! Diff/patch file support.
2
3use crate::{Language, LanguageSymbols};
4use tree_sitter::Node;
5
6/// Diff language support.
7pub struct Diff;
8
9impl Language for Diff {
10    fn name(&self) -> &'static str {
11        "Diff"
12    }
13    fn extensions(&self) -> &'static [&'static str] {
14        &["diff", "patch"]
15    }
16    fn grammar_name(&self) -> &'static str {
17        "diff"
18    }
19
20    fn as_symbols(&self) -> Option<&dyn LanguageSymbols> {
21        Some(self)
22    }
23
24    fn node_name<'a>(&self, _node: &Node, _content: &'a str) -> Option<&'a str> {
25        None
26    }
27}
28
29impl LanguageSymbols for Diff {}
30
31#[cfg(test)]
32mod tests {
33    use super::*;
34    use crate::validate_unused_kinds_audit;
35
36    #[test]
37    fn unused_node_kinds_audit() {
38        #[rustfmt::skip]
39        let documented_unused: &[&str] = &[
40            "block", // Hunk block
41        ];
42        validate_unused_kinds_audit(&Diff, documented_unused)
43            .expect("Diff unused node kinds audit failed");
44    }
45}