aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/fennel/locals.scm
blob: 320c93bb9219fc4ec79527256051c4fa08f5591f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
(program) @local.scope

(symbol) @local.reference

[
  (let_form)
  (fn_form)
  (lambda_form)
  (each_form)
  (for_form)
  (collect_form)
  (icollect_form)
  (accumulate_form)
  (fcollect_form)
  (faccumulate_form)
  (case_form)
  (match_form)
  (case_try_form)
  (match_try_form)
  (if_form)
] @local.scope

(list
  call: (symbol) @_call
  (#any-of? @_call "while" "when" "do")) @local.scope

(fn_form
  name: [
    (symbol) @local.definition.function
    (multi_symbol
      member: (symbol_fragment) @local.definition.function .)
  ]
  args: (sequence_arguments
    (symbol_binding) @local.definition.parameter)
  (#set! definition.function.scope "parent"))

(lambda_form
  name: [
    (symbol) @local.definition.function
    (multi_symbol
      member: (symbol_fragment) @local.definition.function .)
  ]
  args: (sequence_arguments
    (symbol_binding) @local.definition.parameter)
  (#set! definition.function.scope "parent"))

(macro_form
  name: [
    (symbol) @local.definition.function
    (multi_symbol
      member: (symbol_fragment) @local.definition.function .)
  ]
  args: (sequence_arguments
    (symbol_binding) @local.definition.parameter)
  (#set! definition.function.scope "parent"))