mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-02 11:36:54 -04:00
80 lines
2.2 KiB
Scheme
80 lines
2.2 KiB
Scheme
[
|
|
(after_block)
|
|
(catch_block)
|
|
(do_block)
|
|
(stab_expression)
|
|
(rescue_block)
|
|
] @scope
|
|
|
|
(identifier) @reference
|
|
|
|
(call
|
|
function: (function_identifier) @_call-name
|
|
(module) @definition.type
|
|
(#eq? @_call-name "defmodule"))
|
|
|
|
; Function definition without arguments
|
|
(call (function_identifier) @_call-name
|
|
(identifier) @definition.function
|
|
(#any-of? @_call-name "def" "defp" "defguard" "defguardp"))
|
|
|
|
; Function definition with arguments
|
|
(call (function_identifier) @_call-name
|
|
(call
|
|
function: (function_identifier) @definition.function
|
|
(arguments
|
|
[(identifier) @definition.parameter
|
|
(tuple (identifier) @definition.parameter)
|
|
(list (identifier) @definition.parameter)
|
|
(_
|
|
(keyword_list (identifier) @definition.parameter))
|
|
(binary_op
|
|
left: (identifier) @definition.parameter
|
|
operator: "\\\\")]))
|
|
(#any-of? @_call-name "def" "defp"))
|
|
|
|
; Function definition with (some) arguments and guard(s)
|
|
(call (function_identifier) @_call-name
|
|
(binary_op
|
|
left:
|
|
(call
|
|
function: (function_identifier) @definition.function
|
|
(arguments
|
|
[(identifier) @definition.parameter
|
|
(tuple (identifier) @definition.parameter)
|
|
(list (identifier) @definition.parameter)
|
|
(_
|
|
(keyword_list (identifier) @definition.parameter))]))
|
|
operator: "when")
|
|
(#any-of? @_call-name "def" "defp" "defguard" "defguardp"))
|
|
|
|
; Variable assignment and simple pattern matching
|
|
(binary_op
|
|
left:
|
|
[(identifier) @definition.var
|
|
(tuple (identifier) @definition.var)
|
|
(list (identifier) @definition.var)
|
|
(_
|
|
(keyword_list (identifier) @definition.var))]
|
|
operator: "=")
|
|
|
|
; Simple stab expression (ex. case pattern matching) without guard(s)
|
|
(stab_expression
|
|
left:
|
|
(bare_arguments
|
|
[(identifier) @definition.var
|
|
(tuple (identifier) @definition.var)
|
|
(list (identifier) @definition.var)
|
|
(_
|
|
(keyword_list (identifier) @definition.var))]))
|
|
|
|
; Simple stab expression (ex. case pattern matching) with guard(s)
|
|
(stab_expression
|
|
left:
|
|
(bare_arguments
|
|
(binary_op
|
|
left: [(identifier) @definition.var
|
|
(tuple (identifier) @definition.var)
|
|
(list (identifier) @definition.var)
|
|
(_
|
|
(keyword_list (identifier) @definition.var))])))
|