@@ -0,0 +1,217 @@
2+ namespace: (identifier) @namespace)
4+ name: (identifier) @namespace)
6+ name: (identifier) @namespace)
8+;; Identifier naming conventions
10+ (#match? @type "^[A-Z]"))
36+ (identifier) @function)
39+ name: (identifier) @type)
41+ name: (identifier) @function)
43+ name: (identifier) @function)
45+ name: (identifier) @type)
47+ name: (identifier) @function)
49+ type: (identifier) @type)
51+ name: (identifier) @function)
53+ name: (identifier) @type)
55+ extends: (identifier) @type)
58+ type: (identifier) @type)
61+ name: (identifier) @field)
64+ type: (identifier) @type)
66+["if" "then" "else"] @keyword.control.conditional
68+["for" "in" "do"] @keyword.control.repeat
154+ "builtin_initialize"
181+ name: (identifier) @exception)
182+ (#match? @exception "throw"))
189+[(true) (false)] @boolean
191+(number) @constant.numeric.integer
192+(float) @constant.numeric.float
197+(interpolated_string) @string
198+; (escape_sequence) @string.escape
200+; Reset highlighing in string interpolation
201+(interpolation) @none
204+ "{" @punctuation.special
205+ "}" @punctuation.special)
207+["(" ")" "[" "]" "{" "}" "⟨" "⟩"] @punctuation.bracket
209+["|" "," "." ":" ";"] @punctuation.delimiter
217+(identifier) @variable