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

35 lines
841 B
Scheme

; Scopes
[
(block)
(defined_resource_type)
(function_declaration)
(attribute_type_entry)
(class_definition)
(node_definition)
(resource_declaration)
(selector)
(iterator_statement)
(case_statement)
(hash)
(array)
] @local.scope
; Definitions
;
; Only variables and parameters are tracked: types, functions and namespaces
; already get their correct highlight straight from highlights.scm, and their
; identifier segments are always the innermost node at their position, so
; resolving them again here would have no visible effect.
(parameter (variable (identifier) @local.definition.variable.parameter))
(assignment . (variable (identifier) @local.definition.variable))
; References
(identifier) @local.reference
; Attribute names are hash-like keys, not variable references.
(attribute name: (identifier) @_)