github-linguist 5.3.3 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +5 -2
  3. data/ext/linguist/linguist.c +18 -7
  4. data/grammars/annotation.liquidhaskell.haskell.json +969 -862
  5. data/grammars/config.xcompose.json +22 -25
  6. data/grammars/file.lasso.json +296 -309
  7. data/grammars/hint.haskell.json +867 -766
  8. data/grammars/hint.message.haskell.json +867 -766
  9. data/grammars/hint.type.haskell.json +867 -766
  10. data/grammars/objdump.x86asm.json +20 -24
  11. data/grammars/source.Kotlin.json +220 -225
  12. data/grammars/source.LS.json +36 -55
  13. data/grammars/source.MCPOST.json +24 -38
  14. data/grammars/source.MOD.json +26 -41
  15. data/grammars/source.SASLog.json +9 -16
  16. data/grammars/source.abap.json +48 -56
  17. data/grammars/source.abl.json +8 -14
  18. data/grammars/source.abnf.json +88 -98
  19. data/grammars/source.actionscript.3.json +398 -429
  20. data/grammars/source.acucobol.json +5 -8
  21. data/grammars/source.ada.json +46 -53
  22. data/grammars/source.afm.json +548 -554
  23. data/grammars/source.agc.json +34 -37
  24. data/grammars/source.agda.json +79 -91
  25. data/grammars/source.ahk.json +62 -66
  26. data/grammars/source.alloy.json +16 -20
  27. data/grammars/source.ampl.json +41 -47
  28. data/grammars/source.angelscript.json +71 -80
  29. data/grammars/source.antlr.json +131 -136
  30. data/grammars/source.apache-config.json +93 -99
  31. data/grammars/source.apache-config.mod_perl.json +19 -24
  32. data/grammars/source.apl.json +1038 -1029
  33. data/grammars/source.applescript.json +501 -523
  34. data/grammars/source.apt.json +9 -16
  35. data/grammars/source.asn.json +27 -31
  36. data/grammars/source.asp.json +61 -67
  37. data/grammars/source.aspectj.json +385 -391
  38. data/grammars/source.assembly.json +49 -55
  39. data/grammars/source.ats.json +45 -121
  40. data/grammars/source.autoit.json +64 -69
  41. data/grammars/source.awk.json +172 -176
  42. data/grammars/source.ballerina.json +48 -395
  43. data/grammars/source.batchfile.json +269 -269
  44. data/grammars/source.befunge.json +17 -21
  45. data/grammars/source.bf.json +5 -11
  46. data/grammars/source.bison.json +10 -14
  47. data/grammars/source.blitzmax.json +300 -305
  48. data/grammars/source.boo.json +189 -193
  49. data/grammars/source.brightauthorproject.json +8 -13
  50. data/grammars/source.brightscript.json +37 -47
  51. data/grammars/source.bro.json +134 -140
  52. data/grammars/source.bsl.json +152 -193
  53. data/grammars/source.bsv.json +96 -102
  54. data/grammars/source.c++.json +176 -193
  55. data/grammars/source.c++.qt.json +13 -21
  56. data/grammars/source.c.ec.json +15 -21
  57. data/grammars/source.c.json +237 -251
  58. data/grammars/source.c.platform.json +153 -159
  59. data/grammars/source.c2hs.json +3 -6
  60. data/grammars/source.cabal.json +17 -20
  61. data/grammars/source.cache.cmake.json +18 -23
  62. data/grammars/source.cake.json +4 -7
  63. data/grammars/source.camlp4.ocaml.json +24 -27
  64. data/grammars/source.capnp.json +33 -38
  65. data/grammars/source.ceylon.json +44 -50
  66. data/grammars/source.cfscript.cfc.json +78 -86
  67. data/grammars/source.cfscript.json +513 -520
  68. data/grammars/source.changelogs.rpm-spec.json +8 -16
  69. data/grammars/source.chapel.json +109 -87
  70. data/grammars/source.cirru.json +25 -30
  71. data/grammars/source.clarion.json +41 -54
  72. data/grammars/source.clean.json +90 -95
  73. data/grammars/source.click.json +25 -28
  74. data/grammars/source.clips.json +10 -23
  75. data/grammars/source.clojure.json +151 -168
  76. data/grammars/source.cm.json +14 -19
  77. data/grammars/source.cmake.json +53 -61
  78. data/grammars/source.cobol.json +165 -180
  79. data/grammars/source.coffee.json +454 -462
  80. data/grammars/source.cool.json +36 -43
  81. data/grammars/source.coq.json +17 -21
  82. data/grammars/source.crystal.json +889 -983
  83. data/grammars/source.cs.json +739 -740
  84. data/grammars/source.csound-document.json +69 -73
  85. data/grammars/source.csound-score.json +52 -55
  86. data/grammars/source.csound.json +167 -171
  87. data/grammars/source.css.json +683 -688
  88. data/grammars/source.css.less.json +211 -511
  89. data/grammars/source.css.mss.json +94 -101
  90. data/grammars/source.css.postcss.sugarss.json +260 -0
  91. data/grammars/source.csx.json +4 -7
  92. data/grammars/source.cuda-c++.json +47 -81
  93. data/grammars/source.cwl.json +103 -0
  94. data/grammars/source.cython.json +536 -582
  95. data/grammars/source.d.json +243 -252
  96. data/grammars/source.dart.json +161 -166
  97. data/grammars/source.data-weave.json +901 -905
  98. data/grammars/source.desktop.json +29 -33
  99. data/grammars/source.diff.json +43 -52
  100. data/grammars/source.disasm.json +15 -16
  101. data/grammars/source.ditroff.desc.json +73 -84
  102. data/grammars/source.ditroff.json +60 -61
  103. data/grammars/source.dm.json +202 -213
  104. data/grammars/source.dmf.json +44 -47
  105. data/grammars/source.dockerfile.json +29 -34
  106. data/grammars/source.dot.json +46 -55
  107. data/grammars/source.dylan.json +63 -68
  108. data/grammars/source.ebnf.json +55 -62
  109. data/grammars/source.eiffel.json +57 -62
  110. data/grammars/source.elixir.json +321 -366
  111. data/grammars/source.emacs.lisp.json +458 -249
  112. data/grammars/source.erazor.json +49 -57
  113. data/grammars/source.erlang.json +508 -515
  114. data/grammars/source.essl.json +17 -30
  115. data/grammars/source.factor.json +85 -91
  116. data/grammars/source.fan.json +92 -96
  117. data/grammars/source.fancy.json +93 -118
  118. data/grammars/source.fish.json +74 -98
  119. data/grammars/source.fontforge.json +142 -146
  120. data/grammars/source.forth.json +42 -57
  121. data/grammars/source.fortran.json +193 -231
  122. data/grammars/source.fortran.modern.json +77 -103
  123. data/grammars/source.fsharp.fsi.json +1 -6
  124. data/grammars/source.fsharp.fsl.json +1 -6
  125. data/grammars/source.fsharp.fsx.json +1 -6
  126. data/grammars/source.fsharp.json +148 -153
  127. data/grammars/source.gap.json +60 -70
  128. data/grammars/source.gcode.json +9 -16
  129. data/grammars/source.gdb.json +63 -79
  130. data/grammars/source.gdb.session.json +27 -28
  131. data/grammars/source.gdbregs.json +7 -8
  132. data/grammars/source.gdscript.json +92 -96
  133. data/grammars/source.gerber.json +38 -56
  134. data/grammars/source.gfm.json +447 -462
  135. data/grammars/source.glsl.json +58 -83
  136. data/grammars/source.gn.json +188 -193
  137. data/grammars/source.gnuplot.json +104 -120
  138. data/grammars/source.go.json +169 -181
  139. data/grammars/source.golo.json +82 -87
  140. data/grammars/source.gosu.2.json +58 -68
  141. data/grammars/source.grace.json +266 -270
  142. data/grammars/source.graphql.json +586 -596
  143. data/grammars/source.groovy.gradle.json +18 -22
  144. data/grammars/source.groovy.json +422 -433
  145. data/grammars/source.harbour.json +129 -173
  146. data/grammars/source.haskell.json +871 -772
  147. data/grammars/source.haxe.2.json +402 -413
  148. data/grammars/source.hlsl.json +6 -16
  149. data/grammars/source.hsc2hs.json +1 -4
  150. data/grammars/source.hsig.json +871 -770
  151. data/grammars/source.hss.1.json +122 -144
  152. data/grammars/source.httpspec.json +119 -123
  153. data/grammars/source.hxml.json +8 -15
  154. data/grammars/source.ideal.json +125 -125
  155. data/grammars/source.idl-dlm.json +25 -32
  156. data/grammars/source.idl.json +59 -80
  157. data/grammars/source.idris.json +171 -185
  158. data/grammars/source.inform7.json +117 -121
  159. data/grammars/source.ini.json +37 -43
  160. data/grammars/source.io.json +65 -73
  161. data/grammars/source.ioke.json +72 -78
  162. data/grammars/source.isabelle.root.json +26 -30
  163. data/grammars/source.isabelle.theory.json +46 -50
  164. data/grammars/source.j.json +18 -21
  165. data/grammars/source.jasmin.json +45 -50
  166. data/grammars/source.java-properties.json +31 -41
  167. data/grammars/source.java.json +333 -342
  168. data/grammars/source.jcl.json +15 -18
  169. data/grammars/source.jflex.json +166 -172
  170. data/grammars/source.jison.json +331 -334
  171. data/grammars/source.jisonlex-injection.json +1 -2
  172. data/grammars/source.jisonlex.json +148 -151
  173. data/grammars/source.jolie.json +37 -43
  174. data/grammars/source.jq.json +80 -87
  175. data/grammars/source.js.json +798 -818
  176. data/grammars/source.js.jsx.json +2115 -2225
  177. data/grammars/source.js.objj.json +167 -172
  178. data/grammars/source.js.regexp.json +50 -50
  179. data/grammars/source.js.regexp.replacement.json +7 -7
  180. data/grammars/source.jsdoc.json +94 -94
  181. data/grammars/source.json.json +61 -71
  182. data/grammars/source.julia.console.json +5 -6
  183. data/grammars/source.julia.json +237 -234
  184. data/grammars/source.lean.json +55 -67
  185. data/grammars/source.lid.json +6 -10
  186. data/grammars/source.lilypond.json +181 -195
  187. data/grammars/source.lisp.json +40 -50
  188. data/grammars/source.litcoffee.json +169 -183
  189. data/grammars/source.livescript.json +207 -220
  190. data/grammars/source.llvm.json +28 -38
  191. data/grammars/source.logos.json +7 -14
  192. data/grammars/source.logtalk.json +136 -141
  193. data/grammars/source.loomscript.json +77 -83
  194. data/grammars/source.lsl.json +90 -106
  195. data/grammars/source.lua.json +100 -109
  196. data/grammars/source.makefile.json +181 -188
  197. data/grammars/source.makegen.json +3 -7
  198. data/grammars/source.mask.json +260 -265
  199. data/grammars/source.mata.json +38 -46
  200. data/grammars/source.mathematica.json +155 -167
  201. data/grammars/source.matlab.json +407 -684
  202. data/grammars/source.maxscript.json +293 -281
  203. data/grammars/source.mercury.json +179 -184
  204. data/grammars/source.meson.json +52 -58
  205. data/grammars/source.meta-info.json +64 -74
  206. data/grammars/source.ml.json +107 -113
  207. data/grammars/source.modelica.json +51 -59
  208. data/grammars/source.modula2.json +33 -42
  209. data/grammars/source.monkey.json +234 -241
  210. data/grammars/source.moonscript.json +51 -56
  211. data/grammars/source.mql5.json +74 -101
  212. data/grammars/source.mupad.json +30 -72
  213. data/grammars/source.ncl.json +1 -14
  214. data/grammars/source.ne.json +39 -42
  215. data/grammars/source.nemerle.json +58 -63
  216. data/grammars/source.nesc.json +9 -15
  217. data/grammars/source.netlinx.erb.json +13 -25
  218. data/grammars/source.netlinx.json +231 -292
  219. data/grammars/source.nextflow-groovy.json +1360 -0
  220. data/grammars/source.nextflow.json +74 -0
  221. data/grammars/source.nginx.json +274 -287
  222. data/grammars/source.nim.json +442 -483
  223. data/grammars/source.nim_filter.json +6 -26
  224. data/grammars/source.nimcfg.json +38 -51
  225. data/grammars/source.ninja.json +64 -70
  226. data/grammars/source.nit.json +60 -64
  227. data/grammars/source.nix.json +269 -273
  228. data/grammars/source.nmml.json +31 -37
  229. data/grammars/source.nsis.json +66 -72
  230. data/grammars/source.nu.json +129 -139
  231. data/grammars/source.nut.json +129 -133
  232. data/grammars/source.objc++.json +3 -10
  233. data/grammars/source.objc.json +303 -314
  234. data/grammars/source.objc.platform.json +145 -151
  235. data/grammars/source.ocaml.json +506 -514
  236. data/grammars/source.ocamllex.json +108 -115
  237. data/grammars/source.ocamlyacc.json +116 -123
  238. data/grammars/source.ooc.json +148 -155
  239. data/grammars/source.opa.json +39 -49
  240. data/grammars/source.opal.json +84 -89
  241. data/grammars/source.opalsysdefs.json +9 -13
  242. data/grammars/source.opencobol.json +22 -25
  243. data/grammars/source.opentype.json +148 -152
  244. data/grammars/source.ox.json +36 -44
  245. data/grammars/source.oz.json +31 -38
  246. data/grammars/source.p4.json +49 -59
  247. data/grammars/source.pan.json +273 -278
  248. data/grammars/source.papyrus.skyrim.json +705 -781
  249. data/grammars/source.parrot.pir.json +59 -65
  250. data/grammars/source.pascal.json +54 -61
  251. data/grammars/source.pawn.json +835 -849
  252. data/grammars/source.pcb.board.json +153 -158
  253. data/grammars/source.pcb.schematic.json +134 -138
  254. data/grammars/source.pcb.sexp.json +64 -74
  255. data/grammars/source.pep8.json +28 -32
  256. data/grammars/source.perl.6.json +83 -92
  257. data/grammars/source.perl.json +711 -737
  258. data/grammars/source.perl6fe.json +1204 -1218
  259. data/grammars/source.php.zephir.json +80 -89
  260. data/grammars/source.pic.json +137 -142
  261. data/grammars/source.pig_latin.json +76 -80
  262. data/grammars/source.pike.json +23 -36
  263. data/grammars/source.po.json +74 -84
  264. data/grammars/source.pogoscript.json +23 -29
  265. data/grammars/source.pony.json +98 -108
  266. data/grammars/source.postcss.json +370 -0
  267. data/grammars/source.postscript.json +88 -97
  268. data/grammars/source.pov-ray sdl.json +36 -42
  269. data/grammars/source.powershell.json +175 -197
  270. data/grammars/source.processing.json +236 -249
  271. data/grammars/source.prolog.eclipse.json +33 -38
  272. data/grammars/source.prolog.json +66 -72
  273. data/grammars/source.protobuf.json +88 -94
  274. data/grammars/source.puppet.json +144 -151
  275. data/grammars/source.purescript.json +268 -289
  276. data/grammars/source.pyjade.json +256 -281
  277. data/grammars/source.python.django.json +13 -18
  278. data/grammars/source.python.json +3319 -3367
  279. data/grammars/source.python.salt.json +3 -7
  280. data/grammars/source.qmake.json +83 -90
  281. data/grammars/source.qml.json +57 -78
  282. data/grammars/source.quoting.perl6fe.json +666 -669
  283. data/grammars/source.r.json +75 -84
  284. data/grammars/source.racket.json +17 -38
  285. data/grammars/source.rascal.json +77 -80
  286. data/grammars/source.reason.hover.type.json +1 -1
  287. data/grammars/source.reason.json +1025 -1080
  288. data/grammars/source.rebol.json +167 -177
  289. data/grammars/source.red.json +169 -177
  290. data/grammars/source.regexp.babel.json +74 -77
  291. data/grammars/source.regexp.extended.json +4 -5
  292. data/grammars/source.regexp.json +260 -264
  293. data/grammars/source.regexp.perl6fe.json +108 -111
  294. data/grammars/source.regexp.python.json +210 -215
  295. data/grammars/source.regexp.spin.json +63 -72
  296. data/grammars/source.renpy.json +617 -687
  297. data/grammars/source.rexx.json +25 -32
  298. data/grammars/source.ring.json +84 -114
  299. data/grammars/source.rpm-spec.json +392 -401
  300. data/grammars/source.ruby.gemfile.json +9 -12
  301. data/grammars/source.ruby.json +862 -952
  302. data/grammars/source.ruby.rspec.cucumber.steps.json +90 -103
  303. data/grammars/source.rust.json +223 -281
  304. data/grammars/source.sas.json +88 -105
  305. data/grammars/source.sass.json +100 -108
  306. data/grammars/source.sbt.json +16 -23
  307. data/grammars/source.scad.json +60 -67
  308. data/grammars/source.scala.json +215 -228
  309. data/grammars/source.scaml.json +120 -135
  310. data/grammars/source.scheme.json +119 -136
  311. data/grammars/source.scilab.json +40 -47
  312. data/grammars/source.scss.json +369 -403
  313. data/grammars/source.sdbl.json +14 -25
  314. data/grammars/source.shaderlab.json +24 -27
  315. data/grammars/source.shell.json +409 -440
  316. data/grammars/source.shen.json +75 -94
  317. data/grammars/source.smali.json +232 -293
  318. data/grammars/source.smalltalk.json +60 -75
  319. data/grammars/source.smt.json +67 -82
  320. data/grammars/source.solidity.json +35 -54
  321. data/grammars/source.sp.json +40 -45
  322. data/grammars/source.sparql.json +3 -8
  323. data/grammars/source.spin.json +277 -297
  324. data/grammars/source.sqf.json +34 -44
  325. data/grammars/source.sql.json +142 -156
  326. data/grammars/source.stan.json +201 -160
  327. data/grammars/source.stata.json +57 -68
  328. data/grammars/source.strings.json +26 -30
  329. data/grammars/source.stylus.json +558 -565
  330. data/grammars/source.supercollider.json +33 -40
  331. data/grammars/source.swift.json +999 -1077
  332. data/grammars/source.systemverilog.json +351 -365
  333. data/grammars/source.tcl.json +77 -94
  334. data/grammars/source.tea.json +61 -67
  335. data/grammars/source.terra.json +25 -32
  336. data/grammars/source.terraform.json +68 -88
  337. data/grammars/source.thrift.json +300 -306
  338. data/grammars/source.tl.json +112 -117
  339. data/grammars/source.tla.json +65 -69
  340. data/grammars/source.toc.json +21 -25
  341. data/grammars/source.toml.json +117 -122
  342. data/grammars/source.ts.json +2838 -2774
  343. data/grammars/source.tsx.json +180 -184
  344. data/grammars/source.turing.json +970 -974
  345. data/grammars/source.turtle.json +124 -140
  346. data/grammars/source.txl.json +23 -37
  347. data/grammars/source.ucfconstraints.json +16 -21
  348. data/grammars/source.ur.json +15 -27
  349. data/grammars/source.vala.json +221 -235
  350. data/grammars/source.varnish.vcl.json +117 -129
  351. data/grammars/source.vbnet.json +69 -106
  352. data/grammars/source.verilog.json +101 -107
  353. data/grammars/source.vhdl.json +437 -445
  354. data/grammars/source.viml.json +540 -550
  355. data/grammars/source.wavefront.mtl.json +274 -277
  356. data/grammars/source.wavefront.obj.json +781 -784
  357. data/grammars/source.wdl.json +66 -46
  358. data/grammars/source.webassembly.json +97 -102
  359. data/grammars/source.webidl.json +311 -326
  360. data/grammars/source.x10.json +28 -32
  361. data/grammars/source.x86asm.json +21 -26
  362. data/grammars/source.xc.json +164 -172
  363. data/grammars/source.xq.json +81 -92
  364. data/grammars/source.xtend.json +199 -208
  365. data/grammars/source.yaml-ext.json +118 -124
  366. data/grammars/source.yaml.json +155 -174
  367. data/grammars/source.yaml.salt.json +113 -116
  368. data/grammars/source.yang.json +10 -13
  369. data/grammars/source.yara.json +98 -0
  370. data/grammars/text.bibtex.json +95 -100
  371. data/grammars/text.cfml.basic.json +403 -404
  372. data/grammars/text.elixir.json +18 -23
  373. data/grammars/text.error-list.json +15 -16
  374. data/grammars/text.find-refs.json +487 -488
  375. data/grammars/text.gherkin.feature.json +45 -53
  376. data/grammars/text.haml.json +176 -189
  377. data/grammars/text.hamlc.json +82 -88
  378. data/grammars/text.html.abl.json +16 -21
  379. data/grammars/text.html.asciidoc.json +139 -153
  380. data/grammars/text.html.asdoc.json +145 -155
  381. data/grammars/text.html.asp.json +23 -28
  382. data/grammars/text.html.basic.json +323 -338
  383. data/grammars/text.html.cfm.json +316 -325
  384. data/grammars/text.html.creole.json +177 -189
  385. data/grammars/text.html.django.json +27 -33
  386. data/grammars/text.html.ecr.json +21 -25
  387. data/grammars/text.html.elixir.json +3 -9
  388. data/grammars/text.html.erb.json +81 -85
  389. data/grammars/text.html.erlang.yaws.json +24 -29
  390. data/grammars/text.html.factor.json +5 -11
  391. data/grammars/text.html.ftl.json +16 -25
  392. data/grammars/text.html.handlebars.json +579 -598
  393. data/grammars/text.html.javadoc.json +426 -0
  394. data/grammars/text.html.js.json +11 -17
  395. data/grammars/text.html.jsp.json +377 -384
  396. data/grammars/text.html.liquid.json +8 -18
  397. data/grammars/text.html.mako.json +257 -275
  398. data/grammars/text.html.markdown.source.gfm.apib.json +419 -427
  399. data/grammars/text.html.markdown.source.gfm.mson.json +405 -414
  400. data/grammars/text.html.mediawiki.json +318 -344
  401. data/grammars/text.html.php.blade.json +2134 -2140
  402. data/grammars/text.html.php.json +980 -1013
  403. data/grammars/text.html.slash.json +101 -107
  404. data/grammars/text.html.smarty.json +75 -83
  405. data/grammars/text.html.soy.json +250 -253
  406. data/grammars/text.html.ssp.json +18 -24
  407. data/grammars/text.html.tcl.json +17 -24
  408. data/grammars/text.html.twig.json +712 -718
  409. data/grammars/text.idl-idldoc.json +5 -9
  410. data/grammars/text.jade.json +213 -235
  411. data/grammars/text.junit-test-report.json +25 -28
  412. data/grammars/text.log.latex.json +44 -46
  413. data/grammars/text.marko.json +370 -401
  414. data/grammars/text.python.console.json +3 -7
  415. data/grammars/text.python.traceback.json +2 -5
  416. data/grammars/text.rdoc.json +15 -19
  417. data/grammars/text.restructuredtext.clean.json +8 -11
  418. data/grammars/text.restructuredtext.json +886 -873
  419. data/grammars/text.robot.json +26 -36
  420. data/grammars/text.roff.json +2852 -2915
  421. data/grammars/text.runoff.json +56 -69
  422. data/grammars/text.sfd.json +151 -155
  423. data/grammars/text.shell-session.json +5 -8
  424. data/grammars/text.slim.json +184 -210
  425. data/grammars/text.srt.json +54 -57
  426. data/grammars/text.tex.json +98 -105
  427. data/grammars/text.tex.latex.beamer.json +14 -20
  428. data/grammars/text.tex.latex.haskell.json +883 -782
  429. data/grammars/text.tex.latex.json +281 -291
  430. data/grammars/text.tex.latex.memoir.json +39 -46
  431. data/grammars/text.tex.latex.rd.json +32 -38
  432. data/grammars/text.xml.ant.json +62 -69
  433. data/grammars/text.xml.flex-config.json +1009 -1013
  434. data/grammars/text.xml.genshi.json +10 -16
  435. data/grammars/text.xml.json +117 -130
  436. data/grammars/text.xml.pom.json +235 -240
  437. data/grammars/text.xml.xsl.json +31 -37
  438. data/grammars/text.zone_file.json +24 -29
  439. data/lib/linguist/blob.rb +10 -1
  440. data/lib/linguist/blob_helper.rb +4 -1
  441. data/lib/linguist/file_blob.rb +5 -0
  442. data/lib/linguist/generated.rb +16 -0
  443. data/lib/linguist/heuristics.rb +23 -11
  444. data/lib/linguist/language.rb +3 -6
  445. data/lib/linguist/languages.json +1 -1
  446. data/lib/linguist/languages.yml +74 -12
  447. data/lib/linguist/lazy_blob.rb +15 -1
  448. data/lib/linguist/linguist.bundle +0 -0
  449. data/lib/linguist/samples.json +1666 -3381
  450. data/lib/linguist/shebang.rb +2 -0
  451. data/lib/linguist/strategy/modeline.rb +2 -0
  452. data/lib/linguist/vendor.yml +5 -6
  453. data/lib/linguist/version.rb +1 -1
  454. metadata +12 -11
  455. data/grammars/source.elm.json +0 -381
  456. data/grammars/source.nant-build.json +0 -86
  457. data/grammars/source.octave.json +0 -451
  458. data/grammars/text.html.mediawiki.elm-build-output.json +0 -111
  459. data/grammars/text.html.mediawiki.elm-documentation.json +0 -22
  460. data/grammars/text.html.vue.json +0 -936
@@ -1,12 +1,11 @@
1
1
  {
2
- "fileTypes": [
3
- "nim",
4
- "nims"
5
- ],
6
2
  "name": "Nim",
3
+ "scopeName": "source.nim",
7
4
  "patterns": [
8
5
  {
6
+ "name": "comment.line.number-sign.multi-comment.nim",
9
7
  "begin": "(\\#\\[\\s*(TODO|todo)?)",
8
+ "end": "(.*]\\#)",
10
9
  "captures": {
11
10
  "1": {
12
11
  "name": "punctuation.definition.multi-comment.nim"
@@ -14,35 +13,45 @@
14
13
  "2": {
15
14
  "name": "invalid.illegal.TODO.nim"
16
15
  }
17
- },
18
- "comment": "A multiline comment.",
19
- "end": "(.*]\\#)",
20
- "name": "comment.line.number-sign.multi-comment.nim"
16
+ }
21
17
  },
22
18
  {
19
+ "name": "comment.line.number-sign.multi-doc-comment.nim",
20
+ "begin": "(\\#\\#\\[\\s*(TODO|todo)?)",
21
+ "end": "(.*]\\#\\#)",
23
22
  "captures": {
24
23
  "1": {
25
- "name": "punctuation.definition.doc-comment.nim"
24
+ "name": "punctuation.definition.multi-doc-comment.nim"
26
25
  },
27
26
  "2": {
28
27
  "name": "invalid.illegal.TODO.nim"
29
28
  }
30
- },
31
- "comment": "A documentation comment.",
29
+ }
30
+ },
31
+ {
32
+ "name": "comment.line.number-sign.doc-comment.nim",
32
33
  "match": "(##\\s*(TODO|todo)?).+$\\n?",
33
- "name": "comment.line.number-sign.doc-comment.nim"
34
+ "captures": {
35
+ "1": {
36
+ "name": "punctuation.definition.doc-comment.nim"
37
+ },
38
+ "2": {
39
+ "name": "invalid.illegal.TODO.nim"
40
+ }
41
+ }
34
42
  },
35
43
  {
44
+ "name": "comment.line.number-sign.doc-comment.empty.nim",
45
+ "match": "(##\\s*)$\\n?",
36
46
  "captures": {
37
47
  "1": {
38
48
  "name": "punctuation.definition.doc-comment.empty.nim"
39
49
  }
40
- },
41
- "comment": "An empty documentation comment.",
42
- "match": "(##\\s*)$\\n?",
43
- "name": "comment.line.number-sign.doc-comment.empty.nim"
50
+ }
44
51
  },
45
52
  {
53
+ "name": "comment.line.number-sign.comment.nim",
54
+ "match": "(#\\s*(TODO|todo)?).*$\\n?",
46
55
  "captures": {
47
56
  "1": {
48
57
  "name": "punctuation.definition.comment.nim"
@@ -50,17 +59,24 @@
50
59
  "2": {
51
60
  "name": "invalid.illegal.TODO.nim"
52
61
  }
53
- },
54
- "comment": "A regular comment",
55
- "match": "(#\\s*(TODO|todo)?).*$\\n?",
56
- "name": "comment.line.number-sign.comment.nim"
62
+ }
57
63
  },
58
64
  {
59
- "comment": "C",
60
65
  "name": "source.c.embedded.nim",
61
66
  "patterns": [
62
67
  {
63
68
  "begin": "\\{\\.(emit:) ?(\\\"\\\"\\\")",
69
+ "end": "(\\\"\\\"\\\")\\.?",
70
+ "patterns": [
71
+ {
72
+ "name": "keyword.operator.nim",
73
+ "begin": "\\`",
74
+ "end": "\\`"
75
+ },
76
+ {
77
+ "include": "source.c"
78
+ }
79
+ ],
64
80
  "captures": {
65
81
  "1": {
66
82
  "name": "keyword.other.nim"
@@ -69,31 +85,28 @@
69
85
  "name": "comment.syntax.nim"
70
86
  }
71
87
  },
72
- "end": "(\\\"\\\"\\\")\\.?",
73
88
  "endCaptures": {
74
89
  "1": {
75
90
  "name": "comment.syntax.nim"
76
91
  }
77
- },
78
- "patterns": [
79
- {
80
- "begin": "\\`",
81
- "end": "\\`",
82
- "name": "keyword.operator.nim"
83
- },
84
- {
85
- "include": "source.c"
86
- }
87
- ]
92
+ }
88
93
  }
89
94
  ]
90
95
  },
91
96
  {
92
- "comment": "assembly",
93
97
  "name": "source.asm.embedded.nim",
94
98
  "patterns": [
95
99
  {
96
100
  "begin": "(asm )(\\\"\\\"\\\")",
101
+ "end": "\\\"\\\"\\\"",
102
+ "patterns": [
103
+ {
104
+ "name": "keyword.operator.nim",
105
+ "begin": "\\`",
106
+ "end": "\\`"
107
+ },
108
+ {}
109
+ ],
97
110
  "captures": {
98
111
  "1": {
99
112
  "name": "keyword.other.nim"
@@ -102,87 +115,55 @@
102
115
  "name": "comment.syntax.nim"
103
116
  }
104
117
  },
105
- "end": "\\\"\\\"\\\"",
106
118
  "endCaptures": {
107
119
  "0": {
108
120
  "name": "comment.syntax.nim"
109
121
  }
110
- },
111
- "patterns": [
112
- {
113
- "begin": "\\`",
114
- "end": "\\`",
115
- "name": "keyword.operator.nim"
116
- },
117
- {
118
- "include": "source.asm"
119
- }
120
- ]
122
+ }
121
123
  }
122
124
  ]
123
125
  },
124
126
  {
125
- "comment": "A nim procedure or method declaration",
126
127
  "name": "meta.proc.nim",
127
128
  "patterns": [
128
129
  {
129
- "begin": "(?<![\\w\\x{80}-\\x{10FFFF}])(proc|method|template|macro|iterator|converter)\\s+((\\`[^\\s\\`]+\\`)|([\\w\\x{80}-\\x{10FFFF}]+))(\\*)?",
130
- "beginCaptures": {
131
- "1": {
132
- "name": "storage.type.proc.nim"
133
- },
134
- "2": {
135
- "name": "entity.name.function.nim"
136
- },
137
- "5": {
138
- "name": "keyword.operator.secondary.kw-public.nim"
139
- }
140
- },
130
+ "begin": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(proc|method|template|macro|iterator|converter)\\s+((\\`[^\\s\\`]+\\`)|([\\w\\x{80}-\\x{10FFFF}]+))(\\*)?",
141
131
  "end": "(\\=)",
142
- "endCaptures": {
143
- "1": {
144
- "name": "keyword.operator.nim"
145
- }
146
- },
147
132
  "patterns": [
148
133
  {
149
- "comment": "Generic",
150
134
  "match": "\\[[\\w\\x{80}-\\x{10FFFF}]+\\]"
151
135
  },
152
136
  {
153
137
  "begin": "\\{",
154
- "comment": "Pattern",
155
138
  "end": "\\}",
156
139
  "patterns": [
157
140
  {
141
+ "name": "string.something.nim",
158
142
  "begin": "\\\"",
159
- "end": "\\\"",
160
- "name": "string.something.nim"
143
+ "end": "\\\""
161
144
  },
162
145
  {
163
- "match": "([\\w\\x{80}-\\x{10FFFF}]+)",
164
- "name": "entity.other.attribute-name.pattern.nim"
146
+ "name": "entity.other.attribute-name.pattern.nim",
147
+ "match": "([\\w\\x{80}-\\x{10FFFF}]+)"
165
148
  }
166
149
  ]
167
150
  },
168
151
  {
169
152
  "begin": "\\(",
170
- "comment": "Parameters",
171
153
  "end": "\\)",
172
154
  "patterns": [
173
155
  {
174
156
  "begin": "\\{",
175
- "comment": "Pattern",
176
157
  "end": "\\}",
177
158
  "patterns": [
178
159
  {
160
+ "name": "string.something.nim",
179
161
  "begin": "\\\"",
180
- "end": "\\\"",
181
- "name": "string.something.nim"
162
+ "end": "\\\""
182
163
  },
183
164
  {
184
- "match": "([\\[\\]\\w\\x{80}-\\x{10FFFF}]+)",
185
- "name": "entity.other.attribute-name.pattern.nim"
165
+ "name": "entity.other.attribute-name.pattern.nim",
166
+ "match": "([\\[\\]\\w\\x{80}-\\x{10FFFF}]+)"
186
167
  }
187
168
  ]
188
169
  },
@@ -194,250 +175,237 @@
194
175
  {
195
176
  "include": "source.nim"
196
177
  }
197
- ]
178
+ ],
179
+ "beginCaptures": {
180
+ "1": {
181
+ "name": "storage.type.proc.nim"
182
+ },
183
+ "2": {
184
+ "name": "entity.name.function.nim"
185
+ },
186
+ "5": {
187
+ "name": "keyword.operator.secondary.kw-public.nim"
188
+ }
189
+ },
190
+ "endCaptures": {
191
+ "1": {
192
+ "name": "keyword.operator.nim"
193
+ }
194
+ }
198
195
  }
199
196
  ]
200
197
  },
201
198
  {
199
+ "name": "pragma",
202
200
  "begin": "\\{\\.",
203
- "comment": "Pragmas",
204
201
  "end": "\\.?\\}",
205
- "name": "pragma",
206
202
  "patterns": [
207
203
  {
204
+ "name": "string.something.nim",
208
205
  "begin": "\\\"",
209
- "end": "\\\"",
210
- "name": "string.something.nim"
206
+ "end": "\\\""
211
207
  },
212
208
  {
213
- "match": "([\\w\\x{80}-\\x{10FFFF}]+)",
214
- "name": "entity.other.attribute-name.pragma.nim"
209
+ "name": "entity.other.attribute-name.pragma.nim",
210
+ "match": "([\\w\\x{80}-\\x{10FFFF}]+)"
215
211
  }
216
212
  ]
217
213
  },
218
214
  {
215
+ "name": "comment.line.discarded.nim",
219
216
  "begin": "discard \\\"\\\"\\\"",
220
- "comment": "A discarded triple string literal comment",
221
- "end": "\\\"\\\"\\\"",
222
- "name": "comment.line.discarded.nim"
217
+ "end": "\\\"\\\"\\\""
223
218
  },
224
219
  {
225
- "comment": "A float literal",
226
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(\\d[_\\d]*((\\.[_\\d]+([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*)))('?([fF](32|64|128))|[fFdD])?",
227
- "name": "constant.numeric.float.decimal.nim"
220
+ "name": "constant.numeric.float.decimal.nim",
221
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(\\d[_\\d]*((\\.[_\\d]+([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*)))('?([fF](32|64|128))|[fFdD])?"
228
222
  },
229
223
  {
230
- "comment": "A hexadecimal literal",
231
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(0[xX][0-9A-Fa-f][_0-9A-Fa-f]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?",
232
- "name": "constant.numeric.integer.hexadecimal.nim"
224
+ "name": "constant.numeric.integer.hexadecimal.nim",
225
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(0[xX][0-9A-Fa-f][_0-9A-Fa-f]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"
233
226
  },
234
227
  {
235
- "comment": "A base-8 integer literal",
236
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(0[ocC][0-7][_0-7]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?",
237
- "name": "constant.numeric.integer.octal.nim"
228
+ "name": "constant.numeric.integer.octal.nim",
229
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(0[ocC][0-7][_0-7]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"
238
230
  },
239
231
  {
240
- "comment": "A base-2 integer literal",
241
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(0(b|B)[01][_01]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?",
242
- "name": "constant.numeric.integer.binary.nim"
232
+ "name": "constant.numeric.integer.binary.nim",
233
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(0(b|B)[01][_01]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"
243
234
  },
244
235
  {
245
- "comment": "A base-10 integer literal",
246
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(\\d[_\\d]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?",
247
- "name": "constant.numeric.integer.decimal.nim"
236
+ "name": "constant.numeric.integer.decimal.nim",
237
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(\\d[_\\d]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"
248
238
  },
249
239
  {
250
- "comment": "Language Constants.",
251
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(true|false|inf|nil)(?![\\w\\x{80}-\\x{10FFFF}])",
252
- "name": "constant.language.nim"
240
+ "name": "constant.language.nim",
241
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(true|false|inf|nil)(?![\\w\\x{80}-\\x{10FFFF}])"
253
242
  },
254
243
  {
255
244
  "begin": "(?:^|\\s+|=)(when|if)\\b",
245
+ "end": "(?=:)",
246
+ "patterns": [
247
+ {
248
+ "include": "source.nim"
249
+ }
250
+ ],
256
251
  "captures": {
257
252
  "1": {
258
253
  "name": "keyword.control.primary.nim"
259
254
  }
260
255
  },
261
- "comment": "Primary branching keywords",
262
- "end": "(?=:)",
263
256
  "endCaptures": {
264
257
  "1": {
265
258
  "name": "control.variable.parameter.nim"
266
259
  }
267
- },
260
+ }
261
+ },
262
+ {
263
+ "begin": "(?:^|\\s+|=)(case)\\b",
264
+ "end": "(?=\\bof\\b)",
268
265
  "patterns": [
269
266
  {
270
267
  "include": "source.nim"
271
268
  }
272
- ]
273
- },
274
- {
275
- "begin": "(?:^|\\s+|=)(case)\\b",
269
+ ],
276
270
  "captures": {
277
271
  "1": {
278
272
  "name": "keyword.control.primary.nim"
279
273
  }
280
274
  },
281
- "comment": "Primary branching keyword 'case'",
282
- "end": "(?=\\bof\\b)",
283
275
  "endCaptures": {
284
276
  "1": {
285
277
  "name": "control.variable.parameter.nim"
286
278
  }
287
- },
279
+ }
280
+ },
281
+ {
282
+ "begin": "(?:^|\\s+)(of|else|elif)\\b",
283
+ "end": "(?=:)",
288
284
  "patterns": [
289
285
  {
290
286
  "include": "source.nim"
291
287
  }
292
- ]
293
- },
294
- {
295
- "begin": "(?:^|\\s+)(of|else|elif)\\b",
288
+ ],
296
289
  "captures": {
297
290
  "1": {
298
291
  "name": "keyword.control.secondary.nim"
299
292
  }
300
293
  },
301
- "comment": "Secondary branching keywords and their conditions",
302
- "end": "(?=:)",
303
294
  "endCaptures": {
304
295
  "1": {
305
296
  "name": "control.variable.parameter.nim"
306
297
  }
307
- },
308
- "patterns": [
309
- {
310
- "include": "source.nim"
311
- }
312
- ]
298
+ }
313
299
  },
314
300
  {
315
- "comment": "Keywords that affect program control flow or scope.",
316
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(await|block|break|continue|do|end|except|finally|raise|return|try|while|yield)(?![\\w\\x{80}-\\x{10FFFF}])",
317
- "name": "keyword.control.nim"
301
+ "name": "keyword.control.nim",
302
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(await|block|break|continue|do|end|except|finally|raise|return|try|while|yield)(?![\\w\\x{80}-\\x{10FFFF}])"
318
303
  },
319
304
  {
320
- "comment": "Keyword boolean operators for expressions.",
321
- "match": "((?<![\\w\\x{80}-\\x{10FFFF}])(and|in|is|isnot|not|notin|or|xor)(?![\\w\\x{80}-\\x{10FFFF}]))",
322
- "name": "keyword.operator.boolean.nim"
305
+ "name": "keyword.operator.boolean.nim",
306
+ "match": "((?\u003c![\\w\\x{80}-\\x{10FFFF}])(and|in|is|isnot|not|notin|or|xor)(?![\\w\\x{80}-\\x{10FFFF}]))"
323
307
  },
324
308
  {
325
- "comment": "Other keywords.",
326
- "match": "((?<![\\w\\x{80}-\\x{10FFFF}])(addr|as|atomic|bind|cast|const|converter|defer|discard|distinct|div|enum|export|include|let|mixin|object|of|ptr|ref|shl|shr|static|type|var)(?![\\w\\x{80}-\\x{10FFFF}]))",
327
- "name": "keyword.other.nim"
309
+ "name": "keyword.other.nim",
310
+ "match": "((?\u003c![\\w\\x{80}-\\x{10FFFF}])(addr|as|atomic|bind|cast|const|converter|defer|discard|distinct|div|enum|export|include|let|mixin|object|of|ptr|ref|shl|shr|static|type|var)(?![\\w\\x{80}-\\x{10FFFF}]))"
328
311
  },
329
312
  {
330
- "comment": "Generic operators for expressions.",
331
- "match": "(\\b()\\b|(=|\\+|-|\\*|/|<|>|@|\\$|~|&|%|!|\\?|\\^|\\.|:|\\\\)+)",
332
- "name": "keyword.operator.nim"
313
+ "name": "keyword.operator.nim",
314
+ "match": "(\\b()\\b|(=|\\+|-|\\*|/|\u003c|\u003e|@|\\$|~|\u0026|%|!|\\?|\\^|\\.|:|\\\\)+)"
333
315
  },
334
316
  {
317
+ "name": "meta.forloop.nim",
335
318
  "begin": "(for)\\s+",
336
- "captures": {
337
- "1": {
338
- "name": "keyword.control.nim"
339
- }
340
- },
341
- "comment": "in keyword in a 'for' loop",
342
319
  "end": "(?=:)",
343
- "name": "meta.forloop.nim",
344
320
  "patterns": [
345
321
  {
322
+ "match": "\\ [\\w\\x{80}-\\x{10FFFF},]+\\s+(in)\\s+",
346
323
  "captures": {
347
324
  "1": {
348
325
  "name": "keyword.control.nim"
349
326
  }
350
- },
351
- "match": "\\ [\\w\\x{80}-\\x{10FFFF},]+\\s+(in)\\s+"
327
+ }
352
328
  },
353
329
  {
354
330
  "include": "source.nim"
355
331
  }
356
- ]
332
+ ],
333
+ "captures": {
334
+ "1": {
335
+ "name": "keyword.control.nim"
336
+ }
337
+ }
357
338
  },
358
339
  {
340
+ "match": "((import)\\s+[\\.|\\w|\\/]+,?)",
359
341
  "captures": {
360
342
  "2": {
361
343
  "name": "keyword.control.nim"
362
344
  }
363
- },
364
- "comment": "Import syntax",
365
- "match": "((import)\\s+[\\.|\\w|\\/]+,?)"
345
+ }
366
346
  },
367
347
  {
348
+ "match": "(from)\\s+[\\/\\w]+\\s+(?=import)",
368
349
  "captures": {
369
350
  "1": {
370
351
  "name": "keyword.control.nim"
371
352
  }
372
- },
373
- "match": "(from)\\s+[\\/\\w]+\\s+(?=import)"
353
+ }
374
354
  },
375
355
  {
376
356
  "begin": "(var|let)\\s*\\(",
357
+ "end": "\\)",
377
358
  "captures": {
378
359
  "1": {
379
360
  "name": "keyword.other.nim"
380
361
  }
381
- },
382
- "comment": "Destructure syntax",
383
- "end": "\\)"
362
+ }
384
363
  },
385
364
  {
386
- "comment": "Invalid and unused keywords.",
387
- "match": "((?<![\\w\\x{80}-\\x{10FFFF}])(generic|interface|lambda|out|shared|with|without)(?![\\w\\x{80}-\\x{10FFFF}]))",
388
- "name": "keyword.invalid.nim"
365
+ "name": "keyword.invalid.nim",
366
+ "match": "((?\u003c![\\w\\x{80}-\\x{10FFFF}])(generic|interface|lambda|out|shared|with|without)(?![\\w\\x{80}-\\x{10FFFF}]))"
389
367
  },
390
368
  {
391
- "comment": "Common functions",
392
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(new|GC_ref|GC_unref|assert|echo|defined|declared|newException|countup|countdown|len|high|low)(?![\\w\\x{80}-\\x{10FFFF}])",
393
- "name": "keyword.other.common.function.nim"
369
+ "name": "keyword.other.common.function.nim",
370
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(new|GC_ref|GC_unref|assert|echo|defined|declared|newException|countup|countdown|len|high|low)(?![\\w\\x{80}-\\x{10FFFF}])"
394
371
  },
395
372
  {
396
- "comment": "Built-in, concrete types.",
397
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(((uint|int|float)(8|16|32|64)?)|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringArray|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)(?![\\w\\x{80}-\\x{10FFFF}])",
398
- "name": "storage.type.concrete.nim"
373
+ "name": "storage.type.concrete.nim",
374
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(((uint|int|float)(8|16|32|64)?)|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringArray|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)(?![\\w\\x{80}-\\x{10FFFF}])"
399
375
  },
400
376
  {
401
- "comment": "Built-in, generic types.",
402
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(range|array|seq|tuple|natural|set|ref|ptr|pointer)(?![\\w\\x{80}-\\x{10FFFF}])",
403
- "name": "storage.type.generic.nim"
377
+ "name": "storage.type.generic.nim",
378
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(range|array|seq|tuple|natural|set|ref|ptr|pointer)(?![\\w\\x{80}-\\x{10FFFF}])"
404
379
  },
405
380
  {
406
- "comment": "Function types",
407
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(proc|iterator|method|template|macro)(?![\\w\\x{80}-\\x{10FFFF}])",
408
- "name": "storage.type.function.nim"
381
+ "name": "storage.type.function.nim",
382
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(proc|iterator|method|template|macro)(?![\\w\\x{80}-\\x{10FFFF}])"
409
383
  },
410
384
  {
411
- "comment": "Special types.",
412
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(openarray|varargs|void)(?![\\w\\x{80}-\\x{10FFFF}])",
413
- "name": "storage.type.generic.nim"
385
+ "name": "storage.type.generic.nim",
386
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(openarray|varargs|void)(?![\\w\\x{80}-\\x{10FFFF}])"
414
387
  },
415
388
  {
416
- "comment": "Other constants.",
417
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])([A-Z][A-Z0-9_]+)(?![\\w\\x{80}-\\x{10FFFF}])",
418
- "name": "support.constant.nim"
389
+ "name": "support.constant.nim",
390
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])([A-Z][A-Z0-9_]+)(?![\\w\\x{80}-\\x{10FFFF}])"
419
391
  },
420
392
  {
421
- "comment": "Other types.",
422
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])([A-Z]\\w+)(?![\\w\\x{80}-\\x{10FFFF}])",
423
- "name": "support.type.nim"
393
+ "name": "support.type.nim",
394
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])([A-Z]\\w+)(?![\\w\\x{80}-\\x{10FFFF}])"
424
395
  },
425
396
  {
426
- "comment": "Function call.",
427
- "match": "(?<![\\w\\x{80}-\\x{10FFFF}])(\\w+)(?![\\w\\x{80}-\\x{10FFFF}])(?=\\()",
428
- "name": "support.function.any-method.nim"
397
+ "name": "support.function.any-method.nim",
398
+ "match": "(?\u003c![\\w\\x{80}-\\x{10FFFF}])(\\w+)(?![\\w\\x{80}-\\x{10FFFF}])(?=\\()"
429
399
  },
430
400
  {
401
+ "name": "string.quoted.triple.nim",
431
402
  "begin": "r?\\\"\\\"\\\"",
432
- "comment": "(Raw) Triple Quoted String",
433
- "end": "\\\"\\\"\\\"[^\\\"]",
434
- "name": "string.quoted.triple.nim"
403
+ "end": "\\\"\\\"\\\"[^\\\"]"
435
404
  },
436
405
  {
406
+ "name": "string.quoted.double.raw.nim",
437
407
  "begin": "r\\\"",
438
- "comment": "Raw Double Quoted String",
439
408
  "end": "\\\"",
440
- "name": "string.quoted.double.raw.nim",
441
409
  "patterns": [
442
410
  {
443
411
  "match": "\\\"\\\""
@@ -445,10 +413,9 @@
445
413
  ]
446
414
  },
447
415
  {
416
+ "name": "string.quoted.double.nim",
448
417
  "begin": "\\\"",
449
- "comment": "Double Quoted String",
450
418
  "end": "\\\"",
451
- "name": "string.quoted.double.nim",
452
419
  "patterns": [
453
420
  {
454
421
  "include": "#escaped_char"
@@ -456,67 +423,65 @@
456
423
  ]
457
424
  },
458
425
  {
426
+ "name": "string.quoted.single.nim",
459
427
  "begin": "\\'",
460
- "comment": "Single quoted character literal",
461
428
  "end": "\\'",
462
- "name": "string.quoted.single.nim",
463
429
  "patterns": [
464
430
  {
465
- "match": "\\\\n",
466
- "name": "invalid.illegal.character.nim"
431
+ "name": "invalid.illegal.character.nim",
432
+ "match": "\\\\n"
467
433
  },
468
434
  {
469
435
  "include": "#escaped_char"
470
436
  },
471
437
  {
472
- "match": "([^\\'][^\\']+?)",
473
- "name": "invalid.illegal.character.nim"
438
+ "name": "invalid.illegal.character.nim",
439
+ "match": "([^\\'][^\\']+?)"
474
440
  }
475
441
  ]
476
442
  },
477
443
  {
478
444
  "begin": "([\\w\\x{80}-\\x{10FFFF}\\`]+)\\s*(?=\\(|\\[.+?\\]\\s*\\()",
479
- "captures": {
480
- "1": {
481
- "name": "support.function.any-method.nim"
482
- }
483
- },
484
- "comment": "Call syntax",
485
445
  "end": "\\)",
486
446
  "patterns": [
487
447
  {
488
448
  "include": "source.nim"
489
449
  }
490
- ]
491
- },
492
- {
450
+ ],
493
451
  "captures": {
494
452
  "1": {
495
453
  "name": "support.function.any-method.nim"
496
454
  }
497
- },
498
- "comment": "Command syntax",
455
+ }
456
+ },
457
+ {
499
458
  "match": "([\\w\\x{80}-\\x{10FFFF}]+)(?=\\s+[\\w](?![\\w\\x{80}-\\x{10FFFF}]+((?!\\n)\\s)+))",
500
459
  "patterns": [
501
460
  {
502
461
  "include": "source.nim"
503
462
  }
504
- ]
505
- },
506
- {
463
+ ],
507
464
  "captures": {
508
465
  "1": {
509
466
  "name": "support.function.any-method.nim"
510
467
  }
511
- },
468
+ }
469
+ },
470
+ {
512
471
  "match": "([\\w\\x{80}-\\x{10FFFF}]+)(?=\\s+[\\\"\\'\\`])",
513
472
  "patterns": [
514
473
  {
515
474
  "include": "source.nim"
516
475
  }
517
- ]
476
+ ],
477
+ "captures": {
478
+ "1": {
479
+ "name": "support.function.any-method.nim"
480
+ }
481
+ }
518
482
  },
519
483
  {
484
+ "match": "(tmpl(i)?)(?=( (nim|html|xml|js|css|glsl|md))?\\\"\\\"\\\")",
520
485
  "captures": {
521
486
  "1": {
522
487
  "name": "storage.type.function.nim"
@@ -524,46 +489,37 @@
524
489
  "2": {
525
490
  "name": "keyword.operator.nim"
526
491
  }
527
- },
528
- "comment": "tmpl specifier",
529
- "match": "(tmpl(i)?)(?=( (nim|html|xml|js|css|glsl|md))?\\\"\\\"\\\")"
492
+ }
530
493
  },
531
494
  {
532
495
  "name": "source.nim.embedded.nim",
533
496
  "patterns": [
534
497
  {
535
498
  "begin": "(nim)(\\\"\\\"\\\")",
536
- "captures": {
537
- "1": {
538
- "name": "storage.type.function.nim"
539
- },
540
- "2": {
541
- "name": "comment.syntax.nim"
542
- }
543
- },
544
499
  "end": "\\\"\\\"\\\"",
545
- "endCaptures": {
546
- "0": {
547
- "name": "comment.syntax.nim"
548
- }
549
- },
550
500
  "patterns": [
551
501
  {
552
- "begin": "(?<!\\$)(\\$)\\(",
502
+ "begin": "(?\u003c!\\$)(\\$)\\(",
503
+ "end": "\\)",
504
+ "patterns": [
505
+ {
506
+ "include": "source.nim"
507
+ }
508
+ ],
553
509
  "captures": {
554
510
  "1": {
555
511
  "name": "keyword.operator.nim"
556
512
  }
557
- },
558
- "end": "\\)",
513
+ }
514
+ },
515
+ {
516
+ "begin": "(?\u003c!\\$)(\\$)\\{",
517
+ "end": "\\}",
559
518
  "patterns": [
560
519
  {
561
520
  "include": "source.nim"
562
521
  }
563
- ]
564
- },
565
- {
566
- "begin": "(?<!\\$)(\\$)\\{",
522
+ ],
567
523
  "captures": {
568
524
  "1": {
569
525
  "name": "keyword.operator.nim"
@@ -571,16 +527,16 @@
571
527
  "2": {
572
528
  "name": "keyword.operator.nim"
573
529
  }
574
- },
575
- "end": "\\}",
530
+ }
531
+ },
532
+ {
533
+ "begin": "(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
534
+ "end": "(\\{|\\n)",
576
535
  "patterns": [
577
536
  {
578
537
  "include": "source.nim"
579
538
  }
580
- ]
581
- },
582
- {
583
- "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
539
+ ],
584
540
  "captures": {
585
541
  "1": {
586
542
  "name": "keyword.operator.nim"
@@ -589,34 +545,20 @@
589
545
  "name": "keyword.control.nim"
590
546
  }
591
547
  },
592
- "end": "(\\{|\\n)",
593
548
  "endCaptures": {
594
549
  "1": {
595
550
  "name": "plain"
596
551
  }
597
- },
598
- "patterns": [
599
- {
600
- "include": "source.nim"
601
- }
602
- ]
552
+ }
603
553
  },
604
554
  {
605
- "match": "(?<!\\$)(\\$[a-zA-Z0-9_]+)",
606
- "name": "keyword.operator.nim"
555
+ "name": "keyword.operator.nim",
556
+ "match": "(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"
607
557
  },
608
558
  {
609
559
  "include": "source.nim"
610
560
  }
611
- ]
612
- }
613
- ]
614
- },
615
- {
616
- "name": "source.html.embedded.nim",
617
- "patterns": [
618
- {
619
- "begin": "(html)(\\\"\\\"\\\")",
561
+ ],
620
562
  "captures": {
621
563
  "1": {
622
564
  "name": "storage.type.function.nim"
@@ -625,29 +567,43 @@
625
567
  "name": "comment.syntax.nim"
626
568
  }
627
569
  },
628
- "end": "\\\"\\\"\\\"",
629
570
  "endCaptures": {
630
571
  "0": {
631
572
  "name": "comment.syntax.nim"
632
573
  }
633
- },
574
+ }
575
+ }
576
+ ]
577
+ },
578
+ {
579
+ "name": "source.html.embedded.nim",
580
+ "patterns": [
581
+ {
582
+ "begin": "(html)(\\\"\\\"\\\")",
583
+ "end": "\\\"\\\"\\\"",
634
584
  "patterns": [
635
585
  {
636
- "begin": "(?<!\\$)(\\$)\\(",
586
+ "begin": "(?\u003c!\\$)(\\$)\\(",
587
+ "end": "\\)",
588
+ "patterns": [
589
+ {
590
+ "include": "source.nim"
591
+ }
592
+ ],
637
593
  "captures": {
638
594
  "1": {
639
595
  "name": "keyword.operator.nim"
640
596
  }
641
- },
642
- "end": "\\)",
597
+ }
598
+ },
599
+ {
600
+ "begin": "(?\u003c!\\$)(\\$)\\{",
601
+ "end": "\\}",
643
602
  "patterns": [
644
603
  {
645
604
  "include": "source.nim"
646
605
  }
647
- ]
648
- },
649
- {
650
- "begin": "(?<!\\$)(\\$)\\{",
606
+ ],
651
607
  "captures": {
652
608
  "1": {
653
609
  "name": "keyword.operator.nim"
@@ -655,16 +611,16 @@
655
611
  "2": {
656
612
  "name": "keyword.operator.nim"
657
613
  }
658
- },
659
- "end": "\\}",
614
+ }
615
+ },
616
+ {
617
+ "begin": "(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
618
+ "end": "(\\{|\\n)",
660
619
  "patterns": [
661
620
  {
662
621
  "include": "source.nim"
663
622
  }
664
- ]
665
- },
666
- {
667
- "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
623
+ ],
668
624
  "captures": {
669
625
  "1": {
670
626
  "name": "keyword.operator.nim"
@@ -673,34 +629,20 @@
673
629
  "name": "keyword.control.nim"
674
630
  }
675
631
  },
676
- "end": "(\\{|\\n)",
677
632
  "endCaptures": {
678
633
  "1": {
679
634
  "name": "plain"
680
635
  }
681
- },
682
- "patterns": [
683
- {
684
- "include": "source.nim"
685
- }
686
- ]
636
+ }
687
637
  },
688
638
  {
689
- "match": "(?<!\\$)(\\$[a-zA-Z0-9_]+)",
690
- "name": "keyword.operator.nim"
639
+ "name": "keyword.operator.nim",
640
+ "match": "(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"
691
641
  },
692
642
  {
693
643
  "include": "text.xml"
694
644
  }
695
- ]
696
- }
697
- ]
698
- },
699
- {
700
- "name": "source.xml.embedded.nim",
701
- "patterns": [
702
- {
703
- "begin": "(xml)(\\\"\\\"\\\")",
645
+ ],
704
646
  "captures": {
705
647
  "1": {
706
648
  "name": "storage.type.function.nim"
@@ -709,29 +651,43 @@
709
651
  "name": "comment.syntax.nim"
710
652
  }
711
653
  },
712
- "end": "\\\"\\\"\\\"",
713
654
  "endCaptures": {
714
655
  "0": {
715
656
  "name": "comment.syntax.nim"
716
657
  }
717
- },
658
+ }
659
+ }
660
+ ]
661
+ },
662
+ {
663
+ "name": "source.xml.embedded.nim",
664
+ "patterns": [
665
+ {
666
+ "begin": "(xml)(\\\"\\\"\\\")",
667
+ "end": "\\\"\\\"\\\"",
718
668
  "patterns": [
719
669
  {
720
- "begin": "(?<!\\$)(\\$)\\(",
670
+ "begin": "(?\u003c!\\$)(\\$)\\(",
671
+ "end": "\\)",
672
+ "patterns": [
673
+ {
674
+ "include": "source.nim"
675
+ }
676
+ ],
721
677
  "captures": {
722
678
  "1": {
723
679
  "name": "keyword.operator.nim"
724
680
  }
725
- },
726
- "end": "\\)",
681
+ }
682
+ },
683
+ {
684
+ "begin": "(?\u003c!\\$)(\\$)\\{",
685
+ "end": "\\}",
727
686
  "patterns": [
728
687
  {
729
688
  "include": "source.nim"
730
689
  }
731
- ]
732
- },
733
- {
734
- "begin": "(?<!\\$)(\\$)\\{",
690
+ ],
735
691
  "captures": {
736
692
  "1": {
737
693
  "name": "keyword.operator.nim"
@@ -739,16 +695,16 @@
739
695
  "2": {
740
696
  "name": "keyword.operator.nim"
741
697
  }
742
- },
743
- "end": "\\}",
698
+ }
699
+ },
700
+ {
701
+ "begin": "(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
702
+ "end": "(\\{|\\n)",
744
703
  "patterns": [
745
704
  {
746
705
  "include": "source.nim"
747
706
  }
748
- ]
749
- },
750
- {
751
- "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
707
+ ],
752
708
  "captures": {
753
709
  "1": {
754
710
  "name": "keyword.operator.nim"
@@ -757,34 +713,20 @@
757
713
  "name": "keyword.control.nim"
758
714
  }
759
715
  },
760
- "end": "(\\{|\\n)",
761
716
  "endCaptures": {
762
717
  "1": {
763
718
  "name": "plain"
764
719
  }
765
- },
766
- "patterns": [
767
- {
768
- "include": "source.nim"
769
- }
770
- ]
720
+ }
771
721
  },
772
722
  {
773
- "match": "(?<!\\$)(\\$[a-zA-Z0-9_]+)",
774
- "name": "keyword.operator.nim"
723
+ "name": "keyword.operator.nim",
724
+ "match": "(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"
775
725
  },
776
726
  {
777
727
  "include": "text.xml"
778
728
  }
779
- ]
780
- }
781
- ]
782
- },
783
- {
784
- "name": "source.js.embedded.nim",
785
- "patterns": [
786
- {
787
- "begin": "(js)(\\\"\\\"\\\")",
729
+ ],
788
730
  "captures": {
789
731
  "1": {
790
732
  "name": "storage.type.function.nim"
@@ -793,29 +735,43 @@
793
735
  "name": "comment.syntax.nim"
794
736
  }
795
737
  },
796
- "end": "\\\"\\\"\\\"",
797
738
  "endCaptures": {
798
739
  "0": {
799
740
  "name": "comment.syntax.nim"
800
741
  }
801
- },
742
+ }
743
+ }
744
+ ]
745
+ },
746
+ {
747
+ "name": "source.js.embedded.nim",
748
+ "patterns": [
749
+ {
750
+ "begin": "(js)(\\\"\\\"\\\")",
751
+ "end": "\\\"\\\"\\\"",
802
752
  "patterns": [
803
753
  {
804
- "begin": "(?<!\\$)(\\$)\\(",
754
+ "begin": "(?\u003c!\\$)(\\$)\\(",
755
+ "end": "\\)",
756
+ "patterns": [
757
+ {
758
+ "include": "source.nim"
759
+ }
760
+ ],
805
761
  "captures": {
806
762
  "1": {
807
763
  "name": "keyword.operator.nim"
808
764
  }
809
- },
810
- "end": "\\)",
765
+ }
766
+ },
767
+ {
768
+ "begin": "(?\u003c!\\$)(\\$)\\{",
769
+ "end": "\\}",
811
770
  "patterns": [
812
771
  {
813
772
  "include": "source.nim"
814
773
  }
815
- ]
816
- },
817
- {
818
- "begin": "(?<!\\$)(\\$)\\{",
774
+ ],
819
775
  "captures": {
820
776
  "1": {
821
777
  "name": "keyword.operator.nim"
@@ -823,16 +779,16 @@
823
779
  "2": {
824
780
  "name": "keyword.operator.nim"
825
781
  }
826
- },
827
- "end": "\\}",
782
+ }
783
+ },
784
+ {
785
+ "begin": "(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
786
+ "end": "(\\{|\\n)",
828
787
  "patterns": [
829
788
  {
830
789
  "include": "source.nim"
831
790
  }
832
- ]
833
- },
834
- {
835
- "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
791
+ ],
836
792
  "captures": {
837
793
  "1": {
838
794
  "name": "keyword.operator.nim"
@@ -841,34 +797,20 @@
841
797
  "name": "keyword.control.nim"
842
798
  }
843
799
  },
844
- "end": "(\\{|\\n)",
845
800
  "endCaptures": {
846
801
  "1": {
847
802
  "name": "plain"
848
803
  }
849
- },
850
- "patterns": [
851
- {
852
- "include": "source.nim"
853
- }
854
- ]
804
+ }
855
805
  },
856
806
  {
857
- "match": "(?<!\\$)(\\$[a-zA-Z0-9_]+)",
858
- "name": "keyword.operator.nim"
807
+ "name": "keyword.operator.nim",
808
+ "match": "(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"
859
809
  },
860
810
  {
861
811
  "include": "source.js"
862
812
  }
863
- ]
864
- }
865
- ]
866
- },
867
- {
868
- "name": "source.css.embedded.nim",
869
- "patterns": [
870
- {
871
- "begin": "(css)(\\\"\\\"\\\")",
813
+ ],
872
814
  "captures": {
873
815
  "1": {
874
816
  "name": "storage.type.function.nim"
@@ -877,29 +819,43 @@
877
819
  "name": "comment.syntax.nim"
878
820
  }
879
821
  },
880
- "end": "\\\"\\\"\\\"",
881
822
  "endCaptures": {
882
823
  "0": {
883
824
  "name": "comment.syntax.nim"
884
825
  }
885
- },
826
+ }
827
+ }
828
+ ]
829
+ },
830
+ {
831
+ "name": "source.css.embedded.nim",
832
+ "patterns": [
833
+ {
834
+ "begin": "(css)(\\\"\\\"\\\")",
835
+ "end": "\\\"\\\"\\\"",
886
836
  "patterns": [
887
837
  {
888
- "begin": "(?<!\\$)(\\$)\\(",
838
+ "begin": "(?\u003c!\\$)(\\$)\\(",
839
+ "end": "\\)",
840
+ "patterns": [
841
+ {
842
+ "include": "source.nim"
843
+ }
844
+ ],
889
845
  "captures": {
890
846
  "1": {
891
847
  "name": "keyword.operator.nim"
892
848
  }
893
- },
894
- "end": "\\)",
849
+ }
850
+ },
851
+ {
852
+ "begin": "(?\u003c!\\$)(\\$)\\{",
853
+ "end": "\\}",
895
854
  "patterns": [
896
855
  {
897
856
  "include": "source.nim"
898
857
  }
899
- ]
900
- },
901
- {
902
- "begin": "(?<!\\$)(\\$)\\{",
858
+ ],
903
859
  "captures": {
904
860
  "1": {
905
861
  "name": "keyword.operator.nim"
@@ -907,16 +863,16 @@
907
863
  "2": {
908
864
  "name": "keyword.operator.nim"
909
865
  }
910
- },
911
- "end": "\\}",
866
+ }
867
+ },
868
+ {
869
+ "begin": "(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
870
+ "end": "(\\{|\\n)",
912
871
  "patterns": [
913
872
  {
914
873
  "include": "source.nim"
915
874
  }
916
- ]
917
- },
918
- {
919
- "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
875
+ ],
920
876
  "captures": {
921
877
  "1": {
922
878
  "name": "keyword.operator.nim"
@@ -925,34 +881,20 @@
925
881
  "name": "keyword.control.nim"
926
882
  }
927
883
  },
928
- "end": "(\\{|\\n)",
929
884
  "endCaptures": {
930
885
  "1": {
931
886
  "name": "plain"
932
887
  }
933
- },
934
- "patterns": [
935
- {
936
- "include": "source.nim"
937
- }
938
- ]
888
+ }
939
889
  },
940
890
  {
941
- "match": "(?<!\\$)(\\$[a-zA-Z0-9_]+)",
942
- "name": "keyword.operator.nim"
891
+ "name": "keyword.operator.nim",
892
+ "match": "(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"
943
893
  },
944
894
  {
945
895
  "include": "source.css"
946
896
  }
947
- ]
948
- }
949
- ]
950
- },
951
- {
952
- "name": "source.glsl.embedded.nim",
953
- "patterns": [
954
- {
955
- "begin": "(glsl)(\\\"\\\"\\\")",
897
+ ],
956
898
  "captures": {
957
899
  "1": {
958
900
  "name": "storage.type.function.nim"
@@ -961,29 +903,43 @@
961
903
  "name": "comment.syntax.nim"
962
904
  }
963
905
  },
964
- "end": "\\\"\\\"\\\"",
965
906
  "endCaptures": {
966
907
  "0": {
967
908
  "name": "comment.syntax.nim"
968
909
  }
969
- },
910
+ }
911
+ }
912
+ ]
913
+ },
914
+ {
915
+ "name": "source.glsl.embedded.nim",
916
+ "patterns": [
917
+ {
918
+ "begin": "(glsl)(\\\"\\\"\\\")",
919
+ "end": "\\\"\\\"\\\"",
970
920
  "patterns": [
971
921
  {
972
- "begin": "(?<!\\$)(\\$)\\(",
922
+ "begin": "(?\u003c!\\$)(\\$)\\(",
923
+ "end": "\\)",
924
+ "patterns": [
925
+ {
926
+ "include": "source.nim"
927
+ }
928
+ ],
973
929
  "captures": {
974
930
  "1": {
975
931
  "name": "keyword.operator.nim"
976
932
  }
977
- },
978
- "end": "\\)",
933
+ }
934
+ },
935
+ {
936
+ "begin": "(?\u003c!\\$)(\\$)\\{",
937
+ "end": "\\}",
979
938
  "patterns": [
980
939
  {
981
940
  "include": "source.nim"
982
941
  }
983
- ]
984
- },
985
- {
986
- "begin": "(?<!\\$)(\\$)\\{",
942
+ ],
987
943
  "captures": {
988
944
  "1": {
989
945
  "name": "keyword.operator.nim"
@@ -991,16 +947,16 @@
991
947
  "2": {
992
948
  "name": "keyword.operator.nim"
993
949
  }
994
- },
995
- "end": "\\}",
950
+ }
951
+ },
952
+ {
953
+ "begin": "(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
954
+ "end": "(\\{|\\n)",
996
955
  "patterns": [
997
956
  {
998
957
  "include": "source.nim"
999
958
  }
1000
- ]
1001
- },
1002
- {
1003
- "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
959
+ ],
1004
960
  "captures": {
1005
961
  "1": {
1006
962
  "name": "keyword.operator.nim"
@@ -1009,34 +965,20 @@
1009
965
  "name": "keyword.control.nim"
1010
966
  }
1011
967
  },
1012
- "end": "(\\{|\\n)",
1013
968
  "endCaptures": {
1014
969
  "1": {
1015
970
  "name": "plain"
1016
971
  }
1017
- },
1018
- "patterns": [
1019
- {
1020
- "include": "source.nim"
1021
- }
1022
- ]
972
+ }
1023
973
  },
1024
974
  {
1025
- "match": "(?<!\\$)(\\$[a-zA-Z0-9_]+)",
1026
- "name": "keyword.operator.nim"
975
+ "name": "keyword.operator.nim",
976
+ "match": "(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"
1027
977
  },
1028
978
  {
1029
979
  "include": "source.glsl"
1030
980
  }
1031
- ]
1032
- }
1033
- ]
1034
- },
1035
- {
1036
- "name": "source.markdown.embedded.nim",
1037
- "patterns": [
1038
- {
1039
- "begin": "(md)(\\\"\\\"\\\")",
981
+ ],
1040
982
  "captures": {
1041
983
  "1": {
1042
984
  "name": "storage.type.function.nim"
@@ -1045,29 +987,43 @@
1045
987
  "name": "comment.syntax.nim"
1046
988
  }
1047
989
  },
1048
- "end": "\\\"\\\"\\\"",
1049
990
  "endCaptures": {
1050
991
  "0": {
1051
992
  "name": "comment.syntax.nim"
1052
993
  }
1053
- },
994
+ }
995
+ }
996
+ ]
997
+ },
998
+ {
999
+ "name": "source.markdown.embedded.nim",
1000
+ "patterns": [
1001
+ {
1002
+ "begin": "(md)(\\\"\\\"\\\")",
1003
+ "end": "\\\"\\\"\\\"",
1054
1004
  "patterns": [
1055
1005
  {
1056
- "begin": "(?<!\\$)(\\$)\\(",
1006
+ "begin": "(?\u003c!\\$)(\\$)\\(",
1007
+ "end": "\\)",
1008
+ "patterns": [
1009
+ {
1010
+ "include": "source.nim"
1011
+ }
1012
+ ],
1057
1013
  "captures": {
1058
1014
  "1": {
1059
1015
  "name": "keyword.operator.nim"
1060
1016
  }
1061
- },
1062
- "end": "\\)",
1017
+ }
1018
+ },
1019
+ {
1020
+ "begin": "(?\u003c!\\$)(\\$)\\{",
1021
+ "end": "\\}",
1063
1022
  "patterns": [
1064
1023
  {
1065
1024
  "include": "source.nim"
1066
1025
  }
1067
- ]
1068
- },
1069
- {
1070
- "begin": "(?<!\\$)(\\$)\\{",
1026
+ ],
1071
1027
  "captures": {
1072
1028
  "1": {
1073
1029
  "name": "keyword.operator.nim"
@@ -1075,16 +1031,16 @@
1075
1031
  "2": {
1076
1032
  "name": "keyword.operator.nim"
1077
1033
  }
1078
- },
1079
- "end": "\\}",
1034
+ }
1035
+ },
1036
+ {
1037
+ "begin": "(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
1038
+ "end": "(\\{|\\n)",
1080
1039
  "patterns": [
1081
1040
  {
1082
1041
  "include": "source.nim"
1083
1042
  }
1084
- ]
1085
- },
1086
- {
1087
- "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
1043
+ ],
1088
1044
  "captures": {
1089
1045
  "1": {
1090
1046
  "name": "keyword.operator.nim"
@@ -1093,26 +1049,31 @@
1093
1049
  "name": "keyword.control.nim"
1094
1050
  }
1095
1051
  },
1096
- "end": "(\\{|\\n)",
1097
1052
  "endCaptures": {
1098
1053
  "1": {
1099
1054
  "name": "plain"
1100
1055
  }
1101
- },
1102
- "patterns": [
1103
- {
1104
- "include": "source.nim"
1105
- }
1106
- ]
1056
+ }
1107
1057
  },
1108
1058
  {
1109
- "match": "(?<!\\$)(\\$[a-zA-Z0-9_]+)",
1110
- "name": "keyword.operator.nim"
1059
+ "name": "keyword.operator.nim",
1060
+ "match": "(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"
1111
1061
  },
1112
- {
1113
- "include": "text.html.markdown.multimarkdown"
1062
+ {}
1063
+ ],
1064
+ "captures": {
1065
+ "1": {
1066
+ "name": "storage.type.function.nim"
1067
+ },
1068
+ "2": {
1069
+ "name": "comment.syntax.nim"
1114
1070
  }
1115
- ]
1071
+ },
1072
+ "endCaptures": {
1073
+ "0": {
1074
+ "name": "comment.syntax.nim"
1075
+ }
1076
+ }
1116
1077
  }
1117
1078
  ]
1118
1079
  }
@@ -1121,64 +1082,62 @@
1121
1082
  "escaped_char": {
1122
1083
  "patterns": [
1123
1084
  {
1124
- "match": "\\\\[nN]",
1125
- "name": "constant.character.escape.newline.nim"
1085
+ "name": "constant.character.escape.newline.nim",
1086
+ "match": "\\\\[nN]"
1126
1087
  },
1127
1088
  {
1128
- "match": "\\\\[cC]|\\\\[rR]",
1129
- "name": "constant.character.escape.carriagereturn.nim"
1089
+ "name": "constant.character.escape.carriagereturn.nim",
1090
+ "match": "\\\\[cC]|\\\\[rR]"
1130
1091
  },
1131
1092
  {
1132
- "match": "\\\\[lL]",
1133
- "name": "constant.character.escape.linefeed.nim"
1093
+ "name": "constant.character.escape.linefeed.nim",
1094
+ "match": "\\\\[lL]"
1134
1095
  },
1135
1096
  {
1136
- "match": "\\\\[fF]",
1137
- "name": "constant.character.escape.formfeed.nim"
1097
+ "name": "constant.character.escape.formfeed.nim",
1098
+ "match": "\\\\[fF]"
1138
1099
  },
1139
1100
  {
1140
- "match": "\\\\[tT]",
1141
- "name": "constant.character.escape.tabulator.nim"
1101
+ "name": "constant.character.escape.tabulator.nim",
1102
+ "match": "\\\\[tT]"
1142
1103
  },
1143
1104
  {
1144
- "match": "\\\\[vV]",
1145
- "name": "constant.character.escape.verticaltabulator.nim"
1105
+ "name": "constant.character.escape.verticaltabulator.nim",
1106
+ "match": "\\\\[vV]"
1146
1107
  },
1147
1108
  {
1148
- "match": "\\\\\\\"",
1149
- "name": "constant.character.escape.double-quote.nim"
1109
+ "name": "constant.character.escape.double-quote.nim",
1110
+ "match": "\\\\\\\""
1150
1111
  },
1151
1112
  {
1152
- "match": "\\\\'",
1153
- "name": "constant.character.escape.single-quote.nim"
1113
+ "name": "constant.character.escape.single-quote.nim",
1114
+ "match": "\\\\'"
1154
1115
  },
1155
1116
  {
1156
- "match": "\\\\[0-9]+",
1157
- "name": "constant.character.escape.chardecimalvalue.nim"
1117
+ "name": "constant.character.escape.chardecimalvalue.nim",
1118
+ "match": "\\\\[0-9]+"
1158
1119
  },
1159
1120
  {
1160
- "match": "\\\\[aA]",
1161
- "name": "constant.character.escape.alert.nim"
1121
+ "name": "constant.character.escape.alert.nim",
1122
+ "match": "\\\\[aA]"
1162
1123
  },
1163
1124
  {
1164
- "match": "\\\\[bB]",
1165
- "name": "constant.character.escape.backspace.nim"
1125
+ "name": "constant.character.escape.backspace.nim",
1126
+ "match": "\\\\[bB]"
1166
1127
  },
1167
1128
  {
1168
- "match": "\\\\[eE]",
1169
- "name": "constant.character.escape.escape.nim"
1129
+ "name": "constant.character.escape.escape.nim",
1130
+ "match": "\\\\[eE]"
1170
1131
  },
1171
1132
  {
1172
- "match": "\\\\[xX][0-9A-Fa-f]{2}",
1173
- "name": "constant.character.escape.hex.nim"
1133
+ "name": "constant.character.escape.hex.nim",
1134
+ "match": "\\\\[xX][0-9A-Fa-f]{2}"
1174
1135
  },
1175
1136
  {
1176
- "match": "\\\\\\\\",
1177
- "name": "constant.character.escape.backslash.nim"
1137
+ "name": "constant.character.escape.backslash.nim",
1138
+ "match": "\\\\\\\\"
1178
1139
  }
1179
1140
  ]
1180
1141
  }
1181
- },
1182
- "scopeName": "source.nim",
1183
- "uuid": "fa6f2c1c-dd3f-4bcd-b2be-d05312be4080"
1184
- }
1142
+ }
1143
+ }