helix/runtime/queries/rust/locals.scm

39 lines
691 B
Scheme
Raw Normal View History

; Scopes
[
(function_item)
(struct_item)
(enum_item)
(union_item)
(type_item)
(trait_item)
(impl_item)
(closure_expression)
(block)
] @local.scope
; Definitions
(parameter
2025-02-25 01:46:34 +08:00
pattern: (identifier) @local.definition.variable.parameter)
2025-02-25 01:46:34 +08:00
(closure_parameters (identifier) @local.definition.variable.parameter)
; References
(identifier) @local.reference
2025-07-12 21:35:13 +08:00
; In here, `bar` is a function, as it is equal to a closure:
;
; let bar = || 4;
;
; After this, we know that `bar` must be a function:
;
; let a = bar;
; ^^^ function
;
; let a = f(bar)
; ^^^ function
(let_declaration
pattern: (identifier) @local.definition.function
value: (closure_expression))