mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-03 03:56:52 -04:00
Add Java locals
Co-authored: @PitcherTear22
This commit is contained in:
parent
fae96b588d
commit
656a5c4064
1 changed files with 65 additions and 6 deletions
|
|
@ -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
|
||||
|
||||
(method_invocation
|
||||
name: (identifier) @name) @call
|
||||
|
||||
; 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))
|
||||
|
||||
; REFERENCES
|
||||
(identifier) @reference
|
||||
((type_identifier) @reference
|
||||
(set! reference.kind "type"))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue