scope_engine/language/
go.rs1use super::{LanguageAdapter, LanguageQueries};
2use tree_sitter::Language;
3
4pub struct GoAdapter;
5
6impl GoAdapter {
7 pub fn new() -> Self {
8 Self
9 }
10}
11
12impl Default for GoAdapter {
13 fn default() -> Self {
14 Self::new()
15 }
16}
17
18impl LanguageAdapter for GoAdapter {
19 fn language_name(&self) -> &'static str {
20 "go"
21 }
22
23 fn extensions(&self) -> &[&'static str] {
24 &["go"]
25 }
26
27 fn language(&self) -> Language {
28 tree_sitter_go::LANGUAGE.into()
29 }
30
31 fn queries(&self) -> LanguageQueries {
32 LanguageQueries {
33 definitions: r#"
34 (function_declaration name: (identifier) @name) @def
35 (method_declaration name: (field_identifier) @name) @def
36 (type_declaration (type_identifier) @name) @def
37 "#,
38 references: r#"
39 (call_expression function: (identifier) @ref) @call
40 (call_expression function: (selector_expression field: (field_identifier) @ref)) @call
41 (type_identifier) @ref
42 "#,
43 }
44 }
45}