1"break" @keyword
2"case" @keyword
3"const" @keyword
4"continue" @keyword
5"default" @keyword
6"do" @keyword
7"else" @keyword
8"enum" @keyword
9"extern" @keyword
10"for" @keyword
11"if" @keyword
12"inline" @keyword
13"return" @keyword
14"sizeof" @keyword
15"static" @keyword
16"struct" @keyword
17"switch" @keyword
18"typedef" @keyword
19"union" @keyword
20"volatile" @keyword
21"while" @keyword
22
23"#define" @keyword
24"#elif" @keyword
25"#else" @keyword
26"#endif" @keyword
27"#if" @keyword
28"#ifdef" @keyword
29"#ifndef" @keyword
30"#include" @keyword
31(preproc_directive) @keyword
32
33"--" @operator
34"-" @operator
35"-=" @operator
36"->" @operator
37"=" @operator
38"!=" @operator
39"*" @operator
40"&" @operator
41"&&" @operator
42"+" @operator
43"++" @operator
44"+=" @operator
45"<" @operator
46"==" @operator
47">" @operator
48"||" @operator
49
50"." @delimiter
51";" @delimiter
52
53(string_literal) @string
54(system_lib_string) @string
55
56(null) @constant
57(number_literal) @number
58(char_literal) @number
59
60(identifier) @variable
61
62(field_identifier) @property
63(statement_identifier) @label
64(type_identifier) @type
65(primitive_type) @type
66(sized_type_specifier) @type
67
68(call_expression
69 function: (identifier) @function)
70(call_expression
71 function: (field_expression
72 field: (field_identifier) @function))
73(function_declarator
74 declarator: (identifier) @function)
75(preproc_function_def
76 name: (identifier) @function.special)
77
78((identifier) @constant
79 (#match? @constant "^[A-Z][A-Z\\d_]*$"))
80
81(comment) @comment
82
83[
84 "in"
85 "out"
86 "inout"
87 "uniform"
88 "shared"
89 "layout"
90 "attribute"
91 "varying"
92 "buffer"
93 "coherent"
94 "readonly"
95 "writeonly"
96 "precision"
97 "highp"
98 "mediump"
99 "lowp"
100 "centroid"
101 "sample"
102 "patch"
103 "smooth"
104 "flat"
105 "noperspective"
106 "invariant"
107 "precise"
108] @type.qualifier
109
110"subroutine" @keyword.function
111
112(extension_storage_class) @storageclass
113
114(
115 (identifier) @variable.builtin
116 (#match? @variable.builtin "^gl_")
117)