scope_engine/language/
java.rs1use super::{LanguageAdapter, LanguageQueries};
2use tree_sitter::Language;
3
4pub struct JavaAdapter;
5
6impl JavaAdapter {
7 #[must_use]
8 pub const fn new() -> Self {
9 Self
10 }
11}
12
13impl Default for JavaAdapter {
14 fn default() -> Self {
15 Self::new()
16 }
17}
18
19impl LanguageAdapter for JavaAdapter {
20 fn language_name(&self) -> &'static str {
21 "java"
22 }
23
24 fn extensions(&self) -> &[&'static str] {
25 &["java"]
26 }
27
28 fn language(&self) -> Language {
29 tree_sitter_java::LANGUAGE.into()
30 }
31
32 fn queries(&self) -> LanguageQueries {
33 LanguageQueries {
34 definitions: r"
35 (method_declaration name: (identifier) @name) @def
36 (class_declaration name: (identifier) @name) @def
37 (interface_declaration name: (identifier) @name) @def
38 (enum_declaration name: (identifier) @name) @def
39 (constructor_declaration name: (identifier) @name) @def
40 (field_declaration declarator: (variable_declarator name: (identifier) @name)) @def
41 (local_variable_declaration declarator: (variable_declarator name: (identifier) @name)) @def
42 ",
43 references: r"
44 (method_invocation name: (identifier) @ref) @call
45 (object_creation_expression type: (type_identifier) @ref) @call
46 (type_identifier) @ref
47 (identifier) @ref
48 ",
49 }
50 }
51}