aboutsummaryrefslogtreecommitdiffstats
path: root/queries/java
diff options
context:
space:
mode:
Diffstat (limited to 'queries/java')
-rw-r--r--queries/java/locals.scm71
1 files changed, 65 insertions, 6 deletions
diff --git a/queries/java/locals.scm b/queries/java/locals.scm
index 56c629f4e..4c19e4644 100644
--- a/queries/java/locals.scm
+++ b/queries/java/locals.scm
@@ -1,10 +1,69 @@
-; CREDITS @maxbrunsfeld (maxbrunsfeld@gmail.com)
-
+; SCOPES
+; declarations
+(program) @scope
(class_declaration
- name: (identifier) @name) @class
+ body: (_) @scope)
+(enum_declaration
+ body: (_) @scope)
+(method_declaration) @scope ; whole method_declaration because arguments
+
+; block
+(block) @scope
+
+; if/else
+(if_statement) @scope ; if+else
+(if_statement
+ consequence: (_) @scope) ; if body in case there are no braces
+(if_statement
+ alternative: (_) @scope) ; else body in case there are no braces
+
+; try/catch
+(try_statement) @scope ; covers try+catch, individual try and catch are covered by (block)
+(catch_clause) @scope ; needed because `Exception` variable
+; loops
+(for_statement) @scope ; whole for_statement because loop iterator variable
+(for_statement ; "for" body in case there are no braces
+ body: (_) @scope)
+(do_statement
+ body: (_) @scope)
+(while_statement
+ body: (_) @scope)
+
+; Functions
+
+(constructor_declaration) @scope
(method_declaration
- name: (identifier) @name) @method
+ name: (identifier) @definition.scope) @scope
+
+
+; DEFINITIONS
+ (package_declaration
+ (identifier) @definition.namespace)
+(class_declaration
+ name: (identifier) @definition.class)
+(enum_declaration
+ name: (identifier) @definition.enum)
+(method_declaration
+ name: (identifier) @definition.method)
+
+(local_variable_declaration
+ declarator: (variable_declarator
+ name: (identifier) @definition.var))
+(formal_parameter
+ name: (identifier) @definition.var)
+(inferred_parameters (identifier) @definition.var) ; (x,y) -> ...
+(lambda_expression
+ parameters: (identifier) @definition.var) ; x -> ...
+
+(scoped_identifier
+ ((identifier) @definition.import))
+
+(field_declaration
+ declarator: (variable_declarator
+ name: (identifier) @definition.field))
-(method_invocation
- name: (identifier) @name) @call
+; REFERENCES
+(identifier) @reference
+((type_identifier) @reference
+ (set! reference.kind "type"))