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

41 lines
801 B
Scheme

; Scopes
[
(function_definition)
(macro_definition)
] @local.scope
; `lambda`/`let`/`let*` are `special_form`s; the leading keyword is an anonymous
; token, so scope on the specific form rather than all special forms.
(special_form
.
["lambda" "let" "let*"]) @local.scope
; Definitions
(function_definition
parameters: (list (symbol) @local.definition.variable.parameter))
(macro_definition
parameters: (list (symbol) @local.definition.variable.parameter))
; (lambda (a b) ...)
(special_form
.
"lambda"
.
(list (symbol) @local.definition.variable.parameter))
; (let ((x v) (y w)) ...) / let* — each binding's first symbol
(special_form
.
["let" "let*"]
.
(list
(list
.
(symbol) @local.definition.variable)))
; References
(symbol) @local.reference