Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit a4b39ee

Browse files
committed
Implement naming conventions
1 parent 16c8071 commit a4b39ee

File tree

1 file changed

+252
-83
lines changed

1 file changed

+252
-83
lines changed

grammars/tree-sitter-go.cson

Lines changed: 252 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -43,88 +43,257 @@ folds: [
4343
scopes:
4444
'source_file': 'source.go'
4545

46-
'comment': 'comment.block'
46+
# Keyword
47+
'"if"': 'keyword.control.condition'
48+
'"else"': 'keyword.control.condition'
49+
'"switch"': 'keyword.control.condition'
50+
'"select"': 'keyword.control.condition'
51+
'"case"': 'keyword.control.condition'
52+
'"fallthrough"': 'keyword.control.condition'
53+
'"default"': 'keyword.control.condition'
54+
'"for"': 'keyword.control.loop'
55+
'"range"': 'keyword.control.loop'
56+
'"break"': 'keyword.control.jump'
57+
'"return"': 'keyword.control.jump'
58+
'"continue"': 'keyword.control.jump'
59+
'"goto"': 'keyword.control.jump'
60+
'"defer"': 'keyword.control.jump'
61+
'"go"': 'keyword.control.jump'
62+
'"package"': 'keyword.control.directive'
63+
'"import"': 'keyword.control.package'
64+
65+
'"+"': 'keyword.operator.arithmetic.symbol'
66+
'"-"': 'keyword.operator.arithmetic.symbol'
67+
'binary_expression > "*"': 'keyword.operator.arithmetic.symbol'
68+
'"/"': 'keyword.operator.arithmetic.symbol'
69+
'"%"': 'keyword.operator.arithmetic.symbol'
70+
'"++"': 'keyword.operator.arithmetic.symbol'
71+
'"--"': 'keyword.operator.arithmetic.symbol'
72+
73+
'binary_expression > "&"': 'keyword.operator.bitwise.symbol'
74+
'"|"': 'keyword.operator.bitwise.symbol'
75+
'"^"': 'keyword.operator.bitwise.symbol'
76+
'"&^"': 'keyword.operator.bitwise.symbol'
77+
'"<<"': 'keyword.operator.bitwise.shift.symbol'
78+
'">>"': 'keyword.operator.bitwise.shift.symbol'
79+
80+
'"="': 'keyword.operator.assignment.symbol'
81+
'":="': 'keyword.operator.assignment.symbol'
82+
'"+="': 'keyword.operator.assignment.compound.symbol'
83+
'"-="': 'keyword.operator.assignment.compound.symbol'
84+
'"*="': 'keyword.operator.assignment.compound.symbol'
85+
'"/="': 'keyword.operator.assignment.compound.symbol'
86+
'"%="': 'keyword.operator.assignment.compound.symbol'
87+
'"<<="': 'keyword.operator.assignment.compound.symbol'
88+
'">>="': 'keyword.operator.assignment.compound.symbol'
89+
'"&="': 'keyword.operator.assignment.compound.symbol'
90+
'"|="': 'keyword.operator.assignment.compound.symbol'
91+
'"^="': 'keyword.operator.assignment.compound.symbol'
92+
93+
'"=="': 'keyword.operator.comparison.symbol'
94+
'"!="': 'keyword.operator.comparison.symbol'
95+
'"<"': 'keyword.operator.comparison.symbol'
96+
'">"': 'keyword.operator.comparison.symbol'
97+
'"<="': 'keyword.operator.comparison.symbol'
98+
'">="': 'keyword.operator.comparison.symbol'
99+
100+
'"!"': 'keyword.operator.logical.symbol'
101+
'"&&"': 'keyword.operator.logical.symbol'
102+
'"||"': 'keyword.operator.logical.symbol'
103+
104+
'"&"': 'keyword.operator.pointer.reference.symbol'
105+
'"*"': 'keyword.operator.pointer.dereference.symbol'
106+
107+
'"<-"': 'keyword.operator.channel.symbol'
108+
109+
'variadic_parameter_declaration > "..."': 'keyword.operator.variadic.symbol'
110+
'variadic_argument > "..."': 'keyword.operator.unpack.symbol'
111+
'implicit_length_array_type > "..."': 'keyword.operator.implicit.symbol'
112+
113+
# Storage
114+
'"var"': 'storage.declaration.variable'
115+
'"const"': 'storage.declaration.variable.immutable'
116+
'"func"': 'storage.declaration.function'
117+
'"type"': 'storage.declaration.datatype'
118+
119+
'function_type > "func"': 'storage.type.language.function'
120+
'"interface"': 'storage.type.language.interface'
121+
'"struct"': 'storage.type.language.structure'
122+
'"map"': 'storage.type.language.map'
123+
'"chan"': 'storage.type.language.channel'
124+
125+
'type_identifier': [
126+
{
127+
match: '^(bool|byte|complex128|complex64|error|float32|float64|int|int16|int32|int64|int8|rune|string|uint|uint16|uint32|uint64|uint8|uintptr)$',
128+
scopes: 'storage.type.language.primitive'
129+
},
130+
'storage.type.entity'
131+
]
132+
133+
# Entity
134+
'package_identifier': 'entity.package'
135+
136+
'label_name': 'entity.label'
137+
138+
'identifier': [
139+
{
140+
exact: 'iota',
141+
scopes: 'entity.variable.support.iota'
142+
},
143+
'entity.variable'
144+
]
145+
146+
'parameter_declaration > identifier': [
147+
{
148+
exact: 'iota',
149+
scopes: 'entity.variable.support.parameter.iota'
150+
},
151+
'entity.variable.parameter'
152+
]
153+
154+
'field_identifier': 'entity.variable.member'
155+
156+
'call_expression > identifier': [
157+
{
158+
match: '^(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)$',
159+
scopes: 'entity.function.support.call'
160+
},
161+
{
162+
match: '^(bool|byte|complex128|complex64|error|float32|float64|int|int16|int32|int64|int8|rune|string|uint|uint16|uint32|uint64|uint8|uintptr)$',
163+
scopes: 'entity.type.cast.language.call'
164+
},
165+
'entity.function.call'
166+
]
167+
168+
'call_expression > selector_expression > field_identifier': 'entity.function.call'
169+
170+
'function_declaration > identifier': 'entity.function.definition'
171+
'method_declaration > field_identifier': 'entity.function.method.definition'
172+
'type_declaration > type_spec > type_identifier': 'entity.type.definition'
173+
174+
# String
175+
'interpreted_string_literal': 'string.quoted'
176+
'raw_string_literal': 'string.quoted'
177+
178+
# Constant
179+
'escape_sequence': [
180+
{
181+
match: '[tf]',
182+
scopes: 'constant.character.escape.whitespace'
183+
},
184+
{
185+
match: '[nr]',
186+
scopes: 'constant.character.escape.whitespace.newline'
187+
},
188+
'constant.character.escape'
189+
]
190+
191+
'rune_literal': 'constant.character.rune'
47192

48-
'"var"': 'keyword.import'
49-
'"type"': 'keyword.type'
50-
'"func"': 'keyword.function'
51-
'"const"': 'keyword.const'
52-
'"struct"': 'keyword.struct'
53-
'"interface"': 'keyword.interface'
54-
'"import"': 'keyword.import'
55-
'"package"': 'keyword.package'
56-
'"map"': 'keyword.map'
57-
'"chan"': 'keyword.chan'
58-
59-
'type_identifier': 'support.storage.type'
60-
'field_identifier': 'variable.other.object.property'
61-
'package_identifier': 'entity.name.package'
62-
63-
'"if"': 'keyword.control'
64-
'"for"': 'keyword.control'
65-
'"else"': 'keyword.control'
66-
'"case"': 'keyword.control'
67-
'"break"': 'keyword.control'
68-
'"switch"': 'keyword.control'
69-
'"select"': 'keyword.control'
70-
'"return"': 'keyword.control'
71-
'"default"': 'keyword.control'
72-
'"continue"': 'keyword.control'
73-
'"goto"': 'keyword.control'
74-
'"fallthrough"': 'keyword.control'
75-
'"defer"': 'keyword.control'
76-
'"range"': 'keyword.control'
77-
'"go"': 'keyword.control'
78-
79-
'interpreted_string_literal': 'string.quoted.double'
80-
'raw_string_literal': 'string.quoted.double'
81-
'escape_sequence': 'constant.character.escape'
82-
'rune_literal': 'constant.other.rune'
83193
'int_literal': 'constant.numeric.integer'
84-
'float_literal': 'constant.numeric.float'
85-
'imaginary_literal': 'constant.numeric.integer'
86-
'nil': 'constant.language.nil'
87-
'false': 'constant.language.false'
88-
'true': 'constant.language.true'
89-
90-
'call_expression > identifier': 'entity.name.function'
91-
'function_declaration > identifier': 'entity.name.function'
92-
'method_declaration > field_identifier': 'entity.name.function'
93-
'call_expression > selector_expression > field_identifier': 'entity.name.function'
94-
95-
'"+"': 'keyword.operator'
96-
'"-"': 'keyword.operator'
97-
'"*"': 'keyword.operator'
98-
'"/"': 'keyword.operator'
99-
'"%"': 'keyword.operator'
100-
'"++"': 'keyword.operator'
101-
'"--"': 'keyword.operator'
102-
'"=="': 'keyword.operator'
103-
'"!="': 'keyword.operator'
104-
'">"': 'keyword.operator'
105-
'"<"': 'keyword.operator'
106-
'">="': 'keyword.operator'
107-
'"<="': 'keyword.operator'
108-
'"!"': 'keyword.operator'
109-
'"|"': 'keyword.operator'
110-
'"^"': 'keyword.operator'
111-
'"<<"': 'keyword.operator'
112-
'">>"': 'keyword.operator'
113-
'"="': 'keyword.operator'
114-
'"+="': 'keyword.operator'
115-
'"-="': 'keyword.operator'
116-
'"*="': 'keyword.operator'
117-
'"/="': 'keyword.operator'
118-
'"%="': 'keyword.operator'
119-
'"<<="': 'keyword.operator'
120-
'">>="': 'keyword.operator'
121-
'"&="': 'keyword.operator'
122-
'"^="': 'keyword.operator'
123-
'"|="': 'keyword.operator'
124-
'":="': 'keyword.operator'
125-
'"&"': 'keyword.operator'
126-
'"*"': 'keyword.operator'
127-
'"&&"': 'keyword.operator'
128-
'"||"': 'keyword.operator'
129-
'"..."': 'keyword.operator'
130-
'"<-"': 'keyword.operator'
194+
'float_literal': 'constant.numeric.decimal'
195+
'imaginary_literal': 'constant.numeric.complex'
196+
197+
'nil': 'constant.language.null'
198+
'true': 'constant.language.boolean.true'
199+
'false': 'constant.language.boolean.false'
200+
201+
# Comment
202+
'comment': 'comment.block'
203+
204+
# Punctuation
205+
'":"': 'punctuation.definition'
206+
'"("': 'punctuation.definition'
207+
'")"': 'punctuation.definition'
208+
'"{"': 'punctuation.definition'
209+
'"}"': 'punctuation.definition'
210+
'"["': 'punctuation.definition'
211+
'"]"': 'punctuation.definition'
212+
'","': 'punctuation.separator'
213+
'";"': 'punctuation.terminator'
214+
'"."': 'punctuation.accessor.member'
215+
'"\\""': 'punctuation.definition.string'
216+
217+
'slice_expression > ":"': 'punctuation.separator.slice'
218+
'keyed_element > ":"': 'punctuation.separator.pair'
219+
220+
'parenthesized_expression > "("': 'punctuation.definition.expression'
221+
'parenthesized_expression > ")"': 'punctuation.definition.expression'
222+
223+
'parameter_list > "("': 'punctuation.definition.parameters'
224+
'parameter_list > ")"': 'punctuation.definition.parameters'
225+
226+
'argument_list > "("': 'punctuation.definition.arguments'
227+
'argument_list > ")"': 'punctuation.definition.arguments'
228+
'special_argument_list > "("': 'punctuation.definition.arguments'
229+
'special_argument_list > ")"': 'punctuation.definition.arguments'
230+
'type_switch_statement > "("': 'punctuation.definition.arguments'
231+
'type_switch_statement > ")"': 'punctuation.definition.arguments'
232+
'type_assertion_expression > "("': 'punctuation.definition.arguments'
233+
'type_assertion_expression > ")"': 'punctuation.definition.arguments'
234+
'type_conversion_expression > "("': 'punctuation.definition.arguments'
235+
'type_conversion_expression > ")"': 'punctuation.definition.arguments'
236+
237+
'import_spec_list > "("': 'punctuation.definition.package'
238+
'import_spec_list > ")"': 'punctuation.definition.package'
239+
240+
'const_declaration > "("': 'punctuation.definition.variable'
241+
'const_declaration > ")"': 'punctuation.definition.variable'
242+
'var_declaration > "("': 'punctuation.definition.variable'
243+
'var_declaration > ")"': 'punctuation.definition.variable'
244+
245+
'type_declaration > "("': 'punctuation.definition.type'
246+
'type_declaration > ")"': 'punctuation.definition.type'
247+
'parenthesized_type > "("': 'punctuation.definition.type'
248+
'parenthesized_type > ")"': 'punctuation.definition.type'
249+
250+
'literal_value > "{"': 'punctuation.definition.literal'
251+
'literal_value > "}"': 'punctuation.definition.literal'
252+
253+
'field_declaration_list > "{"': 'punctuation.definition.body.structure'
254+
'field_declaration_list > "}"': 'punctuation.definition.body.structure'
255+
256+
'method_spec_list > "{"': 'punctuation.definition.body.class.abstract'
257+
'method_spec_list > "}"': 'punctuation.definition.body.class.abstract'
258+
259+
'block > "{"': 'punctuation.definition.statement'
260+
'block > "}"': 'punctuation.definition.statement'
261+
'select_statement > "{"': 'punctuation.definition.statement'
262+
'select_statement > "}"': 'punctuation.definition.statement'
263+
'type_switch_statement > "{"': 'punctuation.definition.statement'
264+
'type_switch_statement > "}"': 'punctuation.definition.statement'
265+
'expression_switch_statement > "{"': 'punctuation.definition.statement'
266+
'expression_switch_statement > "}"': 'punctuation.definition.statement'
267+
268+
'func_literal > block > "{"': 'punctuation.definition.body.function'
269+
'func_literal > block > "}"': 'punctuation.definition.body.function'
270+
'function_declaration > block > "{"': 'punctuation.definition.body.function'
271+
'function_declaration > block > "}"': 'punctuation.definition.body.function'
272+
'method_declaration > block > "{"': 'punctuation.definition.body.function.method'
273+
'method_declaration > block > "}"': 'punctuation.definition.body.function.method'
274+
275+
'map_type > "["': 'punctuation.definition.collection.map'
276+
'map_type > "]"': 'punctuation.definition.collection.map'
277+
'slice_type > "["': 'punctuation.definition.collection.slice'
278+
'slice_type > "]"': 'punctuation.definition.collection.slice'
279+
'array_type > "["': 'punctuation.definition.collection.array'
280+
'array_type > "]"': 'punctuation.definition.collection.array'
281+
'implicit_length_array_type > "["': 'punctuation.definition.collection.array'
282+
'implicit_length_array_type > "]"': 'punctuation.definition.collection.array'
283+
284+
'index_expression > "["': 'punctuation.accessor.subscript.index'
285+
'index_expression > "]"': 'punctuation.accessor.subscript.index'
286+
'slice_expression > "["': 'punctuation.accessor.subscript.slice'
287+
'slice_expression > "]"': 'punctuation.accessor.subscript.slice'
288+
289+
'ERROR > ":"': 'punctuation.definition.invalid.illegal'
290+
'ERROR > "{"': 'punctuation.definition.invalid.illegal'
291+
'ERROR > "}"': 'punctuation.definition.invalid.illegal'
292+
'ERROR > "("': 'punctuation.definition.invalid.illegal'
293+
'ERROR > ")"': 'punctuation.definition.invalid.illegal'
294+
'ERROR > "["': 'punctuation.definition.invalid.illegal'
295+
'ERROR > "]"': 'punctuation.definition.invalid.illegal'
296+
'ERROR > ","': 'punctuation.separator.invalid.illegal'
297+
'ERROR > ";"': 'punctuation.terminator.invalid.illegal'
298+
'ERROR > "."': 'punctuation.accessor.member.invalid.illegal'
299+
'ERROR > "\\""': 'punctuation.definition.string.invalid.illegal'

0 commit comments

Comments
 (0)