Files
helix/runtime/queries/lua/locals.scm

54 lines
1.1 KiB
Scheme

; Scopes
[
(chunk)
(function_declaration)
(function_definition)
(do_statement)
(while_statement)
(repeat_statement)
(if_statement)
(for_statement)
] @local.scope
; Definitions
(parameters
(identifier) @local.definition.variable.parameter)
; `self` in a method is an implicit parameter.
(parameters
(identifier) @local.definition.variable.builtin
(#eq? @local.definition.variable.builtin "self"))
(for_numeric_clause
name: (identifier) @local.definition.variable)
(for_generic_clause
(variable_list
(variable
(identifier) @local.definition.variable)))
; `local x, y = ...`
(variable_declaration
(assignment_statement
(variable_list
(variable
(identifier) @local.definition.variable))))
(variable_declaration
(variable_list
(variable
(identifier) @local.definition.variable)))
; References
(identifier) @local.reference
; Field/member names are not variable references.
(dot_index_expression
field: (identifier) @_)
(method_index_expression
method: (identifier) @_)
(field
name: (identifier) @_)