Skip to main content

scope_engine/language/
ruby.rs

1use super::{LanguageAdapter, LanguageQueries};
2use tree_sitter::Language;
3
4pub struct RubyAdapter;
5
6impl RubyAdapter {
7    #[must_use]
8    pub const fn new() -> Self {
9        Self
10    }
11}
12
13impl Default for RubyAdapter {
14    fn default() -> Self {
15        Self::new()
16    }
17}
18
19impl LanguageAdapter for RubyAdapter {
20    fn language_name(&self) -> &'static str {
21        "ruby"
22    }
23    fn extensions(&self) -> &[&'static str] {
24        &["rb"]
25    }
26    fn language(&self) -> Language {
27        tree_sitter_ruby::LANGUAGE.into()
28    }
29    fn queries(&self) -> LanguageQueries {
30        LanguageQueries {
31            definitions: r"
32                (method name: (identifier) @name) @def
33                (singleton_method name: (identifier) @name) @def
34                (class name: (constant) @name) @def
35                (module name: (constant) @name) @def
36            ",
37            references: r"
38                (call method: (identifier) @ref) @call
39                (identifier) @ref
40            ",
41        }
42    }
43}