mirror of
https://github.com/helix-editor/helix
synced 2026-08-05 14:42:57 +02:00
26 lines
753 B
Scheme
26 lines
753 B
Scheme
; Elixir is macro-heavy and `def`/`defp` are ordinary `call`s, so a general
|
|
; def/scope story can't be expressed without guessing. The one unambiguous
|
|
; binding form is the anonymous function `fn ... -> ... end`.
|
|
|
|
; Scopes
|
|
|
|
(anonymous_function) @local.scope
|
|
|
|
; Definitions
|
|
|
|
; `fn x, y -> ... end`: plain identifiers in the clause head are parameters.
|
|
; (Destructuring patterns are intentionally left to highlights.scm.)
|
|
(stab_clause
|
|
left: (arguments
|
|
(identifier) @local.definition.variable.parameter))
|
|
|
|
; `fn x when guard -> ... end`: the head is wrapped in a `when` binary_operator.
|
|
(stab_clause
|
|
left: (binary_operator
|
|
left: (arguments
|
|
(identifier) @local.definition.variable.parameter)))
|
|
|
|
; References
|
|
|
|
(identifier) @local.reference
|