dk_engine/parser/langs/
go.rs1use crate::parser::lang_config::{CommentStyle, LanguageConfig};
4use dk_core::Visibility;
5use tree_sitter::Language;
6
7pub struct GoConfig;
9
10impl LanguageConfig for GoConfig {
11 fn language(&self) -> Language {
12 tree_sitter_go::LANGUAGE.into()
13 }
14
15 fn extensions(&self) -> &'static [&'static str] {
16 &["go"]
17 }
18
19 fn symbols_query(&self) -> &'static str {
20 include_str!("../queries/go_symbols.scm")
21 }
22
23 fn calls_query(&self) -> &'static str {
24 include_str!("../queries/go_calls.scm")
25 }
26
27 fn imports_query(&self) -> &'static str {
28 include_str!("../queries/go_imports.scm")
29 }
30
31 fn comment_style(&self) -> CommentStyle {
32 CommentStyle::SlashSlash
33 }
34
35 fn resolve_visibility(&self, _modifiers: Option<&str>, name: &str) -> Visibility {
36 match name.chars().next() {
39 Some(c) if c.is_uppercase() => Visibility::Public,
40 _ => Visibility::Private,
41 }
42 }
43
44 fn is_external_import(&self, _module_path: &str) -> bool {
45 true
51 }
52}