scope_engine/language/
c.rs1use super::{LanguageAdapter, LanguageQueries};
2use tree_sitter::Language;
3
4pub struct CAdapter;
5
6impl CAdapter {
7 #[must_use]
8 pub const fn new() -> Self {
9 Self
10 }
11}
12
13impl Default for CAdapter {
14 fn default() -> Self {
15 Self::new()
16 }
17}
18
19impl LanguageAdapter for CAdapter {
20 fn language_name(&self) -> &'static str {
21 "c"
22 }
23 fn extensions(&self) -> &[&'static str] {
24 &["c", "h"]
25 }
26 fn language(&self) -> Language {
27 tree_sitter_c::LANGUAGE.into()
28 }
29 fn queries(&self) -> LanguageQueries {
30 LanguageQueries {
31 definitions: r"
32 (function_definition declarator: (function_declarator declarator: (identifier) @name)) @def
33 (declaration declarator: (init_declarator declarator: (identifier) @name)) @def
34 ",
35 references: r"
36 (call_expression function: (identifier) @ref) @call
37 (identifier) @ref
38 ",
39 }
40 }
41}