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