github-linguist-grammars 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/grammars/file.lasso.json +713 -0
  3. data/grammars/module.ceylon.json +54 -0
  4. data/grammars/objdump.x86asm.json +73 -0
  5. data/grammars/source.Inform7.json +45 -0
  6. data/grammars/source.Kotlin.json +774 -0
  7. data/grammars/source.LS.json +104 -0
  8. data/grammars/source.MCPOST.json +68 -0
  9. data/grammars/source.MOD.json +70 -0
  10. data/grammars/source.abap.json +176 -0
  11. data/grammars/source.abl.json +138 -0
  12. data/grammars/source.actionscript.3.json +1571 -0
  13. data/grammars/source.acucobol.json +16 -0
  14. data/grammars/source.ada.json +140 -0
  15. data/grammars/source.agda.json +254 -0
  16. data/grammars/source.ahk.json +171 -0
  17. data/grammars/source.alloy.json +44 -0
  18. data/grammars/source.ampl.json +157 -0
  19. data/grammars/source.antlr.json +300 -0
  20. data/grammars/source.apache-config.json +352 -0
  21. data/grammars/source.apache-config.mod_perl.json +70 -0
  22. data/grammars/source.apl.json +442 -0
  23. data/grammars/source.applescript.json +1385 -0
  24. data/grammars/source.apt.json +25 -0
  25. data/grammars/source.asm.x86.json +182 -0
  26. data/grammars/source.asp.json +157 -0
  27. data/grammars/source.aspectj.json +963 -0
  28. data/grammars/source.ats.json +170 -0
  29. data/grammars/source.autoit.3.json +132 -0
  30. data/grammars/source.awk.json +388 -0
  31. data/grammars/source.befunge.json +38 -0
  32. data/grammars/source.bf.json +36 -0
  33. data/grammars/source.bison.json +59 -0
  34. data/grammars/source.blitzmax.json +912 -0
  35. data/grammars/source.boo.json +452 -0
  36. data/grammars/source.brightauthorproject.json +29 -0
  37. data/grammars/source.brightscript.json +158 -0
  38. data/grammars/source.bro.json +409 -0
  39. data/grammars/source.bsv.json +283 -0
  40. data/grammars/source.c++.json +364 -0
  41. data/grammars/source.c++.qt.json +37 -0
  42. data/grammars/source.c.ec.json +39 -0
  43. data/grammars/source.c.json +727 -0
  44. data/grammars/source.c.platform.json +154 -0
  45. data/grammars/source.cache.cmake.json +75 -0
  46. data/grammars/source.cake.json +16 -0
  47. data/grammars/source.camlp4.ocaml.json +63 -0
  48. data/grammars/source.capnp.json +93 -0
  49. data/grammars/source.ceylon.json +77 -0
  50. data/grammars/source.cfscript.cfc.json +170 -0
  51. data/grammars/source.cfscript.json +744 -0
  52. data/grammars/source.chapel.json +240 -0
  53. data/grammars/source.cirru.json +66 -0
  54. data/grammars/source.clarion.json +159 -0
  55. data/grammars/source.clips.json +80 -0
  56. data/grammars/source.clojure.json +397 -0
  57. data/grammars/source.cm.json +54 -0
  58. data/grammars/source.cmake.json +181 -0
  59. data/grammars/source.cobol.json +528 -0
  60. data/grammars/source.coffee.json +678 -0
  61. data/grammars/source.compiled-papyrus.json +11 -0
  62. data/grammars/source.cool.json +103 -0
  63. data/grammars/source.coq.json +62 -0
  64. data/grammars/source.crystal.json +2760 -0
  65. data/grammars/source.cs.json +556 -0
  66. data/grammars/source.css.json +630 -0
  67. data/grammars/source.css.less.json +276 -0
  68. data/grammars/source.css.mss.json +256 -0
  69. data/grammars/source.csx.json +16 -0
  70. data/grammars/source.cuda-c++.json +137 -0
  71. data/grammars/source.cython.json +2108 -0
  72. data/grammars/source.d.json +722 -0
  73. data/grammars/source.dart.json +763 -0
  74. data/grammars/source.desktop.json +90 -0
  75. data/grammars/source.diff.json +162 -0
  76. data/grammars/source.dockerfile.json +89 -0
  77. data/grammars/source.dosbatch.json +70 -0
  78. data/grammars/source.dot.json +126 -0
  79. data/grammars/source.dylan.json +217 -0
  80. data/grammars/source.eiffel.json +138 -0
  81. data/grammars/source.elixir.json +737 -0
  82. data/grammars/source.elm.json +355 -0
  83. data/grammars/source.erazor.json +126 -0
  84. data/grammars/source.erlang.json +1674 -0
  85. data/grammars/source.essl.json +50 -0
  86. data/grammars/source.factor.json +260 -0
  87. data/grammars/source.fan.json +188 -0
  88. data/grammars/source.fancy.json +270 -0
  89. data/grammars/source.fish.json +214 -0
  90. data/grammars/source.forth.json +101 -0
  91. data/grammars/source.fortran.json +499 -0
  92. data/grammars/source.fortran.modern.json +226 -0
  93. data/grammars/source.fsharp.json +403 -0
  94. data/grammars/source.gap.json +167 -0
  95. data/grammars/source.gcode.json +25 -0
  96. data/grammars/source.gdscript.json +154 -0
  97. data/grammars/source.gfm.json +1270 -0
  98. data/grammars/source.glsl.json +71 -0
  99. data/grammars/source.gnuplot.json +276 -0
  100. data/grammars/source.go.json +552 -0
  101. data/grammars/source.golo.json +182 -0
  102. data/grammars/source.gosu.2.json +163 -0
  103. data/grammars/source.grace.json +679 -0
  104. data/grammars/source.groovy.gradle.json +73 -0
  105. data/grammars/source.groovy.json +1385 -0
  106. data/grammars/source.harbour.json +450 -0
  107. data/grammars/source.haskell.json +449 -0
  108. data/grammars/source.haxe.2.json +1243 -0
  109. data/grammars/source.hss.1.json +464 -0
  110. data/grammars/source.httpspec.json +287 -0
  111. data/grammars/source.hxml.json +26 -0
  112. data/grammars/source.hy.json +270 -0
  113. data/grammars/source.idl-dlm.json +112 -0
  114. data/grammars/source.idl.json +267 -0
  115. data/grammars/source.idris.json +537 -0
  116. data/grammars/source.ini.json +113 -0
  117. data/grammars/source.inno.json +65 -0
  118. data/grammars/source.io.json +164 -0
  119. data/grammars/source.ioke.json +272 -0
  120. data/grammars/source.isabelle.root.json +68 -0
  121. data/grammars/source.isabelle.theory.json +106 -0
  122. data/grammars/source.j.json +49 -0
  123. data/grammars/source.jade.json +1009 -0
  124. data/grammars/source.jasmin.json +299 -0
  125. data/grammars/source.java-properties.json +97 -0
  126. data/grammars/source.java.json +1026 -0
  127. data/grammars/source.jcl.json +49 -0
  128. data/grammars/source.jflex.json +490 -0
  129. data/grammars/source.jq.json +218 -0
  130. data/grammars/source.js.json +948 -0
  131. data/grammars/source.js.jsx.json +2937 -0
  132. data/grammars/source.js.objj.json +424 -0
  133. data/grammars/source.js.regexp.json +150 -0
  134. data/grammars/source.js.regexp.replacement.json +30 -0
  135. data/grammars/source.json.json +149 -0
  136. data/grammars/source.julia.json +407 -0
  137. data/grammars/source.lean.json +145 -0
  138. data/grammars/source.lid.json +23 -0
  139. data/grammars/source.lilypond.json +623 -0
  140. data/grammars/source.lisp.json +111 -0
  141. data/grammars/source.litcoffee.json +669 -0
  142. data/grammars/source.livescript.json +616 -0
  143. data/grammars/source.llvm.json +71 -0
  144. data/grammars/source.logos.json +31 -0
  145. data/grammars/source.logtalk.json +315 -0
  146. data/grammars/source.loomscript.json +214 -0
  147. data/grammars/source.lsl.json +216 -0
  148. data/grammars/source.lua.json +191 -0
  149. data/grammars/source.makefile.json +474 -0
  150. data/grammars/source.makegen.json +13 -0
  151. data/grammars/source.man.json +53 -0
  152. data/grammars/source.mask.json +701 -0
  153. data/grammars/source.mata.json +133 -0
  154. data/grammars/source.mathematica.json +429 -0
  155. data/grammars/source.matlab.json +776 -0
  156. data/grammars/source.mercury.json +251 -0
  157. data/grammars/source.ml.json +291 -0
  158. data/grammars/source.modelica.json +142 -0
  159. data/grammars/source.modula2.json +103 -0
  160. data/grammars/source.monkey.json +701 -0
  161. data/grammars/source.moonscript.json +149 -0
  162. data/grammars/source.mupad.json +149 -0
  163. data/grammars/source.nant-build.json +86 -0
  164. data/grammars/source.ncl.json +66 -0
  165. data/grammars/source.nemerle.json +137 -0
  166. data/grammars/source.nesc.json +27 -0
  167. data/grammars/source.netlinx.erb.json +47 -0
  168. data/grammars/source.netlinx.json +768 -0
  169. data/grammars/source.nginx.json +797 -0
  170. data/grammars/source.nim.json +1150 -0
  171. data/grammars/source.nim_filter.json +133 -0
  172. data/grammars/source.nimcfg.json +116 -0
  173. data/grammars/source.ninja.json +66 -0
  174. data/grammars/source.nit.json +238 -0
  175. data/grammars/source.nix.json +1200 -0
  176. data/grammars/source.nmml.json +87 -0
  177. data/grammars/source.nsis.json +150 -0
  178. data/grammars/source.objc++.json +19 -0
  179. data/grammars/source.objc.json +918 -0
  180. data/grammars/source.objc.platform.json +277 -0
  181. data/grammars/source.ocaml.json +1426 -0
  182. data/grammars/source.ocamllex.json +305 -0
  183. data/grammars/source.ocamlyacc.json +346 -0
  184. data/grammars/source.octave.json +451 -0
  185. data/grammars/source.ooc.json +692 -0
  186. data/grammars/source.opa.json +206 -0
  187. data/grammars/source.opal.json +415 -0
  188. data/grammars/source.opalsysdefs.json +70 -0
  189. data/grammars/source.opencobol.json +65 -0
  190. data/grammars/source.ox.json +97 -0
  191. data/grammars/source.oz.json +84 -0
  192. data/grammars/source.papyrus-assembly.json +266 -0
  193. data/grammars/source.papyrus.json +231 -0
  194. data/grammars/source.parrot.pir.json +117 -0
  195. data/grammars/source.pascal.json +150 -0
  196. data/grammars/source.perl.6.json +310 -0
  197. data/grammars/source.perl.json +2413 -0
  198. data/grammars/source.php.zephir.json +362 -0
  199. data/grammars/source.pig_latin.json +172 -0
  200. data/grammars/source.pike.json +62 -0
  201. data/grammars/source.plsql.oracle.json +642 -0
  202. data/grammars/source.po.json +232 -0
  203. data/grammars/source.pogoscript.json +85 -0
  204. data/grammars/source.postscript.json +231 -0
  205. data/grammars/source.powershell.json +755 -0
  206. data/grammars/source.processing.json +885 -0
  207. data/grammars/source.prolog.eclipse.json +206 -0
  208. data/grammars/source.prolog.json +292 -0
  209. data/grammars/source.protobuf.json +395 -0
  210. data/grammars/source.pubspec.json +13 -0
  211. data/grammars/source.puppet.json +494 -0
  212. data/grammars/source.purescript.json +818 -0
  213. data/grammars/source.pyjade.json +1010 -0
  214. data/grammars/source.python.django.json +34 -0
  215. data/grammars/source.python.json +1960 -0
  216. data/grammars/source.python.salt.json +13 -0
  217. data/grammars/source.qmake.json +217 -0
  218. data/grammars/source.qml.json +195 -0
  219. data/grammars/source.r.json +203 -0
  220. data/grammars/source.racket.json +119 -0
  221. data/grammars/source.rebol.json +647 -0
  222. data/grammars/source.red.json +652 -0
  223. data/grammars/source.regexp.babel.json +190 -0
  224. data/grammars/source.regexp.python.json +187 -0
  225. data/grammars/source.regexp.spin.json +188 -0
  226. data/grammars/source.ruby.json +1956 -0
  227. data/grammars/source.ruby.rspec.cucumber.steps.json +274 -0
  228. data/grammars/source.rust.json +269 -0
  229. data/grammars/source.sas.json +322 -0
  230. data/grammars/source.sas_log.json +26 -0
  231. data/grammars/source.sass.json +248 -0
  232. data/grammars/source.sbt.json +36 -0
  233. data/grammars/source.scad.json +152 -0
  234. data/grammars/source.scala.json +739 -0
  235. data/grammars/source.scaml.json +466 -0
  236. data/grammars/source.scheme.json +370 -0
  237. data/grammars/source.scilab.json +103 -0
  238. data/grammars/source.scss.json +1321 -0
  239. data/grammars/source.shell.json +1212 -0
  240. data/grammars/source.smali.json +1668 -0
  241. data/grammars/source.smalltalk.json +135 -0
  242. data/grammars/source.smt.json +173 -0
  243. data/grammars/source.sp.json +118 -0
  244. data/grammars/source.sparql.json +23 -0
  245. data/grammars/source.spin.json +936 -0
  246. data/grammars/source.sqf.json +112 -0
  247. data/grammars/source.sql.json +473 -0
  248. data/grammars/source.stata.json +208 -0
  249. data/grammars/source.strings.json +53 -0
  250. data/grammars/source.stylus.json +1021 -0
  251. data/grammars/source.swift.json +965 -0
  252. data/grammars/source.systemverilog.json +1050 -0
  253. data/grammars/source.tcl.json +277 -0
  254. data/grammars/source.tea.json +180 -0
  255. data/grammars/source.thrift.json +704 -0
  256. data/grammars/source.toml.json +327 -0
  257. data/grammars/source.ts.json +1094 -0
  258. data/grammars/source.tsx.json +1324 -0
  259. data/grammars/source.turtle.json +505 -0
  260. data/grammars/source.txl.json +62 -0
  261. data/grammars/source.ucfconstraints.json +72 -0
  262. data/grammars/source.vala.json +814 -0
  263. data/grammars/source.varnish.vcl.json +343 -0
  264. data/grammars/source.vbnet.json +338 -0
  265. data/grammars/source.verilog.json +302 -0
  266. data/grammars/source.vhdl.json +1349 -0
  267. data/grammars/source.viml.json +224 -0
  268. data/grammars/source.webidl.json +814 -0
  269. data/grammars/source.x10.json +68 -0
  270. data/grammars/source.x86asm.json +47 -0
  271. data/grammars/source.xc.json +379 -0
  272. data/grammars/source.xq.json +241 -0
  273. data/grammars/source.xquery.json +193 -0
  274. data/grammars/source.xtend.json +733 -0
  275. data/grammars/source.yaml.json +334 -0
  276. data/grammars/source.yaml.salt.json +348 -0
  277. data/grammars/text.bibtex.json +251 -0
  278. data/grammars/text.cfml.basic.json +736 -0
  279. data/grammars/text.dart-analysis-output.json +162 -0
  280. data/grammars/text.dart-doccomments.json +19 -0
  281. data/grammars/text.elixir.json +45 -0
  282. data/grammars/text.gherkin.feature.json +135 -0
  283. data/grammars/text.groff.json +113 -0
  284. data/grammars/text.haml.json +299 -0
  285. data/grammars/text.html.abl.json +24 -0
  286. data/grammars/text.html.asciidoc.json +492 -0
  287. data/grammars/text.html.asdoc.json +541 -0
  288. data/grammars/text.html.asp.json +58 -0
  289. data/grammars/text.html.basic.json +552 -0
  290. data/grammars/text.html.cfm.json +811 -0
  291. data/grammars/text.html.creole.json +329 -0
  292. data/grammars/text.html.django.json +69 -0
  293. data/grammars/text.html.elixir.json +18 -0
  294. data/grammars/text.html.erb.json +157 -0
  295. data/grammars/text.html.erlang.yaws.json +72 -0
  296. data/grammars/text.html.factor.json +27 -0
  297. data/grammars/text.html.handlebars.json +783 -0
  298. data/grammars/text.html.jsp.json +1203 -0
  299. data/grammars/text.html.liquid.json +35 -0
  300. data/grammars/text.html.mako.json +729 -0
  301. data/grammars/text.html.markdown.source.gfm.apib.json +1297 -0
  302. data/grammars/text.html.markdown.source.gfm.mson.json +1165 -0
  303. data/grammars/text.html.mediawiki.json +972 -0
  304. data/grammars/text.html.php.json +2607 -0
  305. data/grammars/text.html.slash.json +313 -0
  306. data/grammars/text.html.smarty.json +216 -0
  307. data/grammars/text.html.ssp.json +49 -0
  308. data/grammars/text.html.tcl.json +44 -0
  309. data/grammars/text.html.twig.json +1353 -0
  310. data/grammars/text.html.vue.json +642 -0
  311. data/grammars/text.idl-idldoc.json +14 -0
  312. data/grammars/text.junit-test-report.json +92 -0
  313. data/grammars/text.log.latex.json +86 -0
  314. data/grammars/text.python.console.json +25 -0
  315. data/grammars/text.python.traceback.json +46 -0
  316. data/grammars/text.rdoc.json +48 -0
  317. data/grammars/text.restructuredtext.json +561 -0
  318. data/grammars/text.robot.json +73 -0
  319. data/grammars/text.shell-session.json +48 -0
  320. data/grammars/text.slim.json +527 -0
  321. data/grammars/text.tex.json +271 -0
  322. data/grammars/text.tex.latex.beamer.json +63 -0
  323. data/grammars/text.tex.latex.haskell.json +56 -0
  324. data/grammars/text.tex.latex.json +1013 -0
  325. data/grammars/text.tex.latex.memoir.json +99 -0
  326. data/grammars/text.tex.latex.rd.json +117 -0
  327. data/grammars/text.xml.ant.json +202 -0
  328. data/grammars/text.xml.flex-config.json +2634 -0
  329. data/grammars/text.xml.genshi.json +34 -0
  330. data/grammars/text.xml.json +364 -0
  331. data/grammars/text.xml.pom.json +774 -0
  332. data/grammars/text.xml.xsl.json +94 -0
  333. data/grammars/text.zone_file.json +72 -0
  334. data/lib/linguist/grammars.rb +13 -0
  335. metadata +389 -0
@@ -0,0 +1,137 @@
1
+ {
2
+ "fileTypes": [
3
+ "n"
4
+ ],
5
+ "keyEquivalent": "^~N",
6
+ "name": "Nemerle",
7
+ "patterns": [
8
+ {
9
+ "begin": "(^[ \\t]+)?(?=//)",
10
+ "beginCaptures": {
11
+ "1": {
12
+ "name": "punctuation.whitespace.comment.leading.nemerle"
13
+ }
14
+ },
15
+ "end": "(?!\\G)",
16
+ "patterns": [
17
+ {
18
+ "begin": "//",
19
+ "beginCaptures": {
20
+ "0": {
21
+ "name": "punctuation.definition.comment.nemerle"
22
+ }
23
+ },
24
+ "end": "\\n",
25
+ "name": "comment.line.double-slash.nemerle"
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "begin": "/\\*",
31
+ "captures": {
32
+ "0": {
33
+ "name": "punctuation.definition.comment.nemerle"
34
+ }
35
+ },
36
+ "end": "\\*/",
37
+ "name": "comment.block.nemerle"
38
+ },
39
+ {
40
+ "match": "\\b(|false|null|true)\\b",
41
+ "name": "constant.language.nemerle"
42
+ },
43
+ {
44
+ "match": "\\b(([0-9]+(\\.|\\_)?[0-9]*(b|bu|d|f|L|LU|m|u|ub|UL)?)|(0(b|o|x)[0-9]+))\\b",
45
+ "name": "constant.numeric.nemerle"
46
+ },
47
+ {
48
+ "match": "\\b(catch|else|finally|for|foreach|if|match|repeat|try|unless|when|while)\\b",
49
+ "name": "keyword.control.nemerle"
50
+ },
51
+ {
52
+ "match": "(\\+|\\-|\\*|\\/|\\%)\\=?",
53
+ "name": "keyword.operator.nemerle"
54
+ },
55
+ {
56
+ "match": "\\b(\\_|as|assert|base|checked|do|fun|get|ignore|implements|in|is|lock|namespace|out|params|ref|set|syntax|throw|typeof|unchecked|using|with)\\b",
57
+ "name": "keyword.other.nemerle"
58
+ },
59
+ {
60
+ "match": "\\b(array|bool|byte|char|class|decimal|double|enum|float|int|interface|list|long|macro|module|object|sbyte|short|string|struct|type|uint|ulong|ushort|variant|void)\\b",
61
+ "name": "storage.type.nemerle"
62
+ },
63
+ {
64
+ "match": "\\b(abstract|def|delegate|event|extern|internal|mutable|override|public|private|protected|sealed|static|volatile|virtual|new)\\b",
65
+ "name": "storage.modifier.nemerle"
66
+ },
67
+ {
68
+ "match": "this",
69
+ "name": "variable.language.nemerle"
70
+ },
71
+ {
72
+ "begin": "\"",
73
+ "beginCaptures": {
74
+ "0": {
75
+ "name": "punctuation.definition.string.begin.nemerle"
76
+ }
77
+ },
78
+ "end": "\"",
79
+ "endCaptures": {
80
+ "0": {
81
+ "name": "punctuation.definition.string.end.nemerle"
82
+ }
83
+ },
84
+ "name": "string.quoted.double.nemerle",
85
+ "patterns": [
86
+ {
87
+ "match": "\\\\(\\\\|'|\\\"|a|b|c[A-Z]+|e|f|n|r|u0+[0-9,A-Z]+|v)",
88
+ "name": "constant.character.escape.nemerle"
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "begin": "\\$\"",
94
+ "beginCaptures": {
95
+ "0": {
96
+ "name": "punctuation.definition.string.begin.nemerle"
97
+ }
98
+ },
99
+ "end": "\"",
100
+ "endCaptures": {
101
+ "0": {
102
+ "name": "punctuation.definition.string.end.nemerle"
103
+ }
104
+ },
105
+ "name": "string.interpolated.nemerle",
106
+ "patterns": [
107
+ {
108
+ "match": "\\$[a-z,A-Z]+[a-z,A-Z,0-9]*( |\\+|\\-|\\*|\\/|\\%)",
109
+ "name": "constant.character.escape"
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "begin": "'",
115
+ "beginCaptures": {
116
+ "0": {
117
+ "name": "punctuation.definition.string.begin.nemerle"
118
+ }
119
+ },
120
+ "end": "'",
121
+ "endCaptures": {
122
+ "0": {
123
+ "name": "punctuation.definition.string.end.nemerle"
124
+ }
125
+ },
126
+ "name": "string.quoted.single.nemerle",
127
+ "patterns": [
128
+ {
129
+ "match": "\\\\(\\\\|'|\\\"|a|b|c[A-Z]+|e|f|n|r|u0+[0-9,A-Z]+|v)",
130
+ "name": "constant.character.escape"
131
+ }
132
+ ]
133
+ }
134
+ ],
135
+ "scopeName": "source.nemerle",
136
+ "uuid": "F563968D-4CB3-11DB-9F95-00112474B8F0"
137
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "fileTypes": [
3
+ "nc",
4
+ "h"
5
+ ],
6
+ "firstLineMatch": "-[*]-( Mode:)? nesC -[*]-",
7
+ "name": "nesC",
8
+ "patterns": [
9
+ {
10
+ "include": "source.c"
11
+ },
12
+ {
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"
15
+ },
16
+ {
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"
19
+ },
20
+ {
21
+ "match": "\\b(SUCCESS|FAIL)\\b",
22
+ "name": "constant.language.nesc"
23
+ }
24
+ ],
25
+ "scopeName": "source.nesc",
26
+ "uuid": "3EC088FE-8C4B-4065-B895-3B32204A87C3"
27
+ }
@@ -0,0 +1,47 @@
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
+ "name": "NetLinx ERB",
11
+ "patterns": [
12
+ {
13
+ "include": "#erb"
14
+ },
15
+ {
16
+ "include": "source.netlinx"
17
+ }
18
+ ],
19
+ "repository": {
20
+ "erb": {
21
+ "begin": "<%",
22
+ "beginCaptures": {
23
+ "0": {
24
+ "name": "punctuation.section.scope.netlinx.erb"
25
+ }
26
+ },
27
+ "comment": "Ruby ERB blocks nested in NetLinx code",
28
+ "end": "%>",
29
+ "endCaptures": {
30
+ "0": {
31
+ "name": "punctuation.section.scope.netlinx.erb"
32
+ }
33
+ },
34
+ "name": "meta.block.netlinx.erb",
35
+ "patterns": [
36
+ {
37
+ "include": "source.ruby"
38
+ },
39
+ {
40
+ "include": "meta.define.event"
41
+ }
42
+ ]
43
+ }
44
+ },
45
+ "scopeName": "source.netlinx.erb",
46
+ "uuid": "25066DC2-6B1D-11D9-9D5B-000D93589AF6"
47
+ }
@@ -0,0 +1,768 @@
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
+ "name": "NetLinx",
11
+ "patterns": [
12
+ {
13
+ "include": "#preprocessor-rule-enabled"
14
+ },
15
+ {
16
+ "include": "#preprocessor-rule-disabled"
17
+ },
18
+ {
19
+ "include": "#preprocessor-rule-other"
20
+ },
21
+ {
22
+ "include": "#comments"
23
+ },
24
+ {
25
+ "captures": {
26
+ "1": {
27
+ "name": "constant.numeric.dps.device.netlinx"
28
+ },
29
+ "2": {
30
+ "name": "punctuation.colon.dps.netlinx"
31
+ },
32
+ "3": {
33
+ "name": "constant.numeric.dps.port.netlinx"
34
+ },
35
+ "4": {
36
+ "name": "punctuation.colon.dps.netlinx"
37
+ },
38
+ "5": {
39
+ "name": "constant.numeric.dps.system.netlinx"
40
+ }
41
+ },
42
+ "comment": "Device Number",
43
+ "match": "(\\d{1,5})(:)(\\d{1,5})(:)(\\d{1,5})",
44
+ "name": "meta.dps.netlinx"
45
+ },
46
+ {
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"
49
+ },
50
+ {
51
+ "comment": "hex",
52
+ "match": "(\\$[0-9a-fA-F]+)",
53
+ "name": "constant.numeric.hex.netlinx"
54
+ },
55
+ {
56
+ "begin": "'",
57
+ "beginCaptures": {
58
+ "0": {
59
+ "name": "punctuation.definition.string.begin.netlinx"
60
+ }
61
+ },
62
+ "comment": "single quoted string",
63
+ "end": "'",
64
+ "endCaptures": {
65
+ "0": {
66
+ "name": "punctuation.definition.string.end.netlinx"
67
+ }
68
+ },
69
+ "name": "string.quoted.single.netlinx"
70
+ },
71
+ {
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",
73
+ "beginCaptures": {
74
+ "1": {
75
+ "name": "keyword.control.import.define.netlinx"
76
+ },
77
+ "2": {
78
+ "name": "keyword.control.import.define.netlinx"
79
+ },
80
+ "3": {
81
+ "name": "entity.name.function.preprocessor.netlinx"
82
+ },
83
+ "5": {
84
+ "name": "punctuation.definition.parameters.netlinx"
85
+ },
86
+ "6": {
87
+ "name": "variable.parameter.preprocessor.netlinx"
88
+ },
89
+ "8": {
90
+ "name": "punctuation.separator.parameters.netlinx"
91
+ },
92
+ "9": {
93
+ "name": "punctuation.definition.parameters.netlinx"
94
+ }
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
+ ]
107
+ },
108
+ {
109
+ "include": "#pragma-mark"
110
+ },
111
+ {
112
+ "include": "#block"
113
+ },
114
+ {
115
+ "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
+ "end": "\\)",
123
+ "patterns": [
124
+ {
125
+ "comment": "function name",
126
+ "match": "(?i)\\b([a-z_]\\w*)\\b(?=\\s*\\()",
127
+ "name": "entity.name.function.netlinx"
128
+ },
129
+ {
130
+ "include": "#netlinx_keywords"
131
+ },
132
+ {
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"
136
+ },
137
+ {
138
+ "include": "#netlinx_variables"
139
+ }
140
+ ]
141
+ },
142
+ {
143
+ "include": "#netlinx_keywords"
144
+ },
145
+ {
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"
149
+ },
150
+ {
151
+ "include": "#netlinx_variables"
152
+ }
153
+ ],
154
+ "repository": {
155
+ "access": {
156
+ "match": "(?i)\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()",
157
+ "name": "variable.other.dot-access.netlinx"
158
+ },
159
+ "block": {
160
+ "begin": "\\{",
161
+ "end": "\\}",
162
+ "name": "meta.block.netlinx",
163
+ "patterns": [
164
+ {
165
+ "include": "#block_innards"
166
+ }
167
+ ]
168
+ },
169
+ "block_innards": {
170
+ "patterns": [
171
+ {
172
+ "include": "#preprocessor-rule-enabled-block"
173
+ },
174
+ {
175
+ "include": "#preprocessor-rule-disabled-block"
176
+ },
177
+ {
178
+ "include": "#preprocessor-rule-other-block"
179
+ },
180
+ {
181
+ "include": "#sizeof"
182
+ },
183
+ {
184
+ "include": "#access"
185
+ },
186
+ {
187
+ "captures": {
188
+ "1": {
189
+ "name": "variable.other.netlinx"
190
+ },
191
+ "2": {
192
+ "name": "punctuation.definition.parameters.netlinx"
193
+ }
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"
197
+ },
198
+ {
199
+ "include": "#block"
200
+ },
201
+ {
202
+ "include": "$base"
203
+ }
204
+ ]
205
+ },
206
+ "comments": {
207
+ "patterns": [
208
+ {
209
+ "captures": {
210
+ "1": {
211
+ "name": "meta.toc-list.banner.block.netlinx"
212
+ }
213
+ },
214
+ "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
215
+ "name": "comment.block.netlinx"
216
+ },
217
+ {
218
+ "begin": "/\\*",
219
+ "captures": {
220
+ "0": {
221
+ "name": "punctuation.definition.comment.netlinx"
222
+ }
223
+ },
224
+ "end": "\\*/",
225
+ "name": "comment.block.netlinx"
226
+ },
227
+ {
228
+ "begin": "\\(\\*",
229
+ "captures": {
230
+ "0": {
231
+ "name": "punctuation.definition.comment.netlinx"
232
+ }
233
+ },
234
+ "comment": "Netlinx parenthesis comments.",
235
+ "end": "\\*\\)",
236
+ "name": "comment.block.netlinx"
237
+ },
238
+ {
239
+ "match": "\\*/.*\\n",
240
+ "name": "invalid.illegal.stray-comment-end.netlinx"
241
+ },
242
+ {
243
+ "captures": {
244
+ "1": {
245
+ "name": "meta.toc-list.banner.line.netlinx"
246
+ }
247
+ },
248
+ "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
249
+ "name": "comment.line.banner.netlinx"
250
+ },
251
+ {
252
+ "begin": "//",
253
+ "beginCaptures": {
254
+ "0": {
255
+ "name": "punctuation.definition.comment.netlinx"
256
+ }
257
+ },
258
+ "end": "$\\n?",
259
+ "name": "comment.line.double-slash.netlinx",
260
+ "patterns": [
261
+ {
262
+ "match": "(?>\\\\\\s*\\n)",
263
+ "name": "punctuation.separator.continuation.netlinx"
264
+ }
265
+ ]
266
+ }
267
+ ]
268
+ },
269
+ "disabled": {
270
+ "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
271
+ "comment": "eat nested preprocessor if(def)s",
272
+ "end": "^\\s*#\\s*endif\\b.*$",
273
+ "patterns": [
274
+ {
275
+ "include": "#disabled"
276
+ },
277
+ {
278
+ "include": "#pragma-mark"
279
+ }
280
+ ]
281
+ },
282
+ "dps_variables": {
283
+ "captures": {
284
+ "1": {
285
+ "name": "support.variable.system.dps.dot-access.netlinx"
286
+ }
287
+ },
288
+ "match": "(?i)[a-z0-9_]+\\.\\b(number|port|system)\\b"
289
+ },
290
+ "netlinx_constants": {
291
+ "match": "\\b(dv|vdv|btn|lvl|ch|adr)?([A-Z0-9_]+)\\b",
292
+ "name": "constant.other.netlinx"
293
+ },
294
+ "netlinx_keywords": {
295
+ "patterns": [
296
+ {
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"
300
+ },
301
+ {
302
+ "comment": "Subroutine Keywords",
303
+ "match": "(?i)\\b(call|define_call|system_call)\\b",
304
+ "name": "keyword.control.netlinx"
305
+ },
306
+ {
307
+ "comment": "Array Keywords",
308
+ "match": "(?i)\\b(length_array|max_length_array|set_length_array)\\b",
309
+ "name": "support.function.netlinx"
310
+ },
311
+ {
312
+ "comment": "Buffer Keywords",
313
+ "match": "(?i)\\b(clear_buffer|create_buffer|create_multi_buffer)\\b",
314
+ "name": "keyword.control.netlinx"
315
+ },
316
+ {
317
+ "comment": "Channel Keywords",
318
+ "match": "(?i)\\b(on|off|total_off)\\b",
319
+ "name": "support.function.netlinx"
320
+ },
321
+ {
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"
325
+ },
326
+ {
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"
330
+ },
331
+ {
332
+ "comment": "Compiler Keywords",
333
+ "match": "(?i)\\b(__DATE__|__FILE__|__LDATE__|__LINE__|__NAME__|__TIME__)\\b",
334
+ "name": "support.function.compiler.netlinx"
335
+ },
336
+ {
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"
340
+ },
341
+ {
342
+ "comment": "Boolean Values",
343
+ "match": "(?i)\\b(true|false)\\b",
344
+ "name": "constant.language.netlinx"
345
+ },
346
+ {
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"
350
+ },
351
+ {
352
+ "comment": "Data Event Keywords",
353
+ "match": "(?i)\\b(awake|command|hold|onerror|offline|online|standby)\\b",
354
+ "name": "keyword.control.event.data.netlinx"
355
+ },
356
+ {
357
+ "captures": {
358
+ "1": {
359
+ "name": "support.type.system.netlinx"
360
+ },
361
+ "2": {
362
+ "name": "support.variable.system.netlinx"
363
+ }
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(?!\\()"
367
+ },
368
+ {
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"
372
+ },
373
+ {
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"
377
+ },
378
+ {
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"
382
+ },
383
+ {
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"
387
+ },
388
+ {
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"
392
+ },
393
+ {
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"
397
+ },
398
+ {
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"
402
+ },
403
+ {
404
+ "comment": "Level Keywords",
405
+ "match": "(?i)\\b(~levsyncon|~levsyncoff|create_level|send_level|set_virtual_level_count)\\b",
406
+ "name": "support.function.netlinx"
407
+ },
408
+ {
409
+ "comment": "Log Keywords",
410
+ "match": "(?i)\\b(set_log_level|get_log_level|amx_log)\\b",
411
+ "name": "support.function.log.netlinx"
412
+ },
413
+ {
414
+ "comment": "Math Functions",
415
+ "match": "(?i)\\b(exp_value|log_value|log10_value|power_value|sqrt_value)\\b",
416
+ "name": "support.function.netlinx"
417
+ },
418
+ {
419
+ "comment": "Module Keywords",
420
+ "match": "(?i)\\b(duet_mem_size_get|duet_mem_size_set|module_name)\\b",
421
+ "name": "support.function.netlinx"
422
+ },
423
+ {
424
+ "comment": "Operator Keywords",
425
+ "match": "(\\&|~|\\||\\^|<|\\%|\\!|>|=|\\\")",
426
+ "name": "keyword.operator.netlinx"
427
+ },
428
+ {
429
+ "comment": "Port Keywords",
430
+ "match": "(?i)\\b(dynamic_polled_port|first_local_port|static_port_binding)\\b",
431
+ "name": "support.function.netlinx"
432
+ },
433
+ {
434
+ "comment": "Push And Release Control Keywords",
435
+ "match": "(?i)\\b(push|release)\\b",
436
+ "name": "keyword.control.netlinx"
437
+ },
438
+ {
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"
442
+ },
443
+ {
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"
447
+ },
448
+ {
449
+ "comment": "SMTP Keywords",
450
+ "match": "(?i)\\b(smtp_server_config_set|smtp_server_config_get|smtp_send)\\b",
451
+ "name": "support.function.netlinx"
452
+ },
453
+ {
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"
457
+ },
458
+ {
459
+ "comment": "Structure Keywords",
460
+ "match": "(?i)\\b(struct|structure)\\b",
461
+ "name": "support.function.netlinx"
462
+ },
463
+ {
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"
467
+ },
468
+ {
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"
472
+ },
473
+ {
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"
477
+ },
478
+ {
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"
482
+ },
483
+ {
484
+ "comment": "Variable Modifiers",
485
+ "match": "(?i)\\b(constant|non_volatile|persistent|local_var|stack_var|volatile)\\b",
486
+ "name": "storage.modifier.netlinx"
487
+ },
488
+ {
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"
492
+ },
493
+ {
494
+ "include": "#dps_variables"
495
+ },
496
+ {
497
+ "include": "#netlinx_constants"
498
+ }
499
+ ]
500
+ },
501
+ "netlinx_variables": {
502
+ "comment": "Variables (every word not matched)",
503
+ "match": "\\w+",
504
+ "name": "variable.other.netlinx"
505
+ },
506
+ "parens": {
507
+ "begin": "\\(",
508
+ "end": "\\)",
509
+ "name": "meta.parens.netlinx",
510
+ "patterns": [
511
+ {
512
+ "include": "$base"
513
+ }
514
+ ]
515
+ },
516
+ "pragma-mark": {
517
+ "captures": {
518
+ "1": {
519
+ "name": "meta.preprocessor.netlinx"
520
+ },
521
+ "2": {
522
+ "name": "keyword.control.import.pragma.netlinx"
523
+ },
524
+ "3": {
525
+ "name": "meta.toc-list.pragma-mark.netlinx"
526
+ }
527
+ },
528
+ "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
529
+ "name": "meta.section"
530
+ },
531
+ "preprocessor-rule-disabled": {
532
+ "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
+ "end": "^\\s*(#\\s*(endif)\\b)",
545
+ "patterns": [
546
+ {
547
+ "begin": "^\\s*(#\\s*(else)\\b)",
548
+ "captures": {
549
+ "1": {
550
+ "name": "meta.preprocessor.netlinx"
551
+ },
552
+ "2": {
553
+ "name": "keyword.control.import.else.netlinx"
554
+ }
555
+ },
556
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
557
+ "patterns": [
558
+ {
559
+ "include": "$base"
560
+ }
561
+ ]
562
+ },
563
+ {
564
+ "begin": "",
565
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
566
+ "name": "comment.block.preprocessor.if-branch",
567
+ "patterns": [
568
+ {
569
+ "include": "#disabled"
570
+ },
571
+ {
572
+ "include": "#pragma-mark"
573
+ }
574
+ ]
575
+ }
576
+ ]
577
+ },
578
+ "preprocessor-rule-disabled-block": {
579
+ "begin": "^\\s*(#(if)\\s+(0)\\b).*",
580
+ "captures": {
581
+ "1": {
582
+ "name": "meta.preprocessor.netlinx"
583
+ },
584
+ "2": {
585
+ "name": "keyword.control.import.if.netlinx"
586
+ },
587
+ "3": {
588
+ "name": "constant.numeric.preprocessor.netlinx"
589
+ }
590
+ },
591
+ "end": "^\\s*(#\\s*(endif)\\b)",
592
+ "patterns": [
593
+ {
594
+ "begin": "^\\s*(#\\s*(else)\\b)",
595
+ "captures": {
596
+ "1": {
597
+ "name": "meta.preprocessor.netlinx"
598
+ },
599
+ "2": {
600
+ "name": "keyword.control.import.else.netlinx"
601
+ }
602
+ },
603
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
604
+ "patterns": [
605
+ {
606
+ "include": "#block_innards"
607
+ }
608
+ ]
609
+ },
610
+ {
611
+ "begin": "",
612
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
613
+ "name": "comment.block.preprocessor.if-branch.in-block",
614
+ "patterns": [
615
+ {
616
+ "include": "#disabled"
617
+ },
618
+ {
619
+ "include": "#pragma-mark"
620
+ }
621
+ ]
622
+ }
623
+ ]
624
+ },
625
+ "preprocessor-rule-enabled": {
626
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
627
+ "captures": {
628
+ "1": {
629
+ "name": "meta.preprocessor.netlinx"
630
+ },
631
+ "2": {
632
+ "name": "keyword.control.import.if.netlinx"
633
+ },
634
+ "3": {
635
+ "name": "constant.numeric.preprocessor.netlinx"
636
+ }
637
+ },
638
+ "end": "^\\s*(#\\s*(endif)\\b)",
639
+ "patterns": [
640
+ {
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
+ "contentName": "comment.block.preprocessor.else-branch",
651
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
652
+ "patterns": [
653
+ {
654
+ "include": "#disabled"
655
+ },
656
+ {
657
+ "include": "#pragma-mark"
658
+ }
659
+ ]
660
+ },
661
+ {
662
+ "begin": "",
663
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
664
+ "patterns": [
665
+ {
666
+ "include": "$base"
667
+ }
668
+ ]
669
+ }
670
+ ]
671
+ },
672
+ "preprocessor-rule-enabled-block": {
673
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
674
+ "captures": {
675
+ "1": {
676
+ "name": "meta.preprocessor.netlinx"
677
+ },
678
+ "2": {
679
+ "name": "keyword.control.import.if.netlinx"
680
+ },
681
+ "3": {
682
+ "name": "constant.numeric.preprocessor.netlinx"
683
+ }
684
+ },
685
+ "end": "^\\s*(#\\s*(endif)\\b)",
686
+ "patterns": [
687
+ {
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
+ "contentName": "comment.block.preprocessor.else-branch.in-block",
698
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
699
+ "patterns": [
700
+ {
701
+ "include": "#disabled"
702
+ },
703
+ {
704
+ "include": "#pragma-mark"
705
+ }
706
+ ]
707
+ },
708
+ {
709
+ "begin": "",
710
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
711
+ "patterns": [
712
+ {
713
+ "include": "#block_innards"
714
+ }
715
+ ]
716
+ }
717
+ ]
718
+ },
719
+ "preprocessor-rule-other": {
720
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
721
+ "captures": {
722
+ "1": {
723
+ "name": "meta.preprocessor.netlinx"
724
+ },
725
+ "2": {
726
+ "name": "keyword.control.import.netlinx"
727
+ }
728
+ },
729
+ "end": "^\\s*(#\\s*(endif)\\b).*$",
730
+ "patterns": [
731
+ {
732
+ "include": "$base"
733
+ }
734
+ ]
735
+ },
736
+ "preprocessor-rule-other-block": {
737
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
738
+ "captures": {
739
+ "1": {
740
+ "name": "meta.preprocessor.netlinx"
741
+ },
742
+ "2": {
743
+ "name": "keyword.control.import.netlinx"
744
+ }
745
+ },
746
+ "end": "^\\s*(#\\s*(endif)\\b).*$",
747
+ "patterns": [
748
+ {
749
+ "include": "#block_innards"
750
+ }
751
+ ]
752
+ },
753
+ "string_placeholder": {
754
+ "patterns": [
755
+ {
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"
758
+ },
759
+ {
760
+ "match": "%",
761
+ "name": "invalid.illegal.placeholder.netlinx"
762
+ }
763
+ ]
764
+ }
765
+ },
766
+ "scopeName": "source.netlinx",
767
+ "uuid": "25066DC2-6B1D-11D9-9D5B-000D93589AF6"
768
+ }