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
@@ -4,7 +4,7 @@
4
4
  "patterns": [
5
5
  {
6
6
  "name": "keyword.control",
7
- "match": "\\b(chapter|session|in|description|options|global_theories|theories|files|document_files|sessions)\\b"
7
+ "match": "\\b(chapter|session|in|description|options|global_theories|theories|files|document_files|sessions|directories)\\b"
8
8
  },
9
9
  {
10
10
  "name": "keyword.other.option",
@@ -4,14 +4,17 @@
4
4
  "patterns": [
5
5
  {
6
6
  "begin": "%%",
7
+ "end": "\\z",
7
8
  "patterns": [
8
9
  {
9
10
  "begin": "%%",
11
+ "end": "\\z",
10
12
  "patterns": [
11
13
  {
12
14
  "name": "meta.section.epilogue.jison",
13
15
  "contentName": "source.js.embedded.jison",
14
16
  "begin": "\\G",
17
+ "end": "\\z",
15
18
  "patterns": [
16
19
  {
17
20
  "include": "#epilogue_section"
@@ -4,14 +4,17 @@
4
4
  "patterns": [
5
5
  {
6
6
  "begin": "%%",
7
+ "end": "\\z",
7
8
  "patterns": [
8
9
  {
9
10
  "begin": "^%%",
11
+ "end": "\\z",
10
12
  "patterns": [
11
13
  {
12
14
  "name": "meta.section.user-code.jisonlex",
13
15
  "contentName": "source.js.embedded.jison",
14
16
  "begin": "\\G",
17
+ "end": "\\z",
15
18
  "patterns": [
16
19
  {
17
20
  "include": "#user_code_section"
@@ -1409,18 +1409,18 @@
1409
1409
  "patterns": [
1410
1410
  {
1411
1411
  "name": "constant.numeric.hex.js",
1412
- "match": "\\b(?\u003c!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)"
1412
+ "match": "\\b(?\u003c!\\$)0(x|X)[0-9a-fA-F]+n?\\b(?!\\$)"
1413
1413
  },
1414
1414
  {
1415
1415
  "name": "constant.numeric.binary.js",
1416
- "match": "\\b(?\u003c!\\$)0(b|B)[01]+\\b(?!\\$)"
1416
+ "match": "\\b(?\u003c!\\$)0(b|B)[01]+n?\\b(?!\\$)"
1417
1417
  },
1418
1418
  {
1419
1419
  "name": "constant.numeric.octal.js",
1420
- "match": "\\b(?\u003c!\\$)0(o|O)?[0-7]+\\b(?!\\$)"
1420
+ "match": "\\b(?\u003c!\\$)0(o|O)?[0-7]+n?\\b(?!\\$)"
1421
1421
  },
1422
1422
  {
1423
- "match": "(?x)\n(?\u003c!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)",
1423
+ "match": "(?x)\n(?\u003c!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+n?\\b(?!\\.)) # 1n\n)(?!\\$)",
1424
1424
  "captures": {
1425
1425
  "0": {
1426
1426
  "name": "constant.numeric.decimal.js"
@@ -44,6 +44,10 @@
44
44
  "begin": "\\[",
45
45
  "end": "(?:\\])(?:(\\.)?'*)",
46
46
  "patterns": [
47
+ {
48
+ "name": "constant.numeric.julia",
49
+ "match": "\\bbegin\\b"
50
+ },
47
51
  {
48
52
  "name": "constant.numeric.julia",
49
53
  "match": "\\bend\\b"
@@ -124,7 +128,7 @@
124
128
  "function_call": {
125
129
  "patterns": [
126
130
  {
127
- "begin": "([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(?=\\()",
131
+ "begin": "([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(?=\\()",
128
132
  "end": "\\)(('|(\\.'))*\\.?')?",
129
133
  "patterns": [
130
134
  {
@@ -157,7 +161,7 @@
157
161
  "function_decl": {
158
162
  "patterns": [
159
163
  {
160
- "match": "([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\(.*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s+.+?)?\\s*?=(?![=\u003e]))",
164
+ "match": "([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\(.*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s+.+?)?\\s*?=(?![=\u003e]))",
161
165
  "captures": {
162
166
  "1": {
163
167
  "name": "entity.name.function.julia"
@@ -168,7 +172,7 @@
168
172
  }
169
173
  },
170
174
  {
171
- "match": "\\b(function|macro)(?:\\s+(?:[[:alpha:]_][[:word:]⁺-ₜ!′∇]*(\\.))?([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()",
175
+ "match": "\\b(function|macro)(?:\\s+(?:[[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*(\\.))?([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()",
172
176
  "captures": {
173
177
  "1": {
174
178
  "name": "keyword.other.julia"
@@ -236,11 +240,7 @@
236
240
  },
237
241
  {
238
242
  "name": "support.function.macro.julia",
239
- "match": "(@(\\.|[[:alpha:]_][[:word:]⁺-ₜ!′∇]*))"
240
- },
241
- {
242
- "name": "support.type.exception.julia",
243
- "match": "\\b(Argument|Assertion|Bounds|Divide|Domain|EOF|Inexact|Key|Load|Memory|Method|OutOfMemory|Overflow|Parse|StackOverflow|System|Type|UV|UndefRef|UndefVar)Error\\b"
243
+ "match": "(@(\\.|[[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*))"
244
244
  }
245
245
  ]
246
246
  },
@@ -264,7 +264,7 @@
264
264
  "patterns": [
265
265
  {
266
266
  "name": "constant.numeric.julia",
267
- "match": "((\\b0(x|X)[0-9a-fA-F](_?[0-9a-fA-F])*)|(\\b0o[0-7](_?[0-7])*)|(\\b0b[0-1](_?[0-1])*)|((\\b[0-9](_?[0-9])*\\.?(_?[0-9]*))|(\\.[0-9](_?[0-9])*))([eE][+-]?[0-9](_?[0-9])*)?(im\\b)?|\\bInf(32)?\\b|\\bNaN(32)?\\b)"
267
+ "match": "((\\b0(x|X)[0-9a-fA-F](_?[0-9a-fA-F])*)|(\\b0o[0-7](_?[0-7])*)|(\\b0b[0-1](_?[0-1])*)|((\\b[0-9](_?[0-9])*\\.?(_?[0-9]*))|(\\.[0-9](_?[0-9])*))([eE][+-]?[0-9](_?[0-9])*)?(im\\b)?|\\bInf(16|32|64)?\\b|\\bNaN(16|32|64)?\\b)"
268
268
  },
269
269
  {
270
270
  "name": "constant.language.julia",
@@ -280,14 +280,14 @@
280
280
  },
281
281
  {
282
282
  "name": "keyword.operator.update.julia",
283
- "match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|\u0026=|\\$=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|=(?!=))"
283
+ "match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|\u0026=|\\.\u0026=|⊻=|\\.⊻=|\\$=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|=(?!=))"
284
284
  },
285
285
  {
286
286
  "name": "keyword.operator.shift.julia",
287
287
  "match": "(?:\u003c\u003c|\u003e\u003e\u003e|\u003e\u003e|\\.\u003e\u003e\u003e|\\.\u003e\u003e|\\.\u003c\u003c)"
288
288
  },
289
289
  {
290
- "match": "(?:\\s*(::|\u003e:|\u003c:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+\"))?)))(?:\\.\\.\\.)?",
290
+ "match": "(?:\\s*(::|\u003e:|\u003c:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?\u003c!\\\\)\"))?)))(?:\\.\\.\\.)?",
291
291
  "captures": {
292
292
  "1": {
293
293
  "name": "keyword.operator.relation.julia"
@@ -299,7 +299,7 @@
299
299
  },
300
300
  {
301
301
  "name": "keyword.operator.relation.julia",
302
- "match": "(?:===|(?\u003c=\\s)in(?=\\s)|\\.==|!==|!=|\\.\u003e=|\\.\u003e|\\.\u003c=|\\.\u003c|==|\\.!=|\\.=|\\.!|\u003c:|\u003e:|:\u003e|(?\u003c!\u003e)\u003e=|(?\u003c!\u003c)\u003c=|\u003e|\u003c)"
302
+ "match": "(?:===|(?\u003c=\\s)in(?=\\s)|∈|\\.∈|∉|\\.∉|∋|\\.∋|∌|\\.∌|≈|\\.≈|≉|\\.≉|≠|\\.≠|≡|\\.≡|≢|\\.≢|⊆|\\.⊆|⊇|\\.⊇|⊈|\\.⊈|⊉|\\.⊉|⊊|\\.⊊|⊋|\\.⊋|\\.==|!==|!=|\\.\u003e=|\\.\u003e|\\.\u003c=|\\.\u003c|\\.≤|\\.≥|==|\\.!=|\\.=|\\.!|\u003c:|\u003e:|:\u003e|(?\u003c!\u003e)\u003e=|(?\u003c!\u003c)\u003c=|\u003e|\u003c|≥|≤)"
303
303
  },
304
304
  {
305
305
  "name": "keyword.operator.ternary.julia",
@@ -319,11 +319,15 @@
319
319
  },
320
320
  {
321
321
  "name": "keyword.operator.bitwise.julia",
322
- "match": "(?:\\||\\\u0026|~)"
322
+ "match": "(?:\\||\\.\\||\\\u0026|\\.\\\u0026|~|\\.~|⊻|\\.⊻)"
323
323
  },
324
324
  {
325
325
  "name": "keyword.operator.arithmetic.julia",
326
- "match": "(?:\\+\\+|--|\\+|\\.\\+|-|\\.\\-|\\*|\\.\\*|//(?!=)|\\.//(?!=)|/|\\./|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^)"
326
+ "match": "(?:\\+\\+|--|\\+|\\.\\+|-|\\.\\-|\\*|\\.\\*|//(?!=)|\\.//(?!=)|/|\\./|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^|÷|\\.÷|⋅|\\.⋅|∩|\\.∩|∪|\\.∪|×|√|∛)"
327
+ },
328
+ {
329
+ "name": "keyword.operator.compose.julia",
330
+ "match": "(?:∘)"
327
331
  },
328
332
  {
329
333
  "name": "keyword.operator.isa.julia",
@@ -338,7 +342,7 @@
338
342
  "match": "(?:\\$(?=.+))"
339
343
  },
340
344
  {
341
- "match": "([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)(('|(\\.'))*\\.?')",
345
+ "match": "([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)(('|(\\.'))*\\.?')",
342
346
  "captures": {
343
347
  "2": {
344
348
  "name": "keyword.operator.transposed-variable.julia"
@@ -616,12 +620,51 @@
616
620
  }
617
621
  }
618
622
  },
623
+ {
624
+ "name": "string.quoted.other.julia",
625
+ "begin": "(raw)(\"\"\")",
626
+ "end": "\"\"\"",
627
+ "beginCaptures": {
628
+ "1": {
629
+ "name": "support.function.macro.julia"
630
+ },
631
+ "2": {
632
+ "name": "punctuation.definition.string.begin.julia"
633
+ }
634
+ },
635
+ "endCaptures": {
636
+ "0": {
637
+ "name": "punctuation.definition.string.end.julia"
638
+ }
639
+ }
640
+ },
641
+ {
642
+ "name": "string.quoted.other.julia",
643
+ "begin": "(raw)(\")",
644
+ "end": "\"",
645
+ "beginCaptures": {
646
+ "1": {
647
+ "name": "support.function.macro.julia"
648
+ },
649
+ "2": {
650
+ "name": "punctuation.definition.string.begin.julia"
651
+ }
652
+ },
653
+ "endCaptures": {
654
+ "0": {
655
+ "name": "punctuation.definition.string.end.julia"
656
+ }
657
+ }
658
+ },
619
659
  {
620
660
  "name": "embed.markdown.julia",
621
661
  "contentName": "source.gfm",
622
662
  "begin": "(md)(\"\"\")",
623
663
  "end": "\"\"\"",
624
664
  "patterns": [
665
+ {
666
+ "include": "source.gfm"
667
+ },
625
668
  {
626
669
  "include": "source.gfm"
627
670
  },
@@ -649,6 +692,9 @@
649
692
  "begin": "(md)(\")",
650
693
  "end": "\"",
651
694
  "patterns": [
695
+ {
696
+ "include": "source.gfm"
697
+ },
652
698
  {
653
699
  "include": "source.gfm"
654
700
  },
@@ -672,7 +718,7 @@
672
718
  },
673
719
  {
674
720
  "name": "string.docstring.julia",
675
- "begin": "^\\s?(doc|raw)?(\"\"\")\\s?$",
721
+ "begin": "^\\s?(doc)?(\"\"\")\\s?$",
676
722
  "end": "(\"\"\")",
677
723
  "patterns": [
678
724
  {
@@ -699,7 +745,7 @@
699
745
  {
700
746
  "name": "string.quoted.single.julia",
701
747
  "begin": "'",
702
- "end": "'",
748
+ "end": "'(?!')",
703
749
  "patterns": [
704
750
  {
705
751
  "include": "#string_escaped_char"
@@ -810,8 +856,8 @@
810
856
  },
811
857
  {
812
858
  "name": "string.quoted.other.julia",
813
- "begin": "(?\u003c!\")([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)\"\"\"",
814
- "end": "(\"\"\")([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)?",
859
+ "begin": "(?\u003c!\")([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)\"\"\"",
860
+ "end": "(\"\"\")([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)?",
815
861
  "patterns": [
816
862
  {
817
863
  "include": "#string_escaped_char"
@@ -836,8 +882,8 @@
836
882
  },
837
883
  {
838
884
  "name": "string.quoted.other.julia",
839
- "begin": "(?\u003c!\")([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)\"",
840
- "end": "(?\u003c![^\\\\]\\\\)(\")([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)?",
885
+ "begin": "(?\u003c!\")([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)\"",
886
+ "end": "(?\u003c![^\\\\]\\\\)(\")([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)?",
841
887
  "patterns": [
842
888
  {
843
889
  "include": "#string_escaped_char"
@@ -889,7 +935,7 @@
889
935
  "patterns": [
890
936
  {
891
937
  "name": "variable.interpolation.julia",
892
- "match": "\\$[[:alpha:]_][[:word:]⁺-ₜ!′∇]*"
938
+ "match": "\\$[[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*"
893
939
  },
894
940
  {
895
941
  "name": "variable.interpolation.julia",
@@ -918,7 +964,7 @@
918
964
  "patterns": [
919
965
  {
920
966
  "name": "constant.other.symbol.julia",
921
- "match": "(?\u003c![[:word:]⁺-ₜ!′∇\\)\\]\\}]):(?:[[:alpha:]_][[:word:]⁺-ₜ!′∇]*)"
967
+ "match": "(?\u003c![[:word:]⁺-ₜ!′∇\\)\\]\\}]):(?:[[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)"
922
968
  }
923
969
  ]
924
970
  },
@@ -926,7 +972,7 @@
926
972
  "patterns": [
927
973
  {
928
974
  "name": "meta.type.julia",
929
- "match": "(?\u003e!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+([[:alpha:]_][[:word:]⁺-ₜ!′∇]*)(\\s*(\u003c:)\\s*[[:alpha:]_][[:word:]⁺-ₜ!′∇]*(?:{.*})?)?",
975
+ "match": "(?\u003e!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+([[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*)(\\s*(\u003c:)\\s*[[:alpha:]_$∇][[:word:]⁺-ₜ!′∇]*(?:{.*})?)?",
930
976
  "captures": {
931
977
  "1": {
932
978
  "name": "entity.name.type.julia"
@@ -43,7 +43,7 @@
43
43
  "patterns": [
44
44
  {
45
45
  "name": "meta.declaration.annotation.kotlin",
46
- "begin": "(@[^ (]+)(\\()?",
46
+ "begin": "((?\u003c!this)@[^ (]+)(\\()?",
47
47
  "end": "(\\)|\\s|$)",
48
48
  "patterns": [
49
49
  {
@@ -136,7 +136,7 @@
136
136
  "builtin-functions": {
137
137
  "patterns": [
138
138
  {
139
- "match": "\\b(apply|also|let|takeIf|run|takeUnless|with|println)\\b\\s*(?={|\\()",
139
+ "match": "\\b(apply|also|let|takeIf|run|takeUnless|with|print|println)\\b\\s*(?={|\\()",
140
140
  "captures": {
141
141
  "1": {
142
142
  "name": "support.function.kotlin"
@@ -337,7 +337,7 @@
337
337
  "patterns": [
338
338
  {
339
339
  "name": "keyword.operator.kotlin",
340
- "match": "\\b(\\!in|\\!is|as\\?)\\b"
340
+ "match": "(\\!in|\\!is|as\\?)"
341
341
  },
342
342
  {
343
343
  "name": "keyword.operator.kotlin",
@@ -361,7 +361,7 @@
361
361
  },
362
362
  {
363
363
  "name": "storage.modifier.kotlin",
364
- "match": "\\b(external|public|private|protected|internal|abstract|final|sealed|enum|open|annotation|override|vararg|typealias|expect|actual|suspend|yield)\\b"
364
+ "match": "\\b(external|public|private|protected|internal|abstract|final|sealed|enum|open|annotation|override|vararg|typealias|expect|actual|suspend|yield|out|in|lateinit)\\b"
365
365
  },
366
366
  {
367
367
  "name": "keyword.control.catch-exception.kotlin",
@@ -506,7 +506,7 @@
506
506
  {
507
507
  "name": "string.quoted.triple.kotlin",
508
508
  "begin": "\"\"\"",
509
- "end": "\"\"\"(?!\")",
509
+ "end": "\"\"\"",
510
510
  "patterns": [
511
511
  {
512
512
  "include": "#string-content"
@@ -546,27 +546,6 @@
546
546
  "name": "punctuation.definition.string.end.kotlin"
547
547
  }
548
548
  }
549
- },
550
- {
551
- "name": "string.quoted.single.kotlin",
552
- "begin": "'",
553
- "end": "'",
554
- "patterns": [
555
- {
556
- "name": "constant.character.escape.kotlin",
557
- "match": "\\\\."
558
- }
559
- ],
560
- "beginCaptures": {
561
- "0": {
562
- "name": "punctuation.definition.string.begin.kotlin"
563
- }
564
- },
565
- "endCaptures": {
566
- "0": {
567
- "name": "punctuation.definition.string.end.kotlin"
568
- }
569
- }
570
549
  }
571
550
  ]
572
551
  },
@@ -672,7 +651,15 @@
672
651
  },
673
652
  {
674
653
  "name": "entity.name.type.class.kotlin",
675
- "match": "((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(\\?)"
654
+ "match": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(\\?)?\\b",
655
+ "patterns": [
656
+ {
657
+ "include": "#keyword-punctuation"
658
+ },
659
+ {
660
+ "include": "#types"
661
+ }
662
+ ]
676
663
  },
677
664
  {
678
665
  "name": "entity.name.type.class.kotlin",
@@ -683,30 +670,6 @@
683
670
  }
684
671
  }
685
672
  },
686
- {
687
- "name": "meta.generic.kotlin",
688
- "begin": "\\\u003c",
689
- "end": "\\\u003e",
690
- "patterns": [
691
- {
692
- "name": "storage.modifier.kotlin",
693
- "match": "\\b(out|in)\\b"
694
- },
695
- {
696
- "include": "#types"
697
- }
698
- ],
699
- "beginCaptures": {
700
- "0": {
701
- "name": "punctuation.definition.generic.begin.kotlin"
702
- }
703
- },
704
- "endCaptures": {
705
- "0": {
706
- "name": "punctuation.definition.generic.end.kotlin"
707
- }
708
- }
709
- },
710
673
  {
711
674
  "begin": "\\(",
712
675
  "end": "\\)",
@@ -726,6 +689,9 @@
726
689
  }
727
690
  }
728
691
  },
692
+ {
693
+ "include": "#comments"
694
+ },
729
695
  {
730
696
  "include": "#keyword-punctuation"
731
697
  },
@@ -0,0 +1,398 @@
1
+ {
2
+ "name": "LCOV Tracefile",
3
+ "scopeName": "source.lcov",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "BRDA": {
11
+ "name": "meta.branch-coverage.lcov",
12
+ "begin": "^(BRDA)(:)",
13
+ "end": "$",
14
+ "patterns": [
15
+ {
16
+ "match": "\\G\\s*(\\d+)\\s*(,)\\s*(\\d+)\\s*(,)\\s*(\\d+)\\s*(,)\\s*(?:(\\d+)|(-))",
17
+ "captures": {
18
+ "1": {
19
+ "name": "entity.other.branch.line-number.lcov"
20
+ },
21
+ "2": {
22
+ "patterns": [
23
+ {
24
+ "include": "etc#comma"
25
+ }
26
+ ]
27
+ },
28
+ "3": {
29
+ "name": "entity.other.branch.block-number.lcov"
30
+ },
31
+ "4": {
32
+ "patterns": [
33
+ {
34
+ "include": "etc#comma"
35
+ }
36
+ ]
37
+ },
38
+ "5": {
39
+ "name": "entity.other.branch.branch-number.lcov"
40
+ },
41
+ "6": {
42
+ "patterns": [
43
+ {
44
+ "include": "etc#comma"
45
+ }
46
+ ]
47
+ },
48
+ "7": {
49
+ "name": "entity.other.branch.use-count.lcov"
50
+ },
51
+ "8": {
52
+ "name": "comment.other.never-executed.lcov"
53
+ }
54
+ }
55
+ }
56
+ ],
57
+ "beginCaptures": {
58
+ "1": {
59
+ "name": "storage.type.var.lcov"
60
+ },
61
+ "2": {
62
+ "patterns": [
63
+ {
64
+ "include": "etc#kolon"
65
+ }
66
+ ]
67
+ }
68
+ }
69
+ },
70
+ "BRF": {
71
+ "name": "meta.number-of-branches.found.lcov",
72
+ "begin": "^(BRF)(:)",
73
+ "end": "$",
74
+ "patterns": [
75
+ {
76
+ "include": "etc#num"
77
+ }
78
+ ],
79
+ "beginCaptures": {
80
+ "1": {
81
+ "name": "storage.type.var.lcov"
82
+ },
83
+ "2": {
84
+ "patterns": [
85
+ {
86
+ "include": "etc#kolon"
87
+ }
88
+ ]
89
+ }
90
+ }
91
+ },
92
+ "BRH": {
93
+ "name": "meta.number-of-branches.found.lcov",
94
+ "begin": "^(BRH)(:)",
95
+ "end": "$",
96
+ "patterns": [
97
+ {
98
+ "include": "etc#num"
99
+ }
100
+ ],
101
+ "beginCaptures": {
102
+ "1": {
103
+ "name": "storage.type.var.lcov"
104
+ },
105
+ "2": {
106
+ "patterns": [
107
+ {
108
+ "include": "etc#kolon"
109
+ }
110
+ ]
111
+ }
112
+ }
113
+ },
114
+ "DA": {
115
+ "name": "meta.execution-counts.lcov",
116
+ "begin": "^(DA)(:)",
117
+ "end": "$",
118
+ "patterns": [
119
+ {
120
+ "match": "\\G\\s*(\\d+)(,)(\\d+)",
121
+ "captures": {
122
+ "1": {
123
+ "name": "constant.numeric.line-number.lcov"
124
+ },
125
+ "2": {
126
+ "patterns": [
127
+ {
128
+ "include": "etc#comma"
129
+ }
130
+ ]
131
+ },
132
+ "3": {
133
+ "name": "constant.numeric.execution-count.lcov"
134
+ }
135
+ }
136
+ },
137
+ {
138
+ "match": "(?\u003c=\\d)(,)\\s*(\\S.*)\\s*$",
139
+ "captures": {
140
+ "1": {
141
+ "patterns": [
142
+ {
143
+ "include": "etc#comma"
144
+ }
145
+ ]
146
+ },
147
+ "2": {
148
+ "name": "string.other.md5.checksum.hash.lcov"
149
+ }
150
+ }
151
+ }
152
+ ],
153
+ "beginCaptures": {
154
+ "1": {
155
+ "name": "storage.type.var.lcov"
156
+ },
157
+ "2": {
158
+ "patterns": [
159
+ {
160
+ "include": "etc#kolon"
161
+ }
162
+ ]
163
+ }
164
+ }
165
+ },
166
+ "FN": {
167
+ "name": "meta.function-name.lcov",
168
+ "begin": "^(FN)(:)[ \\t]*",
169
+ "end": "\\s*$",
170
+ "patterns": [
171
+ {
172
+ "include": "etc#comma"
173
+ },
174
+ {
175
+ "name": "constant.numeric.line-number.function-start.lcov",
176
+ "match": "\\G\\d+"
177
+ },
178
+ {
179
+ "name": "entity.function.name.lcov",
180
+ "match": "(?!\\d)\\S.*"
181
+ }
182
+ ],
183
+ "beginCaptures": {
184
+ "1": {
185
+ "name": "storage.type.var.lcov"
186
+ },
187
+ "2": {
188
+ "patterns": [
189
+ {
190
+ "include": "etc#kolon"
191
+ }
192
+ ]
193
+ }
194
+ }
195
+ },
196
+ "FNDA": {
197
+ "name": "meta.execution-count.lcov",
198
+ "begin": "^(FNDA)(:)[ \\t]*",
199
+ "end": "\\s*$",
200
+ "patterns": [
201
+ {
202
+ "include": "etc#comma"
203
+ },
204
+ {
205
+ "name": "constant.numeric.execution-count.lcov",
206
+ "match": "\\G\\d+"
207
+ },
208
+ {
209
+ "name": "entity.function.name.lcov",
210
+ "match": "(?!\\d)\\S.*"
211
+ }
212
+ ],
213
+ "beginCaptures": {
214
+ "1": {
215
+ "name": "storage.type.var.lcov"
216
+ },
217
+ "2": {
218
+ "patterns": [
219
+ {
220
+ "include": "etc#kolon"
221
+ }
222
+ ]
223
+ }
224
+ }
225
+ },
226
+ "FNF": {
227
+ "name": "meta.number-of-functions.found.lcov",
228
+ "begin": "^(FNF)(:)",
229
+ "end": "$",
230
+ "patterns": [
231
+ {
232
+ "include": "etc#num"
233
+ }
234
+ ],
235
+ "beginCaptures": {
236
+ "1": {
237
+ "name": "storage.type.var.lcov"
238
+ },
239
+ "2": {
240
+ "patterns": [
241
+ {
242
+ "include": "etc#kolon"
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ },
248
+ "FNH": {
249
+ "name": "meta.number-of-functions.hit.lcov",
250
+ "begin": "^(FNH)(:)",
251
+ "end": "$",
252
+ "patterns": [
253
+ {
254
+ "include": "etc#num"
255
+ }
256
+ ],
257
+ "beginCaptures": {
258
+ "1": {
259
+ "name": "storage.type.var.lcov"
260
+ },
261
+ "2": {
262
+ "patterns": [
263
+ {
264
+ "include": "etc#kolon"
265
+ }
266
+ ]
267
+ }
268
+ }
269
+ },
270
+ "LF": {
271
+ "name": "meta.number-of-instrumented-lines.lcov",
272
+ "begin": "^(LF)(:)[ \\t]*",
273
+ "end": "\\s*$",
274
+ "patterns": [
275
+ {
276
+ "include": "etc#num"
277
+ }
278
+ ],
279
+ "beginCaptures": {
280
+ "1": {
281
+ "name": "storage.type.var.lcov"
282
+ },
283
+ "2": {
284
+ "patterns": [
285
+ {
286
+ "include": "etc#kolon"
287
+ }
288
+ ]
289
+ }
290
+ }
291
+ },
292
+ "LH": {
293
+ "name": "meta.number-of-lines-with-non-zero-execution-count.lcov",
294
+ "begin": "^(LH)(:)[ \\t]*",
295
+ "end": "\\s*$",
296
+ "patterns": [
297
+ {
298
+ "include": "etc#num"
299
+ }
300
+ ],
301
+ "beginCaptures": {
302
+ "1": {
303
+ "name": "storage.type.var.lcov"
304
+ },
305
+ "2": {
306
+ "patterns": [
307
+ {
308
+ "include": "etc#kolon"
309
+ }
310
+ ]
311
+ }
312
+ }
313
+ },
314
+ "SF": {
315
+ "name": "meta.source-file.lcov",
316
+ "contentName": "entity.name.source-file.path.lcov",
317
+ "begin": "^(SF)(:)[ \\t]*",
318
+ "end": "\\s*$",
319
+ "beginCaptures": {
320
+ "1": {
321
+ "name": "storage.type.var.lcov"
322
+ },
323
+ "2": {
324
+ "patterns": [
325
+ {
326
+ "include": "etc#kolon"
327
+ }
328
+ ]
329
+ }
330
+ }
331
+ },
332
+ "TN": {
333
+ "name": "meta.test-name.lcov",
334
+ "contentName": "markup.heading.1.test-name.lcov",
335
+ "begin": "^(TN)(:)[ \\t]*",
336
+ "end": "\\s*$",
337
+ "beginCaptures": {
338
+ "1": {
339
+ "name": "storage.type.var.lcov"
340
+ },
341
+ "2": {
342
+ "patterns": [
343
+ {
344
+ "include": "etc#kolon"
345
+ }
346
+ ]
347
+ }
348
+ }
349
+ },
350
+ "end": {
351
+ "name": "keyword.control.end-of-record.end.lcov",
352
+ "match": "^end_of_record\\b"
353
+ },
354
+ "main": {
355
+ "patterns": [
356
+ {
357
+ "include": "#TN"
358
+ },
359
+ {
360
+ "include": "#SF"
361
+ },
362
+ {
363
+ "include": "#FN"
364
+ },
365
+ {
366
+ "include": "#FNDA"
367
+ },
368
+ {
369
+ "include": "#FNF"
370
+ },
371
+ {
372
+ "include": "#FNH"
373
+ },
374
+ {
375
+ "include": "#DA"
376
+ },
377
+ {
378
+ "include": "#LH"
379
+ },
380
+ {
381
+ "include": "#LF"
382
+ },
383
+ {
384
+ "include": "#BRDA"
385
+ },
386
+ {
387
+ "include": "#BRF"
388
+ },
389
+ {
390
+ "include": "#BRH"
391
+ },
392
+ {
393
+ "include": "#end"
394
+ }
395
+ ]
396
+ }
397
+ }
398
+ }