mirror of
https://github.com/helix-editor/helix
synced 2026-08-06 15:02:59 +02:00
47 lines
1021 B
Scheme
47 lines
1021 B
Scheme
; Scopes
|
|
|
|
[
|
|
(method_declaration)
|
|
(creation_method_declaration)
|
|
(constructor_declaration)
|
|
(destructor_declaration)
|
|
(local_function_declaration)
|
|
(lambda_expression)
|
|
(block)
|
|
(for_statement)
|
|
(foreach_statement)
|
|
] @local.scope
|
|
|
|
; Definitions
|
|
|
|
(parameter
|
|
(identifier) @local.definition.variable.parameter)
|
|
|
|
(lambda_expression
|
|
(identifier) @local.definition.variable.parameter)
|
|
|
|
; `foreach (Type x in ...)` — the identifier after the element type.
|
|
(foreach_statement
|
|
.
|
|
(type)
|
|
.
|
|
(identifier) @local.definition.variable)
|
|
|
|
; `Type x = ...;` — first identifier of each assignment in a local declaration.
|
|
(local_declaration
|
|
(assignment
|
|
.
|
|
(identifier) @local.definition.variable))
|
|
|
|
; References
|
|
|
|
(identifier) @local.reference
|
|
|
|
; In `a.b`, `b` is a member access rather than a variable reference. A bare name
|
|
; is a single-child member_access_expression, so only discard the trailing
|
|
; identifier when it follows a receiver expression.
|
|
(member_access_expression
|
|
(_)
|
|
.
|
|
(identifier) @_)
|