github-linguist 7.11.1 → 7.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (583) hide show
  1. checksums.yaml +4 -4
  2. data/ext/linguist/lex.linguist_yy.c +619 -363
  3. data/ext/linguist/lex.linguist_yy.h +425 -59
  4. data/ext/linguist/linguist.c +5 -35
  5. data/ext/linguist/linguist.h +0 -18
  6. data/ext/linguist/tokenizer.l +61 -36
  7. data/grammars/annotation.liquidhaskell.haskell.json +1 -1835
  8. data/grammars/config.xcompose.json +1 -80
  9. data/grammars/documentation.markdown.injection.haxe.json +1 -22
  10. data/grammars/etc.json +1 -987
  11. data/grammars/file.lasso.json +1 -702
  12. data/grammars/hidden.manref.json +1 -29
  13. data/grammars/hidden.regexp.injection-shell.json +1 -28
  14. data/grammars/hint.haskell.json +1 -1762
  15. data/grammars/hint.message.haskell.json +1 -1786
  16. data/grammars/hint.type.haskell.json +1 -1759
  17. data/grammars/injections.etc.json +1 -659
  18. data/grammars/inline.prisma.json +1 -55
  19. data/grammars/markdown.hack.codeblock.json +1 -20
  20. data/grammars/markdown.haxe.codeblock.json +1 -26
  21. data/grammars/markdown.hxml.codeblock.json +1 -26
  22. data/grammars/markdown.plantuml.codeblock.json +1 -26
  23. data/grammars/objdump.x86asm.json +1 -69
  24. data/grammars/source.4dm.json +1 -1156
  25. data/grammars/source.SASLog.json +1 -18
  26. data/grammars/source.abap.json +1 -335
  27. data/grammars/source.abl.json +1 -734
  28. data/grammars/source.abnf.json +1 -294
  29. data/grammars/source.actionscript.3.json +1 -1538
  30. data/grammars/source.acucobol.json +1 -13
  31. data/grammars/source.ada.json +1 -133
  32. data/grammars/source.afm.json +1 -1207
  33. data/grammars/source.agc.json +1 -87
  34. data/grammars/source.agda.json +1 -72
  35. data/grammars/source.ahk.json +1 -195
  36. data/grammars/source.al.json +1 -130
  37. data/grammars/source.alloy.json +1 -40
  38. data/grammars/source.ampl.json +1 -151
  39. data/grammars/source.angelscript.json +1 -186
  40. data/grammars/source.antlr.json +1 -295
  41. data/grammars/source.apache-config.json +1 -346
  42. data/grammars/source.apache-config.mod_perl.json +1 -65
  43. data/grammars/source.apl.json +1 -1427
  44. data/grammars/source.applescript.json +1 -1384
  45. data/grammars/source.asl.json +1 -56
  46. data/grammars/source.asn.json +1 -55
  47. data/grammars/source.asp.json +1 -151
  48. data/grammars/source.aspectj.json +1 -960
  49. data/grammars/source.assembly.json +1 -116
  50. data/grammars/source.ats.json +1 -164
  51. data/grammars/source.autoit.json +1 -167
  52. data/grammars/source.avro.json +1 -381
  53. data/grammars/source.awk.json +1 -384
  54. data/grammars/source.ballerina.json +1 -1785
  55. data/grammars/source.batchfile.json +1 -732
  56. data/grammars/source.bdf.json +1 -425
  57. data/grammars/source.befunge.json +1 -34
  58. data/grammars/source.bf.json +1 -30
  59. data/grammars/source.blitzmax.json +1 -905
  60. data/grammars/source.bnf.json +1 -191
  61. data/grammars/source.boo.json +1 -448
  62. data/grammars/source.brightauthorproject.json +1 -24
  63. data/grammars/source.brightscript.json +1 -148
  64. data/grammars/source.bsl.json +1 -451
  65. data/grammars/source.bsv.json +1 -277
  66. data/grammars/source.c++.json +1 -436
  67. data/grammars/source.c++.qt.json +1 -29
  68. data/grammars/source.c.ec.json +1 -33
  69. data/grammars/source.c.json +1 -712
  70. data/grammars/source.c.nwscript.json +1 -0
  71. data/grammars/source.c.platform.json +1 -1115
  72. data/grammars/source.c2hs.json +1 -24
  73. data/grammars/source.cabal.json +1 -63
  74. data/grammars/source.cache.cmake.json +1 -70
  75. data/grammars/source.cake.json +1 -13
  76. data/grammars/source.camlp4.ocaml.json +1 -60
  77. data/grammars/source.capnp.json +1 -88
  78. data/grammars/source.ceylon.json +1 -93
  79. data/grammars/source.cfscript.cfc.json +1 -162
  80. data/grammars/source.cfscript.json +1 -737
  81. data/grammars/source.changelogs.rpm-spec.json +1 -91
  82. data/grammars/source.chapel.json +1 -265
  83. data/grammars/source.cirru.json +1 -61
  84. data/grammars/source.clarion.json +1 -146
  85. data/grammars/source.clean.json +1 -222
  86. data/grammars/source.click.json +1 -107
  87. data/grammars/source.clips.json +1 -67
  88. data/grammars/source.clojure.json +1 -429
  89. data/grammars/source.cm.json +1 -49
  90. data/grammars/source.cmake.json +1 -173
  91. data/grammars/source.cobol.json +1 -485
  92. data/grammars/source.coffee.json +1 -1310
  93. data/grammars/source.cool.json +1 -96
  94. data/grammars/source.coq.json +1 -58
  95. data/grammars/source.crystal.json +1 -2694
  96. data/grammars/source.cs.json +1 -4323
  97. data/grammars/source.csound-document.json +1 -175
  98. data/grammars/source.csound-score.json +1 -191
  99. data/grammars/source.csound.json +1 -824
  100. data/grammars/source.css.json +1 -1859
  101. data/grammars/source.css.less.json +1 -536
  102. data/grammars/source.css.mss.json +1 -249
  103. data/grammars/source.css.postcss.sugarss.json +1 -260
  104. data/grammars/source.css.scss.json +1 -1873
  105. data/grammars/source.csx.json +1 -13
  106. data/grammars/source.cuda-c++.json +1 -103
  107. data/grammars/source.curlrc.json +1 -984
  108. data/grammars/source.cwl.json +1 -103
  109. data/grammars/source.cython.json +1 -1912
  110. data/grammars/source.d.json +1 -741
  111. data/grammars/source.dart.json +1 -433
  112. data/grammars/source.data-weave.json +1 -1580
  113. data/grammars/source.desktop.json +1 -86
  114. data/grammars/source.diff.json +1 -153
  115. data/grammars/source.dircolors.json +1 -137
  116. data/grammars/source.direct-x.json +1 -135
  117. data/grammars/source.disasm.json +1 -30
  118. data/grammars/source.ditroff.desc.json +1 -411
  119. data/grammars/source.ditroff.json +1 -1280
  120. data/grammars/source.dm.json +1 -628
  121. data/grammars/source.dmf.json +1 -96
  122. data/grammars/source.dockerfile.json +1 -88
  123. data/grammars/source.dosbox-conf.json +1 -97
  124. data/grammars/source.dot.json +1 -117
  125. data/grammars/source.dylan.json +1 -212
  126. data/grammars/source.ebnf.json +1 -240
  127. data/grammars/source.editorconfig.json +1 -365
  128. data/grammars/source.eiffel.json +1 -133
  129. data/grammars/source.elixir.json +1 -965
  130. data/grammars/source.elm.json +1 -375
  131. data/grammars/source.emacs.lisp.json +1 -1301
  132. data/grammars/source.erlang.json +1 -1647
  133. data/grammars/source.essl.json +1 -37
  134. data/grammars/source.factor.json +1 -252
  135. data/grammars/source.fan.json +1 -341
  136. data/grammars/source.fancy.json +1 -245
  137. data/grammars/source.faust.json +1 -119
  138. data/grammars/source.figctrl.json +1 -252
  139. data/grammars/source.figfont.json +1 -121
  140. data/grammars/source.firestore.json +1 -289
  141. data/grammars/source.fish.json +1 -190
  142. data/grammars/source.fontdir.json +1 -99
  143. data/grammars/source.fontforge.json +1 -355
  144. data/grammars/source.forth.json +1 -84
  145. data/grammars/source.fortran.json +1 -464
  146. data/grammars/source.fortran.modern.json +1 -200
  147. data/grammars/source.fsharp.fsi.json +1 -9
  148. data/grammars/source.fsharp.fsl.json +1 -9
  149. data/grammars/source.fsharp.fsx.json +1 -13
  150. data/grammars/source.fsharp.json +1 -452
  151. data/grammars/source.fstar.json +1 -439
  152. data/grammars/source.futhark.json +1 -167
  153. data/grammars/source.gap.json +1 -163
  154. data/grammars/source.gcode.json +1 -176
  155. data/grammars/source.gdb.json +1 -160
  156. data/grammars/source.gdb.session.json +1 -70
  157. data/grammars/source.gdbregs.json +1 -14
  158. data/grammars/source.gdscript.json +1 -491
  159. data/grammars/source.gedcom.json +1 -196
  160. data/grammars/source.generic-db.json +1 -41
  161. data/grammars/source.gerber.json +1 -321
  162. data/grammars/source.gf.json +1 -51
  163. data/grammars/source.gfm.blade.json +1 -15
  164. data/grammars/source.gfm.json +1 -1913
  165. data/grammars/source.gitattributes.json +1 -111
  166. data/grammars/source.gitconfig.json +1 -450
  167. data/grammars/source.gitignore.json +1 -140
  168. data/grammars/source.glsl.json +1 -139
  169. data/grammars/source.gn.json +1 -345
  170. data/grammars/source.gnuplot.json +1 -260
  171. data/grammars/source.go.json +1 -540
  172. data/grammars/source.golo.json +1 -177
  173. data/grammars/source.gosu.2.json +1 -153
  174. data/grammars/source.grace.json +1 -675
  175. data/grammars/source.graphql.json +1 -978
  176. data/grammars/source.gremlin.json +1 -200
  177. data/grammars/source.groovy.gradle.json +1 -69
  178. data/grammars/source.groovy.json +1 -1374
  179. data/grammars/source.hack.json +1 -2595
  180. data/grammars/source.haproxy-config.json +1 -152
  181. data/grammars/source.harbour.json +1 -388
  182. data/grammars/source.haskell.json +1 -1760
  183. data/grammars/source.hc.json +1 -709
  184. data/grammars/source.hgignore.json +1 -34
  185. data/grammars/source.hlsl.json +1 -211
  186. data/grammars/source.hosts.json +1 -40
  187. data/grammars/source.hql.json +1 -492
  188. data/grammars/source.hsc2hs.json +1 -9
  189. data/grammars/source.hsig.json +1 -1760
  190. data/grammars/source.httpspec.json +1 -283
  191. data/grammars/source.hx.argument.json +1 -80
  192. data/grammars/source.hx.json +1 -2428
  193. data/grammars/source.hx.type.json +1 -8
  194. data/grammars/source.hxml.json +1 -59
  195. data/grammars/source.hy.json +1 -429
  196. data/grammars/source.ideal.json +1 -356
  197. data/grammars/source.idl-dlm.json +1 -105
  198. data/grammars/source.idl.json +1 -246
  199. data/grammars/source.idris.json +1 -523
  200. data/grammars/source.igor.json +1 -369
  201. data/grammars/source.inform7.json +1 -183
  202. data/grammars/source.ini.json +1 -107
  203. data/grammars/source.ini.npmrc.json +1 -311
  204. data/grammars/source.inno.json +1 -133
  205. data/grammars/source.inputrc.json +1 -500
  206. data/grammars/source.io.json +1 -156
  207. data/grammars/source.ioke.json +1 -266
  208. data/grammars/source.isabelle.root.json +1 -64
  209. data/grammars/source.isabelle.theory.json +1 -102
  210. data/grammars/source.j.json +1 -260
  211. data/grammars/source.jasmin.json +1 -294
  212. data/grammars/source.java-properties.json +1 -87
  213. data/grammars/source.java.json +1 -1020
  214. data/grammars/source.jcl.json +1 -46
  215. data/grammars/source.jflex.json +1 -484
  216. data/grammars/source.jison.json +1 -711
  217. data/grammars/source.jisonlex-injection.json +1 -10
  218. data/grammars/source.jisonlex.json +1 -434
  219. data/grammars/source.jolie.json +1 -132
  220. data/grammars/source.jq.json +1 -211
  221. data/grammars/source.js.css.json +1 -328
  222. data/grammars/source.js.json +1 -1897
  223. data/grammars/source.js.jsx.json +1 -2488
  224. data/grammars/source.js.objj.json +1 -419
  225. data/grammars/source.js.regexp.json +1 -152
  226. data/grammars/source.js.regexp.replacement.json +1 -26
  227. data/grammars/source.jsdoc.json +1 -460
  228. data/grammars/source.json.json +1 -139
  229. data/grammars/source.jsonnet.json +1 -197
  230. data/grammars/source.julia.console.json +1 -51
  231. data/grammars/source.julia.json +1 -991
  232. data/grammars/source.kotlin.json +1 -704
  233. data/grammars/source.lark.json +1 -0
  234. data/grammars/source.lbnf.json +1 -0
  235. data/grammars/source.lcov.json +1 -398
  236. data/grammars/source.lean.json +1 -226
  237. data/grammars/source.lean.markdown.json +1 -2598
  238. data/grammars/source.lex.json +1 -232
  239. data/grammars/source.lex.regexp.json +1 -269
  240. data/grammars/source.lid.json +1 -19
  241. data/grammars/source.lilypond.json +1 -869
  242. data/grammars/source.lisp.json +1 -101
  243. data/grammars/source.litcoffee.json +1 -654
  244. data/grammars/source.livescript.json +1 -603
  245. data/grammars/source.llvm.json +1 -61
  246. data/grammars/source.logos.json +1 -24
  247. data/grammars/source.logtalk.json +1 -310
  248. data/grammars/source.loomscript.json +1 -208
  249. data/grammars/source.lsl.json +1 -241
  250. data/grammars/source.ltspice.symbol.json +1 -294
  251. data/grammars/source.lua.json +1 -275
  252. data/grammars/source.m2.json +1 -125
  253. data/grammars/source.m4.json +1 -229
  254. data/grammars/source.m68k.json +1 -412
  255. data/grammars/source.mailmap.json +1 -28
  256. data/grammars/source.makefile.json +1 -470
  257. data/grammars/source.makegen.json +1 -9
  258. data/grammars/source.man-conf.json +1 -153
  259. data/grammars/source.mask.json +1 -816
  260. data/grammars/source.mata.json +1 -125
  261. data/grammars/source.mathematica.json +1 -416
  262. data/grammars/source.matlab.json +1 -1096
  263. data/grammars/source.maxscript.json +1 -465
  264. data/grammars/source.mcfunction-snapshot.json +1 -24480
  265. data/grammars/source.mcfunction.json +1 -1354
  266. data/grammars/source.mercury.json +1 -246
  267. data/grammars/source.meson.json +1 -165
  268. data/grammars/source.meta-info.json +1 -146
  269. data/grammars/source.ml.json +1 -285
  270. data/grammars/source.mlir.json +1 -109
  271. data/grammars/source.modelica.json +1 -142
  272. data/grammars/source.modula-3.json +1 -88
  273. data/grammars/source.modula2.json +1 -94
  274. data/grammars/source.monkey.json +1 -694
  275. data/grammars/source.moonscript.json +1 -144
  276. data/grammars/source.mql5.json +1 -187
  277. data/grammars/source.msl.json +1 -755
  278. data/grammars/source.mupad.json +1 -131
  279. data/grammars/source.nanorc.json +1 -333
  280. data/grammars/source.nasl.json +1 -155
  281. data/grammars/source.ncl.json +1 -53
  282. data/grammars/source.ne.json +1 -105
  283. data/grammars/source.nemerle.json +1 -132
  284. data/grammars/source.neon.json +1 -381
  285. data/grammars/source.nesc.json +1 -21
  286. data/grammars/source.netlinx.erb.json +1 -34
  287. data/grammars/source.netlinx.json +1 -704
  288. data/grammars/source.nextflow-groovy.json +1 -1359
  289. data/grammars/source.nextflow.json +1 -94
  290. data/grammars/source.nginx.json +1 -815
  291. data/grammars/source.nim.comment.json +1 -82
  292. data/grammars/source.nim.json +1 -1083
  293. data/grammars/source.nim_filter.json +1 -113
  294. data/grammars/source.nimcfg.json +1 -103
  295. data/grammars/source.ninja.json +1 -248
  296. data/grammars/source.nit.json +1 -234
  297. data/grammars/source.nix.json +1 -1196
  298. data/grammars/source.nsis.json +1 -152
  299. data/grammars/source.nu.json +1 -516
  300. data/grammars/source.nut.json +1 -262
  301. data/grammars/source.objc++.json +1 -12
  302. data/grammars/source.objc.json +1 -910
  303. data/grammars/source.objc.platform.json +1 -842
  304. data/grammars/source.objectscript.json +1 -309
  305. data/grammars/source.objectscript_class.json +1 -674
  306. data/grammars/source.objectscript_csp.json +1 -19
  307. data/grammars/source.objectscript_macros.json +1 -226
  308. data/grammars/source.ocaml.json +1 -1418
  309. data/grammars/source.ocamllex.json +1 -298
  310. data/grammars/source.ocamlyacc.json +1 -339
  311. data/grammars/source.odin-ehr.json +1 -806
  312. data/grammars/source.odin.json +1 -402
  313. data/grammars/source.ooc.json +1 -685
  314. data/grammars/source.opa.json +1 -196
  315. data/grammars/source.opal.json +1 -410
  316. data/grammars/source.opalsysdefs.json +1 -66
  317. data/grammars/source.openbsd-pkg.contents.json +1 -128
  318. data/grammars/source.opencobol.json +1 -62
  319. data/grammars/source.opentype.json +1 -448
  320. data/grammars/source.opts.json +1 -108
  321. data/grammars/source.ox.json +1 -89
  322. data/grammars/source.oz.json +1 -77
  323. data/grammars/source.p4.json +1 -122
  324. data/grammars/source.paket.dependencies.json +1 -0
  325. data/grammars/source.paket.lock.json +1 -0
  326. data/grammars/source.pan.json +1 -706
  327. data/grammars/source.papyrus.skyrim.json +1 -1272
  328. data/grammars/source.parrot.pir.json +1 -145
  329. data/grammars/source.pascal.json +1 -143
  330. data/grammars/source.pawn.json +1 -1194
  331. data/grammars/source.pcb.board.json +1 -285
  332. data/grammars/source.pcb.schematic.json +1 -424
  333. data/grammars/source.pcb.sexp.json +1 -232
  334. data/grammars/source.pep8.json +1 -118
  335. data/grammars/source.perl.6.json +1 -309
  336. data/grammars/source.perl.json +1 -2519
  337. data/grammars/source.php.zephir.json +1 -353
  338. data/grammars/source.pic.json +1 -908
  339. data/grammars/source.pig_latin.json +1 -168
  340. data/grammars/source.pike.json +1 -49
  341. data/grammars/source.plist.json +1 -336
  342. data/grammars/source.po.json +1 -222
  343. data/grammars/source.pogoscript.json +1 -79
  344. data/grammars/source.pony.json +1 -245
  345. data/grammars/source.postcss.json +1 -370
  346. data/grammars/source.postscript.json +1 -477
  347. data/grammars/source.pov-ray sdl.json +1 -82
  348. data/grammars/source.powershell.json +1 -981
  349. data/grammars/source.prisma.json +1 -435
  350. data/grammars/source.processing.json +1 -872
  351. data/grammars/source.prolog.eclipse.json +1 -201
  352. data/grammars/source.prolog.json +1 -286
  353. data/grammars/source.protobuf.json +1 -471
  354. data/grammars/source.puppet.json +1 -433
  355. data/grammars/source.purescript.json +1 -861
  356. data/grammars/source.pyjade.json +1 -996
  357. data/grammars/source.python.django.json +1 -29
  358. data/grammars/source.python.json +1 -5292
  359. data/grammars/source.python.salt.json +1 -9
  360. data/grammars/source.q.json +1 -215
  361. data/grammars/source.q_output.json +1 -348
  362. data/grammars/source.qasm.json +1 -66
  363. data/grammars/source.ql.json +1 -1408
  364. data/grammars/source.qmake.json +1 -210
  365. data/grammars/source.qml.json +1 -174
  366. data/grammars/source.qsharp.json +1 -120
  367. data/grammars/source.quake.json +1 -44
  368. data/grammars/source.quoting.raku.json +1 -0
  369. data/grammars/source.r.json +1 -194
  370. data/grammars/source.racket.json +1 -98
  371. data/grammars/source.raku.json +1 -0
  372. data/grammars/source.rascal.json +1 -283
  373. data/grammars/source.reason.hover.type.json +1 -14
  374. data/grammars/source.reason.json +1 -3382
  375. data/grammars/source.rebol.json +1 -637
  376. data/grammars/source.red.json +1 -644
  377. data/grammars/source.reg.json +1 -159
  378. data/grammars/source.regexp.extended.json +1 -558
  379. data/grammars/source.regexp.json +1 -1434
  380. data/grammars/source.regexp.python.json +1 -490
  381. data/grammars/source.regexp.raku.json +1 -0
  382. data/grammars/source.regexp.spin.json +1 -179
  383. data/grammars/source.rego.json +1 -124
  384. data/grammars/source.renpy.json +1 -1948
  385. data/grammars/source.rescript.json +1 -0
  386. data/grammars/source.rexx.json +1 -52
  387. data/grammars/source.ring.json +1 -247
  388. data/grammars/source.rpm-spec.json +1 -765
  389. data/grammars/source.ruby.gemfile.json +1 -24
  390. data/grammars/source.ruby.json +1 -2605
  391. data/grammars/source.ruby.rspec.cucumber.steps.json +1 -261
  392. data/grammars/source.rust.json +1 -629
  393. data/grammars/source.sas.json +1 -286
  394. data/grammars/source.sass.json +1 -1089
  395. data/grammars/source.sassdoc.json +1 -346
  396. data/grammars/source.scad.json +1 -145
  397. data/grammars/source.scala.json +1 -1121
  398. data/grammars/source.scaml.json +1 -451
  399. data/grammars/source.scheme.json +1 -353
  400. data/grammars/source.scilab.json +1 -96
  401. data/grammars/source.sdbl.json +1 -90
  402. data/grammars/source.sed.json +1 -1520
  403. data/grammars/source.shaderlab.json +1 -198
  404. data/grammars/source.shell.json +1 -1272
  405. data/grammars/source.shen.json +1 -143
  406. data/grammars/source.sieve.json +1 -383
  407. data/grammars/source.slice.json +1 -2755
  408. data/grammars/source.smali.json +1 -1610
  409. data/grammars/source.smalltalk.json +1 -187
  410. data/grammars/source.smpl.json +1 -314
  411. data/grammars/source.smt.json +1 -158
  412. data/grammars/source.solidity.json +1 -189
  413. data/grammars/source.sourcepawn.json +1 -651
  414. data/grammars/source.sparql.json +1 -18
  415. data/grammars/source.spin.json +1 -916
  416. data/grammars/source.sqf.json +1 -111
  417. data/grammars/source.sql.json +1 -459
  418. data/grammars/source.ssh-config.json +1 -97
  419. data/grammars/source.stan.json +1 -388
  420. data/grammars/source.stata.json +1 -197
  421. data/grammars/source.strings.json +1 -49
  422. data/grammars/source.stylus.json +1 -1018
  423. data/grammars/source.supercollider.json +1 -93
  424. data/grammars/source.svelte.json +1 -827
  425. data/grammars/source.swift.json +1 -3134
  426. data/grammars/source.sy.json +1 -2954
  427. data/grammars/source.systemverilog.json +1 -1036
  428. data/grammars/source.tags.json +1 -266
  429. data/grammars/source.tcl.json +1 -260
  430. data/grammars/source.tea.json +1 -174
  431. data/grammars/source.terra.json +1 -138
  432. data/grammars/source.terraform.json +1 -694
  433. data/grammars/source.thrift.json +1 -698
  434. data/grammars/source.tl.json +1 -259
  435. data/grammars/source.tla.json +1 -140
  436. data/grammars/source.tnsaudit.json +1 -256
  437. data/grammars/source.toc.json +1 -52
  438. data/grammars/source.toml.json +1 -426
  439. data/grammars/source.ts.json +1 -5581
  440. data/grammars/source.tsql.json +1 -507
  441. data/grammars/source.tsx.json +1 -5834
  442. data/grammars/source.turing.json +1 -1553
  443. data/grammars/source.turtle.json +1 -489
  444. data/grammars/source.txl.json +1 -48
  445. data/grammars/source.ucd.nameslist.json +1 -444
  446. data/grammars/source.ucd.unidata.json +1 -570
  447. data/grammars/source.ucfconstraints.json +1 -67
  448. data/grammars/source.ur.json +1 -31
  449. data/grammars/source.v.json +1 -1010
  450. data/grammars/source.vala.json +1 -800
  451. data/grammars/source.varnish.vcl.json +1 -331
  452. data/grammars/source.vbnet.json +1 -239
  453. data/grammars/source.verilog.json +1 -296
  454. data/grammars/source.vhdl.json +1 -1374
  455. data/grammars/source.vim-snippet.json +1 -645
  456. data/grammars/source.viml.json +1 -1197
  457. data/grammars/source.vtt.json +1 -702
  458. data/grammars/source.vyper.json +1 -213
  459. data/grammars/source.wavefront.mtl.json +1 -1190
  460. data/grammars/source.wavefront.obj.json +1 -1341
  461. data/grammars/source.wdl.json +1 -220
  462. data/grammars/source.webassembly.json +1 -349
  463. data/grammars/source.webidl.json +1 -807
  464. data/grammars/source.wgetrc.json +1 -1640
  465. data/grammars/source.wollok.json +1 -100
  466. data/grammars/source.wsd.json +1 -781
  467. data/grammars/source.x10.json +1 -64
  468. data/grammars/source.x86.json +1 -299
  469. data/grammars/source.x86asm.json +1 -42
  470. data/grammars/source.xc.json +1 -371
  471. data/grammars/source.xlfd.json +1 -462
  472. data/grammars/source.xojo.json +1 -85
  473. data/grammars/source.xq.json +1 -230
  474. data/grammars/source.xtend.json +1 -724
  475. data/grammars/source.yacc.json +1 -626
  476. data/grammars/source.yaml.json +1 -443
  477. data/grammars/source.yaml.salt.json +1 -345
  478. data/grammars/source.yang.json +1 -78
  479. data/grammars/source.yara.json +1 -99
  480. data/grammars/source.yasnippet.json +1 -377
  481. data/grammars/source.zap.json +1 -260
  482. data/grammars/source.zeek.json +1 -412
  483. data/grammars/source.zenscript.json +1 -282
  484. data/grammars/source.zig.json +1 -547
  485. data/grammars/source.zil.json +1 -750
  486. data/grammars/text.bibtex.json +1 -246
  487. data/grammars/text.cfml.basic.json +1 -735
  488. data/grammars/text.conllu.json +1 -45
  489. data/grammars/text.dfy.dafny.json +1 -188
  490. data/grammars/text.elixir.json +1 -52
  491. data/grammars/text.eml.basic.json +1 -296
  492. data/grammars/text.error-list.json +1 -53
  493. data/grammars/text.find-refs.json +1 -926
  494. data/grammars/text.gherkin.feature.json +1 -127
  495. data/grammars/text.haml.json +1 -518
  496. data/grammars/text.hamlc.json +1 -219
  497. data/grammars/text.html.asciidoc.json +1 -478
  498. data/grammars/text.html.asdoc.json +1 -529
  499. data/grammars/text.html.asp.json +1 -53
  500. data/grammars/text.html.basic.json +1 -908
  501. data/grammars/text.html.cfm.json +1 -802
  502. data/grammars/text.html.creole.json +1 -317
  503. data/grammars/text.html.cshtml.json +1 -356
  504. data/grammars/text.html.django.json +1 -63
  505. data/grammars/text.html.ecr.json +1 -48
  506. data/grammars/text.html.elixir.json +1 -21
  507. data/grammars/text.html.erb.json +1 -150
  508. data/grammars/text.html.erlang.yaws.json +1 -67
  509. data/grammars/text.html.factor.json +1 -19
  510. data/grammars/text.html.ftl.json +1 -76
  511. data/grammars/text.html.handlebars.json +1 -845
  512. data/grammars/text.html.javadoc.json +1 -426
  513. data/grammars/text.html.js.json +1 -24
  514. data/grammars/text.html.jsp.json +1 -1196
  515. data/grammars/text.html.liquid.json +1 -25
  516. data/grammars/text.html.mako.json +1 -726
  517. data/grammars/text.html.markdown.source.gfm.apib.json +1 -1298
  518. data/grammars/text.html.markdown.source.gfm.mson.json +1 -1156
  519. data/grammars/text.html.mediawiki.elm-build-output.json +1 -97
  520. data/grammars/text.html.mediawiki.elm-documentation.json +1 -17
  521. data/grammars/text.html.mediawiki.json +1 -946
  522. data/grammars/text.html.php.blade.json +1 -3833
  523. data/grammars/text.html.php.json +1 -2507
  524. data/grammars/text.html.riot.json +1 -788
  525. data/grammars/text.html.slash.json +1 -307
  526. data/grammars/text.html.smarty.json +1 -232
  527. data/grammars/text.html.soy.json +1 -606
  528. data/grammars/text.html.ssp.json +1 -43
  529. data/grammars/text.html.tcl.json +1 -37
  530. data/grammars/text.html.twig.json +1 -1344
  531. data/grammars/text.html.vue.json +1 -963
  532. data/grammars/text.idl-idldoc.json +1 -10
  533. data/grammars/text.jade.json +1 -963
  534. data/grammars/text.junit-test-report.json +1 -89
  535. data/grammars/text.log.latex.json +1 -84
  536. data/grammars/text.marko.json +1 -1662
  537. data/grammars/text.muse.json +1 -1471
  538. data/grammars/text.openbsd-pkg.desc.json +1 -78
  539. data/grammars/text.plain.json +1 -18
  540. data/grammars/text.python.console.json +1 -21
  541. data/grammars/text.python.traceback.json +1 -43
  542. data/grammars/text.rdoc.json +1 -44
  543. data/grammars/text.restructuredtext.clean.json +1 -24
  544. data/grammars/text.restructuredtext.json +1 -1765
  545. data/grammars/text.robot.json +1 -63
  546. data/grammars/text.roff.json +1 -6927
  547. data/grammars/text.rtf.json +1 -148
  548. data/grammars/text.runoff.json +1 -308
  549. data/grammars/text.sfd.json +1 -292
  550. data/grammars/text.shell-session.json +1 -29
  551. data/grammars/text.slim.json +1 -527
  552. data/grammars/text.srt.json +1 -166
  553. data/grammars/text.tex.json +1 -264
  554. data/grammars/text.tex.latex.beamer.json +1 -57
  555. data/grammars/text.tex.latex.haskell.json +1 -1826
  556. data/grammars/text.tex.latex.json +1 -1003
  557. data/grammars/text.tex.latex.memoir.json +1 -129
  558. data/grammars/text.tex.latex.rd.json +1 -111
  559. data/grammars/text.texinfo.json +1 -1525
  560. data/grammars/text.vim-help.json +1 -383
  561. data/grammars/text.xml.ant.json +1 -195
  562. data/grammars/text.xml.flex-config.json +1 -2628
  563. data/grammars/text.xml.genshi.json +1 -28
  564. data/grammars/text.xml.json +1 -351
  565. data/grammars/text.xml.plist.json +1 -664
  566. data/grammars/text.xml.pom.json +1 -769
  567. data/grammars/text.xml.svg.json +1 -562
  568. data/grammars/text.xml.xsl.json +1 -88
  569. data/grammars/text.zone_file.json +1 -67
  570. data/grammars/version +1 -1
  571. data/lib/linguist/VERSION +1 -1
  572. data/lib/linguist/generic.yml +17 -0
  573. data/lib/linguist/heuristics.yml +37 -17
  574. data/lib/linguist/languages.json +1 -1
  575. data/lib/linguist/languages.yml +41 -2
  576. data/lib/linguist/linguist.bundle +0 -0
  577. data/lib/linguist/samples.json +1 -1
  578. data/lib/linguist/strategy/extension.rb +13 -5
  579. metadata +12 -6
  580. data/ext/linguist/strndup.c +0 -10
  581. data/grammars/source.perl6fe.json +0 -2769
  582. data/grammars/source.quoting.perl6fe.json +0 -2369
  583. data/grammars/source.regexp.perl6fe.json +0 -244
@@ -1,13 +1 @@
1
- {
2
- "name": "ACUCOBOL",
3
- "scopeName": "source.acucobol",
4
- "patterns": [
5
- {
6
- "name": "invalid.illegal.cobol",
7
- "match": "(^......[ a-zA-Z0-9\\-]...................................................................*$)"
8
- },
9
- {
10
- "include": "source.cobol"
11
- }
12
- ]
13
- }
1
+ {"name":"ACUCOBOL","scopeName":"source.acucobol","patterns":[{"name":"invalid.illegal.cobol","match":"(^......[ a-zA-Z0-9\\-]...................................................................*$)"},{"include":"source.cobol"}]}
@@ -1,133 +1 @@
1
- {
2
- "name": "Ada",
3
- "scopeName": "source.ada",
4
- "patterns": [
5
- {
6
- "name": "meta.function.ada",
7
- "match": "\\b(?i:(function|procedure))\\b\\s+(\\w+(\\.\\w+)?|\"(?:\\+|-|=|\\*|/)\")",
8
- "captures": {
9
- "1": {
10
- "name": "storage.type.function.ada"
11
- },
12
- "2": {
13
- "name": "entity.name.function.ada"
14
- }
15
- }
16
- },
17
- {
18
- "name": "meta.function.ada",
19
- "match": "\\b(?i:(package)(?:\\b\\s+(body))?)\\b\\s+(\\w+(\\.\\w+)*|\"(?:\\+|-|=|\\*|/)\")",
20
- "captures": {
21
- "1": {
22
- "name": "storage.type.package.ada"
23
- },
24
- "2": {
25
- "name": "keyword.other.body.ada"
26
- },
27
- "3": {
28
- "name": "entity.name.type.package.ada"
29
- }
30
- }
31
- },
32
- {
33
- "name": "meta.function.end.ada",
34
- "match": "\\b(?i:(end))\\b\\s+(\\w+(\\.\\w+)*|\"(\\+|-|=|\\*|/)\")\\s?;",
35
- "captures": {
36
- "1": {
37
- "name": "storage.type.function.ada"
38
- },
39
- "2": {
40
- "name": "entity.name.function.ada"
41
- }
42
- }
43
- },
44
- {
45
- "name": "meta.import.ada",
46
- "match": "^\\s*(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\s+(\\w+(\\.\\w+)*)\\s*;",
47
- "captures": {
48
- "1": {
49
- "name": "keyword.control.import.limited.ada"
50
- },
51
- "2": {
52
- "name": "keyword.control.import.private.ada"
53
- },
54
- "3": {
55
- "name": "keyword.control.import.ada"
56
- },
57
- "4": {
58
- "name": "entity.name.function.ada"
59
- }
60
- }
61
- },
62
- {
63
- "name": "keyword.control.ada",
64
- "match": "\\b(?i:(begin|end|package))\\b"
65
- },
66
- {
67
- "name": "keyword.other.ada",
68
- "match": "\\b(?i:(\\=\u003e|abort|abs|abstract|accept|access|aliased|all|and|array|at|body|case|constant|declare|delay|delta|digits|do|else|elsif|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|or|others|out|overriding|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor))\\b"
69
- },
70
- {
71
- "name": "constant.numeric.ada",
72
- "match": "\\b(?i:([0-9](_?[0-9])*((#[0-9a-f](_?[0-9a-f])*#((e(\\+|-)?[0-9](_?[0-9])*\\b)|\\B))|((\\.[0-9](_?[0-9])*)?(e(\\+|-)?[0-9](_?[0-9])*)?\\b))))"
73
- },
74
- {
75
- "name": "string.quoted.double.ada",
76
- "begin": "\"",
77
- "end": "\"(?!\")",
78
- "patterns": [
79
- {
80
- "name": "constant.character.escape.ada",
81
- "match": "\"\""
82
- },
83
- {
84
- "name": "invalid.illegal.lf-in-string.ada",
85
- "match": "\\n"
86
- }
87
- ],
88
- "beginCaptures": {
89
- "0": {
90
- "name": "punctuation.definition.string.begin.ada"
91
- }
92
- },
93
- "endCaptures": {
94
- "0": {
95
- "name": "punctuation.definition.string.end.ada"
96
- }
97
- }
98
- },
99
- {
100
- "name": "string.quoted.single.ada",
101
- "match": "(').(')",
102
- "captures": {
103
- "1": {
104
- "name": "punctuation.definition.string.begin.ada"
105
- },
106
- "2": {
107
- "name": "punctuation.definition.string.end.ada"
108
- }
109
- }
110
- },
111
- {
112
- "begin": "(^[ \\t]+)?(?=--)",
113
- "end": "(?!\\G)",
114
- "patterns": [
115
- {
116
- "name": "comment.line.double-dash.ada",
117
- "begin": "--",
118
- "end": "\\n",
119
- "beginCaptures": {
120
- "0": {
121
- "name": "punctuation.definition.comment.ada"
122
- }
123
- }
124
- }
125
- ],
126
- "beginCaptures": {
127
- "1": {
128
- "name": "punctuation.whitespace.comment.leading.ada"
129
- }
130
- }
131
- }
132
- ]
133
- }
1
+ {"name":"Ada","scopeName":"source.ada","patterns":[{"name":"meta.function.ada","match":"\\b(?i:(function|procedure))\\b\\s+(\\w+(\\.\\w+)?|\"(?:\\+|-|=|\\*|/)\")","captures":{"1":{"name":"storage.type.function.ada"},"2":{"name":"entity.name.function.ada"}}},{"name":"meta.function.ada","match":"\\b(?i:(package)(?:\\b\\s+(body))?)\\b\\s+(\\w+(\\.\\w+)*|\"(?:\\+|-|=|\\*|/)\")","captures":{"1":{"name":"storage.type.package.ada"},"2":{"name":"keyword.other.body.ada"},"3":{"name":"entity.name.type.package.ada"}}},{"name":"meta.function.end.ada","match":"\\b(?i:(end))\\b\\s+(\\w+(\\.\\w+)*|\"(\\+|-|=|\\*|/)\")\\s?;","captures":{"1":{"name":"storage.type.function.ada"},"2":{"name":"entity.name.function.ada"}}},{"name":"meta.import.ada","match":"^\\s*(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\s+(\\w+(\\.\\w+)*)\\s*;","captures":{"1":{"name":"keyword.control.import.limited.ada"},"2":{"name":"keyword.control.import.private.ada"},"3":{"name":"keyword.control.import.ada"},"4":{"name":"entity.name.function.ada"}}},{"name":"keyword.control.ada","match":"\\b(?i:(begin|end|package))\\b"},{"name":"keyword.other.ada","match":"\\b(?i:(\\=\u003e|abort|abs|abstract|accept|access|aliased|all|and|array|at|body|case|constant|declare|delay|delta|digits|do|else|elsif|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|or|others|out|overriding|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor))\\b"},{"name":"constant.numeric.ada","match":"\\b(?i:([0-9](_?[0-9])*((#[0-9a-f](_?[0-9a-f])*#((e(\\+|-)?[0-9](_?[0-9])*\\b)|\\B))|((\\.[0-9](_?[0-9])*)?(e(\\+|-)?[0-9](_?[0-9])*)?\\b))))"},{"name":"string.quoted.double.ada","begin":"\"","end":"\"(?!\")","patterns":[{"name":"constant.character.escape.ada","match":"\"\""},{"name":"invalid.illegal.lf-in-string.ada","match":"\\n"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ada"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.ada"}}},{"name":"string.quoted.single.ada","match":"(').(')","captures":{"1":{"name":"punctuation.definition.string.begin.ada"},"2":{"name":"punctuation.definition.string.end.ada"}}},{"begin":"(^[ \\t]+)?(?=--)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.ada","begin":"--","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.ada"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ada"}}}]}
@@ -1,1207 +1 @@
1
- {
2
- "name": "Adobe Font Metrics",
3
- "scopeName": "source.afm",
4
- "patterns": [
5
- {
6
- "include": "#resources"
7
- },
8
- {
9
- "include": "#main"
10
- }
11
- ],
12
- "repository": {
13
- "amfmSpecific": {
14
- "name": "meta.${2:/downcase}.afm",
15
- "begin": "^(Start(Descendent|Direction|Axis|Master))(?:\\s+(\\S.*))?",
16
- "end": "^End\\2\\s*$",
17
- "patterns": [
18
- {
19
- "include": "#main"
20
- }
21
- ],
22
- "beginCaptures": {
23
- "1": {
24
- "name": "keyword.control.start.${2:/downcase}.afm"
25
- },
26
- "3": {
27
- "patterns": [
28
- {
29
- "include": "#hex"
30
- },
31
- {
32
- "include": "#integer"
33
- }
34
- ]
35
- }
36
- },
37
- "endCaptures": {
38
- "0": {
39
- "name": "keyword.control.end.${2:/downcase}.afm"
40
- }
41
- }
42
- },
43
- "array": {
44
- "begin": "\\[",
45
- "end": "\\]|(?=$)",
46
- "patterns": [
47
- {
48
- "include": "#array"
49
- },
50
- {
51
- "include": "#numbers"
52
- },
53
- {
54
- "include": "#psLiteral"
55
- }
56
- ],
57
- "beginCaptures": {
58
- "0": {
59
- "name": "punctuation.definition.list.bracket.square.begin.afm"
60
- }
61
- },
62
- "endCaptures": {
63
- "0": {
64
- "name": "punctuation.definition.list.bracket.square.end.afm"
65
- }
66
- }
67
- },
68
- "bestGuessHighlights": {
69
- "patterns": [
70
- {
71
- "match": "\\G\\s*(true|false)(?=\\s|$)",
72
- "captures": {
73
- "1": {
74
- "patterns": [
75
- {
76
- "include": "#boolean"
77
- }
78
- ]
79
- }
80
- }
81
- },
82
- {
83
- "match": "^(?:\\s+[-+]?[.\\d]+)+\\s*$",
84
- "captures": {
85
- "0": {
86
- "patterns": [
87
- {
88
- "include": "#numbers"
89
- }
90
- ]
91
- }
92
- }
93
- },
94
- {
95
- "match": "^\\s*(\\[.*\\])\\s*$",
96
- "captures": {
97
- "0": {
98
- "patterns": [
99
- {
100
- "include": "#array"
101
- },
102
- {
103
- "include": "#main"
104
- }
105
- ]
106
- }
107
- }
108
- },
109
- {
110
- "match": "^\\s*\u003c[A-Fa-f0-9]+\u003e\\s*$",
111
- "captures": {
112
- "0": {
113
- "patterns": [
114
- {
115
- "include": "#hex"
116
- }
117
- ]
118
- }
119
- }
120
- },
121
- {
122
- "match": "(?:(?:^|\\s+)/[^\\s\\[\\];]+)+\\s*$",
123
- "captures": {
124
- "0": {
125
- "patterns": [
126
- {
127
- "include": "#psLiteral"
128
- }
129
- ]
130
- }
131
- }
132
- },
133
- {
134
- "name": "variable.assignment.afm",
135
- "match": "^.+$",
136
- "captures": {
137
- "0": {
138
- "name": "string.unquoted.afm"
139
- }
140
- }
141
- }
142
- ]
143
- },
144
- "boolean": {
145
- "name": "constant.language.boolean.$1.afm",
146
- "match": "(?\u003c!\\w)(true|false)(?!\\w)"
147
- },
148
- "bracketedString": {
149
- "name": "string.quoted.double.bracketed.afm",
150
- "begin": "\\(",
151
- "end": "\\)|(?=$)",
152
- "patterns": [
153
- {
154
- "include": "#bracketedString"
155
- }
156
- ],
157
- "beginCaptures": {
158
- "0": {
159
- "name": "punctuation.definition.bracket.round.begin.afm"
160
- }
161
- },
162
- "endCaptures": {
163
- "0": {
164
- "name": "punctuation.definition.bracket.round.end.afm"
165
- }
166
- }
167
- },
168
- "charMetricInnards": {
169
- "patterns": [
170
- {
171
- "include": "#delimiter"
172
- },
173
- {
174
- "name": "meta.character.code.hexadecimal.afm",
175
- "match": "\\G(CH)\\s+(\u003c[^\u003e\\s]++\u003e)\\s*(?=;|$)",
176
- "captures": {
177
- "1": {
178
- "name": "variable.assignment.codepoint.afm"
179
- },
180
- "2": {
181
- "patterns": [
182
- {
183
- "include": "#hex"
184
- }
185
- ]
186
- }
187
- }
188
- },
189
- {
190
- "name": "meta.character.code.decimal.afm",
191
- "match": "\\G(C)\\s+([-+]?\\d+)\\s*(?=;|$)",
192
- "captures": {
193
- "1": {
194
- "name": "variable.assignment.codepoint.afm"
195
- },
196
- "2": {
197
- "patterns": [
198
- {
199
- "include": "#integer"
200
- }
201
- ]
202
- }
203
- }
204
- },
205
- {
206
- "name": "meta.metric.character.width.afm",
207
- "begin": "(?\u003c=\\s|^|;)(W[01]?|VV)(?=\\s|;|$)",
208
- "end": "(?=;|$)",
209
- "patterns": [
210
- {
211
- "include": "#numbers"
212
- }
213
- ],
214
- "beginCaptures": {
215
- "1": {
216
- "name": "variable.assignment.character-width.afm"
217
- }
218
- }
219
- },
220
- {
221
- "name": "meta.metric.character.width.afm",
222
- "match": "(?\u003c=\\s|^|;)(W[01]?(X|Y))(?:\\s+([-+]?[\\d.]+)\\s*)(?=\\s|$|;)",
223
- "captures": {
224
- "1": {
225
- "name": "variable.assignment.${2:/downcase}-width.afm"
226
- },
227
- "3": {
228
- "patterns": [
229
- {
230
- "include": "#integer"
231
- }
232
- ]
233
- }
234
- }
235
- },
236
- {
237
- "name": "meta.metric.character.name.afm",
238
- "match": "(?\u003c=\\s|^|;)(N)(?:\\s+([^;\\s]+))?\\s*(?=\\s|$|;)",
239
- "captures": {
240
- "1": {
241
- "name": "variable.assignment.character.name.afm"
242
- },
243
- "2": {
244
- "name": "string.unquoted.parameter.identifier.afm"
245
- }
246
- }
247
- },
248
- {
249
- "name": "meta.metric.bounding-box.afm",
250
- "begin": "(?\u003c=\\s|^|;)(B)(?=\\s|$|;)",
251
- "end": "(?=$|;)",
252
- "patterns": [
253
- {
254
- "include": "#numbers"
255
- }
256
- ],
257
- "beginCaptures": {
258
- "1": {
259
- "name": "variable.assignment.metric.afm"
260
- }
261
- }
262
- },
263
- {
264
- "name": "meta.metric.next-ligature.afm",
265
- "begin": "(?\u003c=\\s|^|;)(L)(?=\\s|$|;)",
266
- "end": "(?=$|;)",
267
- "patterns": [
268
- {
269
- "include": "#name"
270
- }
271
- ],
272
- "beginCaptures": {
273
- "1": {
274
- "name": "variable.assignment.metric.afm"
275
- }
276
- }
277
- }
278
- ]
279
- },
280
- "charMetrics": {
281
- "name": "meta.metrics-list.afm",
282
- "begin": "^(StartCharMetrics)(?:\\s+(\\d+))?\\s*$",
283
- "end": "^EndCharMetrics\\s*$",
284
- "patterns": [
285
- {
286
- "include": "#comment"
287
- },
288
- {
289
- "name": "meta.unencoded.character.metrics.afm",
290
- "begin": "^\\s*(?=C\\s+-\\d)",
291
- "end": "$",
292
- "patterns": [
293
- {
294
- "include": "#charMetricInnards"
295
- }
296
- ]
297
- },
298
- {
299
- "name": "meta.character.metrics.afm",
300
- "begin": "^\\s*",
301
- "end": "$",
302
- "patterns": [
303
- {
304
- "include": "#charMetricInnards"
305
- }
306
- ]
307
- }
308
- ],
309
- "beginCaptures": {
310
- "1": {
311
- "name": "keyword.control.start.metrics.afm"
312
- },
313
- "2": {
314
- "name": "constant.numeric.decimal.integer.afm"
315
- }
316
- },
317
- "endCaptures": {
318
- "0": {
319
- "name": "keyword.control.end.metrics.afm"
320
- }
321
- }
322
- },
323
- "comment": {
324
- "contentName": "comment.line.afm",
325
- "begin": "^Comment(?=\\s|$)",
326
- "end": "$",
327
- "beginCaptures": {
328
- "0": {
329
- "name": "keyword.operator.start-comment.afm"
330
- }
331
- }
332
- },
333
- "compositesData": {
334
- "name": "meta.composites.afm",
335
- "begin": "^(StartComposites)(?:\\s+([-+]?\\d+))?\\s*$",
336
- "end": "^EndComposites",
337
- "patterns": [
338
- {
339
- "include": "#comment"
340
- },
341
- {
342
- "name": "meta.composition.afm",
343
- "begin": "^CC(?=\\s|$|;)",
344
- "end": "$",
345
- "patterns": [
346
- {
347
- "include": "#delimiter"
348
- },
349
- {
350
- "match": "\\G\\s+([^;\\s]+)(?:\\s+([-+]?\\d+))?",
351
- "captures": {
352
- "1": {
353
- "name": "string.unquoted.parameter.identifier.afm"
354
- },
355
- "2": {
356
- "patterns": [
357
- {
358
- "include": "#integer"
359
- }
360
- ]
361
- }
362
- }
363
- },
364
- {
365
- "match": "(?\u003c=;|\\s)(PCC)\\s+([^;\\s]+)",
366
- "captures": {
367
- "1": {
368
- "name": "keyword.operator.char-comp.afm"
369
- },
370
- "2": {
371
- "name": "string.unquoted.parameter.identifier.afm"
372
- }
373
- }
374
- },
375
- {
376
- "include": "#numbers"
377
- }
378
- ],
379
- "beginCaptures": {
380
- "0": {
381
- "name": "keyword.operator.char-comp.afm"
382
- }
383
- }
384
- }
385
- ],
386
- "beginCaptures": {
387
- "1": {
388
- "name": "keyword.control.start.metrics.afm"
389
- },
390
- "2": {
391
- "patterns": [
392
- {
393
- "include": "#integer"
394
- }
395
- ]
396
- }
397
- },
398
- "endCaptures": {
399
- "0": {
400
- "name": "keyword.control.end.metrics.afm"
401
- }
402
- }
403
- },
404
- "delimiter": {
405
- "name": "punctuation.delimiter.metrics.semicolon.afm",
406
- "match": ";"
407
- },
408
- "globalInfo": {
409
- "patterns": [
410
- {
411
- "name": "meta.${1:/downcase}-name.afm",
412
- "begin": "^(Font|Full|Family)Name(?=\\s|$)",
413
- "end": "^|$",
414
- "patterns": [
415
- {
416
- "include": "#paramName"
417
- }
418
- ],
419
- "beginCaptures": {
420
- "0": {
421
- "name": "keyword.operator.${1:/downcase}-name.afm"
422
- }
423
- }
424
- },
425
- {
426
- "name": "meta.writing-directions.afm",
427
- "begin": "^MetricsSets(?=\\s|$)",
428
- "end": "^|$",
429
- "patterns": [
430
- {
431
- "include": "#paramInteger"
432
- }
433
- ],
434
- "beginCaptures": {
435
- "0": {
436
- "name": "keyword.operator.metrics-sets.afm"
437
- }
438
- }
439
- },
440
- {
441
- "name": "meta.is-monospaced-font.afm",
442
- "begin": "^IsFixedPitch(?=\\s|$)",
443
- "end": "^|$",
444
- "patterns": [
445
- {
446
- "include": "#paramBoolean"
447
- }
448
- ],
449
- "beginCaptures": {
450
- "0": {
451
- "name": "keyword.operator.is-fixed-pitch.afm"
452
- }
453
- }
454
- },
455
- {
456
- "name": "meta.notice.afm",
457
- "begin": "^Notice(?=\\s|$)",
458
- "end": "^|$",
459
- "patterns": [
460
- {
461
- "include": "#paramString"
462
- }
463
- ],
464
- "beginCaptures": {
465
- "0": {
466
- "name": "keyword.operator.notice.afm"
467
- }
468
- }
469
- },
470
- {
471
- "name": "meta.revision.afm",
472
- "begin": "^Version(?=\\s|$)",
473
- "end": "^|$",
474
- "patterns": [
475
- {
476
- "include": "#paramString"
477
- }
478
- ],
479
- "beginCaptures": {
480
- "0": {
481
- "name": "keyword.operator.version.afm"
482
- }
483
- }
484
- },
485
- {
486
- "name": "meta.weight.afm",
487
- "begin": "^Weight(?=\\s|$)",
488
- "end": "^|$",
489
- "patterns": [
490
- {
491
- "include": "#paramString"
492
- }
493
- ],
494
- "beginCaptures": {
495
- "0": {
496
- "name": "keyword.operator.weight.afm"
497
- }
498
- }
499
- },
500
- {
501
- "name": "meta.italic-angle.afm",
502
- "begin": "^ItalicAngle(?=\\s|$)",
503
- "end": "^|$",
504
- "patterns": [
505
- {
506
- "include": "#paramNumber"
507
- }
508
- ],
509
- "beginCaptures": {
510
- "0": {
511
- "name": "keyword.operator.italic-angle.afm"
512
- }
513
- }
514
- },
515
- {
516
- "name": "meta.bounding-box.afm",
517
- "begin": "^FontBBox(?=\\s|$)",
518
- "end": "^|$",
519
- "patterns": [
520
- {
521
- "include": "#paramNumbers"
522
- }
523
- ],
524
- "beginCaptures": {
525
- "0": {
526
- "name": "keyword.operator.font-bbox.afm"
527
- }
528
- }
529
- },
530
- {
531
- "name": "meta.encoding-scheme.afm",
532
- "begin": "^EncodingScheme(?=\\s|$)",
533
- "end": "^|$",
534
- "patterns": [
535
- {
536
- "include": "#paramString"
537
- }
538
- ],
539
- "beginCaptures": {
540
- "0": {
541
- "name": "keyword.operator.encoding-scheme.afm"
542
- }
543
- }
544
- },
545
- {
546
- "name": "meta.underline-property.${1:/downcase}.afm",
547
- "begin": "^Underline(Position|Thickness)(?=\\s|$)",
548
- "end": "^|$",
549
- "patterns": [
550
- {
551
- "include": "#paramNumber"
552
- }
553
- ],
554
- "beginCaptures": {
555
- "0": {
556
- "name": "keyword.operator.underline-${1:/downcase}.afm"
557
- }
558
- }
559
- },
560
- {
561
- "name": "meta.metric.${1:/downcase}-height.afm",
562
- "begin": "^(Cap|X)Height(?=\\s|$)",
563
- "end": "^|$",
564
- "patterns": [
565
- {
566
- "include": "#paramNumber"
567
- }
568
- ],
569
- "beginCaptures": {
570
- "0": {
571
- "name": "keyword.operator.${1:/downcase}-height.afm"
572
- }
573
- }
574
- },
575
- {
576
- "name": "meta.metric.${1:/downcase}.afm",
577
- "begin": "^(Descender|Ascender)(?=\\s|$)",
578
- "end": "^|$",
579
- "patterns": [
580
- {
581
- "include": "#paramNumber"
582
- }
583
- ],
584
- "beginCaptures": {
585
- "0": {
586
- "name": "keyword.operator.${1:/downcase}.afm"
587
- }
588
- }
589
- },
590
- {
591
- "name": "meta.metric.${1:/downcase}.afm",
592
- "begin": "^(CharacterSet|AxisType|AxisLabel)(?=\\s|$)",
593
- "end": "^|$",
594
- "patterns": [
595
- {
596
- "include": "#paramString"
597
- }
598
- ],
599
- "beginCaptures": {
600
- "0": {
601
- "name": "keyword.operator.metadata.afm"
602
- }
603
- }
604
- },
605
- {
606
- "name": "meta.metadata.${1:/downcase}.afm",
607
- "begin": "^(Characters|EscChar|MappingScheme)(?=\\s|$)",
608
- "end": "^|$",
609
- "patterns": [
610
- {
611
- "include": "#paramNumber"
612
- }
613
- ],
614
- "beginCaptures": {
615
- "1": {
616
- "name": "keyword.operator.metadata.afm"
617
- }
618
- }
619
- },
620
- {
621
- "name": "meta.metadata.${1:/downcase}.afm",
622
- "begin": "^(IsBaseFont|IsFixedV|IsCIDFont)(?=\\s|$)",
623
- "end": "^|$",
624
- "patterns": [
625
- {
626
- "include": "#paramBoolean"
627
- }
628
- ],
629
- "beginCaptures": {
630
- "1": {
631
- "name": "keyword.operator.metadata.afm"
632
- }
633
- }
634
- },
635
- {
636
- "name": "meta.metadata.${1:/downcase}.afm",
637
- "begin": "^(CharWidth|VVector|Masters|Axes|Std[HV]W)(?=\\s|$)",
638
- "end": "^|$",
639
- "patterns": [
640
- {
641
- "include": "#paramNumbers"
642
- }
643
- ],
644
- "beginCaptures": {
645
- "1": {
646
- "name": "keyword.operator.metadata.afm"
647
- }
648
- }
649
- },
650
- {
651
- "name": "meta.metadata.${1:/downcase}.afm",
652
- "begin": "^(WeightVector|BlendDesign(Positions|Map)|BlendAxisTypes)(?=\\s|$)",
653
- "end": "^|$",
654
- "patterns": [
655
- {
656
- "include": "#array"
657
- },
658
- {
659
- "include": "#numbers"
660
- },
661
- {
662
- "include": "#psLiteral"
663
- }
664
- ],
665
- "beginCaptures": {
666
- "1": {
667
- "name": "keyword.operator.metadata.afm"
668
- }
669
- }
670
- }
671
- ]
672
- },
673
- "hex": {
674
- "name": "constant.numeric.integer.hexadecimal.afm",
675
- "match": "(\u003c)(?:[A-Fa-f0-9]+|([^\u003e\\s]+))(\u003e)",
676
- "captures": {
677
- "1": {
678
- "name": "punctuation.definition.hex.bracket.angle.begin.afm"
679
- },
680
- "2": {
681
- "name": "invalid.illegal.syntax.bad-characters.afm"
682
- },
683
- "3": {
684
- "name": "punctuation.definition.hex.bracket.angle.end.afm"
685
- }
686
- }
687
- },
688
- "integer": {
689
- "patterns": [
690
- {
691
- "name": "constant.numeric.integer.octal.afm",
692
- "match": "(?\u003c!\\w)[-+]?(?=0)\\d+"
693
- },
694
- {
695
- "name": "constant.numeric.integer.decimal.afm",
696
- "match": "(?\u003c!\\w)[-+]?\\d+"
697
- }
698
- ]
699
- },
700
- "kerningData": {
701
- "name": "meta.kerning-data.afm",
702
- "begin": "^(StartKernData)\\s*$",
703
- "end": "^EndKernData\\s*$",
704
- "patterns": [
705
- {
706
- "begin": "^(StartTrackKern)(?:\\s+([-+]?\\d+))?\\s*$",
707
- "end": "^EndTrackKern\\s*$",
708
- "patterns": [
709
- {
710
- "include": "#comment"
711
- },
712
- {
713
- "include": "#kerningTrack"
714
- }
715
- ],
716
- "beginCaptures": {
717
- "1": {
718
- "name": "keyword.control.start.metrics.afm"
719
- },
720
- "2": {
721
- "patterns": [
722
- {
723
- "include": "#integer"
724
- }
725
- ]
726
- }
727
- },
728
- "endCaptures": {
729
- "0": {
730
- "name": "keyword.control.end.metrics.afm"
731
- }
732
- }
733
- },
734
- {
735
- "begin": "^(StartKernPairs[0-1]?)(?:\\s+([-+]?\\d+))?\\s*$",
736
- "end": "^EndKernPairs\\s*$",
737
- "patterns": [
738
- {
739
- "include": "#comment"
740
- },
741
- {
742
- "include": "#kerningPairs"
743
- }
744
- ],
745
- "beginCaptures": {
746
- "1": {
747
- "name": "keyword.control.start.metrics.afm"
748
- },
749
- "2": {
750
- "patterns": [
751
- {
752
- "include": "#integer"
753
- }
754
- ]
755
- }
756
- },
757
- "endCaptures": {
758
- "0": {
759
- "name": "keyword.control.end.metrics.afm"
760
- }
761
- }
762
- }
763
- ],
764
- "beginCaptures": {
765
- "1": {
766
- "name": "keyword.control.start.metrics.afm"
767
- }
768
- },
769
- "endCaptures": {
770
- "0": {
771
- "name": "keyword.control.end.metrics.afm"
772
- }
773
- }
774
- },
775
- "kerningPairs": {
776
- "patterns": [
777
- {
778
- "name": "meta.kerning-pair.by-codepoint.afm",
779
- "begin": "^KPH(?=\\s|$)",
780
- "end": "^|$",
781
- "patterns": [
782
- {
783
- "match": "\\G((?:\\s+\u003c[^\u003e\\s]*\u003e)+)\\s+",
784
- "captures": {
785
- "1": {
786
- "patterns": [
787
- {
788
- "include": "#hex"
789
- }
790
- ]
791
- }
792
- }
793
- },
794
- {
795
- "include": "#numbers"
796
- }
797
- ],
798
- "beginCaptures": {
799
- "0": {
800
- "name": "keyword.operator.kern-pair.afm"
801
- }
802
- }
803
- },
804
- {
805
- "name": "meta.kerning-pair.by-name.afm",
806
- "begin": "^KP[XY]?(?=\\s|$)",
807
- "end": "^|$",
808
- "patterns": [
809
- {
810
- "match": "\\G((?:\\s+\\S+){1,2})",
811
- "captures": {
812
- "1": {
813
- "patterns": [
814
- {
815
- "include": "#name"
816
- }
817
- ]
818
- }
819
- }
820
- },
821
- {
822
- "include": "#numbers"
823
- }
824
- ],
825
- "beginCaptures": {
826
- "0": {
827
- "name": "keyword.operator.kern-pair.afm"
828
- }
829
- }
830
- }
831
- ]
832
- },
833
- "kerningTrack": {
834
- "begin": "^(TrackKern)(?=\\s|$)",
835
- "end": "^|$",
836
- "patterns": [
837
- {
838
- "include": "#numbers"
839
- }
840
- ],
841
- "beginCaptures": {
842
- "1": {
843
- "name": "keyword.operator.track-kern.afm"
844
- }
845
- }
846
- },
847
- "main": {
848
- "patterns": [
849
- {
850
- "include": "#comment"
851
- },
852
- {
853
- "include": "#real"
854
- },
855
- {
856
- "include": "#integer"
857
- },
858
- {
859
- "include": "#array"
860
- },
861
- {
862
- "include": "#globalInfo"
863
- },
864
- {
865
- "include": "#kerningData"
866
- },
867
- {
868
- "include": "#charMetrics"
869
- },
870
- {
871
- "include": "#compositesData"
872
- },
873
- {
874
- "include": "#amfmSpecific"
875
- },
876
- {
877
- "include": "#direction"
878
- },
879
- {
880
- "include": "#primaryFonts"
881
- },
882
- {
883
- "include": "#reserved"
884
- },
885
- {
886
- "include": "#userDefined"
887
- }
888
- ]
889
- },
890
- "name": {
891
- "name": "string.unquoted.parameter.identifier.afm",
892
- "match": "[^;\\s]+"
893
- },
894
- "numbers": {
895
- "patterns": [
896
- {
897
- "include": "#real"
898
- },
899
- {
900
- "include": "#integer"
901
- }
902
- ]
903
- },
904
- "paramBoolean": {
905
- "patterns": [
906
- {
907
- "match": "\\G\\s+(true|false)\\s*$",
908
- "captures": {
909
- "1": {
910
- "patterns": [
911
- {
912
- "include": "#boolean"
913
- }
914
- ]
915
- }
916
- }
917
- },
918
- {
919
- "include": "#paramInvalid"
920
- }
921
- ]
922
- },
923
- "paramInteger": {
924
- "patterns": [
925
- {
926
- "match": "\\G\\s+([-+]?[0-9]+)\\s*$",
927
- "captures": {
928
- "1": {
929
- "patterns": [
930
- {
931
- "include": "#integer"
932
- }
933
- ]
934
- }
935
- }
936
- },
937
- {
938
- "include": "#paramInvalid"
939
- }
940
- ]
941
- },
942
- "paramInvalid": {
943
- "match": "\\G\\s+(\\S+.+)\\s*$",
944
- "captures": {
945
- "1": {
946
- "name": "invalid.illegal.syntax.type.afm"
947
- }
948
- }
949
- },
950
- "paramName": {
951
- "match": "\\G\\s+(\\S+.*)\\s*$",
952
- "captures": {
953
- "1": {
954
- "name": "entity.name.identifier.afm"
955
- }
956
- }
957
- },
958
- "paramNumber": {
959
- "patterns": [
960
- {
961
- "match": "\\G\\s+([-+]?(?:\\d*\\.\\d+|\\d+))\\s*$",
962
- "captures": {
963
- "1": {
964
- "patterns": [
965
- {
966
- "include": "#real"
967
- },
968
- {
969
- "include": "#integer"
970
- }
971
- ]
972
- }
973
- }
974
- },
975
- {
976
- "include": "#paramInvalid"
977
- }
978
- ]
979
- },
980
- "paramNumbers": {
981
- "patterns": [
982
- {
983
- "include": "#real"
984
- },
985
- {
986
- "include": "#integer"
987
- },
988
- {
989
- "name": "invalid.illegal.syntax.type.afm",
990
- "match": "(?![-+0-9.])\\S+"
991
- }
992
- ]
993
- },
994
- "paramString": {
995
- "name": "variable.assignment.afm",
996
- "match": "\\G\\s+(\\S.*)\\s*$",
997
- "captures": {
998
- "1": {
999
- "name": "string.unquoted.afm"
1000
- }
1001
- }
1002
- },
1003
- "paramVar": {
1004
- "match": "\\G\\s+(\\S.*)\\s*$",
1005
- "captures": {
1006
- "1": {
1007
- "name": "variable.assignment.afm"
1008
- }
1009
- }
1010
- },
1011
- "primaryFontLine": {
1012
- "patterns": [
1013
- {
1014
- "name": "invalid.illegal.syntax.empty-field.afm",
1015
- "match": "(?\u003c=^|\\s|;)(?:PC|PL|PN)(?=\\s*;)"
1016
- },
1017
- {
1018
- "name": "meta.primary-coordinates.afm",
1019
- "begin": "(?\u003c=^|\\s|;)PC(?=\\s|$)",
1020
- "end": "(?=;|$|[A-Z])",
1021
- "patterns": [
1022
- {
1023
- "include": "#real"
1024
- },
1025
- {
1026
- "include": "#integer"
1027
- }
1028
- ],
1029
- "beginCaptures": {
1030
- "0": {
1031
- "name": "variable.assignment.metadata.afm"
1032
- }
1033
- }
1034
- },
1035
- {
1036
- "begin": "(?\u003c=\\s|;)(P[LN])\\s+",
1037
- "end": "(?=;|$)",
1038
- "patterns": [
1039
- {
1040
- "include": "#bracketedString"
1041
- },
1042
- {
1043
- "include": "#delimiter"
1044
- }
1045
- ],
1046
- "beginCaptures": {
1047
- "1": {
1048
- "name": "variable.assignment.metadata.afm"
1049
- }
1050
- }
1051
- },
1052
- {
1053
- "include": "#delimiter"
1054
- }
1055
- ]
1056
- },
1057
- "primaryFonts": {
1058
- "name": "meta.primary-fonts.afm",
1059
- "begin": "^(StartPrimaryFonts)(?:\\s+([-+]?\\d+))?\\s*$",
1060
- "end": "\\bEndPrimaryFonts(?=\\s|$)|(?!P)(?=\\w)",
1061
- "patterns": [
1062
- {
1063
- "include": "#comment"
1064
- },
1065
- {
1066
- "include": "#delimiter"
1067
- },
1068
- {
1069
- "include": "#primaryFontLine"
1070
- }
1071
- ],
1072
- "beginCaptures": {
1073
- "1": {
1074
- "name": "keyword.control.start.font-list.afm"
1075
- },
1076
- "2": {
1077
- "patterns": [
1078
- {
1079
- "include": "#integer"
1080
- }
1081
- ]
1082
- }
1083
- },
1084
- "endCaptures": {
1085
- "0": {
1086
- "name": "keyword.control.end.font-list.afm"
1087
- }
1088
- }
1089
- },
1090
- "psLiteral": {
1091
- "name": "support.language.constant.literal.afm",
1092
- "match": "(/)[^\\s\\[\\];]+",
1093
- "captures": {
1094
- "1": {
1095
- "name": "punctuation.definition.literal.slash.afm"
1096
- }
1097
- }
1098
- },
1099
- "real": {
1100
- "name": "constant.numeric.float.afm",
1101
- "match": "(?\u003c!\\w)[-+]?\\d*\\.\\d+"
1102
- },
1103
- "reserved": {
1104
- "match": "^([A-Z][A-Za-z0-9]+)(?=\\s)(.*)$",
1105
- "captures": {
1106
- "1": {
1107
- "name": "variable.other.reserved.afm"
1108
- },
1109
- "2": {
1110
- "patterns": [
1111
- {
1112
- "include": "#bestGuessHighlights"
1113
- }
1114
- ]
1115
- }
1116
- }
1117
- },
1118
- "resources": {
1119
- "patterns": [
1120
- {
1121
- "name": "meta.metrics.file-resource.afm",
1122
- "begin": "^(StartFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$",
1123
- "end": "^(EndFontMetrics)\\s*$",
1124
- "patterns": [
1125
- {
1126
- "include": "#main"
1127
- }
1128
- ],
1129
- "beginCaptures": {
1130
- "1": {
1131
- "name": "keyword.control.start.file.afm"
1132
- },
1133
- "2": {
1134
- "name": "constant.numeric.float.decimal.version-number.afm"
1135
- }
1136
- },
1137
- "endCaptures": {
1138
- "1": {
1139
- "name": "keyword.control.end.file.afm"
1140
- }
1141
- }
1142
- },
1143
- {
1144
- "name": "meta.composite.metrics.file-resource.afm",
1145
- "begin": "^(StartCompFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$",
1146
- "end": "^(EndCompFontMetrics)\\s*$",
1147
- "patterns": [
1148
- {
1149
- "include": "#main"
1150
- }
1151
- ],
1152
- "beginCaptures": {
1153
- "1": {
1154
- "name": "keyword.control.start.file.afm"
1155
- },
1156
- "2": {
1157
- "name": "constant.numeric.float.decimal.version-number.afm"
1158
- }
1159
- },
1160
- "endCaptures": {
1161
- "1": {
1162
- "name": "keyword.control.end.file.afm"
1163
- }
1164
- }
1165
- },
1166
- {
1167
- "name": "meta.master.metrics.file-resource.afm",
1168
- "begin": "^(StartMasterFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$",
1169
- "end": "^(EndMasterFontMetrics)\\s*$",
1170
- "patterns": [
1171
- {
1172
- "include": "#main"
1173
- }
1174
- ],
1175
- "beginCaptures": {
1176
- "1": {
1177
- "name": "keyword.control.start.file.afm"
1178
- },
1179
- "2": {
1180
- "name": "constant.numeric.float.decimal.version-number.afm"
1181
- }
1182
- },
1183
- "endCaptures": {
1184
- "1": {
1185
- "name": "keyword.control.end.file.afm"
1186
- }
1187
- }
1188
- }
1189
- ]
1190
- },
1191
- "userDefined": {
1192
- "match": "^([a-z][A-Za-z0-9]+)(?=\\s)(.*)$",
1193
- "captures": {
1194
- "1": {
1195
- "name": "variable.other.custom.afm"
1196
- },
1197
- "2": {
1198
- "patterns": [
1199
- {
1200
- "include": "#bestGuessHighlights"
1201
- }
1202
- ]
1203
- }
1204
- }
1205
- }
1206
- }
1207
- }
1
+ {"name":"Adobe Font Metrics","scopeName":"source.afm","patterns":[{"include":"#resources"},{"include":"#main"}],"repository":{"amfmSpecific":{"name":"meta.${2:/downcase}.afm","begin":"^(Start(Descendent|Direction|Axis|Master))(?:\\s+(\\S.*))?","end":"^End\\2\\s*$","patterns":[{"include":"#main"}],"beginCaptures":{"1":{"name":"keyword.control.start.${2:/downcase}.afm"},"3":{"patterns":[{"include":"#hex"},{"include":"#integer"}]}},"endCaptures":{"0":{"name":"keyword.control.end.${2:/downcase}.afm"}}},"array":{"begin":"\\[","end":"\\]|(?=$)","patterns":[{"include":"#array"},{"include":"#numbers"},{"include":"#psLiteral"}],"beginCaptures":{"0":{"name":"punctuation.definition.list.bracket.square.begin.afm"}},"endCaptures":{"0":{"name":"punctuation.definition.list.bracket.square.end.afm"}}},"bestGuessHighlights":{"patterns":[{"match":"\\G\\s*(true|false)(?=\\s|$)","captures":{"1":{"patterns":[{"include":"#boolean"}]}}},{"match":"^(?:\\s+[-+]?[.\\d]+)+\\s*$","captures":{"0":{"patterns":[{"include":"#numbers"}]}}},{"match":"^\\s*(\\[.*\\])\\s*$","captures":{"0":{"patterns":[{"include":"#array"},{"include":"#main"}]}}},{"match":"^\\s*\u003c[A-Fa-f0-9]+\u003e\\s*$","captures":{"0":{"patterns":[{"include":"#hex"}]}}},{"match":"(?:(?:^|\\s+)/[^\\s\\[\\];]+)+\\s*$","captures":{"0":{"patterns":[{"include":"#psLiteral"}]}}},{"name":"variable.assignment.afm","match":"^.+$","captures":{"0":{"name":"string.unquoted.afm"}}}]},"boolean":{"name":"constant.language.boolean.$1.afm","match":"(?\u003c!\\w)(true|false)(?!\\w)"},"bracketedString":{"name":"string.quoted.double.bracketed.afm","begin":"\\(","end":"\\)|(?=$)","patterns":[{"include":"#bracketedString"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.round.begin.afm"}},"endCaptures":{"0":{"name":"punctuation.definition.bracket.round.end.afm"}}},"charMetricInnards":{"patterns":[{"include":"#delimiter"},{"name":"meta.character.code.hexadecimal.afm","match":"\\G(CH)\\s+(\u003c[^\u003e\\s]++\u003e)\\s*(?=;|$)","captures":{"1":{"name":"variable.assignment.codepoint.afm"},"2":{"patterns":[{"include":"#hex"}]}}},{"name":"meta.character.code.decimal.afm","match":"\\G(C)\\s+([-+]?\\d+)\\s*(?=;|$)","captures":{"1":{"name":"variable.assignment.codepoint.afm"},"2":{"patterns":[{"include":"#integer"}]}}},{"name":"meta.metric.character.width.afm","begin":"(?\u003c=\\s|^|;)(W[01]?|VV)(?=\\s|;|$)","end":"(?=;|$)","patterns":[{"include":"#numbers"}],"beginCaptures":{"1":{"name":"variable.assignment.character-width.afm"}}},{"name":"meta.metric.character.width.afm","match":"(?\u003c=\\s|^|;)(W[01]?(X|Y))(?:\\s+([-+]?[\\d.]+)\\s*)(?=\\s|$|;)","captures":{"1":{"name":"variable.assignment.${2:/downcase}-width.afm"},"3":{"patterns":[{"include":"#integer"}]}}},{"name":"meta.metric.character.name.afm","match":"(?\u003c=\\s|^|;)(N)(?:\\s+([^;\\s]+))?\\s*(?=\\s|$|;)","captures":{"1":{"name":"variable.assignment.character.name.afm"},"2":{"name":"string.unquoted.parameter.identifier.afm"}}},{"name":"meta.metric.bounding-box.afm","begin":"(?\u003c=\\s|^|;)(B)(?=\\s|$|;)","end":"(?=$|;)","patterns":[{"include":"#numbers"}],"beginCaptures":{"1":{"name":"variable.assignment.metric.afm"}}},{"name":"meta.metric.next-ligature.afm","begin":"(?\u003c=\\s|^|;)(L)(?=\\s|$|;)","end":"(?=$|;)","patterns":[{"include":"#name"}],"beginCaptures":{"1":{"name":"variable.assignment.metric.afm"}}}]},"charMetrics":{"name":"meta.metrics-list.afm","begin":"^(StartCharMetrics)(?:\\s+(\\d+))?\\s*$","end":"^EndCharMetrics\\s*$","patterns":[{"include":"#comment"},{"name":"meta.unencoded.character.metrics.afm","begin":"^\\s*(?=C\\s+-\\d)","end":"$","patterns":[{"include":"#charMetricInnards"}]},{"name":"meta.character.metrics.afm","begin":"^\\s*","end":"$","patterns":[{"include":"#charMetricInnards"}]}],"beginCaptures":{"1":{"name":"keyword.control.start.metrics.afm"},"2":{"name":"constant.numeric.decimal.integer.afm"}},"endCaptures":{"0":{"name":"keyword.control.end.metrics.afm"}}},"comment":{"contentName":"comment.line.afm","begin":"^Comment(?=\\s|$)","end":"$","beginCaptures":{"0":{"name":"keyword.operator.start-comment.afm"}}},"compositesData":{"name":"meta.composites.afm","begin":"^(StartComposites)(?:\\s+([-+]?\\d+))?\\s*$","end":"^EndComposites","patterns":[{"include":"#comment"},{"name":"meta.composition.afm","begin":"^CC(?=\\s|$|;)","end":"$","patterns":[{"include":"#delimiter"},{"match":"\\G\\s+([^;\\s]+)(?:\\s+([-+]?\\d+))?","captures":{"1":{"name":"string.unquoted.parameter.identifier.afm"},"2":{"patterns":[{"include":"#integer"}]}}},{"match":"(?\u003c=;|\\s)(PCC)\\s+([^;\\s]+)","captures":{"1":{"name":"keyword.operator.char-comp.afm"},"2":{"name":"string.unquoted.parameter.identifier.afm"}}},{"include":"#numbers"}],"beginCaptures":{"0":{"name":"keyword.operator.char-comp.afm"}}}],"beginCaptures":{"1":{"name":"keyword.control.start.metrics.afm"},"2":{"patterns":[{"include":"#integer"}]}},"endCaptures":{"0":{"name":"keyword.control.end.metrics.afm"}}},"delimiter":{"name":"punctuation.delimiter.metrics.semicolon.afm","match":";"},"globalInfo":{"patterns":[{"name":"meta.${1:/downcase}-name.afm","begin":"^(Font|Full|Family)Name(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramName"}],"beginCaptures":{"0":{"name":"keyword.operator.${1:/downcase}-name.afm"}}},{"name":"meta.writing-directions.afm","begin":"^MetricsSets(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramInteger"}],"beginCaptures":{"0":{"name":"keyword.operator.metrics-sets.afm"}}},{"name":"meta.is-monospaced-font.afm","begin":"^IsFixedPitch(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramBoolean"}],"beginCaptures":{"0":{"name":"keyword.operator.is-fixed-pitch.afm"}}},{"name":"meta.notice.afm","begin":"^Notice(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramString"}],"beginCaptures":{"0":{"name":"keyword.operator.notice.afm"}}},{"name":"meta.revision.afm","begin":"^Version(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramString"}],"beginCaptures":{"0":{"name":"keyword.operator.version.afm"}}},{"name":"meta.weight.afm","begin":"^Weight(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramString"}],"beginCaptures":{"0":{"name":"keyword.operator.weight.afm"}}},{"name":"meta.italic-angle.afm","begin":"^ItalicAngle(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramNumber"}],"beginCaptures":{"0":{"name":"keyword.operator.italic-angle.afm"}}},{"name":"meta.bounding-box.afm","begin":"^FontBBox(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramNumbers"}],"beginCaptures":{"0":{"name":"keyword.operator.font-bbox.afm"}}},{"name":"meta.encoding-scheme.afm","begin":"^EncodingScheme(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramString"}],"beginCaptures":{"0":{"name":"keyword.operator.encoding-scheme.afm"}}},{"name":"meta.underline-property.${1:/downcase}.afm","begin":"^Underline(Position|Thickness)(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramNumber"}],"beginCaptures":{"0":{"name":"keyword.operator.underline-${1:/downcase}.afm"}}},{"name":"meta.metric.${1:/downcase}-height.afm","begin":"^(Cap|X)Height(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramNumber"}],"beginCaptures":{"0":{"name":"keyword.operator.${1:/downcase}-height.afm"}}},{"name":"meta.metric.${1:/downcase}.afm","begin":"^(Descender|Ascender)(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramNumber"}],"beginCaptures":{"0":{"name":"keyword.operator.${1:/downcase}.afm"}}},{"name":"meta.metric.${1:/downcase}.afm","begin":"^(CharacterSet|AxisType|AxisLabel)(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramString"}],"beginCaptures":{"0":{"name":"keyword.operator.metadata.afm"}}},{"name":"meta.metadata.${1:/downcase}.afm","begin":"^(Characters|EscChar|MappingScheme)(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramNumber"}],"beginCaptures":{"1":{"name":"keyword.operator.metadata.afm"}}},{"name":"meta.metadata.${1:/downcase}.afm","begin":"^(IsBaseFont|IsFixedV|IsCIDFont)(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramBoolean"}],"beginCaptures":{"1":{"name":"keyword.operator.metadata.afm"}}},{"name":"meta.metadata.${1:/downcase}.afm","begin":"^(CharWidth|VVector|Masters|Axes|Std[HV]W)(?=\\s|$)","end":"^|$","patterns":[{"include":"#paramNumbers"}],"beginCaptures":{"1":{"name":"keyword.operator.metadata.afm"}}},{"name":"meta.metadata.${1:/downcase}.afm","begin":"^(WeightVector|BlendDesign(Positions|Map)|BlendAxisTypes)(?=\\s|$)","end":"^|$","patterns":[{"include":"#array"},{"include":"#numbers"},{"include":"#psLiteral"}],"beginCaptures":{"1":{"name":"keyword.operator.metadata.afm"}}}]},"hex":{"name":"constant.numeric.integer.hexadecimal.afm","match":"(\u003c)(?:[A-Fa-f0-9]+|([^\u003e\\s]+))(\u003e)","captures":{"1":{"name":"punctuation.definition.hex.bracket.angle.begin.afm"},"2":{"name":"invalid.illegal.syntax.bad-characters.afm"},"3":{"name":"punctuation.definition.hex.bracket.angle.end.afm"}}},"integer":{"patterns":[{"name":"constant.numeric.integer.octal.afm","match":"(?\u003c!\\w)[-+]?(?=0)\\d+"},{"name":"constant.numeric.integer.decimal.afm","match":"(?\u003c!\\w)[-+]?\\d+"}]},"kerningData":{"name":"meta.kerning-data.afm","begin":"^(StartKernData)\\s*$","end":"^EndKernData\\s*$","patterns":[{"begin":"^(StartTrackKern)(?:\\s+([-+]?\\d+))?\\s*$","end":"^EndTrackKern\\s*$","patterns":[{"include":"#comment"},{"include":"#kerningTrack"}],"beginCaptures":{"1":{"name":"keyword.control.start.metrics.afm"},"2":{"patterns":[{"include":"#integer"}]}},"endCaptures":{"0":{"name":"keyword.control.end.metrics.afm"}}},{"begin":"^(StartKernPairs[0-1]?)(?:\\s+([-+]?\\d+))?\\s*$","end":"^EndKernPairs\\s*$","patterns":[{"include":"#comment"},{"include":"#kerningPairs"}],"beginCaptures":{"1":{"name":"keyword.control.start.metrics.afm"},"2":{"patterns":[{"include":"#integer"}]}},"endCaptures":{"0":{"name":"keyword.control.end.metrics.afm"}}}],"beginCaptures":{"1":{"name":"keyword.control.start.metrics.afm"}},"endCaptures":{"0":{"name":"keyword.control.end.metrics.afm"}}},"kerningPairs":{"patterns":[{"name":"meta.kerning-pair.by-codepoint.afm","begin":"^KPH(?=\\s|$)","end":"^|$","patterns":[{"match":"\\G((?:\\s+\u003c[^\u003e\\s]*\u003e)+)\\s+","captures":{"1":{"patterns":[{"include":"#hex"}]}}},{"include":"#numbers"}],"beginCaptures":{"0":{"name":"keyword.operator.kern-pair.afm"}}},{"name":"meta.kerning-pair.by-name.afm","begin":"^KP[XY]?(?=\\s|$)","end":"^|$","patterns":[{"match":"\\G((?:\\s+\\S+){1,2})","captures":{"1":{"patterns":[{"include":"#name"}]}}},{"include":"#numbers"}],"beginCaptures":{"0":{"name":"keyword.operator.kern-pair.afm"}}}]},"kerningTrack":{"begin":"^(TrackKern)(?=\\s|$)","end":"^|$","patterns":[{"include":"#numbers"}],"beginCaptures":{"1":{"name":"keyword.operator.track-kern.afm"}}},"main":{"patterns":[{"include":"#comment"},{"include":"#real"},{"include":"#integer"},{"include":"#array"},{"include":"#globalInfo"},{"include":"#kerningData"},{"include":"#charMetrics"},{"include":"#compositesData"},{"include":"#amfmSpecific"},{"include":"#direction"},{"include":"#primaryFonts"},{"include":"#reserved"},{"include":"#userDefined"}]},"name":{"name":"string.unquoted.parameter.identifier.afm","match":"[^;\\s]+"},"numbers":{"patterns":[{"include":"#real"},{"include":"#integer"}]},"paramBoolean":{"patterns":[{"match":"\\G\\s+(true|false)\\s*$","captures":{"1":{"patterns":[{"include":"#boolean"}]}}},{"include":"#paramInvalid"}]},"paramInteger":{"patterns":[{"match":"\\G\\s+([-+]?[0-9]+)\\s*$","captures":{"1":{"patterns":[{"include":"#integer"}]}}},{"include":"#paramInvalid"}]},"paramInvalid":{"match":"\\G\\s+(\\S+.+)\\s*$","captures":{"1":{"name":"invalid.illegal.syntax.type.afm"}}},"paramName":{"match":"\\G\\s+(\\S+.*)\\s*$","captures":{"1":{"name":"entity.name.identifier.afm"}}},"paramNumber":{"patterns":[{"match":"\\G\\s+([-+]?(?:\\d*\\.\\d+|\\d+))\\s*$","captures":{"1":{"patterns":[{"include":"#real"},{"include":"#integer"}]}}},{"include":"#paramInvalid"}]},"paramNumbers":{"patterns":[{"include":"#real"},{"include":"#integer"},{"name":"invalid.illegal.syntax.type.afm","match":"(?![-+0-9.])\\S+"}]},"paramString":{"name":"variable.assignment.afm","match":"\\G\\s+(\\S.*)\\s*$","captures":{"1":{"name":"string.unquoted.afm"}}},"paramVar":{"match":"\\G\\s+(\\S.*)\\s*$","captures":{"1":{"name":"variable.assignment.afm"}}},"primaryFontLine":{"patterns":[{"name":"invalid.illegal.syntax.empty-field.afm","match":"(?\u003c=^|\\s|;)(?:PC|PL|PN)(?=\\s*;)"},{"name":"meta.primary-coordinates.afm","begin":"(?\u003c=^|\\s|;)PC(?=\\s|$)","end":"(?=;|$|[A-Z])","patterns":[{"include":"#real"},{"include":"#integer"}],"beginCaptures":{"0":{"name":"variable.assignment.metadata.afm"}}},{"begin":"(?\u003c=\\s|;)(P[LN])\\s+","end":"(?=;|$)","patterns":[{"include":"#bracketedString"},{"include":"#delimiter"}],"beginCaptures":{"1":{"name":"variable.assignment.metadata.afm"}}},{"include":"#delimiter"}]},"primaryFonts":{"name":"meta.primary-fonts.afm","begin":"^(StartPrimaryFonts)(?:\\s+([-+]?\\d+))?\\s*$","end":"\\bEndPrimaryFonts(?=\\s|$)|(?!P)(?=\\w)","patterns":[{"include":"#comment"},{"include":"#delimiter"},{"include":"#primaryFontLine"}],"beginCaptures":{"1":{"name":"keyword.control.start.font-list.afm"},"2":{"patterns":[{"include":"#integer"}]}},"endCaptures":{"0":{"name":"keyword.control.end.font-list.afm"}}},"psLiteral":{"name":"support.language.constant.literal.afm","match":"(/)[^\\s\\[\\];]+","captures":{"1":{"name":"punctuation.definition.literal.slash.afm"}}},"real":{"name":"constant.numeric.float.afm","match":"(?\u003c!\\w)[-+]?\\d*\\.\\d+"},"reserved":{"match":"^([A-Z][A-Za-z0-9]+)(?=\\s)(.*)$","captures":{"1":{"name":"variable.other.reserved.afm"},"2":{"patterns":[{"include":"#bestGuessHighlights"}]}}},"resources":{"patterns":[{"name":"meta.metrics.file-resource.afm","begin":"^(StartFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$","end":"^(EndFontMetrics)\\s*$","patterns":[{"include":"#main"}],"beginCaptures":{"1":{"name":"keyword.control.start.file.afm"},"2":{"name":"constant.numeric.float.decimal.version-number.afm"}},"endCaptures":{"1":{"name":"keyword.control.end.file.afm"}}},{"name":"meta.composite.metrics.file-resource.afm","begin":"^(StartCompFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$","end":"^(EndCompFontMetrics)\\s*$","patterns":[{"include":"#main"}],"beginCaptures":{"1":{"name":"keyword.control.start.file.afm"},"2":{"name":"constant.numeric.float.decimal.version-number.afm"}},"endCaptures":{"1":{"name":"keyword.control.end.file.afm"}}},{"name":"meta.master.metrics.file-resource.afm","begin":"^(StartMasterFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$","end":"^(EndMasterFontMetrics)\\s*$","patterns":[{"include":"#main"}],"beginCaptures":{"1":{"name":"keyword.control.start.file.afm"},"2":{"name":"constant.numeric.float.decimal.version-number.afm"}},"endCaptures":{"1":{"name":"keyword.control.end.file.afm"}}}]},"userDefined":{"match":"^([a-z][A-Za-z0-9]+)(?=\\s)(.*)$","captures":{"1":{"name":"variable.other.custom.afm"},"2":{"patterns":[{"include":"#bestGuessHighlights"}]}}}}}