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