@@ -0,0 +1,141 @@
1+; Preproc
2+
3+(unique_id) @keyword.directive
4+(top_level_annotation_body) @keyword.directive
5+
6+; Includes
7+
8+[
9+ "import"
10+ "$import"
11+ "embed"
12+] @keyword.control.import
13+
14+(import_path) @string
15+
16+; Builtins
17+
18+[
19+ (primitive_type)
20+ "List"
21+] @type.builtin
22+
23+; Typedefs
24+
25+(type_definition) @type
26+
27+; Labels (@number, @number!)
28+
29+(field_version) @label
30+
31+; Methods
32+
33+(annotation_definition_identifier) @function.method
34+(method_identifier) @function.method
35+
36+; Fields
37+
38+(field_identifier) @variable.other.member
39+
40+; Properties
41+
42+(property) @label
43+
44+; Parameters
45+
46+(param_identifier) @variable.parameter
47+(return_identifier) @variable.parameter
48+
49+; Constants
50+
51+(const_identifier) @variable
52+(local_const) @constant
53+(enum_member) @type.enum.variant
54+
55+(void) @constant.builtin
56+
57+; Types
58+
59+(enum_identifier) @type.enum
60+(extend_type) @type
61+(type_identifier) @type
62+
63+; Attributes
64+
65+(annotation_identifier) @attribute
66+(attribute) @attribute
67+
68+; Operators
69+
70+[
71+ ; @ ! -
72+ "="
73+] @operator
74+
75+; Keywords
76+
77+
78+[
79+ "annotation"
80+ "enum"
81+ "group"
82+ "interface"
83+ "struct"
84+ "union"
85+] @keyword.storage.type
86+
87+[
88+ "extends"
89+ "namespace"
90+ "using"
91+ (annotation_target)
92+] @special
93+
94+; Literals
95+
96+[
97+ (string)
98+ (concatenated_string)
99+ (block_text)
100+ (namespace)
101+] @string
102+
103+(escape_sequence) @constant.character.escape
104+
105+(data_string) @string.special
106+
107+(number) @constant.numeric.integer
108+
109+(float) @constant.numeric.float
110+
111+(boolean) @constant.builtin.boolean
112+
113+; Misc
114+
115+[
116+ "const"
117+] @keyword.storage.modifier
118+
119+[
120+ "*"
121+ "$"
122+ ":"
123+] @string.special.symbol
124+
125+["{" "}"] @punctuation.bracket
126+
127+["(" ")"] @punctuation.bracket
128+
129+["[" "]"] @punctuation.bracket
130+
131+[
132+ ","
133+ ";"
134+ "->"
135+] @punctuation.delimiter
136+
137+(data_hex) @constant
138+
139+; Comments
140+
141+(comment) @comment.line