github-linguist 7.7.0 → 7.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/hidden.manref.json +1 -1
  3. data/grammars/source.4dm.json +1029 -0
  4. data/grammars/source.agda.json +32 -202
  5. data/grammars/source.clarion.json +6 -6
  6. data/grammars/source.dircolors.json +101 -3
  7. data/grammars/source.editorconfig.json +23 -5
  8. data/grammars/source.elm.json +1 -1
  9. data/grammars/source.emacs.lisp.json +10 -0
  10. data/grammars/source.faust.json +119 -0
  11. data/grammars/source.gcode.json +170 -8
  12. data/grammars/source.hlsl.json +9 -5
  13. data/grammars/source.hx.json +4 -0
  14. data/grammars/source.igor.json +44 -0
  15. data/grammars/source.julia.json +8 -4
  16. data/grammars/source.mcfunction-snapshot.json +1 -1
  17. data/grammars/source.meson.json +1 -1
  18. data/grammars/source.odin-ehr.json +806 -0
  19. data/grammars/source.odin.json +402 -0
  20. data/grammars/source.p4.json +5 -21
  21. data/grammars/source.scala.json +27 -3
  22. data/grammars/source.sy.json +2088 -183
  23. data/grammars/source.terraform.json +576 -132
  24. data/grammars/source.ts.json +89 -30
  25. data/grammars/source.tsx.json +89 -30
  26. data/grammars/source.v.json +541 -788
  27. data/grammars/source.viml.json +2 -2
  28. data/grammars/source.webassembly.json +10 -0
  29. data/grammars/version +1 -1
  30. data/lib/linguist/VERSION +1 -1
  31. data/lib/linguist/generated.rb +10 -1
  32. data/lib/linguist/heuristics.yml +41 -3
  33. data/lib/linguist/languages.json +1 -1
  34. data/lib/linguist/languages.yml +117 -34
  35. data/lib/linguist/lazy_blob.rb +10 -10
  36. data/lib/linguist/linguist.bundle +0 -0
  37. data/lib/linguist/samples.json +6577 -1979
  38. data/lib/linguist/vendor.yml +3 -0
  39. metadata +6 -6
  40. data/grammars/source.LS.json +0 -85
  41. data/grammars/source.MCPOST.json +0 -54
  42. data/grammars/source.MOD.json +0 -55
  43. data/grammars/source.apt.json +0 -18
@@ -8913,7 +8913,7 @@
8913
8913
  }
8914
8914
  },
8915
8915
  "generated.command.effect.clear": {
8916
- "begin": "(clear) (?=\\S)",
8916
+ "begin": "(clear)( |(?=\\n))",
8917
8917
  "end": "(?=\\n)",
8918
8918
  "patterns": [
8919
8919
  {
@@ -59,7 +59,7 @@
59
59
  },
60
60
  {
61
61
  "name": "support.function.builtin.meson",
62
- "match": "(?x)\\b(add_global_arguments|add_project_arguments|add_global_link_arguments|add_project_link_arguments|add_test_setup|add_languages|alias_target|assert|benchmark|both_libraries|build_target|configuration_data|configure_file|custom_target|declare_dependency|dependency|disabler|environment|error|executable|generator|gettext|get_option|get_variable|files|find_library|find_program|include_directories|import|install_data|install_headers|install_man|install_subdir|is_disabler|is_variable|jar|join_paths|library|message|option|project|run_target|run_command|set_variable|subdir|subdir_done|subproject|shared_library|shared_module|static_library|test|vcs_tag|warning\n)\\b\\s*(?=\\()"
62
+ "match": "(?x)\\b(add_global_arguments|add_project_arguments|add_global_link_arguments|add_project_link_arguments|add_test_setup|add_languages|alias_target|assert|benchmark|both_libraries|build_target|configuration_data|configure_file|custom_target|declare_dependency|dependency|disabler|environment|error|executable|generator|gettext|get_option|get_variable|files|find_library|find_program|include_directories|import|install_data|install_headers|install_man|install_subdir|is_disabler|is_variable|jar|join_paths|library|message|option|project|run_target|run_command|set_variable|subdir|subdir_done|subproject|summary|shared_library|shared_module|static_library|test|vcs_tag|warning\n)\\b\\s*(?=\\()"
63
63
  }
64
64
  ],
65
65
  "repository": {
@@ -0,0 +1,806 @@
1
+ {
2
+ "name": "Object Data Instance Notation",
3
+ "scopeName": "source.odin-ehr",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "attribute": {
11
+ "name": "entity.other.attribute-name.odin-ehr",
12
+ "match": "\\b(?=[a-z])[A-Za-z0-9_]+"
13
+ },
14
+ "block": {
15
+ "name": "meta.block.odin-ehr",
16
+ "begin": "\u003c",
17
+ "end": "\u003e",
18
+ "patterns": [
19
+ {
20
+ "include": "#main"
21
+ }
22
+ ],
23
+ "beginCaptures": {
24
+ "0": {
25
+ "name": "punctuation.definition.block.begin.odin-ehr"
26
+ }
27
+ },
28
+ "endCaptures": {
29
+ "0": {
30
+ "name": "punctuation.definition.block.end.odin-ehr"
31
+ }
32
+ }
33
+ },
34
+ "boolean": {
35
+ "name": "constant.language.boolean.${1:/downcase}.odin-ehr",
36
+ "match": "(?i)\\b(False|True)\\b"
37
+ },
38
+ "comment": {
39
+ "name": "comment.line.double-dash.odin-ehr",
40
+ "begin": "--",
41
+ "end": "$",
42
+ "beginCaptures": {
43
+ "0": {
44
+ "name": "punctuation.definition.comment.odin-ehr"
45
+ }
46
+ }
47
+ },
48
+ "date": {
49
+ "patterns": [
50
+ {
51
+ "match": "((\\d{4})(-)(\\d{2}|\\?{2})(-)(\\d{2}|\\?{2})(T))((\\d{2}|\\?{2})(:)(\\d{2}|\\?{2})(:)(\\d{2}|\\?{2}))",
52
+ "captures": {
53
+ "1": {
54
+ "name": "meta.date.partial.odin-ehr"
55
+ },
56
+ "10": {
57
+ "name": "punctuation.separator.time.colon.odin-ehr"
58
+ },
59
+ "11": {
60
+ "name": "constant.numeric.minute.odin-ehr"
61
+ },
62
+ "12": {
63
+ "name": "punctuation.separator.time.colon.odin-ehr"
64
+ },
65
+ "13": {
66
+ "name": "constant.numeric.second.odin-ehr"
67
+ },
68
+ "2": {
69
+ "name": "constant.numeric.year.odin-ehr"
70
+ },
71
+ "3": {
72
+ "name": "punctuation.separator.date.dash.odin-ehr"
73
+ },
74
+ "4": {
75
+ "name": "constant.numeric.month.odin-ehr"
76
+ },
77
+ "5": {
78
+ "name": "punctuation.separator.date.dash.odin-ehr"
79
+ },
80
+ "6": {
81
+ "name": "constant.numeric.day.odin-ehr"
82
+ },
83
+ "7": {
84
+ "name": "constant.language.datetime-separator.odin-ehr"
85
+ },
86
+ "8": {
87
+ "name": "meta.time.partial.odin-ehr"
88
+ },
89
+ "9": {
90
+ "name": "constant.numeric.hour.odin-ehr"
91
+ }
92
+ }
93
+ },
94
+ {
95
+ "name": "meta.time.partial.odin-ehr",
96
+ "match": "(\\d{2})(:)(\\d{2}|\\?{2})(:)(\\?{2})",
97
+ "captures": {
98
+ "1": {
99
+ "name": "constant.numeric.hour.odin-ehr"
100
+ },
101
+ "2": {
102
+ "name": "punctuation.separator.time.colon.odin-ehr"
103
+ },
104
+ "3": {
105
+ "name": "constant.numeric.minute.odin-ehr"
106
+ },
107
+ "4": {
108
+ "name": "punctuation.separator.time.colon.odin-ehr"
109
+ },
110
+ "5": {
111
+ "name": "constant.numeric.second.odin-ehr"
112
+ }
113
+ }
114
+ },
115
+ {
116
+ "name": "meta.date.partial.odin-ehr",
117
+ "match": "(\\d{4})(-)(\\d{2}|\\?{2})(-)(\\?{2})",
118
+ "captures": {
119
+ "1": {
120
+ "name": "constant.numeric.year.odin-ehr"
121
+ },
122
+ "2": {
123
+ "name": "punctuation.separator.date.dash.odin-ehr"
124
+ },
125
+ "3": {
126
+ "name": "constant.numeric.month.odin-ehr"
127
+ },
128
+ "4": {
129
+ "name": "punctuation.separator.date.dash.odin-ehr"
130
+ },
131
+ "5": {
132
+ "name": "constant.numeric.day.odin-ehr"
133
+ }
134
+ }
135
+ },
136
+ {
137
+ "name": "meta.time.odin-ehr",
138
+ "match": "(\\d{2})(:)(\\d{2})(:)(\\d{2})((,)(\\d+))?(Z|([-+])\\d{4})?",
139
+ "captures": {
140
+ "1": {
141
+ "name": "constant.numeric.hour.odin-ehr"
142
+ },
143
+ "10": {
144
+ "name": "punctuation.separator.timezone.odin-ehr"
145
+ },
146
+ "2": {
147
+ "name": "punctuation.separator.time.colon.odin-ehr"
148
+ },
149
+ "3": {
150
+ "name": "constant.numeric.minute.odin-ehr"
151
+ },
152
+ "4": {
153
+ "name": "punctuation.separator.time.colon.odin-ehr"
154
+ },
155
+ "5": {
156
+ "name": "constant.numeric.second.odin-ehr"
157
+ },
158
+ "6": {
159
+ "name": "meta.time.fraction.odin-ehr"
160
+ },
161
+ "7": {
162
+ "name": "punctuation.separator.time.comma.odin-ehr"
163
+ },
164
+ "8": {
165
+ "name": "constant.numeric.second.odin-ehr"
166
+ },
167
+ "9": {
168
+ "name": "constant.numeric.timezone.odin-ehr"
169
+ }
170
+ }
171
+ },
172
+ {
173
+ "match": "((\\d{4})(-)(\\d{2})(-)(\\d{2})(T))((\\d{2})(?:(:)(\\d{2}))?)",
174
+ "captures": {
175
+ "1": {
176
+ "name": "meta.date.partial.odin-ehr"
177
+ },
178
+ "10": {
179
+ "name": "punctuation.separator.time.colon.odin-ehr"
180
+ },
181
+ "11": {
182
+ "name": "constant.numeric.minute.odin-ehr"
183
+ },
184
+ "2": {
185
+ "name": "constant.numeric.year.odin-ehr"
186
+ },
187
+ "3": {
188
+ "name": "punctuation.separator.date.dash.odin-ehr"
189
+ },
190
+ "4": {
191
+ "name": "constant.numeric.month.odin-ehr"
192
+ },
193
+ "5": {
194
+ "name": "punctuation.separator.date.dash.odin-ehr"
195
+ },
196
+ "6": {
197
+ "name": "constant.numeric.day.odin-ehr"
198
+ },
199
+ "7": {
200
+ "name": "constant.language.datetime-separator.odin-ehr"
201
+ },
202
+ "8": {
203
+ "name": "meta.time.partial.odin-ehr"
204
+ },
205
+ "9": {
206
+ "name": "constant.numeric.hour.odin-ehr"
207
+ }
208
+ }
209
+ },
210
+ {
211
+ "name": "meta.date.odin-ehr",
212
+ "match": "(\\d{4})(-)(\\d{2})(-)(\\d{2})(T(?=\\d{2}))?",
213
+ "captures": {
214
+ "1": {
215
+ "name": "constant.numeric.year.odin-ehr"
216
+ },
217
+ "2": {
218
+ "name": "punctuation.separator.date.dash.odin-ehr"
219
+ },
220
+ "3": {
221
+ "name": "constant.numeric.month.odin-ehr"
222
+ },
223
+ "4": {
224
+ "name": "punctuation.separator.date.dash.odin-ehr"
225
+ },
226
+ "5": {
227
+ "name": "constant.numeric.day.odin-ehr"
228
+ },
229
+ "6": {
230
+ "name": "constant.language.datetime-separator.odin-ehr"
231
+ }
232
+ }
233
+ },
234
+ {
235
+ "name": "meta.date.partial.odin-ehr",
236
+ "match": "(\\d{4})(-)(\\d{2})",
237
+ "captures": {
238
+ "1": {
239
+ "name": "constant.numeric.year.odin-ehr"
240
+ },
241
+ "2": {
242
+ "name": "punctuation.separator.date.dash.odin-ehr"
243
+ },
244
+ "3": {
245
+ "name": "constant.numeric.month.odin-ehr"
246
+ }
247
+ }
248
+ },
249
+ {
250
+ "name": "meta.time.partial.odin-ehr",
251
+ "match": "(\\d{2})(:)(\\d{2})",
252
+ "captures": {
253
+ "1": {
254
+ "name": "constant.numeric.hour.odin-ehr"
255
+ },
256
+ "2": {
257
+ "name": "punctuation.separator.time.colon.odin-ehr"
258
+ },
259
+ "3": {
260
+ "name": "constant.numeric.minute.odin-ehr"
261
+ }
262
+ }
263
+ },
264
+ {
265
+ "name": "constant.other.duration.odin-ehr",
266
+ "match": "P(?:T?\\d+T?[YMWDHMS])+"
267
+ }
268
+ ]
269
+ },
270
+ "escape": {
271
+ "patterns": [
272
+ {
273
+ "name": "constant.character.escape.odin-ehr",
274
+ "match": "(\\\\)[rnt\\\\\"']",
275
+ "captures": {
276
+ "1": {
277
+ "name": "punctuation.definition.escape.backslash.odin-ehr"
278
+ }
279
+ }
280
+ },
281
+ {
282
+ "name": "constant.character.escape.codepoint.odin-ehr",
283
+ "match": "(\\\\)u(?:[0-9A-Fa-f]{4}){1,2}",
284
+ "captures": {
285
+ "1": {
286
+ "name": "punctuation.definition.escape.backslash.odin-ehr"
287
+ }
288
+ }
289
+ },
290
+ {
291
+ "name": "constant.character.entity.odin-ehr",
292
+ "match": "(\u0026)\\w+(;)",
293
+ "captures": {
294
+ "1": {
295
+ "name": "punctuation.definition.entity.begin.odin-ehr"
296
+ },
297
+ "2": {
298
+ "name": "punctuation.definition.entity.end.odin-ehr"
299
+ }
300
+ }
301
+ },
302
+ {
303
+ "name": "invalid.illegal.bad-escape.odin-ehr",
304
+ "match": "\\\\."
305
+ }
306
+ ]
307
+ },
308
+ "infinity": {
309
+ "name": "constant.language.numeric.infinity.odin-ehr",
310
+ "match": "(?i)(?:-|\\b)infinity\\b|\\*"
311
+ },
312
+ "interval": {
313
+ "name": "meta.interval.odin-ehr",
314
+ "begin": "\\|",
315
+ "end": "\\|",
316
+ "patterns": [
317
+ {
318
+ "match": "([-+]?(?:[\\de]|\\.(?=[-+\\de]))+)(\\.\\.)",
319
+ "captures": {
320
+ "1": {
321
+ "patterns": [
322
+ {
323
+ "include": "etc#num"
324
+ }
325
+ ]
326
+ },
327
+ "2": {
328
+ "patterns": [
329
+ {
330
+ "include": "etc#dotPair"
331
+ }
332
+ ]
333
+ }
334
+ }
335
+ },
336
+ {
337
+ "name": "keyword.operator.comparison.odin-ehr",
338
+ "match": "\u003e=|\u003c=|\u003e|\u003c"
339
+ },
340
+ {
341
+ "name": "keyword.operator.variance.odin-ehr",
342
+ "match": "\\+/-"
343
+ },
344
+ {
345
+ "name": "invalid.illegal.unexpected-comma.odin-ehr",
346
+ "match": ","
347
+ },
348
+ {
349
+ "include": "#infinity"
350
+ },
351
+ {
352
+ "include": "#date"
353
+ },
354
+ {
355
+ "include": "etc#dotPair"
356
+ },
357
+ {
358
+ "include": "etc#num"
359
+ }
360
+ ],
361
+ "beginCaptures": {
362
+ "0": {
363
+ "name": "punctuation.definition.interval.begin.odin─ehr"
364
+ }
365
+ },
366
+ "endCaptures": {
367
+ "0": {
368
+ "name": "punctuation.definition.interval.end.odin─ehr"
369
+ }
370
+ }
371
+ },
372
+ "key": {
373
+ "name": "meta.key.member.item-access.odin-ehr",
374
+ "begin": "\\[",
375
+ "end": "\\]",
376
+ "patterns": [
377
+ {
378
+ "include": "#main"
379
+ }
380
+ ],
381
+ "beginCaptures": {
382
+ "0": {
383
+ "patterns": [
384
+ {
385
+ "include": "etc#bracket"
386
+ }
387
+ ]
388
+ }
389
+ },
390
+ "endCaptures": {
391
+ "0": {
392
+ "patterns": [
393
+ {
394
+ "include": "etc#bracket"
395
+ }
396
+ ]
397
+ }
398
+ }
399
+ },
400
+ "main": {
401
+ "patterns": [
402
+ {
403
+ "include": "#comment"
404
+ },
405
+ {
406
+ "include": "#string"
407
+ },
408
+ {
409
+ "include": "#boolean"
410
+ },
411
+ {
412
+ "include": "#date"
413
+ },
414
+ {
415
+ "include": "#path"
416
+ },
417
+ {
418
+ "include": "etc#num"
419
+ },
420
+ {
421
+ "include": "etc#url"
422
+ },
423
+ {
424
+ "include": "#interval"
425
+ },
426
+ {
427
+ "include": "#schema"
428
+ },
429
+ {
430
+ "include": "#attribute"
431
+ },
432
+ {
433
+ "include": "#type"
434
+ },
435
+ {
436
+ "include": "#block"
437
+ },
438
+ {
439
+ "include": "#plugin"
440
+ },
441
+ {
442
+ "include": "#typedef"
443
+ },
444
+ {
445
+ "include": "#term"
446
+ },
447
+ {
448
+ "include": "#key"
449
+ },
450
+ {
451
+ "include": "#escape"
452
+ },
453
+ {
454
+ "include": "etc#ellipsis"
455
+ },
456
+ {
457
+ "name": "punctuation.delimiter.comma.odin-ehr",
458
+ "match": ","
459
+ },
460
+ {
461
+ "name": "keyword.operator.assignment.odin-ehr",
462
+ "match": "="
463
+ },
464
+ {
465
+ "name": "punctuation.terminator.statement.odin-ehr",
466
+ "match": ";"
467
+ }
468
+ ]
469
+ },
470
+ "path": {
471
+ "patterns": [
472
+ {
473
+ "name": "meta.path-segment.odin-ehr",
474
+ "contentName": "meta.object-id.odin-ehr",
475
+ "begin": "(?x)\n(?:(//?)([A-Za-z0-9_]+)|(//?))\n((\\[))",
476
+ "end": "(\\])",
477
+ "patterns": [
478
+ {
479
+ "include": "#main"
480
+ }
481
+ ],
482
+ "beginCaptures": {
483
+ "1": {
484
+ "patterns": [
485
+ {
486
+ "include": "#pathSep"
487
+ }
488
+ ]
489
+ },
490
+ "2": {
491
+ "patterns": [
492
+ {
493
+ "include": "#attribute"
494
+ },
495
+ {
496
+ "include": "#type"
497
+ }
498
+ ]
499
+ },
500
+ "3": {
501
+ "patterns": [
502
+ {
503
+ "include": "#pathSep"
504
+ }
505
+ ]
506
+ },
507
+ "4": {
508
+ "name": "meta.object-id.odin-ehr"
509
+ },
510
+ "5": {
511
+ "name": "punctuation.definition.object-id.begin.odin-ehr"
512
+ }
513
+ },
514
+ "endCaptures": {
515
+ "0": {
516
+ "name": "meta.object-id.odin-ehr"
517
+ },
518
+ "1": {
519
+ "name": "punctuation.definition.object-id.end.odin-ehr"
520
+ }
521
+ }
522
+ },
523
+ {
524
+ "name": "meta.path-segment.odin-ehr",
525
+ "match": "(//?)([A-Za-z0-9_]+)",
526
+ "captures": {
527
+ "1": {
528
+ "patterns": [
529
+ {
530
+ "include": "#pathSep"
531
+ }
532
+ ]
533
+ },
534
+ "2": {
535
+ "patterns": [
536
+ {
537
+ "include": "#attribute"
538
+ },
539
+ {
540
+ "include": "#type"
541
+ }
542
+ ]
543
+ }
544
+ }
545
+ },
546
+ {
547
+ "include": "#pathSep"
548
+ }
549
+ ]
550
+ },
551
+ "pathSep": {
552
+ "patterns": [
553
+ {
554
+ "name": "punctuation.separator.path.double-slash.odin-ehr",
555
+ "match": "//"
556
+ },
557
+ {
558
+ "name": "punctuation.separator.path.slash.odin-ehr",
559
+ "match": "/"
560
+ }
561
+ ]
562
+ },
563
+ "plugin": {
564
+ "patterns": [
565
+ {
566
+ "name": "markup.code.other.odin-ehr",
567
+ "contentName": "source.embedded.${3:/downcase}.odin-ehr",
568
+ "begin": "((\\()\\s*(\\w+)\\s*(\\)))\\s*((\u003c#))",
569
+ "end": "(#\u003e)",
570
+ "patterns": [
571
+ {
572
+ "include": "#pluginInnards"
573
+ }
574
+ ],
575
+ "beginCaptures": {
576
+ "1": {
577
+ "name": "meta.type.odin-ehr"
578
+ },
579
+ "2": {
580
+ "patterns": [
581
+ {
582
+ "include": "etc#bracket"
583
+ }
584
+ ]
585
+ },
586
+ "3": {
587
+ "name": "storage.type.class.syntax.odin-ehr"
588
+ },
589
+ "4": {
590
+ "patterns": [
591
+ {
592
+ "include": "etc#bracket"
593
+ }
594
+ ]
595
+ },
596
+ "5": {
597
+ "name": "meta.block.plugin.odin-ehr"
598
+ },
599
+ "6": {
600
+ "name": "punctuation.definition.plugin.block.begin.odin-ehr"
601
+ }
602
+ },
603
+ "endCaptures": {
604
+ "0": {
605
+ "name": "meta.block.plugin.odin-ehr"
606
+ },
607
+ "1": {
608
+ "name": "punctuation.definition.plugin.block.end.odin-ehr"
609
+ }
610
+ }
611
+ },
612
+ {
613
+ "name": "meta.block.plugin.odin-ehr",
614
+ "contentName": "markup.raw.code.other.odin-ehr",
615
+ "begin": "\u003c#",
616
+ "end": "#\u003e",
617
+ "patterns": [
618
+ {
619
+ "include": "#pluginInnards"
620
+ }
621
+ ],
622
+ "beginCaptures": {
623
+ "0": {
624
+ "name": "punctuation.definition.block.begin.odin-ehr"
625
+ }
626
+ },
627
+ "endCaptures": {
628
+ "0": {
629
+ "name": "punctuation.definition.block.end.odin-ehr"
630
+ }
631
+ }
632
+ }
633
+ ]
634
+ },
635
+ "pluginInnards": {
636
+ "patterns": [
637
+ {
638
+ "include": "#comment"
639
+ },
640
+ {
641
+ "match": "{|}",
642
+ "captures": {
643
+ "0": {
644
+ "patterns": [
645
+ {
646
+ "include": "etc#bracket"
647
+ }
648
+ ]
649
+ }
650
+ }
651
+ }
652
+ ]
653
+ },
654
+ "schema": {
655
+ "name": "variable.other.schema.odin-ehr",
656
+ "match": "(@)[A-Za-z0-9_]+",
657
+ "captures": {
658
+ "1": {
659
+ "name": "punctuation.definition.variable.schema.odin-ehr"
660
+ }
661
+ }
662
+ },
663
+ "string": {
664
+ "patterns": [
665
+ {
666
+ "name": "string.quoted.double.odin-ehr",
667
+ "begin": "\"",
668
+ "end": "\"",
669
+ "patterns": [
670
+ {
671
+ "include": "#escape"
672
+ }
673
+ ],
674
+ "beginCaptures": {
675
+ "0": {
676
+ "name": "punctuation.definition.string.begin.odin-ehr"
677
+ }
678
+ },
679
+ "endCaptures": {
680
+ "0": {
681
+ "name": "punctuation.definition.string.end.odin-ehr"
682
+ }
683
+ }
684
+ },
685
+ {
686
+ "name": "string.quoted.single.odin-ehr",
687
+ "begin": "'",
688
+ "end": "'",
689
+ "patterns": [
690
+ {
691
+ "include": "#escape"
692
+ }
693
+ ],
694
+ "beginCaptures": {
695
+ "0": {
696
+ "name": "punctuation.definition.string.begin.odin-ehr"
697
+ }
698
+ },
699
+ "endCaptures": {
700
+ "0": {
701
+ "name": "punctuation.definition.string.end.odin-ehr"
702
+ }
703
+ }
704
+ }
705
+ ]
706
+ },
707
+ "term": {
708
+ "name": "meta.coded-term.odin-ehr",
709
+ "begin": "\\[(?=[^\\]:]+::)",
710
+ "end": "\\]",
711
+ "patterns": [
712
+ {
713
+ "name": "constant.other.coded-term.name.odin-ehr",
714
+ "match": "\\G\\s*([-\\w]+)"
715
+ },
716
+ {
717
+ "name": "punctuation.separator.key-value.odin-ehr",
718
+ "match": "::"
719
+ },
720
+ {
721
+ "name": "constant.other.coded-term.code.odin-ehr",
722
+ "match": "[-.\\w]+"
723
+ },
724
+ {
725
+ "include": "#termVersion"
726
+ },
727
+ {
728
+ "include": "#main"
729
+ }
730
+ ],
731
+ "beginCaptures": {
732
+ "0": {
733
+ "name": "punctuation.definition.coded-term.begin.odin-ehr"
734
+ }
735
+ },
736
+ "endCaptures": {
737
+ "0": {
738
+ "name": "punctuation.definition.coded-term.end.odin-ehr"
739
+ }
740
+ }
741
+ },
742
+ "termVersion": {
743
+ "name": "meta.term-version.odin-ehr",
744
+ "begin": "\\(",
745
+ "end": "\\)",
746
+ "patterns": [
747
+ {
748
+ "include": "etc#num"
749
+ },
750
+ {
751
+ "include": "#termVersion"
752
+ }
753
+ ],
754
+ "beginCaptures": {
755
+ "0": {
756
+ "patterns": [
757
+ {
758
+ "include": "etc#bracket"
759
+ }
760
+ ]
761
+ }
762
+ },
763
+ "endCaptures": {
764
+ "0": {
765
+ "patterns": [
766
+ {
767
+ "include": "etc#bracket"
768
+ }
769
+ ]
770
+ }
771
+ }
772
+ },
773
+ "type": {
774
+ "name": "storage.type.name.odin-ehr",
775
+ "match": "\\b(?=[A-Z])[A-Za-z0-9_]+"
776
+ },
777
+ "typedef": {
778
+ "name": "meta.type.odin-ehr",
779
+ "begin": "\\(",
780
+ "end": "\\)",
781
+ "patterns": [
782
+ {
783
+ "include": "#main"
784
+ }
785
+ ],
786
+ "beginCaptures": {
787
+ "0": {
788
+ "patterns": [
789
+ {
790
+ "include": "etc#bracket"
791
+ }
792
+ ]
793
+ }
794
+ },
795
+ "endCaptures": {
796
+ "0": {
797
+ "patterns": [
798
+ {
799
+ "include": "etc#bracket"
800
+ }
801
+ ]
802
+ }
803
+ }
804
+ }
805
+ }
806
+ }