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,27 +1,21 @@
1
1
  {
2
- "fileTypes": [
3
- "nc",
4
- "h"
5
- ],
6
- "firstLineMatch": "-[*]-( Mode:)? nesC -[*]-",
7
2
  "name": "nesC",
3
+ "scopeName": "source.nesc",
8
4
  "patterns": [
9
5
  {
10
6
  "include": "source.c"
11
7
  },
12
8
  {
13
- "match": "\\b(abstract|as|async|atomic|call|command|components|configuration|event|implementation|includes|interface|generic|module|new|norace|post|provides|signal|task|uses|nx_struct)\\b",
14
- "name": "keyword.control.nesc"
9
+ "name": "keyword.control.nesc",
10
+ "match": "\\b(abstract|as|async|atomic|call|command|components|configuration|event|implementation|includes|interface|generic|module|new|norace|post|provides|signal|task|uses|nx_struct)\\b"
15
11
  },
16
12
  {
17
- "match": "\\b(result_t|error_t|nx_uint8_t|nx_uint16_t|nx_uint32_t|nx_int8_t|nx_int16_t|nx_int32_t|message_t|void)\\b",
18
- "name": "storage.type.nesc"
13
+ "name": "storage.type.nesc",
14
+ "match": "\\b(result_t|error_t|nx_uint8_t|nx_uint16_t|nx_uint32_t|nx_int8_t|nx_int16_t|nx_int32_t|message_t|void)\\b"
19
15
  },
20
16
  {
21
- "match": "\\b(SUCCESS|FAIL)\\b",
22
- "name": "constant.language.nesc"
17
+ "name": "constant.language.nesc",
18
+ "match": "\\b(SUCCESS|FAIL)\\b"
23
19
  }
24
- ],
25
- "scopeName": "source.nesc",
26
- "uuid": "3EC088FE-8C4B-4065-B895-3B32204A87C3"
27
- }
20
+ ]
21
+ }
@@ -1,13 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "axs.erb",
4
- "axi.erb"
5
- ],
6
- "firstLineMatch": "-[*]-( Mode:)? C -[*]-",
7
- "foldingStartMarker": "(?x)\r\n\t\t /\\*\\*(?!\\*)\r\n\t\t|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))\r\n\t",
8
- "foldingStopMarker": "(?<!\\*)\\*\\*/|^\\s*\\}",
9
- "keyEquivalent": "^~C",
10
2
  "name": "NetLinx ERB",
3
+ "scopeName": "source.netlinx.erb",
11
4
  "patterns": [
12
5
  {
13
6
  "include": "#erb"
@@ -18,30 +11,25 @@
18
11
  ],
19
12
  "repository": {
20
13
  "erb": {
21
- "begin": "<%",
14
+ "name": "meta.block.netlinx.erb",
15
+ "begin": "\u003c%",
16
+ "end": "%\u003e",
17
+ "patterns": [
18
+ {
19
+ "include": "source.ruby"
20
+ },
21
+ {}
22
+ ],
22
23
  "beginCaptures": {
23
24
  "0": {
24
25
  "name": "punctuation.section.scope.netlinx.erb"
25
26
  }
26
27
  },
27
- "comment": "Ruby ERB blocks nested in NetLinx code",
28
- "end": "%>",
29
28
  "endCaptures": {
30
29
  "0": {
31
30
  "name": "punctuation.section.scope.netlinx.erb"
32
31
  }
33
- },
34
- "name": "meta.block.netlinx.erb",
35
- "patterns": [
36
- {
37
- "include": "source.ruby"
38
- },
39
- {
40
- "include": "meta.define.event"
41
- }
42
- ]
32
+ }
43
33
  }
44
- },
45
- "scopeName": "source.netlinx.erb",
46
- "uuid": "25066DC2-6B1D-11D9-9D5B-000D93589AF6"
47
- }
34
+ }
35
+ }
@@ -1,13 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "axs",
4
- "axi"
5
- ],
6
- "firstLineMatch": "-[*]-( Mode:)? C -[*]-",
7
- "foldingStartMarker": "(?x)\r\n\t\t /\\*\\*(?!\\*)\r\n\t\t|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))\r\n\t",
8
- "foldingStopMarker": "(?<!\\*)\\*\\*/|^\\s*\\}",
9
- "keyEquivalent": "^~C",
10
2
  "name": "NetLinx",
3
+ "scopeName": "source.netlinx",
11
4
  "patterns": [
12
5
  {
13
6
  "include": "#preprocessor-rule-enabled"
@@ -22,6 +15,8 @@
22
15
  "include": "#comments"
23
16
  },
24
17
  {
18
+ "name": "meta.dps.netlinx",
19
+ "match": "(\\d{1,5})(:)(\\d{1,5})(:)(\\d{1,5})",
25
20
  "captures": {
26
21
  "1": {
27
22
  "name": "constant.numeric.dps.device.netlinx"
@@ -38,38 +33,44 @@
38
33
  "5": {
39
34
  "name": "constant.numeric.dps.system.netlinx"
40
35
  }
41
- },
42
- "comment": "Device Number",
43
- "match": "(\\d{1,5})(:)(\\d{1,5})(:)(\\d{1,5})",
44
- "name": "meta.dps.netlinx"
36
+ }
45
37
  },
46
38
  {
47
- "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b",
48
- "name": "constant.numeric.netlinx"
39
+ "name": "constant.numeric.netlinx",
40
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"
49
41
  },
50
42
  {
51
- "comment": "hex",
52
- "match": "(\\$[0-9a-fA-F]+)",
53
- "name": "constant.numeric.hex.netlinx"
43
+ "name": "constant.numeric.hex.netlinx",
44
+ "match": "(\\$[0-9a-fA-F]+)"
54
45
  },
55
46
  {
47
+ "name": "string.quoted.single.netlinx",
56
48
  "begin": "'",
49
+ "end": "'",
57
50
  "beginCaptures": {
58
51
  "0": {
59
52
  "name": "punctuation.definition.string.begin.netlinx"
60
53
  }
61
54
  },
62
- "comment": "single quoted string",
63
- "end": "'",
64
55
  "endCaptures": {
65
56
  "0": {
66
57
  "name": "punctuation.definition.string.end.netlinx"
67
58
  }
68
- },
69
- "name": "string.quoted.single.netlinx"
59
+ }
70
60
  },
71
61
  {
72
- "begin": "(?ix)\r\n \t\t^\\s*(\\#(define))\\s+ # define\r\n \t\t((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\r\n \t\t(?: # and optionally:\r\n \t\t (\\() # an open parenthesis\r\n \t\t (\r\n \t\t \\s* \\g<id> \\s* # first argument\r\n \t\t ((,) \\s* \\g<id> \\s*)* # additional arguments\r\n \t\t (?:\\.\\.\\.)? # varargs ellipsis?\r\n \t\t )\r\n \t\t (\\)) # a close parenthesis\r\n \t\t)?\r\n \t",
62
+ "name": "meta.preprocessor.macro.netlinx",
63
+ "begin": "(?ix)\n \t\t^\\s*(\\#(define))\\s+ # define\n \t\t((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n \t\t(?: # and optionally:\n \t\t (\\() # an open parenthesis\n \t\t (\n \t\t \\s* \\g\u003cid\u003e \\s* # first argument\n \t\t ((,) \\s* \\g\u003cid\u003e \\s*)* # additional arguments\n \t\t (?:\\.\\.\\.)? # varargs ellipsis?\n \t\t )\n \t\t (\\)) # a close parenthesis\n \t\t)?\n \t",
64
+ "end": "(?=(?://|/\\*))|$",
65
+ "patterns": [
66
+ {
67
+ "name": "punctuation.separator.continuation.netlinx",
68
+ "match": "(?\u003e\\\\\\s*\\n)"
69
+ },
70
+ {
71
+ "include": "$base"
72
+ }
73
+ ],
73
74
  "beginCaptures": {
74
75
  "1": {
75
76
  "name": "keyword.control.import.define.netlinx"
@@ -92,18 +93,7 @@
92
93
  "9": {
93
94
  "name": "punctuation.definition.parameters.netlinx"
94
95
  }
95
- },
96
- "end": "(?=(?://|/\\*))|$",
97
- "name": "meta.preprocessor.macro.netlinx",
98
- "patterns": [
99
- {
100
- "match": "(?>\\\\\\s*\\n)",
101
- "name": "punctuation.separator.continuation.netlinx"
102
- },
103
- {
104
- "include": "$base"
105
- }
106
- ]
96
+ }
107
97
  },
108
98
  {
109
99
  "include": "#pragma-mark"
@@ -113,39 +103,35 @@
113
103
  },
114
104
  {
115
105
  "begin": "(?i)\\s*\\b(define_function)\\b\\s+",
116
- "beginCaptures": {
117
- "1": {
118
- "name": "keyword.control.define.netlinx"
119
- }
120
- },
121
- "comment": "function name",
122
106
  "end": "\\)",
123
107
  "patterns": [
124
108
  {
125
- "comment": "function name",
126
- "match": "(?i)\\b([a-z_]\\w*)\\b(?=\\s*\\()",
127
- "name": "entity.name.function.netlinx"
109
+ "name": "entity.name.function.netlinx",
110
+ "match": "(?i)\\b([a-z_]\\w*)\\b(?=\\s*\\()"
128
111
  },
129
112
  {
130
113
  "include": "#netlinx_keywords"
131
114
  },
132
115
  {
133
- "comment": "type/variable pairs where type is user-defined (a struct)",
134
- "match": "(?i)([a-z_][a-z0-9_]*)(?=\\s+)",
135
- "name": "support.type.user.netlinx"
116
+ "name": "support.type.user.netlinx",
117
+ "match": "(?i)([a-z_][a-z0-9_]*)(?=\\s+)"
136
118
  },
137
119
  {
138
120
  "include": "#netlinx_variables"
139
121
  }
140
- ]
122
+ ],
123
+ "beginCaptures": {
124
+ "1": {
125
+ "name": "keyword.control.define.netlinx"
126
+ }
127
+ }
141
128
  },
142
129
  {
143
130
  "include": "#netlinx_keywords"
144
131
  },
145
132
  {
146
- "comment": "user function names (alphanumeric before parenthesis)",
147
- "match": "(?i)(?i)\\b([a-z_][a-z0-9_]*)\\b(?=\\s*\\()",
148
- "name": "support.function.user.netlinx"
133
+ "name": "support.function.user.netlinx",
134
+ "match": "(?i)(?i)\\b([a-z_][a-z0-9_]*)\\b(?=\\s*\\()"
149
135
  },
150
136
  {
151
137
  "include": "#netlinx_variables"
@@ -153,13 +139,13 @@
153
139
  ],
154
140
  "repository": {
155
141
  "access": {
156
- "match": "(?i)\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()",
157
- "name": "variable.other.dot-access.netlinx"
142
+ "name": "variable.other.dot-access.netlinx",
143
+ "match": "(?i)\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()"
158
144
  },
159
145
  "block": {
146
+ "name": "meta.block.netlinx",
160
147
  "begin": "\\{",
161
148
  "end": "\\}",
162
- "name": "meta.block.netlinx",
163
149
  "patterns": [
164
150
  {
165
151
  "include": "#block_innards"
@@ -184,6 +170,8 @@
184
170
  "include": "#access"
185
171
  },
186
172
  {
173
+ "name": "meta.initialization.netlinx",
174
+ "match": "(?x)\n\t\t\t (?x)\n\t\t\t(?:\n\t\t\t (?: (?= \\s ) (?\u003c!else|return) (?\u003c=\\w)\\s+ # or word + space before name\n\t\t\t )\n\t\t\t)\n\t\t\t(\n\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) )? # if it is a NetLinx operator\n\t\t\t)\n\t\t\t \\s*(\\()",
187
175
  "captures": {
188
176
  "1": {
189
177
  "name": "variable.other.netlinx"
@@ -191,9 +179,7 @@
191
179
  "2": {
192
180
  "name": "punctuation.definition.parameters.netlinx"
193
181
  }
194
- },
195
- "match": "(?x)\r\n\t\t\t (?x)\r\n\t\t\t(?:\r\n\t\t\t (?: (?= \\s ) (?<!else|return) (?<=\\w)\\s+ # or word + space before name\r\n\t\t\t )\r\n\t\t\t)\r\n\t\t\t(\r\n\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\r\n\t\t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) )? # if it is a NetLinx operator\r\n\t\t\t)\r\n\t\t\t \\s*(\\()",
196
- "name": "meta.initialization.netlinx"
182
+ }
197
183
  },
198
184
  {
199
185
  "include": "#block"
@@ -206,69 +192,67 @@
206
192
  "comments": {
207
193
  "patterns": [
208
194
  {
195
+ "name": "comment.block.netlinx",
196
+ "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
209
197
  "captures": {
210
198
  "1": {
211
199
  "name": "meta.toc-list.banner.block.netlinx"
212
200
  }
213
- },
214
- "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
215
- "name": "comment.block.netlinx"
201
+ }
216
202
  },
217
203
  {
204
+ "name": "comment.block.netlinx",
218
205
  "begin": "/\\*",
206
+ "end": "\\*/",
219
207
  "captures": {
220
208
  "0": {
221
209
  "name": "punctuation.definition.comment.netlinx"
222
210
  }
223
- },
224
- "end": "\\*/",
225
- "name": "comment.block.netlinx"
211
+ }
226
212
  },
227
213
  {
214
+ "name": "comment.block.netlinx",
228
215
  "begin": "\\(\\*",
216
+ "end": "\\*\\)",
229
217
  "captures": {
230
218
  "0": {
231
219
  "name": "punctuation.definition.comment.netlinx"
232
220
  }
233
- },
234
- "comment": "Netlinx parenthesis comments.",
235
- "end": "\\*\\)",
236
- "name": "comment.block.netlinx"
221
+ }
237
222
  },
238
223
  {
239
- "match": "\\*/.*\\n",
240
- "name": "invalid.illegal.stray-comment-end.netlinx"
224
+ "name": "invalid.illegal.stray-comment-end.netlinx",
225
+ "match": "\\*/.*\\n"
241
226
  },
242
227
  {
228
+ "name": "comment.line.banner.netlinx",
229
+ "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
243
230
  "captures": {
244
231
  "1": {
245
232
  "name": "meta.toc-list.banner.line.netlinx"
246
233
  }
247
- },
248
- "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
249
- "name": "comment.line.banner.netlinx"
234
+ }
250
235
  },
251
236
  {
237
+ "name": "comment.line.double-slash.netlinx",
252
238
  "begin": "//",
253
- "beginCaptures": {
254
- "0": {
255
- "name": "punctuation.definition.comment.netlinx"
256
- }
257
- },
258
239
  "end": "$\\n?",
259
- "name": "comment.line.double-slash.netlinx",
260
240
  "patterns": [
261
241
  {
262
- "match": "(?>\\\\\\s*\\n)",
263
- "name": "punctuation.separator.continuation.netlinx"
242
+ "name": "punctuation.separator.continuation.netlinx",
243
+ "match": "(?\u003e\\\\\\s*\\n)"
264
244
  }
265
- ]
245
+ ],
246
+ "beginCaptures": {
247
+ "0": {
248
+ "name": "punctuation.definition.comment.netlinx"
249
+ }
250
+ }
266
251
  }
267
252
  ]
268
253
  },
269
254
  "disabled": {
270
255
  "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
271
- "comment": "eat nested preprocessor if(def)s",
272
256
  "end": "^\\s*#\\s*endif\\b.*$",
273
257
  "patterns": [
274
258
  {
@@ -280,80 +264,69 @@
280
264
  ]
281
265
  },
282
266
  "dps_variables": {
267
+ "match": "(?i)[a-z0-9_]+\\.\\b(number|port|system)\\b",
283
268
  "captures": {
284
269
  "1": {
285
270
  "name": "support.variable.system.dps.dot-access.netlinx"
286
271
  }
287
- },
288
- "match": "(?i)[a-z0-9_]+\\.\\b(number|port|system)\\b"
272
+ }
289
273
  },
290
274
  "netlinx_constants": {
291
- "match": "\\b(dv|vdv|btn|lvl|ch|adr)?([A-Z0-9_]+)\\b",
292
- "name": "constant.other.netlinx"
275
+ "name": "constant.other.netlinx",
276
+ "match": "\\b(dv|vdv|btn|lvl|ch|adr)?([A-Z0-9_]+)\\b"
293
277
  },
294
278
  "netlinx_keywords": {
295
279
  "patterns": [
296
280
  {
297
- "comment": "Compiler Directives",
298
- "match": "(?i)(\\s*#\\b(define|disable_warning|else|end_if|if_defined|if_not_defined|include|warn)\\b)",
299
- "name": "keyword.control.netlinx"
281
+ "name": "keyword.control.netlinx",
282
+ "match": "(?i)(\\s*#\\b(define|disable_warning|else|end_if|if_defined|if_not_defined|include|warn)\\b)"
300
283
  },
301
284
  {
302
- "comment": "Subroutine Keywords",
303
- "match": "(?i)\\b(call|define_call|system_call)\\b",
304
- "name": "keyword.control.netlinx"
285
+ "name": "keyword.control.netlinx",
286
+ "match": "(?i)\\b(call|define_call|system_call)\\b"
305
287
  },
306
288
  {
307
- "comment": "Array Keywords",
308
- "match": "(?i)\\b(length_array|max_length_array|set_length_array)\\b",
309
- "name": "support.function.netlinx"
289
+ "name": "support.function.netlinx",
290
+ "match": "(?i)\\b(length_array|max_length_array|set_length_array)\\b"
310
291
  },
311
292
  {
312
- "comment": "Buffer Keywords",
313
- "match": "(?i)\\b(clear_buffer|create_buffer|create_multi_buffer)\\b",
314
- "name": "keyword.control.netlinx"
293
+ "name": "keyword.control.netlinx",
294
+ "match": "(?i)\\b(clear_buffer|create_buffer|create_multi_buffer)\\b"
315
295
  },
316
296
  {
317
- "comment": "Channel Keywords",
318
- "match": "(?i)\\b(on|off|total_off)\\b",
319
- "name": "support.function.netlinx"
297
+ "name": "support.function.netlinx",
298
+ "match": "(?i)\\b(on|off|total_off)\\b"
320
299
  },
321
300
  {
322
- "comment": "Clock Manager Keywords",
323
- "match": "(?i)\\b(clkmgr_set_daylightsavings_offset|clkmgr_delete_userdefined_timeserver|clkmgr_get_active_timeserver|clkmgr_get_daylightsavings_offset|clkmgr_get_end_daylightsavings_rule|clkmgr_get_resync_period|clkmgr_get_start_daylightsavings_rule|clkmgr_get_timeservers|clkmgr_get_timezone|clkmgr_is_daylightsavings_on|clkmgr_is_network_sourced|clkmgr_set_active_timeserver|clkmgr_set_clk_source|clkmgr_set_daylightsavings_mode|clkmgr_set_daylightsavings_offset|clkmgr_set_end_daylightsavings_rule|clkmgr_set_resync_period|clkmgr_set_start_daylightsavings_rule|clkmgr_set_timezone|)\\b",
324
- "name": "support.function.netlinx"
301
+ "name": "support.function.netlinx",
302
+ "match": "(?i)\\b(clkmgr_set_daylightsavings_offset|clkmgr_delete_userdefined_timeserver|clkmgr_get_active_timeserver|clkmgr_get_daylightsavings_offset|clkmgr_get_end_daylightsavings_rule|clkmgr_get_resync_period|clkmgr_get_start_daylightsavings_rule|clkmgr_get_timeservers|clkmgr_get_timezone|clkmgr_is_daylightsavings_on|clkmgr_is_network_sourced|clkmgr_set_active_timeserver|clkmgr_set_clk_source|clkmgr_set_daylightsavings_mode|clkmgr_set_daylightsavings_offset|clkmgr_set_end_daylightsavings_rule|clkmgr_set_resync_period|clkmgr_set_start_daylightsavings_rule|clkmgr_set_timezone|)\\b"
325
303
  },
326
304
  {
327
- "comment": "Combine/Uncombine Keywords",
328
- "match": "(?i)\\b(combine_channels|combine_devices|combine_levels|uncombine_channels|uncombine_devices|uncombine_levels)\\b",
329
- "name": "support.function.combine.netlinx"
305
+ "name": "support.function.combine.netlinx",
306
+ "match": "(?i)\\b(combine_channels|combine_devices|combine_levels|uncombine_channels|uncombine_devices|uncombine_levels)\\b"
330
307
  },
331
308
  {
332
- "comment": "Compiler Keywords",
333
- "match": "(?i)\\b(__DATE__|__FILE__|__LDATE__|__LINE__|__NAME__|__TIME__)\\b",
334
- "name": "support.function.compiler.netlinx"
309
+ "name": "support.function.compiler.netlinx",
310
+ "match": "(?i)\\b(__DATE__|__FILE__|__LDATE__|__LINE__|__NAME__|__TIME__)\\b"
335
311
  },
336
312
  {
337
- "comment": "Conditional and Loop Keywords",
338
- "match": "(?i)\\b(break|return|default|else|for|if|include|select|active|switch|case|while|medium_while|long_while)\\b",
339
- "name": "keyword.control.netlinx"
313
+ "name": "keyword.control.netlinx",
314
+ "match": "(?i)\\b(break|return|default|else|for|if|include|select|active|switch|case|while|medium_while|long_while)\\b"
340
315
  },
341
316
  {
342
- "comment": "Boolean Values",
343
- "match": "(?i)\\b(true|false)\\b",
344
- "name": "constant.language.netlinx"
317
+ "name": "constant.language.netlinx",
318
+ "match": "(?i)\\b(true|false)\\b"
345
319
  },
346
320
  {
347
- "comment": "Conversion Keywords",
348
- "match": "(?i)\\b(atoi|atof|atol|ch_to_wc|ftoa|hextoi|itoa|format|itohex|raw_be|raw_le)\\b",
349
- "name": "support.function.netlinx"
321
+ "name": "support.function.netlinx",
322
+ "match": "(?i)\\b(atoi|atof|atol|ch_to_wc|ftoa|hextoi|itoa|format|itohex|raw_be|raw_le)\\b"
350
323
  },
351
324
  {
352
- "comment": "Data Event Keywords",
353
- "match": "(?i)\\b(awake|command|hold|onerror|offline|online|standby)\\b",
354
- "name": "keyword.control.event.data.netlinx"
325
+ "name": "keyword.control.event.data.netlinx",
326
+ "match": "(?i)\\b(awake|command|hold|onerror|offline|online|standby)\\b"
355
327
  },
356
328
  {
329
+ "match": "(?i)\\b(char|widechar|integer|sinteger|long|slong|float|double|dev|devchan)\\b\\s+([a-z_]\\w*)\\b(?!\\()",
357
330
  "captures": {
358
331
  "1": {
359
332
  "name": "support.type.system.netlinx"
@@ -361,134 +334,107 @@
361
334
  "2": {
362
335
  "name": "support.variable.system.netlinx"
363
336
  }
364
- },
365
- "comment": "Data Type Keywords",
366
- "match": "(?i)\\b(char|widechar|integer|sinteger|long|slong|float|double|dev|devchan)\\b\\s+([a-z_]\\w*)\\b(?!\\()"
337
+ }
367
338
  },
368
339
  {
369
- "comment": "Data Type Keywords",
370
- "match": "(?i)\\b(char|widechar|integer|sinteger|long|slong|float|double|dev|devchan)\\b",
371
- "name": "support.type.system.netlinx"
340
+ "name": "support.type.system.netlinx",
341
+ "match": "(?i)\\b(char|widechar|integer|sinteger|long|slong|float|double|dev|devchan)\\b"
372
342
  },
373
343
  {
374
- "comment": "Device Keywords",
375
- "match": "(?i)\\b(device_id|device_id_string|device_info|device_standby|device_wake|dynamic_application_device|master_slot|master_sn|reboot|send_command|system_number)\\b",
376
- "name": "support.function.netlinx"
344
+ "name": "support.function.netlinx",
345
+ "match": "(?i)\\b(device_id|device_id_string|device_info|device_standby|device_wake|dynamic_application_device|master_slot|master_sn|reboot|send_command|system_number)\\b"
377
346
  },
378
347
  {
379
- "comment": "Encode/Decode Keywords",
380
- "match": "(?i)\\b(length_variable_to_string|variable_to_xml|xml_to_variable|length_variable_to_xml)\\b",
381
- "name": "support.function.netlinx"
348
+ "name": "support.function.netlinx",
349
+ "match": "(?i)\\b(length_variable_to_string|variable_to_xml|xml_to_variable|length_variable_to_xml)\\b"
382
350
  },
383
351
  {
384
- "comment": "Event Handler Keywords",
385
- "match": "(?i)\\b(button_event|channel_event|data_event|level_event|rebuild_event)\\b",
386
- "name": "keyword.control.event.netlinx"
352
+ "name": "keyword.control.event.netlinx",
353
+ "match": "(?i)\\b(button_event|channel_event|data_event|level_event|rebuild_event)\\b"
387
354
  },
388
355
  {
389
- "comment": "File Operation Keywords",
390
- "match": "(?i)\\b(file_close|file_copy|file_createdir|file_delete|file_dir|file_getdir|file_open|file_read|file_read_line|file_removedir|file_rename|file_seek|file_setdir|file_write|file_write_line)\\b",
391
- "name": "support.function.netlinx"
356
+ "name": "support.function.netlinx",
357
+ "match": "(?i)\\b(file_close|file_copy|file_createdir|file_delete|file_dir|file_getdir|file_open|file_read|file_read_line|file_removedir|file_rename|file_seek|file_setdir|file_write|file_write_line)\\b"
392
358
  },
393
359
  {
394
- "comment": "Get Keywords",
395
- "match": "(?i)\\b(get_last|get_multi_buffer_string|get_pulse_time|get_serial_number|get_system_number|get_timer|get_unique_id|get_url_list)\\b",
396
- "name": "support.function.netlinx"
360
+ "name": "support.function.netlinx",
361
+ "match": "(?i)\\b(get_last|get_multi_buffer_string|get_pulse_time|get_serial_number|get_system_number|get_timer|get_unique_id|get_url_list)\\b"
397
362
  },
398
363
  {
399
- "comment": "IP Keywords",
400
- "match": "(?i)\\b(add_url_entry|delete_url_entry|get_dns_list|get_ip_address|ip_bound_client_open|ip_client_close|ip_client_open|ip_mc_server_open|ip_server_close|ip_server_open|ip_set_option|set_ip_address|set_dns_list)\\b",
401
- "name": "support.function.netlinx"
364
+ "name": "support.function.netlinx",
365
+ "match": "(?i)\\b(add_url_entry|delete_url_entry|get_dns_list|get_ip_address|ip_bound_client_open|ip_client_close|ip_client_open|ip_mc_server_open|ip_server_close|ip_server_open|ip_set_option|set_ip_address|set_dns_list)\\b"
402
366
  },
403
367
  {
404
- "comment": "Level Keywords",
405
- "match": "(?i)\\b(~levsyncon|~levsyncoff|create_level|send_level|set_virtual_level_count)\\b",
406
- "name": "support.function.netlinx"
368
+ "name": "support.function.netlinx",
369
+ "match": "(?i)\\b(~levsyncon|~levsyncoff|create_level|send_level|set_virtual_level_count)\\b"
407
370
  },
408
371
  {
409
- "comment": "Log Keywords",
410
- "match": "(?i)\\b(set_log_level|get_log_level|amx_log)\\b",
411
- "name": "support.function.log.netlinx"
372
+ "name": "support.function.log.netlinx",
373
+ "match": "(?i)\\b(set_log_level|get_log_level|amx_log)\\b"
412
374
  },
413
375
  {
414
- "comment": "Math Functions",
415
- "match": "(?i)\\b(exp_value|log_value|log10_value|power_value|sqrt_value)\\b",
416
- "name": "support.function.netlinx"
376
+ "name": "support.function.netlinx",
377
+ "match": "(?i)\\b(exp_value|log_value|log10_value|power_value|sqrt_value)\\b"
417
378
  },
418
379
  {
419
- "comment": "Module Keywords",
420
- "match": "(?i)\\b(duet_mem_size_get|duet_mem_size_set|module_name)\\b",
421
- "name": "support.function.netlinx"
380
+ "name": "support.function.netlinx",
381
+ "match": "(?i)\\b(duet_mem_size_get|duet_mem_size_set|module_name)\\b"
422
382
  },
423
383
  {
424
- "comment": "Operator Keywords",
425
- "match": "(\\&|~|\\||\\^|<|\\%|\\!|>|=|\\\")",
426
- "name": "keyword.operator.netlinx"
384
+ "name": "keyword.operator.netlinx",
385
+ "match": "(\\\u0026|~|\\||\\^|\u003c|\\%|\\!|\u003e|=|\\\")"
427
386
  },
428
387
  {
429
- "comment": "Port Keywords",
430
- "match": "(?i)\\b(dynamic_polled_port|first_local_port|static_port_binding)\\b",
431
- "name": "support.function.netlinx"
388
+ "name": "support.function.netlinx",
389
+ "match": "(?i)\\b(dynamic_polled_port|first_local_port|static_port_binding)\\b"
432
390
  },
433
391
  {
434
- "comment": "Push And Release Control Keywords",
435
- "match": "(?i)\\b(push|release)\\b",
436
- "name": "keyword.control.netlinx"
392
+ "name": "keyword.control.netlinx",
393
+ "match": "(?i)\\b(push|release)\\b"
437
394
  },
438
395
  {
439
- "comment": "Push And Release Keywords",
440
- "match": "(?i)\\b(repeat|do_push|do_push_timed|do_release|min_to|push|push_channel|push_devchan|push_device|release|release_channel|release_devchan|release_device|to)\\b",
441
- "name": "support.function.netlinx"
396
+ "name": "support.function.netlinx",
397
+ "match": "(?i)\\b(repeat|do_push|do_push_timed|do_release|min_to|push|push_channel|push_devchan|push_device|release|release_channel|release_devchan|release_device|to)\\b"
442
398
  },
443
399
  {
444
- "comment": "Set Keywords",
445
- "match": "(?i)\\b(set_outdoor_temperature|set_pulse_time|pulse|set_system_number|set_timer|set_virtual_channel_count|set_virtual_port_count)\\b",
446
- "name": "support.function.netlinx"
400
+ "name": "support.function.netlinx",
401
+ "match": "(?i)\\b(set_outdoor_temperature|set_pulse_time|pulse|set_system_number|set_timer|set_virtual_channel_count|set_virtual_port_count)\\b"
447
402
  },
448
403
  {
449
- "comment": "SMTP Keywords",
450
- "match": "(?i)\\b(smtp_server_config_set|smtp_server_config_get|smtp_send)\\b",
451
- "name": "support.function.netlinx"
404
+ "name": "support.function.netlinx",
405
+ "match": "(?i)\\b(smtp_server_config_set|smtp_server_config_get|smtp_send)\\b"
452
406
  },
453
407
  {
454
- "comment": "String Keywords",
455
- "match": "(?i)\\b(chard|chardm|compare_string|find_string|left_string|length_string|lower_string|max_length_string|mid_string|redirect_string|remove_string|right_string|send_string|set_length_string|string|string_to_variable|upper_string|variable_to_string)\\b",
456
- "name": "support.function.netlinx"
408
+ "name": "support.function.netlinx",
409
+ "match": "(?i)\\b(chard|chardm|compare_string|find_string|left_string|length_string|lower_string|max_length_string|mid_string|redirect_string|remove_string|right_string|send_string|set_length_string|string|string_to_variable|upper_string|variable_to_string)\\b"
457
410
  },
458
411
  {
459
- "comment": "Structure Keywords",
460
- "match": "(?i)\\b(struct|structure)\\b",
461
- "name": "support.function.netlinx"
412
+ "name": "support.function.netlinx",
413
+ "match": "(?i)\\b(struct|structure)\\b"
462
414
  },
463
415
  {
464
- "comment": "Time And Date Keywords",
465
- "match": "(?i)\\b(astro_clock|clock|date|date_to_day|date_to_month|date_to_year|day|day_of_week|ldate|time|time_to_hour|time_to_minute|time_to_second)\\b",
466
- "name": "support.function.netlinx"
416
+ "name": "support.function.netlinx",
417
+ "match": "(?i)\\b(astro_clock|clock|date|date_to_day|date_to_month|date_to_year|day|day_of_week|ldate|time|time_to_hour|time_to_minute|time_to_second)\\b"
467
418
  },
468
419
  {
469
- "comment": "Timeline Keywords",
470
- "match": "(?i)\\b(timeline_active|timeline_create|timeline_event|timeline_get|timeline_kill|timeline_pause|timeline_reload|timeline_restart|timeline_set)\\b",
471
- "name": "support.function.timeline.netlinx"
420
+ "name": "support.function.timeline.netlinx",
421
+ "match": "(?i)\\b(timeline_active|timeline_create|timeline_event|timeline_get|timeline_kill|timeline_pause|timeline_reload|timeline_restart|timeline_set)\\b"
472
422
  },
473
423
  {
474
- "comment": "Unicode Keywords",
475
- "match": "(?i)\\b(_wc|wc_compare_string|wc_concat_string|wc_decode|wc_encode|wc_file_close|wc_file_open|wc_file_read|wc_file_read_line|wc_file_write|wc_file_write_line|wc_find_string|wc_get_buffer_char|wc_get_buffer_string|wc_left_string|wc_length_string|wc_lower_string|wc_max_length_string|wc_mid_string|wc_remove_string|wc_right_string|wc_set_length_string|wc_to_ch|wc_tp_encode|wc_upper_string)\\b",
476
- "name": "support.function.netlinx"
424
+ "name": "support.function.netlinx",
425
+ "match": "(?i)\\b(_wc|wc_compare_string|wc_concat_string|wc_decode|wc_encode|wc_file_close|wc_file_open|wc_file_read|wc_file_read_line|wc_file_write|wc_file_write_line|wc_find_string|wc_get_buffer_char|wc_get_buffer_string|wc_left_string|wc_length_string|wc_lower_string|wc_max_length_string|wc_mid_string|wc_remove_string|wc_right_string|wc_set_length_string|wc_to_ch|wc_tp_encode|wc_upper_string)\\b"
477
426
  },
478
427
  {
479
- "comment": "Variables Keywords",
480
- "match": "(?i)\\b(abs_value|max_value|min_value|random_number|type_cast)\\b",
481
- "name": "support.function.variable.netlinx"
428
+ "name": "support.function.variable.netlinx",
429
+ "match": "(?i)\\b(abs_value|max_value|min_value|random_number|type_cast)\\b"
482
430
  },
483
431
  {
484
- "comment": "Variable Modifiers",
485
- "match": "(?i)\\b(constant|non_volatile|persistent|local_var|stack_var|volatile)\\b",
486
- "name": "storage.modifier.netlinx"
432
+ "name": "storage.modifier.netlinx",
433
+ "match": "(?i)\\b(constant|non_volatile|persistent|local_var|stack_var|volatile)\\b"
487
434
  },
488
435
  {
489
- "comment": "Wait Keywords",
490
- "match": "(?i)\\b(cancel_all_wait|cancel_all_wait_until|cancel_wait|cancel_wait_until|pause_all_wait|pause_wait|restart_all_wait|restart_wait|wait|wait_until|timed_wait_until)\\b",
491
- "name": "support.function.wait.netlinx"
436
+ "name": "support.function.wait.netlinx",
437
+ "match": "(?i)\\b(cancel_all_wait|cancel_all_wait_until|cancel_wait|cancel_wait_until|pause_all_wait|pause_wait|restart_all_wait|restart_wait|wait|wait_until|timed_wait_until)\\b"
492
438
  },
493
439
  {
494
440
  "include": "#dps_variables"
@@ -499,14 +445,13 @@
499
445
  ]
500
446
  },
501
447
  "netlinx_variables": {
502
- "comment": "Variables (every word not matched)",
503
- "match": "\\w+",
504
- "name": "variable.other.netlinx"
448
+ "name": "variable.other.netlinx",
449
+ "match": "\\w+"
505
450
  },
506
451
  "parens": {
452
+ "name": "meta.parens.netlinx",
507
453
  "begin": "\\(",
508
454
  "end": "\\)",
509
- "name": "meta.parens.netlinx",
510
455
  "patterns": [
511
456
  {
512
457
  "include": "$base"
@@ -514,6 +459,8 @@
514
459
  ]
515
460
  },
516
461
  "pragma-mark": {
462
+ "name": "meta.section",
463
+ "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
517
464
  "captures": {
518
465
  "1": {
519
466
  "name": "meta.preprocessor.netlinx"
@@ -524,27 +471,20 @@
524
471
  "3": {
525
472
  "name": "meta.toc-list.pragma-mark.netlinx"
526
473
  }
527
- },
528
- "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
529
- "name": "meta.section"
474
+ }
530
475
  },
531
476
  "preprocessor-rule-disabled": {
532
477
  "begin": "^\\s*(#(if)\\s+(0)\\b).*",
533
- "captures": {
534
- "1": {
535
- "name": "meta.preprocessor.netlinx"
536
- },
537
- "2": {
538
- "name": "keyword.control.import.if.netlinx"
539
- },
540
- "3": {
541
- "name": "constant.numeric.preprocessor.netlinx"
542
- }
543
- },
544
478
  "end": "^\\s*(#\\s*(endif)\\b)",
545
479
  "patterns": [
546
480
  {
547
481
  "begin": "^\\s*(#\\s*(else)\\b)",
482
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
483
+ "patterns": [
484
+ {
485
+ "include": "$base"
486
+ }
487
+ ],
548
488
  "captures": {
549
489
  "1": {
550
490
  "name": "meta.preprocessor.netlinx"
@@ -552,18 +492,11 @@
552
492
  "2": {
553
493
  "name": "keyword.control.import.else.netlinx"
554
494
  }
555
- },
556
- "end": "(?=^\\s*#\\s*endif\\b.*$)",
557
- "patterns": [
558
- {
559
- "include": "$base"
560
- }
561
- ]
495
+ }
562
496
  },
563
497
  {
564
- "begin": "",
565
- "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
566
498
  "name": "comment.block.preprocessor.if-branch",
499
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
567
500
  "patterns": [
568
501
  {
569
502
  "include": "#disabled"
@@ -573,10 +506,7 @@
573
506
  }
574
507
  ]
575
508
  }
576
- ]
577
- },
578
- "preprocessor-rule-disabled-block": {
579
- "begin": "^\\s*(#(if)\\s+(0)\\b).*",
509
+ ],
580
510
  "captures": {
581
511
  "1": {
582
512
  "name": "meta.preprocessor.netlinx"
@@ -587,11 +517,20 @@
587
517
  "3": {
588
518
  "name": "constant.numeric.preprocessor.netlinx"
589
519
  }
590
- },
520
+ }
521
+ },
522
+ "preprocessor-rule-disabled-block": {
523
+ "begin": "^\\s*(#(if)\\s+(0)\\b).*",
591
524
  "end": "^\\s*(#\\s*(endif)\\b)",
592
525
  "patterns": [
593
526
  {
594
527
  "begin": "^\\s*(#\\s*(else)\\b)",
528
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
529
+ "patterns": [
530
+ {
531
+ "include": "#block_innards"
532
+ }
533
+ ],
595
534
  "captures": {
596
535
  "1": {
597
536
  "name": "meta.preprocessor.netlinx"
@@ -599,18 +538,11 @@
599
538
  "2": {
600
539
  "name": "keyword.control.import.else.netlinx"
601
540
  }
602
- },
603
- "end": "(?=^\\s*#\\s*endif\\b.*$)",
604
- "patterns": [
605
- {
606
- "include": "#block_innards"
607
- }
608
- ]
541
+ }
609
542
  },
610
543
  {
611
- "begin": "",
612
- "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
613
544
  "name": "comment.block.preprocessor.if-branch.in-block",
545
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
614
546
  "patterns": [
615
547
  {
616
548
  "include": "#disabled"
@@ -620,10 +552,7 @@
620
552
  }
621
553
  ]
622
554
  }
623
- ]
624
- },
625
- "preprocessor-rule-enabled": {
626
- "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
555
+ ],
627
556
  "captures": {
628
557
  "1": {
629
558
  "name": "meta.preprocessor.netlinx"
@@ -634,20 +563,15 @@
634
563
  "3": {
635
564
  "name": "constant.numeric.preprocessor.netlinx"
636
565
  }
637
- },
566
+ }
567
+ },
568
+ "preprocessor-rule-enabled": {
569
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
638
570
  "end": "^\\s*(#\\s*(endif)\\b)",
639
571
  "patterns": [
640
572
  {
641
- "begin": "^\\s*(#\\s*(else)\\b).*",
642
- "captures": {
643
- "1": {
644
- "name": "meta.preprocessor.netlinx"
645
- },
646
- "2": {
647
- "name": "keyword.control.import.else.netlinx"
648
- }
649
- },
650
573
  "contentName": "comment.block.preprocessor.else-branch",
574
+ "begin": "^\\s*(#\\s*(else)\\b).*",
651
575
  "end": "(?=^\\s*#\\s*endif\\b.*$)",
652
576
  "patterns": [
653
577
  {
@@ -656,10 +580,17 @@
656
580
  {
657
581
  "include": "#pragma-mark"
658
582
  }
659
- ]
583
+ ],
584
+ "captures": {
585
+ "1": {
586
+ "name": "meta.preprocessor.netlinx"
587
+ },
588
+ "2": {
589
+ "name": "keyword.control.import.else.netlinx"
590
+ }
591
+ }
660
592
  },
661
593
  {
662
- "begin": "",
663
594
  "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
664
595
  "patterns": [
665
596
  {
@@ -667,10 +598,7 @@
667
598
  }
668
599
  ]
669
600
  }
670
- ]
671
- },
672
- "preprocessor-rule-enabled-block": {
673
- "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
601
+ ],
674
602
  "captures": {
675
603
  "1": {
676
604
  "name": "meta.preprocessor.netlinx"
@@ -681,20 +609,15 @@
681
609
  "3": {
682
610
  "name": "constant.numeric.preprocessor.netlinx"
683
611
  }
684
- },
612
+ }
613
+ },
614
+ "preprocessor-rule-enabled-block": {
615
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
685
616
  "end": "^\\s*(#\\s*(endif)\\b)",
686
617
  "patterns": [
687
618
  {
688
- "begin": "^\\s*(#\\s*(else)\\b).*",
689
- "captures": {
690
- "1": {
691
- "name": "meta.preprocessor.netlinx"
692
- },
693
- "2": {
694
- "name": "keyword.control.import.else.netlinx"
695
- }
696
- },
697
619
  "contentName": "comment.block.preprocessor.else-branch.in-block",
620
+ "begin": "^\\s*(#\\s*(else)\\b).*",
698
621
  "end": "(?=^\\s*#\\s*endif\\b.*$)",
699
622
  "patterns": [
700
623
  {
@@ -703,10 +626,17 @@
703
626
  {
704
627
  "include": "#pragma-mark"
705
628
  }
706
- ]
629
+ ],
630
+ "captures": {
631
+ "1": {
632
+ "name": "meta.preprocessor.netlinx"
633
+ },
634
+ "2": {
635
+ "name": "keyword.control.import.else.netlinx"
636
+ }
637
+ }
707
638
  },
708
639
  {
709
- "begin": "",
710
640
  "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
711
641
  "patterns": [
712
642
  {
@@ -714,27 +644,27 @@
714
644
  }
715
645
  ]
716
646
  }
717
- ]
718
- },
719
- "preprocessor-rule-other": {
720
- "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
647
+ ],
721
648
  "captures": {
722
649
  "1": {
723
650
  "name": "meta.preprocessor.netlinx"
724
651
  },
725
652
  "2": {
726
- "name": "keyword.control.import.netlinx"
653
+ "name": "keyword.control.import.if.netlinx"
654
+ },
655
+ "3": {
656
+ "name": "constant.numeric.preprocessor.netlinx"
727
657
  }
728
- },
658
+ }
659
+ },
660
+ "preprocessor-rule-other": {
661
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
729
662
  "end": "^\\s*(#\\s*(endif)\\b).*$",
730
663
  "patterns": [
731
664
  {
732
665
  "include": "$base"
733
666
  }
734
- ]
735
- },
736
- "preprocessor-rule-other-block": {
737
- "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
667
+ ],
738
668
  "captures": {
739
669
  "1": {
740
670
  "name": "meta.preprocessor.netlinx"
@@ -742,27 +672,36 @@
742
672
  "2": {
743
673
  "name": "keyword.control.import.netlinx"
744
674
  }
745
- },
675
+ }
676
+ },
677
+ "preprocessor-rule-other-block": {
678
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
746
679
  "end": "^\\s*(#\\s*(endif)\\b).*$",
747
680
  "patterns": [
748
681
  {
749
682
  "include": "#block_innards"
750
683
  }
751
- ]
684
+ ],
685
+ "captures": {
686
+ "1": {
687
+ "name": "meta.preprocessor.netlinx"
688
+ },
689
+ "2": {
690
+ "name": "keyword.control.import.netlinx"
691
+ }
692
+ }
752
693
  },
753
694
  "string_placeholder": {
754
695
  "patterns": [
755
696
  {
756
- "match": "(?x)%\r\n \t\t\t\t\t\t(\\d+\\$)? # field (argument #)\r\n \t\t\t\t\t\t[#0\\- +']* # flags\r\n \t\t\t\t\t\t[,;:_]? # separator character (AltiVec)\r\n \t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\r\n \t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\r\n \t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\r\n \t\t\t\t\t\t[diouxXDOUeEfFgGaACcSspn%] # conversion type\r\n \t\t\t\t\t",
757
- "name": "constant.other.placeholder.netlinx"
697
+ "name": "constant.other.placeholder.netlinx",
698
+ "match": "(?x)%\n \t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n \t\t\t\t\t\t[#0\\- +']* # flags\n \t\t\t\t\t\t[,;:_]? # separator character (AltiVec)\n \t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n \t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n \t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n \t\t\t\t\t\t[diouxXDOUeEfFgGaACcSspn%] # conversion type\n \t\t\t\t\t"
758
699
  },
759
700
  {
760
- "match": "%",
761
- "name": "invalid.illegal.placeholder.netlinx"
701
+ "name": "invalid.illegal.placeholder.netlinx",
702
+ "match": "%"
762
703
  }
763
704
  ]
764
705
  }
765
- },
766
- "scopeName": "source.netlinx",
767
- "uuid": "25066DC2-6B1D-11D9-9D5B-000D93589AF6"
768
- }
706
+ }
707
+ }