/ queries / java / bindings.scm
bindings.scm
 1  ;; ═════════════════════════════════════════════════════════════════════════
 2  ;; Java Environment Variable Binding Queries
 3  ;; ═════════════════════════════════════════════════════════════════════════
 4  
 5  ;; ───────────────────────────────────────────────────────────────────────────
 6  ;; String x = System.getenv("VAR");
 7  ;; ───────────────────────────────────────────────────────────────────────────
 8  (local_variable_declaration
 9    declarator: (variable_declarator
10      name: (identifier) @binding_name
11      value: (method_invocation
12        object: (identifier) @_obj
13        name: (identifier) @_method
14        arguments: (argument_list
15          (string_literal
16            (string_fragment) @bound_env_var))))
17    (#eq? @_obj "System")
18    (#eq? @_method "getenv")) @env_binding
19  
20  ;; ───────────────────────────────────────────────────────────────────────────
21  ;; var x = System.getenv("VAR"); (Java 10+ local variable type inference)
22  ;; ───────────────────────────────────────────────────────────────────────────
23  (local_variable_declaration
24    type: (type_identifier) @_type
25    declarator: (variable_declarator
26      name: (identifier) @binding_name
27      value: (method_invocation
28        object: (identifier) @_obj
29        name: (identifier) @_method
30        arguments: (argument_list
31          (string_literal
32            (string_fragment) @bound_env_var))))
33    (#eq? @_type "var")
34    (#eq? @_obj "System")
35    (#eq? @_method "getenv")) @env_binding
36  
37  ;; ───────────────────────────────────────────────────────────────────────────
38  ;; Field declaration: private String x = System.getenv("VAR");
39  ;; ───────────────────────────────────────────────────────────────────────────
40  (field_declaration
41    declarator: (variable_declarator
42      name: (identifier) @binding_name
43      value: (method_invocation
44        object: (identifier) @_obj
45        name: (identifier) @_method
46        arguments: (argument_list
47          (string_literal
48            (string_fragment) @bound_env_var))))
49    (#eq? @_obj "System")
50    (#eq? @_method "getenv")) @env_binding