mirror of
https://github.com/helix-editor/helix
synced 2026-08-05 02:33:01 +02:00
32 lines
1.1 KiB
Scheme
32 lines
1.1 KiB
Scheme
; Upstream: https://github.com/alex-pinkus/tree-sitter-swift/blob/57c1c6d6ffa1c44b330182d41717e6fe37430704/queries/locals.scm
|
|
(import_declaration (identifier) @local.definition.namespace)
|
|
(function_declaration name: (simple_identifier) @local.definition.function)
|
|
|
|
; Parameters: the `name` field is the in-body binding (external_name is the
|
|
; call-site label, handled as a discard below).
|
|
(parameter name: (simple_identifier) @local.definition.variable.parameter)
|
|
(lambda_parameter name: (simple_identifier) @local.definition.variable.parameter)
|
|
|
|
; Scopes
|
|
[
|
|
(for_statement)
|
|
(while_statement)
|
|
(repeat_while_statement)
|
|
(do_statement)
|
|
(if_statement)
|
|
(guard_statement)
|
|
(switch_statement)
|
|
(property_declaration)
|
|
(function_declaration)
|
|
(class_declaration)
|
|
(protocol_declaration)
|
|
(lambda_literal)
|
|
] @local.scope
|
|
|
|
(simple_identifier) @local.reference
|
|
|
|
; Discards: identifiers that look like references but aren't variable uses.
|
|
(call_expression (simple_identifier) @_) ; foo() call name
|
|
(navigation_suffix (simple_identifier) @_) ; .bar member/method name
|
|
(parameter external_name: (simple_identifier) @_) ; call-site argument label
|