github-linguist 7.6.0 → 7.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +5 -5
  2. data/bin/github-linguist +17 -4
  3. data/grammars/annotation.liquidhaskell.haskell.json +58 -11
  4. data/grammars/etc.json +472 -4
  5. data/grammars/hidden.manref.json +29 -0
  6. data/grammars/hidden.regexp.injection-shell.json +28 -0
  7. data/grammars/hint.haskell.json +58 -11
  8. data/grammars/hint.message.haskell.json +58 -11
  9. data/grammars/hint.type.haskell.json +58 -11
  10. data/grammars/injections.etc.json +601 -1
  11. data/grammars/markdown.plantuml.codeblock.json +26 -0
  12. data/grammars/source.4dm.json +1156 -0
  13. data/grammars/source.abap.json +7 -7
  14. data/grammars/source.abl.json +685 -83
  15. data/grammars/source.abnf.json +23 -1
  16. data/grammars/source.agda.json +33 -203
  17. data/grammars/source.ahk.json +9 -5
  18. data/grammars/source.angelscript.json +1 -1
  19. data/grammars/source.ballerina.json +55 -19
  20. data/grammars/source.c++.json +4 -4
  21. data/grammars/source.c.platform.json +584 -33
  22. data/grammars/source.chapel.json +7 -4
  23. data/grammars/source.csound.json +1 -1
  24. data/grammars/source.css.json +3 -3
  25. data/grammars/source.css.scss.json +164 -15
  26. data/grammars/source.curlrc.json +869 -65
  27. data/grammars/source.d.json +2 -2
  28. data/grammars/source.dart.json +58 -32
  29. data/grammars/source.dircolors.json +137 -0
  30. data/grammars/source.direct-x.json +135 -0
  31. data/grammars/source.ebnf.json +67 -39
  32. data/grammars/source.editorconfig.json +23 -5
  33. data/grammars/source.elixir.json +51 -0
  34. data/grammars/source.elm.json +1 -1
  35. data/grammars/source.emacs.lisp.json +10 -0
  36. data/grammars/source.faust.json +119 -0
  37. data/grammars/source.futhark.json +146 -0
  38. data/grammars/source.gcode.json +166 -8
  39. data/grammars/source.gedcom.json +196 -0
  40. data/grammars/source.generic-db.json +41 -0
  41. data/grammars/source.gfm.blade.json +15 -0
  42. data/grammars/source.gfm.json +1697 -1439
  43. data/grammars/source.gitconfig.json +1 -1
  44. data/grammars/source.hack.json +200 -98
  45. data/grammars/source.haskell.json +58 -11
  46. data/grammars/source.hlsl.json +9 -5
  47. data/grammars/source.hosts.json +40 -0
  48. data/grammars/source.hsig.json +58 -11
  49. data/grammars/source.httpspec.json +1 -1
  50. data/grammars/source.hx.json +9 -5
  51. data/grammars/source.hxml.json +2 -2
  52. data/grammars/source.idris.json +1 -1
  53. data/grammars/source.igor.json +46 -2
  54. data/grammars/source.ini.npmrc.json +311 -0
  55. data/grammars/source.inno.json +133 -0
  56. data/grammars/source.inputrc.json +500 -0
  57. data/grammars/source.isabelle.root.json +1 -1
  58. data/grammars/source.jison.json +3 -0
  59. data/grammars/source.jisonlex.json +3 -0
  60. data/grammars/source.js.json +4 -4
  61. data/grammars/source.julia.json +70 -24
  62. data/grammars/source.kotlin.json +17 -51
  63. data/grammars/source.lcov.json +398 -0
  64. data/grammars/source.lean.json +20 -4
  65. data/grammars/source.lean.markdown.json +2598 -0
  66. data/grammars/source.lex.json +4 -4
  67. data/grammars/source.m2.json +125 -0
  68. data/grammars/source.m4.json +141 -99
  69. data/grammars/source.man-conf.json +47 -35
  70. data/grammars/source.matlab.json +437 -184
  71. data/grammars/source.mcfunction-snapshot.json +21388 -561
  72. data/grammars/source.mcfunction.json +55 -5
  73. data/grammars/source.meson.json +1 -1
  74. data/grammars/source.mlir.json +37 -317
  75. data/grammars/source.modula-3.json +10 -0
  76. data/grammars/source.msl.json +755 -0
  77. data/grammars/source.nasl.json +155 -0
  78. data/grammars/source.neon.json +381 -0
  79. data/grammars/source.nextflow.json +2 -2
  80. data/grammars/source.objc.platform.json +493 -35
  81. data/grammars/source.odin-ehr.json +806 -0
  82. data/grammars/source.odin.json +402 -0
  83. data/grammars/source.openbsd-pkg.contents.json +128 -0
  84. data/grammars/source.opts.json +12 -2
  85. data/grammars/source.perl6fe.json +1 -1
  86. data/grammars/source.postscript.json +358 -103
  87. data/grammars/source.prisma.json +435 -0
  88. data/grammars/source.purescript.json +29 -2
  89. data/grammars/source.python.json +52 -0
  90. data/grammars/source.q.json +150 -63
  91. data/grammars/source.qasm.json +66 -0
  92. data/grammars/source.ql.json +1408 -0
  93. data/grammars/source.r.json +4 -4
  94. data/grammars/source.reason.json +28 -16
  95. data/grammars/source.rego.json +124 -0
  96. data/grammars/source.sass.json +158 -3
  97. data/grammars/source.scala.json +53 -18
  98. data/grammars/source.sieve.json +383 -0
  99. data/grammars/source.solidity.json +1 -1
  100. data/grammars/source.ssh-config.json +1 -14
  101. data/grammars/source.swift.json +162 -2
  102. data/grammars/source.sy.json +2088 -183
  103. data/grammars/source.tags.json +266 -0
  104. data/grammars/source.terraform.json +576 -132
  105. data/grammars/source.tnsaudit.json +256 -0
  106. data/grammars/source.ts.json +246 -70
  107. data/grammars/source.tsx.json +247 -71
  108. data/grammars/source.v.json +587 -761
  109. data/grammars/source.vim-snippet.json +645 -0
  110. data/grammars/source.viml.json +6 -6
  111. data/grammars/source.webassembly.json +10 -0
  112. data/grammars/source.webidl.json +8 -0
  113. data/grammars/source.wgetrc.json +1640 -0
  114. data/grammars/source.wsd.json +781 -0
  115. data/grammars/source.x86.json +7 -3
  116. data/grammars/source.zig.json +231 -360
  117. data/grammars/text.dfy.dafny.json +188 -0
  118. data/grammars/text.html.php.blade.json +535 -528
  119. data/grammars/text.html.riot.json +788 -0
  120. data/grammars/text.muse.json +1471 -0
  121. data/grammars/text.openbsd-pkg.desc.json +78 -0
  122. data/grammars/text.roff.json +49 -1
  123. data/grammars/text.sfd.json +21 -0
  124. data/grammars/text.tex.latex.haskell.json +58 -11
  125. data/grammars/text.vim-help.json +383 -0
  126. data/grammars/text.xml.svg.json +8 -2
  127. data/grammars/version +1 -1
  128. data/lib/linguist/VERSION +1 -1
  129. data/lib/linguist/blob_helper.rb +4 -2
  130. data/lib/linguist/file_blob.rb +1 -1
  131. data/lib/linguist/generated.rb +96 -28
  132. data/lib/linguist/heuristics.yml +64 -4
  133. data/lib/linguist/languages.json +1 -1
  134. data/lib/linguist/languages.yml +408 -49
  135. data/lib/linguist/lazy_blob.rb +10 -10
  136. data/lib/linguist/linguist.bundle +0 -0
  137. data/lib/linguist/samples.json +48129 -31562
  138. data/lib/linguist/shebang.rb +5 -3
  139. data/lib/linguist/vendor.yml +71 -60
  140. metadata +48 -17
  141. data/grammars/source.LS.json +0 -85
  142. data/grammars/source.MCPOST.json +0 -54
  143. data/grammars/source.MOD.json +0 -55
  144. data/grammars/source.apt.json +0 -18
  145. data/grammars/source.jlex.json +0 -322
  146. data/grammars/source.yaml-ext.json +0 -324
  147. data/grammars/text.html.abl.json +0 -70
@@ -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
+ }