normalize_languages/
jinja2.rs1use crate::{Language, LanguageSymbols};
4
5pub struct Jinja2;
7
8impl Language for Jinja2 {
9 fn name(&self) -> &'static str {
10 "Jinja2"
11 }
12 fn extensions(&self) -> &'static [&'static str] {
13 &["j2", "jinja", "jinja2"]
14 }
15 fn grammar_name(&self) -> &'static str {
16 "jinja2"
17 }
18
19 fn as_symbols(&self) -> Option<&dyn LanguageSymbols> {
20 Some(self)
21 }
22}
23
24impl LanguageSymbols for Jinja2 {}
25
26#[cfg(test)]
27mod tests {
28 use super::*;
29 use crate::validate_unused_kinds_audit;
30
31 #[test]
32 fn unused_node_kinds_audit() {
33 #[rustfmt::skip]
34 let documented_unused: &[&str] = &[
35 "autoescape_statement", "block_statement", "call_statement", "debug_statement",
38 "do_statement", "expression_statement", "extends_statement",
39 "filter_block_statement", "for_statement", "from_statement", "if_statement",
40 "import_statement", "include_statement", "raw_statement",
41 "set_block_statement", "set_statement", "trans_statement", "with_statement",
42 "add_expression", "and_expression", "attribute_expression", "call_expression",
44 "comparison_expression", "concat_expression", "dict_expression",
45 "filter_expression", "list_expression", "mul_expression", "not_expression",
46 "or_expression", "parenthesized_expression", "power_expression",
47 "subscript_expression", "ternary_expression", "test_expression",
48 "unary_expression",
49 "elif_clause", "else_clause", "for_else", "identifier", "identifier_tuple",
51 "import_item", "import_list", "pluralize_clause", "with_assignment",
52 "with_assignments",
53 ];
54 validate_unused_kinds_audit(&Jinja2, documented_unused)
55 .expect("Jinja2 unused node kinds audit failed");
56 }
57}