github-linguist 4.8.2 → 4.8.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,99 @@
1
+ {
2
+ "fileTypes": [
3
+ "dmf"
4
+ ],
5
+ "name": "Dream Maker Interface",
6
+ "patterns": [
7
+ {
8
+ "match": "((#?\\b[0-9a-fA-F]*)|\\b(([0-9]+(,|x)?[0-9]*)|(\\.[0-9]+)))\\b",
9
+ "name": "constant.numeric.dm"
10
+ },
11
+ {
12
+ "match": "(^(macro|menu)|(\\b(window|elem)))\\b",
13
+ "name": "storage.type.dm"
14
+ },
15
+ {
16
+ "match": "\\b(true|false|none)\\b",
17
+ "name": "variable.language.dm"
18
+ },
19
+ {
20
+ "match": "\\b([A-Z_]+)\\b",
21
+ "name": "constant.language.dm"
22
+ },
23
+ {
24
+ "begin": "\"",
25
+ "beginCaptures": {
26
+ "0": {
27
+ "name": "punctuation.definition.string.begin.dm"
28
+ }
29
+ },
30
+ "end": "\"",
31
+ "endCaptures": {
32
+ "0": {
33
+ "name": "punctuation.definition.string.end.dm"
34
+ }
35
+ },
36
+ "name": "string.quoted.double.dm",
37
+ "patterns": [
38
+ {
39
+ "include": "#string_escaped_char"
40
+ },
41
+ {
42
+ "include": "#string_embedded_expression"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "begin": "'",
48
+ "beginCaptures": {
49
+ "0": {
50
+ "name": "punctuation.definition.string.begin.dm"
51
+ }
52
+ },
53
+ "end": "'",
54
+ "endCaptures": {
55
+ "0": {
56
+ "name": "punctuation.definition.string.end.dm"
57
+ }
58
+ },
59
+ "name": "string.quoted.single.dm",
60
+ "patterns": [
61
+ {
62
+ "include": "#string_escaped_char"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "begin": "(?x)\n \t\t(?: ^ # begin-of-line\n \t\t |\n \t\t (?: (?= \\s ) (?<!else|new|return) (?<=\\w) # or word + space before name\n \t\t | (?= \\s*[A-Za-z_] ) (?<!&&) (?<=[*&>]) # or type modifier before name\n \t\t )\n \t\t)\n \t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n \t\t(\n \t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n \t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n \t\t)\n \t\t \\s*(?=\\()",
68
+ "beginCaptures": {
69
+ "1": {
70
+ "name": "punctuation.whitespace.function.leading.dm"
71
+ },
72
+ "3": {
73
+ "name": "entity.name.function.dm"
74
+ },
75
+ "4": {
76
+ "name": "punctuation.definition.parameters.dm"
77
+ }
78
+ },
79
+ "end": "(?<=\\})|(?=#)|(;)?",
80
+ "name": "meta.function.dm",
81
+ "patterns": [
82
+ {
83
+ "include": "#comments"
84
+ },
85
+ {
86
+ "include": "#parens"
87
+ },
88
+ {
89
+ "match": "\\bconst\\b",
90
+ "name": "storage.modifier.dm"
91
+ },
92
+ {
93
+ "include": "#block"
94
+ }
95
+ ]
96
+ }
97
+ ],
98
+ "scopeName": "source.dmf"
99
+ }
@@ -0,0 +1,219 @@
1
+ {
2
+ "scopeName": "source.graphql",
3
+ "name": "GraphQL",
4
+ "fileTypes": [
5
+ "graphql",
6
+ "GraphQL"
7
+ ],
8
+ "foldingStartMarker": "{([",
9
+ "foldingStopMarker": "})]",
10
+ "patterns": [
11
+ {
12
+ "include": "#comment"
13
+ },
14
+ {
15
+ "name": "meta.fragment",
16
+ "comment": "a fragment definintion",
17
+ "match": "(fragment)\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(on)\\s*([_A-Za-z][_0-9A-Za-z]*)",
18
+ "captures": {
19
+ "1": {
20
+ "name": "storage.type"
21
+ },
22
+ "2": {
23
+ "name": "variable.other"
24
+ },
25
+ "3": {
26
+ "name": "keyword.operator"
27
+ },
28
+ "4": {
29
+ "name": "support.constant"
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "name": "meta.operation",
35
+ "comment": "an operation definition",
36
+ "match": "(query|mutation)\\s*([_A-Za-z][_0-9A-Za-z]*)",
37
+ "captures": {
38
+ "1": {
39
+ "name": "storage.type"
40
+ },
41
+ "2": {
42
+ "name": "variable.other"
43
+ }
44
+ }
45
+ },
46
+ {
47
+ "include": "#arguments"
48
+ },
49
+ {
50
+ "include": "#selections"
51
+ }
52
+ ],
53
+ "repository": {
54
+ "string": {
55
+ "name": "string.quoted.double",
56
+ "begin": "\"",
57
+ "beginCaptures": {
58
+ "0": {
59
+ "name": "punctuation.definition.string.begin"
60
+ }
61
+ },
62
+ "end": "\"",
63
+ "endCaptures": {
64
+ "0": {
65
+ "name": "punctuation.definition.string.end"
66
+ }
67
+ },
68
+ "patterns": [
69
+ {
70
+ "include": "#escapedChar"
71
+ }
72
+ ]
73
+ },
74
+ "variable": {
75
+ "name": "constant.other.symbol",
76
+ "match": "\\$[_A-Za-z][_0-9A-Za-z]*"
77
+ },
78
+ "boolean": {
79
+ "name": "constant.language.boolean",
80
+ "match": "true|false"
81
+ },
82
+ "number": {
83
+ "name": "constant.numeric",
84
+ "match": "\\d+\\.?\\d*[eE]?[\\+\\-]?\\d*"
85
+ },
86
+ "directive": {
87
+ "name": "storage.modifier",
88
+ "match": "@[a-z]+"
89
+ },
90
+ "argument": {
91
+ "name": "variable.parameter",
92
+ "match": "[_A-Za-z][_0-9A-Za-z]*:"
93
+ },
94
+ "enum": {
95
+ "name": "support.constant.enum",
96
+ "match": "[_A-Za-z][_0-9A-Za-z]*"
97
+ },
98
+ "fragmentSpread": {
99
+ "match": "(\\.\\.\\.)\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(on)?",
100
+ "captures": {
101
+ "1": {
102
+ "name": "keyword.operator"
103
+ },
104
+ "2": {
105
+ "name": "variable.other"
106
+ }
107
+ }
108
+ },
109
+ "inlineFragment": {
110
+ "match": "(\\.\\.\\.)\\s*(on)\\s*([_A-Za-z][_0-9A-Za-z]*)",
111
+ "captures": {
112
+ "1": {
113
+ "name": "keyword.operator"
114
+ },
115
+ "2": {
116
+ "name": "keyword.operator"
117
+ },
118
+ "3": {
119
+ "name": "support.constant"
120
+ }
121
+ }
122
+ },
123
+ "arguments": {
124
+ "name": "meta.arguments",
125
+ "begin": "\\(",
126
+ "beginCaptures": {
127
+ "0": {
128
+ "name": "meta.brace.round.graphql"
129
+ }
130
+ },
131
+ "end": "\\)",
132
+ "endCaptures": {
133
+ "0": {
134
+ "name": "meta.brace.round.graphql"
135
+ }
136
+ },
137
+ "patterns": [
138
+ {
139
+ "include": "#argument"
140
+ },
141
+ {
142
+ "include": "#string"
143
+ },
144
+ {
145
+ "include": "#boolean"
146
+ },
147
+ {
148
+ "include": "#variable"
149
+ },
150
+ {
151
+ "include": "#number"
152
+ },
153
+ {
154
+ "include": "#enum"
155
+ },
156
+ {
157
+ "include": "#comment"
158
+ }
159
+ ]
160
+ },
161
+ "selections": {
162
+ "name": "meta.selections",
163
+ "begin": "\\{",
164
+ "beginCaptures": {
165
+ "0": {
166
+ "name": "meta.brace.curly.graphql"
167
+ }
168
+ },
169
+ "end": "\\}",
170
+ "endCaptures": {
171
+ "0": {
172
+ "name": "meta.brace.curly.graphql"
173
+ }
174
+ },
175
+ "patterns": [
176
+ {
177
+ "include": "#fieldAlias"
178
+ },
179
+ {
180
+ "include": "#inlineFragment"
181
+ },
182
+ {
183
+ "include": "#fragmentSpread"
184
+ },
185
+ {
186
+ "include": "#directive"
187
+ },
188
+ {
189
+ "include": "#arguments"
190
+ },
191
+ {
192
+ "include": "#comment"
193
+ },
194
+ {
195
+ "include": "#selections"
196
+ },
197
+ {
198
+ "include": "#builtInField"
199
+ }
200
+ ]
201
+ },
202
+ "comment": {
203
+ "name": "comment.line.number-sign.graphql",
204
+ "match": "#.*$"
205
+ },
206
+ "builtInField": {
207
+ "match": "__schema|__typename|__type",
208
+ "name": "keyword.other.graphql"
209
+ },
210
+ "escapedChar": {
211
+ "match": "\\\\(?:u[\\da-fA-f]{4}|.)",
212
+ "name": "constant.character.escape.graphql"
213
+ },
214
+ "fieldAlias": {
215
+ "match": "[_A-Za-z][_0-9A-Za-z]*:",
216
+ "name": "variable.other.alias.graphql"
217
+ }
218
+ }
219
+ }
@@ -0,0 +1,537 @@
1
+ {
2
+ "fileTypes": [
3
+ "idr"
4
+ ],
5
+ "name": "Idris",
6
+ "patterns": [
7
+ {
8
+ "captures": {
9
+ "1": {
10
+ "name": "punctuation.definition.entity.idris"
11
+ },
12
+ "2": {
13
+ "name": "punctuation.definition.entity.idris"
14
+ }
15
+ },
16
+ "comment": "Infix function application",
17
+ "match": "(`)[\\w']*?(`)",
18
+ "name": "keyword.operator.function.infix.idris"
19
+ },
20
+ {
21
+ "captures": {
22
+ "1": {
23
+ "name": "keyword.other.idris"
24
+ }
25
+ },
26
+ "match": "^(module)\\s+([a-zA-Z._']+)$",
27
+ "name": "meta.declaration.module.idris"
28
+ },
29
+ {
30
+ "captures": {
31
+ "1": {
32
+ "name": "keyword.other.idris"
33
+ }
34
+ },
35
+ "match": "^(import)\\s+([a-zA-Z._']+)$",
36
+ "name": "meta.import.idris"
37
+ },
38
+ {
39
+ "match": "\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b",
40
+ "name": "constant.numeric.float.idris"
41
+ },
42
+ {
43
+ "match": "\\b([0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b",
44
+ "name": "constant.numeric.idris"
45
+ },
46
+ {
47
+ "match": "^\\b(public|abstract|private)\\b",
48
+ "name": "storage.modifier.export.idris"
49
+ },
50
+ {
51
+ "match": "\\b(total|partial)\\b",
52
+ "name": "storage.modifier.totality.idris"
53
+ },
54
+ {
55
+ "match": "^\\b(implicit)\\b",
56
+ "name": "storage.modifier.idris"
57
+ },
58
+ {
59
+ "begin": "\\\"",
60
+ "beginCaptures": {
61
+ "0": {
62
+ "name": "punctuation.definition.string.begin.idris"
63
+ }
64
+ },
65
+ "end": "\\\"",
66
+ "endCaptures": {
67
+ "0": {
68
+ "name": "punctuation.definition.string.end.idris"
69
+ }
70
+ },
71
+ "name": "string.quoted.double.idris",
72
+ "patterns": [
73
+ {
74
+ "include": "#escape_characters"
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "begin": "(?<!\\w)\\'",
80
+ "beginCaptures": {
81
+ "0": {
82
+ "name": "punctuation.definition.string.begin.idris"
83
+ }
84
+ },
85
+ "end": "\\'",
86
+ "endCaptures": {
87
+ "0": {
88
+ "name": "punctuation.definition.string.end.idris"
89
+ }
90
+ },
91
+ "name": "string.quoted.single.idris",
92
+ "patterns": [
93
+ {
94
+ "include": "#escape_characters"
95
+ },
96
+ {
97
+ "match": "\\n",
98
+ "name": "invalid.illegal.idris"
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ "begin": "\\b(class)\\b",
104
+ "beginCaptures": {
105
+ "1": {
106
+ "name": "keyword.other.idris"
107
+ }
108
+ },
109
+ "end": "\\b(where)\\b|$",
110
+ "endCaptures": {
111
+ "1": {
112
+ "name": "keyword.other.idris"
113
+ }
114
+ },
115
+ "name": "meta.declaration.class.idris",
116
+ "patterns": [
117
+ {
118
+ "include": "#prelude_class"
119
+ },
120
+ {
121
+ "include": "#prelude_type"
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ "begin": "\\b(instance)\\b",
127
+ "beginCaptures": {
128
+ "1": {
129
+ "name": "keyword.other.idris"
130
+ }
131
+ },
132
+ "end": "\\b(where)\\b|$",
133
+ "endCaptures": {
134
+ "1": {
135
+ "name": "keyword.other.idris"
136
+ }
137
+ },
138
+ "name": "meta.declaration.instance.idris",
139
+ "patterns": [
140
+ {
141
+ "include": "#prelude_class"
142
+ },
143
+ {
144
+ "include": "#prelude_type"
145
+ },
146
+ {
147
+ "include": "#context_signature"
148
+ },
149
+ {
150
+ "include": "#type_signature"
151
+ }
152
+ ]
153
+ },
154
+ {
155
+ "begin": "\\b(data)\\s+([\\w']+)\\s*(:)?",
156
+ "beginCaptures": {
157
+ "1": {
158
+ "name": "keyword.other.idris"
159
+ },
160
+ "2": {
161
+ "name": "entity.name.type.idris"
162
+ },
163
+ "3": {
164
+ "name": "keyword.operator.colon.idris"
165
+ }
166
+ },
167
+ "end": "\\b(where)\\b|(=)",
168
+ "endCaptures": {
169
+ "1": {
170
+ "name": "keyword.other.idris"
171
+ },
172
+ "2": {
173
+ "name": "keyword.operator.idris"
174
+ }
175
+ },
176
+ "name": "meta.declaration.data.idris",
177
+ "patterns": [
178
+ {
179
+ "include": "#type_signature"
180
+ }
181
+ ]
182
+ },
183
+ {
184
+ "include": "#function_signature"
185
+ },
186
+ {
187
+ "include": "#directive"
188
+ },
189
+ {
190
+ "include": "#comments"
191
+ },
192
+ {
193
+ "include": "#language_const"
194
+ },
195
+ {
196
+ "include": "#language_keyword"
197
+ },
198
+ {
199
+ "include": "#prelude"
200
+ },
201
+ {
202
+ "match": "\\b[A-Z][A-Za-z_'0-9]*",
203
+ "name": "constant.other.idris"
204
+ },
205
+ {
206
+ "match": "[|&!%$?~+:\\-.=</>\\\\*]+",
207
+ "name": "keyword.operator.idris"
208
+ },
209
+ {
210
+ "match": ",",
211
+ "name": "punctuation.separator.comma.idris"
212
+ }
213
+ ],
214
+ "repository": {
215
+ "block_comment": {
216
+ "begin": "\\{-(?!#)",
217
+ "captures": {
218
+ "0": {
219
+ "name": "punctuation.definition.comment.idris"
220
+ }
221
+ },
222
+ "end": "-\\}",
223
+ "name": "comment.block.idris",
224
+ "patterns": [
225
+ {
226
+ "include": "#block_comment"
227
+ }
228
+ ]
229
+ },
230
+ "comments": {
231
+ "patterns": [
232
+ {
233
+ "captures": {
234
+ "1": {
235
+ "name": "punctuation.definition.comment.idris"
236
+ }
237
+ },
238
+ "match": "(--).*$\\n?",
239
+ "name": "comment.line.double-dash.idris"
240
+ },
241
+ {
242
+ "captures": {
243
+ "1": {
244
+ "name": "punctuation.definition.comment.idris"
245
+ }
246
+ },
247
+ "match": "(\\|\\|\\|).*$\\n?",
248
+ "name": "comment.line.triple-bar.idris"
249
+ },
250
+ {
251
+ "include": "#block_comment"
252
+ }
253
+ ]
254
+ },
255
+ "context_signature": {
256
+ "patterns": [
257
+ {
258
+ "captures": {
259
+ "1": {
260
+ "name": "entity.other.inherited-class.idris"
261
+ },
262
+ "2": {
263
+ "name": "entity.other.attribute-name.idris"
264
+ },
265
+ "4": {
266
+ "name": "keyword.operator.double-arrow.idris"
267
+ }
268
+ },
269
+ "match": "([\\w._']+)((\\s+[\\w_']+)+)\\s*(=>)",
270
+ "name": "meta.context-signature.idris"
271
+ },
272
+ {
273
+ "begin": "(\\()((?=.*\\)\\s*=>)|(?=[^)]*$))",
274
+ "beginCaptures": {
275
+ "1": {
276
+ "name": "punctuation.context.begin.idris"
277
+ }
278
+ },
279
+ "comment": "For things like '(Eq a, Show b) =>' It begins with '(' either followed by ') =>' on the same line, or anything but ')' until the end of line.",
280
+ "end": "(\\))\\s*(=>)",
281
+ "endCaptures": {
282
+ "1": {
283
+ "name": "punctuation.context.end.idris"
284
+ },
285
+ "2": {
286
+ "name": "keyword.operator.double-arrow.idris"
287
+ }
288
+ },
289
+ "name": "meta.context-signature.idris",
290
+ "patterns": [
291
+ {
292
+ "captures": {
293
+ "1": {
294
+ "name": "entity.other.inherited-class.idris"
295
+ },
296
+ "2": {
297
+ "name": "entity.other.attribute-name.idris"
298
+ }
299
+ },
300
+ "match": "([\\w']+)\\s+([\\w']+)",
301
+ "name": "meta.class-constraint.idris"
302
+ }
303
+ ]
304
+ }
305
+ ]
306
+ },
307
+ "directive": {
308
+ "patterns": [
309
+ {
310
+ "captures": {
311
+ "1": {
312
+ "name": "keyword.other.directive.idris"
313
+ },
314
+ "2": {
315
+ "name": "keyword.other.language-extension.idris"
316
+ }
317
+ },
318
+ "match": "^%(language)\\s+(.*)$",
319
+ "name": "meta.directive.language-extension.idris"
320
+ },
321
+ {
322
+ "captures": {
323
+ "1": {
324
+ "name": "keyword.other.directive.idris"
325
+ },
326
+ "2": {
327
+ "name": "keyword.other.totality.idris"
328
+ }
329
+ },
330
+ "match": "^%(default)\\s+(total|partial)$",
331
+ "name": "meta.directive.totality.idris"
332
+ },
333
+ {
334
+ "captures": {
335
+ "1": {
336
+ "name": "keyword.other.directive.idris"
337
+ },
338
+ "2": {
339
+ "name": "keyword.other.idris"
340
+ }
341
+ },
342
+ "match": "^%(provide)\\s+.*\\s+(with)\\s+.*$",
343
+ "name": "meta.directive.type-provider.idris"
344
+ },
345
+ {
346
+ "captures": {
347
+ "1": {
348
+ "name": "keyword.other.directive.idris"
349
+ },
350
+ "2": {
351
+ "name": "storage.modifier.export.idris"
352
+ }
353
+ },
354
+ "match": "^%(access)\\s+(public|abstract|private)$",
355
+ "name": "meta.directive.export.idris"
356
+ },
357
+ {
358
+ "captures": {
359
+ "1": {
360
+ "name": "keyword.other.directive.idris"
361
+ }
362
+ },
363
+ "match": "^%([\\w]+)\\b",
364
+ "name": "meta.directive.idris"
365
+ }
366
+ ]
367
+ },
368
+ "escape_characters": {
369
+ "patterns": [
370
+ {
371
+ "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])",
372
+ "name": "constant.character.escape.ascii.idris"
373
+ },
374
+ {
375
+ "match": "\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+",
376
+ "name": "constant.character.escape.octal.idris"
377
+ },
378
+ {
379
+ "match": "\\^[A-Z@\\[\\]\\\\\\^_]",
380
+ "name": "constant.character.escape.control.idris"
381
+ }
382
+ ]
383
+ },
384
+ "function_signature": {
385
+ "begin": "(([\\w']+)|\\(([|!%$+\\-.,=</>:]+)\\))\\s*(:)(?!:)",
386
+ "beginCaptures": {
387
+ "2": {
388
+ "name": "entity.name.function.idris"
389
+ },
390
+ "3": {
391
+ "name": "entity.name.function.idris"
392
+ },
393
+ "4": {
394
+ "name": "keyword.operator.colon.idris"
395
+ }
396
+ },
397
+ "comment": "The end patterm is a bit tricky. It's either ';' or something, at the end of the line, but not '->', because a type signature can be multiline. Though, it doesn't help, if you break the signature before arrows.",
398
+ "end": "(;|(?<=[^\\s>])\\s*(?!->)\\s*$)",
399
+ "name": "meta.function.type-signature.idris",
400
+ "patterns": [
401
+ {
402
+ "include": "#type_signature"
403
+ }
404
+ ]
405
+ },
406
+ "language_const": {
407
+ "patterns": [
408
+ {
409
+ "match": "\\(\\)",
410
+ "name": "constant.language.unit.idris"
411
+ },
412
+ {
413
+ "match": "_\\|_",
414
+ "name": "constant.language.bottom.idris"
415
+ },
416
+ {
417
+ "match": "\\b_\\b",
418
+ "name": "constant.language.underscore.idris"
419
+ }
420
+ ]
421
+ },
422
+ "language_keyword": {
423
+ "patterns": [
424
+ {
425
+ "comment": "I'm not sure that these are all keywords, but don't know where to check it",
426
+ "match": "\\b(infix[lr]?|let|where|of|with)\\b",
427
+ "name": "keyword.other.idris"
428
+ },
429
+ {
430
+ "match": "\\b(do|if|then|else|case|in)\\b",
431
+ "name": "keyword.control.idris"
432
+ }
433
+ ]
434
+ },
435
+ "parameter_type": {
436
+ "comment": "Parameter types in a type signature",
437
+ "patterns": [
438
+ {
439
+ "include": "#prelude_type"
440
+ },
441
+ {
442
+ "begin": "\\(([\\w']+)\\s*:(?!:)",
443
+ "beginCaptures": {
444
+ "1": {
445
+ "name": "entity.name.tag.idris"
446
+ }
447
+ },
448
+ "comment": "(x : Nat)",
449
+ "end": "\\)",
450
+ "name": "meta.parameter.named.idris",
451
+ "patterns": [
452
+ {
453
+ "include": "#prelude_type"
454
+ }
455
+ ]
456
+ },
457
+ {
458
+ "begin": "\\{((auto|default .+)\\s+)?([\\w']+)\\s*:(?!:)",
459
+ "beginCaptures": {
460
+ "1": {
461
+ "name": "storage.modifier.idris"
462
+ },
463
+ "3": {
464
+ "name": "entity.name.tag.idris"
465
+ }
466
+ },
467
+ "comment": "{auto p : a = b}",
468
+ "end": "\\}",
469
+ "name": "meta.parameter.implicit.idris",
470
+ "patterns": [
471
+ {
472
+ "include": "#prelude_type"
473
+ }
474
+ ]
475
+ }
476
+ ]
477
+ },
478
+ "prelude": {
479
+ "patterns": [
480
+ {
481
+ "include": "#prelude_class"
482
+ },
483
+ {
484
+ "include": "#prelude_type"
485
+ },
486
+ {
487
+ "include": "#prelude_function"
488
+ },
489
+ {
490
+ "include": "#prelude_const"
491
+ }
492
+ ]
493
+ },
494
+ "prelude_class": {
495
+ "comment": "These should be more or less all classes defined in Prelude (checked)",
496
+ "match": "\\b(Eq|Ord|Num|MinBound|MaxBound|Integral|Applicative|Alternative|Cast|Foldable|Functor|Monad|Traversable|Uninhabited|Semigroup|VerifiedSemigroup|Monoid|VerifiedMonoid|Group|VerifiedGroup|AbelianGroup|VerifiedAbelianGroup|Ring|VerifiedRing|RingWithUnity|VerifiedRingWithUnity|JoinSemilattice|VerifiedJoinSemilattice|MeetSemilattice|VerifiedMeetSemilattice|BoundedJoinSemilattice|VerifiedBoundedJoinSemilattice|BoundedMeetSemilattice|VerifiedBoundedMeetSemilattice|Lattice|VerifiedLattice|BoundedLattice|VerifiedBoundedLattice)\\b",
497
+ "name": "support.class.prelude.idris"
498
+ },
499
+ "prelude_const": {
500
+ "patterns": [
501
+ {
502
+ "match": "\\b(Just|Nothing|Left|Right|True|False|LT|EQ|GT)\\b",
503
+ "name": "support.constant.prelude.idris"
504
+ }
505
+ ]
506
+ },
507
+ "prelude_function": {
508
+ "comment": "TODO review it; these are just Haskell prelude functions",
509
+ "match": "\\b(abs|acos|acosh|all|and|any|appendFile|applyM|asTypeOf|asin|asinh|atan|atan2|atanh|break|catch|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b",
510
+ "name": "support.function.prelude.idris"
511
+ },
512
+ "prelude_type": {
513
+ "comment": "These should be more or less all types defined in Prelude and some synonyms (checked)",
514
+ "match": "\\b(Type|Exists|World|IO|IntTy|FTy|Foreign|File|Mode|Dec|Bool|so|Ordering|Either|Fin|IsJust|List|Maybe|Nat|LTE|GTE|GT|LT|Stream|StrM|Vect|Not|Lazy|Inf|FalseElim)\\b",
515
+ "name": "support.type.prelude.idris"
516
+ },
517
+ "type_signature": {
518
+ "patterns": [
519
+ {
520
+ "include": "#context_signature"
521
+ },
522
+ {
523
+ "include": "#parameter_type"
524
+ },
525
+ {
526
+ "include": "#language_const"
527
+ },
528
+ {
529
+ "match": "->",
530
+ "name": "keyword.operator.arrow.idris"
531
+ }
532
+ ]
533
+ }
534
+ },
535
+ "scopeName": "source.idris",
536
+ "uuid": "8957eeb1-b492-4497-85b8-b86e511e87eb"
537
+ }