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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
; highlights.scm

(identifier) @variable

; Member access: the name after `$`/`@` (`obj$field`, `s4@slot`).
(extract_operator rhs: (identifier) @variable.other.member)

; Literals

[
  (integer)
  (complex)
] @constant.numeric.integer

[
  (float)
  (nan)
  (inf)
] @constant.numeric.float

[
  (true)
  (false)
] @constant.builtin.boolean

[
  (na)
  (null)
  (dots)
  (dot_dot_i)
] @constant.builtin

(string) @string
(string (string_content (escape_sequence) @constant.character.escape))

; Comments

(comment) @comment

; Operators

[
  "!" "!=" "$" "&" "&&" "*" "**" "+" "-" "->" "->>" "/" ":" ":::" ":::" ":=" "<"
  "<-" "<<-" "<=" "=" "==" ">" ">=" "?" "@" "^" "special" "|" "|>" "||" "~"
] @operator

(function_definition name: "\\" @operator)

; Punctuation

[
  "(" ")"
  "[" "]"
  "{" "}"
  "[[" "]]"
] @punctuation.bracket

(comma) @punctuation.delimiter

; Functions

(binary_operator
  lhs: (identifier) @function
  operator: "<-"
  rhs: (function_definition))

(binary_operator
  lhs: (identifier) @function
  operator: "="
  rhs: (function_definition))

; Calls

(call function: (identifier) @function)
(call function: (namespace_operator rhs: (identifier) @function))

; Parameters

(parameters (parameter name: (identifier) @variable.parameter))
(arguments (argument name: (identifier) @variable.parameter))

; Namespaces

(namespace_operator lhs: (identifier) @namespace)

; Keywords

[
  "in"
  (next)
  (break)
] @keyword

(return) @keyword.control.return

[
  "if"
  "else"
] @keyword.control.conditional

[
  "while"
  "repeat"
  "for"
] @keyword.control.repeat

"function" @keyword.function