mirror of
https://github.com/helix-editor/helix
synced 2026-08-04 02:12:59 +02:00
34 lines
1.2 KiB
Scheme
34 lines
1.2 KiB
Scheme
; Method, class, module and singleton-class bodies don't see locals from the
|
|
; enclosing scope in Ruby, so they must not inherit.
|
|
([
|
|
(method)
|
|
(singleton_method)
|
|
(class)
|
|
(module)
|
|
(singleton_class)
|
|
] @local.scope
|
|
(#set! local.scope-inherits false))
|
|
|
|
[
|
|
(lambda)
|
|
(block)
|
|
(do_block)
|
|
] @local.scope
|
|
|
|
(block_parameter (identifier) @local.definition.variable.parameter)
|
|
(block_parameters (identifier) @local.definition.variable.parameter)
|
|
(destructured_parameter (identifier) @local.definition.variable.parameter)
|
|
(hash_splat_parameter (identifier) @local.definition.variable.parameter)
|
|
(lambda_parameters (identifier) @local.definition.variable.parameter)
|
|
(method_parameters (identifier) @local.definition.variable.parameter)
|
|
(splat_parameter (identifier) @local.definition.variable.parameter)
|
|
(keyword_parameter name: (identifier) @local.definition.variable.parameter)
|
|
(optional_parameter name: (identifier) @local.definition.variable.parameter)
|
|
|
|
(identifier) @local.reference
|
|
|
|
; A method-call name is not a variable reference (the grammar only forms `call`
|
|
; when it's syntactically a call), so a same-named local must not capture it.
|
|
(call
|
|
method: (identifier) @_)
|