@@ -4,82 +4,89 @@
4 (line_comment)
4 (line_comment)
7−; field in top level decl, and in struct, union...
7+[
9− (IDENTIFIER) @property
8+ variable: (IDENTIFIER)
10− (SuffixExpr (IDENTIFIER) @type)?
9+ variable_type_function: (IDENTIFIER)
13−; error.OutOfMemory;
12+parameter: (IDENTIFIER) @variable.parameter
16− "."
15+ field_member: (IDENTIFIER)
16+ field_access: (IDENTIFIER)
19+;; assume TitleCase is a type
22+ variable_type_function: (IDENTIFIER)
23+ field_access: (IDENTIFIER)
24+ parameter: (IDENTIFIER)
26+ (#match? @type "^[A-Z]([a-z]+[A-Za-z0-9]*)*$")
28+;; assume camelCase is a function
17− (IDENTIFIER) @constant
31+ variable_type_function: (IDENTIFIER)
32+ field_access: (IDENTIFIER)
33+ parameter: (IDENTIFIER)
35+ (#match? @function "^[a-z]+([A-Z][a-z0-9]*)+$")
38+;; assume all CAPS_1 is a constant
20−; var x: IDENTIFIER
41+ variable_type_function: (IDENTIFIER)
21−type: (SuffixExpr (IDENTIFIER) @type)
42+ field_access: (IDENTIFIER)
44+ (#match? @constant "^[A-Z][A-Z_0-9]+$")
23−; IDENTIFIER{}
48+ function_call: (IDENTIFIER)
24−constructor: (SuffixExpr (IDENTIFIER) @constructor)
49+ function: (IDENTIFIER)
26−; fields
52+exception: "!" @function.macro
27−(FieldInit (IDENTIFIER) @property)
29−; foo.bar.baz.function() calls
32− (IDENTIFIER) @function
55+ (IDENTIFIER) @variable.builtin
33− )
56+ (#eq? @variable.builtin "_")
38−; function() calls
59+(PtrTypeStart "c" @variable.builtin)
40− (
62+ (ContainerDeclType
41− (IDENTIFIER) @function
63+ [
43− .
68+ (ContainerField (IDENTIFIER) @constant)
47−; functionn decl
71+field_constant: (IDENTIFIER) @constant
49− (IDENTIFIER) @function
50− (SuffixExpr (IDENTIFIER) @type)?
51− ("!")? @function.macro
54−; function parameters and types
73+(BUILTINIDENTIFIER) @function.builtin
56− (IDENTIFIER) @variable.parameter
59− (ParamType (SuffixExpr (IDENTIFIER) @type))
64−; switch
75+((BUILTINIDENTIFIER) @keyword.control.import
65−(SwitchItem
76+ (#any-of? @keyword.control.import "@import" "@cImport"))
69− (IDENTIFIER) @constant
73(INTEGER) @number
78(INTEGER) @number
75(FLOAT) @number
80(FLOAT) @number
78− (STRINGLITERAL)
83+ (LINESTRING)
79 (STRINGLITERALSINGLE)
84 (STRINGLITERALSINGLE)
82−(CHAR_LITERAL) @string
87+(CHAR_LITERAL) @constant.character
88+(EscapeSequence) @escape
89+(FormatSequence) @string.special
85 "allowzero"
92 "allowzero"
@@ -95,6 +102,9 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
105+] @constant.builtin.boolean
98 "undefined"
108 "undefined"
99 "unreachable"
109 "unreachable"
@@ -104,21 +114,18 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
117+] @keyword.control.conditional
121−] @keyword.control
122+] @keyword.control.repeat
@@ -127,21 +134,48 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
138] @keyword
137] @keyword
143] @keyword.function
150] @keyword.function
145; PrecProc
179; PrecProc
@@ -149,10 +183,9 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
150 "callconv"
184 "callconv"
151 "noalias"
185 "noalias"
152−] @attribute
186+] @keyword.directive
156 "linksection"
189 "linksection"
158] @function.builtin
191] @function.builtin
@@ -164,9 +197,6 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
164 (AdditionOp)
197 (AdditionOp)
165 (MultiplyOp)
198 (MultiplyOp)
166 (PrefixOp)
199 (PrefixOp)
@@ -174,6 +204,7 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
177] @operator
208] @operator
@@ -186,6 +217,9 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
220+] @punctuation.special
@@ -195,4 +229,7 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor)
195 (Payload "|")
229 (Payload "|")
196 (PtrPayload "|")
230 (PtrPayload "|")
197 (PtrIndexPayload "|")
231 (PtrIndexPayload "|")
198−] @punctuation
232+] @punctuation.bracket