@@ -0,0 +1,163 @@
1+; Types
2+;------
3+
4+(scalar_type_definition
5+ (name) @type)
6+
7+(object_type_definition
8+ (name) @type)
9+
10+(interface_type_definition
11+ (name) @type)
12+
13+(union_type_definition
14+ (name) @type)
15+
16+(enum_type_definition
17+ (name) @type)
18+
19+(input_object_type_definition
20+ (name) @type)
21+
22+(directive_definition
23+ (name) @type)
24+
25+(directive_definition
26+ "@" @type)
27+
28+(scalar_type_extension
29+ (name) @type)
30+
31+(object_type_extension
32+ (name) @type)
33+
34+(interface_type_extension
35+ (name) @type)
36+
37+(union_type_extension
38+ (name) @type)
39+
40+(enum_type_extension
41+ (name) @type)
42+
43+(input_object_type_extension
44+ (name) @type)
45+
46+(named_type
47+ (name) @type)
48+
49+(directive) @type
50+
51+; Properties
52+;-----------
53+
54+(field
55+ (name) @variable.other.member)
56+
57+(field
58+ (alias
59+ (name) @variable.other.member))
60+
61+(field_definition
62+ (name) @variable.other.member)
63+
64+(object_value
65+ (object_field
66+ (name) @variable.other.member))
67+
68+(enum_value
69+ (name) @variable.other.member)
70+
71+; Variable Definitions and Arguments
72+;-----------------------------------
73+
74+(operation_definition
75+ (name) @variable)
76+
77+(fragment_name
78+ (name) @variable)
79+
80+(input_fields_definition
81+ (input_value_definition
82+ (name) @variable.parameter))
83+
84+(argument
85+ (name) @variable.parameter)
86+
87+(arguments_definition
88+ (input_value_definition
89+ (name) @variable.parameter))
90+
91+(variable_definition
92+ (variable) @variable.parameter)
93+
94+(argument
95+ (value
96+ (variable) @variable))
97+
98+; Constants
99+;----------
100+
101+(string_value) @string
102+
103+(int_value) @constants.numeric.integer
104+
105+(float_value) @constants.numeric.float
106+
107+(boolean_value) @constants.builtin.boolean
108+
109+; Literals
110+;---------
111+
112+(description) @comment
113+
114+(comment) @comment
115+
116+(directive_location
117+ (executable_directive_location) @type.builtin)
118+
119+(directive_location
120+ (type_system_directive_location) @type.builtin)
121+
122+; Keywords
123+;----------
124+
125+[
126+ "query"
127+ "mutation"
128+ "subscription"
129+ "fragment"
130+ "scalar"
131+ "type"
132+ "interface"
133+ "union"
134+ "enum"
135+ "input"
136+ "extend"
137+ "directive"
138+ "schema"
139+ "on"
140+ "repeatable"
141+ "implements"
142+] @keyword
143+
144+; Punctuation
145+;------------
146+
147+[
148+ "("
149+ ")"
150+ "["
151+ "]"
152+ "{"
153+ "}"
154+] @punctuation.bracket
155+
156+"=" @operator
157+
158+"|" @punctuation.delimiter
159+"&" @punctuation.delimiter
160+":" @punctuation.delimiter
161+
162+"..." @punctuation.special
163+"!" @punctuation.special