Unnamed repository; edit this file 'description' to name the repository.
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
; Functions

((function_definition
  ("fn"
   (block_expression) @function.inside)
   (#offset! @function.inside 0 1 0 -1))
 @function.around)

((function_definition
  (external_source (_) @function.inside)
  .)
 @function.around)

(trait_method_declaration) @function.around

((impl_definition
  ("impl"
   (block_expression) @function.inside)
   (#offset! @function.inside 0 1 0 -1))
 @function.around)

; Tests

((test_definition
  ("test"
   (block_expression) @test.inside)
   (#offset! @test.inside 0 1 0 -1))
 @test.around)

; Classes (type-like definitions)

(struct_definition) @class.around
(enum_definition) @class.around
(trait_definition) @class.around
(type_definition) @class.around

; Parameters

((parameters
  .
  (parameter) @parameter.inside
  .
  ","? @_end)
  (#make-range! "parameter.around" @parameter.inside @_end))

((trait_method_declaration
  (trait_method_parameter) @parameter.inside
  .
  ","? @_end)
  (#make-range! "parameter.around" @parameter.inside @_end))

((apply_expression
  (arguments
   (argument) @parameter.inside
   .
   ","? @_end))
  (#make-range! "parameter.around" @parameter.inside @_end))

((dot_apply_expression
  (argument) @parameter.inside
  .
  ","? @_end)
  (#make-range! "parameter.around" @parameter.inside @_end))

((dot_dot_apply_expression
  (argument) @parameter.inside
  .
  ","? @_end)
  (#make-range! "parameter.around" @parameter.inside @_end))

((array_expression
  (_) @parameter.inside
  .
  ","? @_end)
  (#make-range! "parameter.around" @parameter.inside @_end))

; Comments

(comment) @comment.around
(block_comment) @comment.around