github-linguist 7.15.0 → 7.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +115 -71
  3. data/grammars/annotation.liquidhaskell.haskell.json +1 -1
  4. data/grammars/etc.json +1 -1
  5. data/grammars/go.mod.json +1 -0
  6. data/grammars/go.sum.json +1 -0
  7. data/grammars/hint.haskell.json +1 -1
  8. data/grammars/hint.message.haskell.json +1 -1
  9. data/grammars/hint.type.haskell.json +1 -1
  10. data/grammars/markdown.mcfunction.codeblock.json +1 -0
  11. data/grammars/source.abap.json +1 -1
  12. data/grammars/source.al.json +1 -1
  13. data/grammars/source.avro.json +1 -1
  14. data/grammars/source.ballerina.json +1 -1
  15. data/grammars/source.bc.json +1 -0
  16. data/grammars/source.bicep.json +1 -1
  17. data/grammars/source.boo.json +1 -1
  18. data/grammars/source.cirru.json +1 -1
  19. data/grammars/source.cs.json +1 -1
  20. data/grammars/source.csound.json +1 -1
  21. data/grammars/source.css.json +1 -1
  22. data/grammars/source.dart.json +1 -1
  23. data/grammars/source.dc.json +1 -0
  24. data/grammars/source.ditroff.json +1 -1
  25. data/grammars/source.dotenv.json +1 -0
  26. data/grammars/source.earthfile.json +1 -0
  27. data/grammars/source.ecl.json +1 -0
  28. data/grammars/source.ed.json +1 -0
  29. data/grammars/source.fnl.json +1 -0
  30. data/grammars/source.fsharp.json +1 -1
  31. data/grammars/source.fstar.json +1 -1
  32. data/grammars/source.futhark.json +1 -1
  33. data/grammars/source.gcode.json +1 -1
  34. data/grammars/source.gdscript.json +1 -1
  35. data/grammars/source.goldgrm.json +1 -0
  36. data/grammars/source.hack.json +1 -1
  37. data/grammars/source.haskell.json +1 -1
  38. data/grammars/source.hsig.json +1 -1
  39. data/grammars/source.hy.json +1 -1
  40. data/grammars/source.jest.snap.json +1 -0
  41. data/grammars/source.jq.json +1 -1
  42. data/grammars/source.json.json +1 -1
  43. data/grammars/source.julia.json +1 -1
  44. data/grammars/source.kakscript.json +1 -0
  45. data/grammars/source.kotlin.json +1 -1
  46. data/grammars/source.lean.json +1 -1
  47. data/grammars/source.m2.json +1 -1
  48. data/grammars/source.matlab.json +1 -1
  49. data/grammars/source.mcfunction.json +1 -1
  50. data/grammars/source.mo.json +1 -0
  51. data/grammars/source.odin.json +1 -1
  52. data/grammars/source.opts.json +1 -1
  53. data/grammars/source.pic.json +1 -1
  54. data/grammars/source.postscript.json +1 -1
  55. data/grammars/source.powershell.json +1 -1
  56. data/grammars/source.promela.json +1 -0
  57. data/grammars/source.q_output.json +1 -1
  58. data/grammars/source.rego.json +1 -1
  59. data/grammars/source.renpy.json +1 -1
  60. data/grammars/source.scala.json +1 -1
  61. data/grammars/source.sed.json +1 -1
  62. data/grammars/source.sqf.json +1 -1
  63. data/grammars/source.ssh-config.json +1 -1
  64. data/grammars/source.ts.json +1 -1
  65. data/grammars/source.tsx.json +1 -1
  66. data/grammars/source.v.json +1 -1
  67. data/grammars/source.viml.json +1 -1
  68. data/grammars/source.ws.json +1 -0
  69. data/grammars/source.wsd.json +1 -1
  70. data/grammars/source.xojo.json +1 -1
  71. data/grammars/source.yara.json +1 -1
  72. data/grammars/source.yasnippet.json +1 -1
  73. data/grammars/source.zig.json +1 -1
  74. data/grammars/text.html.astro.json +1 -0
  75. data/grammars/text.html.markdown.astro.json +1 -0
  76. data/grammars/text.html.php.json +1 -1
  77. data/grammars/text.info.json +1 -0
  78. data/grammars/text.lesshst.json +1 -0
  79. data/grammars/text.marko.json +1 -1
  80. data/grammars/text.roff.json +1 -1
  81. data/grammars/text.tex.latex.haskell.json +1 -1
  82. data/grammars/text.xml.svg.json +1 -1
  83. data/grammars/version +1 -1
  84. data/lib/linguist/VERSION +1 -1
  85. data/lib/linguist/documentation.yml +1 -0
  86. data/lib/linguist/generated.rb +19 -0
  87. data/lib/linguist/heuristics.yml +10 -3
  88. data/lib/linguist/languages.json +1 -1
  89. data/lib/linguist/languages.yml +310 -31
  90. data/lib/linguist/linguist.so +0 -0
  91. data/lib/linguist/samples.json +1 -1
  92. data/lib/linguist/shebang.rb +4 -1
  93. data/lib/linguist/vendor.yml +3 -0
  94. metadata +28 -10
  95. data/grammars/source.SASLog.json +0 -1
  96. data/grammars/source.mcfunction-snapshot.json +0 -1
  97. data/lib/linguist/linguist.bundle +0 -0
@@ -1 +1 @@
1
- {"name":"Roff (Intermediate Output)","scopeName":"source.ditroff","patterns":[{"include":"#main"}],"repository":{"colourMode":{"patterns":[{"name":"meta.colour-mode.default.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(d)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"}}},{"name":"meta.colour-mode.rgb.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(r)((?:\\s*\\d+){3})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.colour-mode.cmyk.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(k)((?:\\s*\\d+){4})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.colour-mode.cmy.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(c)((?:\\s*\\d+){3})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.colour-mode.grey.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(g)\\s*(\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}}]},"comment":{"name":"comment.line.number-sign.ditroff","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.ditroff"}}},"continueLine":{"name":"keyword.operator.line-continuation.gnu.ditroff","match":"^\\+"},"deviceControl":{"patterns":[{"name":"meta.device-control.x-command.ditroff","begin":"(x)\\s*(X\\S*)[ \\t]*","end":"(?=^(?!\\+))(?!\\G)","patterns":[{"include":"#xCommands"}],"beginCaptures":{"0":{"name":"meta.device-control.lhs.ditroff"},"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.device.control.ditroff"}}},{"name":"meta.device-control.ditroff","begin":"(x)\\s*","end":"(?=$|#)","patterns":[{"name":"keyword.device.control.ditroff","match":"\\G([ipst]\\S*)\\s*?(?=$|#)"},{"name":"meta.space-underlining.gnu.ditroff","match":"\\G(u\\S*)\\s+(?:(1|0)|(\\d+))\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"},"3":{"name":"invalid.illegal.argument.ditroff"}}},{"name":"meta.source-filename.gnu.ditroff","match":"\\G(F\\S*)\\s+(\\S+)\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"string.other.link.filename.ditroff"}}},{"name":"meta.typesetter-device.ditroff","match":"\\G(T\\S*)\\s+(\\S+)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"support.constant.device-name.ditroff"}}},{"name":"meta.device-resolution.ditroff","match":"\\G(r\\S*)((?:\\s+(\\d+)){1,3})\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.mount-font.ditroff","match":"\\G(f\\S*)(?:\\s+(\\d+))?(?:\\s+([-\\w]+))?(?:\\s+(\\S.*?)\\s+(\\d+)[ \\t]*$)?[ \\t]*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"constant.numeric.integer.position.ditroff"},"3":{"name":"entity.name.font.ditroff"},"4":{"name":"string.other.link.filename.ditroff"},"5":{"name":"constant.numeric.integer.flags.ditroff"}}},{"name":"meta.mount-font.ditroff","match":"\\G(f\\S*)(?:\\s+(\\d+))?(?:\\s+([-\\w]+))?\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"},"3":{"name":"variable.parameter.ditroff"}}},{"name":"meta.set-character-property.ditroff","match":"\\G([HS]\\S*)\\s+(?:(-23)\\s+(-?[\\d.]+)|(-?\\d+))?\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"comment.dummy.argument.ditroff"},"3":{"name":"constant.numeric.float.ditroff"},"4":{"name":"constant.numeric.integer.ditroff"}}},{"name":"meta.unknown-command.ditroff","begin":"\\G(\\S+)","end":"(?=$|#)","beginCaptures":{"1":{"name":"keyword.device.control.ditroff"}}}],"beginCaptures":{"0":{"name":"meta.device-control.lhs.ditroff"},"1":{"name":"keyword.operator.function.ditroff"}}}]},"eol":{"name":"meta.end-of-line.ditroff","match":"(n)((?:\\s*\\d+){2})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"patterns":[{"include":"text.roff#number"}]}}},"font":{"name":"meta.change-font.ditroff","match":"(f)\\s*(\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},"graphics":{"patterns":[{"name":"meta.graphics.gnu.ditroff","match":"(D)\\s*(C)\\s*(\\d+)(?:\\s+(\\d+))?","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditrof"},"3":{"name":"constant.numeric.integer.ditroff"},"4":{"name":"comment.dummy.argument.ditroff"}}},{"name":"meta.graphics.gnu.ditroff","match":"(D)\\s*(E)((?:\\s*(\\d+)){1,2})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditroff"},"3":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.graphics.ditroff","begin":"(D)\\s*([lceafptPR~])","end":"(?=$|#)","patterns":[{"include":"text.roff#number"}],"beginCaptures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditroff"}}},{"name":"meta.graphics.unknown-command.ditroff","contentName":"variable.parameter.ditroff","begin":"(D)\\s*([^\\s\\\\])","end":"(?=$|#)","beginCaptures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditroff"}}}]},"main":{"patterns":[{"include":"#comment"},{"include":"#deviceControl"},{"include":"#colourMode"},{"include":"#print"},{"include":"#font"},{"include":"#eol"},{"include":"#move"},{"include":"#size"},{"include":"#page"},{"include":"#graphics"},{"include":"#movePrint"},{"include":"#wordSpace"}]},"move":{"name":"meta.move.ditroff","match":"([HhVv])\\s*(-?\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},"movePrint":{"name":"meta.move-and-print.ditroff","match":"(\\d{2})(.)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.character.ditroff"}}},"page":{"name":"meta.start-page.ditroff","match":"(p)\\s*(\\d+)","captures":{"1":{"name":"keyword.control.page.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},"print":{"patterns":[{"name":"meta.print-character.indexed.ditroff","match":"(N)\\s*(-?\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},{"name":"meta.print-character.ditroff","match":"(c)(?:\\s*(\\S)|(\\s))|(CPS|C)\\s*(\\S+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.character.ditroff"},"3":{"name":"constant.character.whitespace.ditroff"},"4":{"name":"keyword.operator.function.ditroff"},"5":{"name":"string.unquoted.ditroff"}}},{"name":"meta.print-text.gnu.ditroff","contentName":"string.quoted.double.ditroff","begin":"(t)\\s*","end":"(?=$)|\\s+(\\d*)","beginCaptures":{"0":{"name":"keyword.operator.function.ditroff"},"1":{"name":"punctuation.definition.entity.ditroff"}},"endCaptures":{"1":{"name":"comment.dummy.argument.ditroff"}}},{"name":"meta.print-text.track-kerned.gnu.ditroff","contentName":"string.quoted.double.ditroff","begin":"(u)\\s*(-?\\d+)\\s*","end":"(?=\\s|$)","beginCaptures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}}]},"size":{"match":"(s)\\s*(?:(-23)\\s+(-?[\\d.]+)|(-?\\d+))","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"comment.dummy.argument.ditroff"},"3":{"name":"constant.numeric.float.ditroff"},"4":{"name":"constant.numeric.integer.ditroff"}}},"wordSpace":{"name":"keyword.operator.function.word-space.ditroff","match":"(?\u003c=^|[\\s\\d])w"},"xCommands":{"patterns":[{"begin":"(?:\\G|^)(?:(ps)\\s*(:)(?=\\s*(?:exec|m?def)\\b)|(PSSetup|PS)\\s*(:)?)","end":"(?=^(?!\\+))","patterns":[{"begin":"\\G(?:(?\u003c=:)\\s*(?:(exec|def)|(mdef)(?:\\s+(\\d+))?)\\b)?\\s*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"source.embedded.postscript","match":".+","captures":{"0":{"patterns":[{"include":"source.postscript"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"},"2":{"name":"keyword.control.directive.gnu.ditroff"},"3":{"name":"constant.numeric.integer.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"},"3":{"name":"keyword.device.control.subcommand.heirloom.ditroff"},"4":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(ps)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"match":"\\G\\s*(?:(invis)|(endinvis))\\b","captures":{"1":{"name":"keyword.control.suppress-output.begin.gnu.ditroff"},"2":{"name":"keyword.control.suppress-output.end.gnu.ditroff"}}},{"contentName":"string.other.link.filename.ditroff","begin":"\\G\\s*(file)\\s+","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"begin":"\\G\\s*(import)\\s+","end":"(?=^(?!\\+))","patterns":[{"include":"#xImportParams"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(pdf)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"name":"keyword.control.directive.gnu.ditroff","match":"\\G\\s*(xrev)\\b"},{"begin":"\\G\\s*(pdfpic)\\s+","end":"(?=^(?!\\+))","patterns":[{"include":"#xImportParams"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"name":"meta.pdfmark.$2.ditroff","begin":"\\G\\s*(mark(start|end|suspend|restart))\\b(\\s+(\\S.*))?","end":"(?=^(?!\\+))","beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"},"2":{"name":"source.embedded.postscript"},"3":{"patterns":[{"include":"source.postscript"}]}}},{"name":"meta.transition-settings.ditroff","begin":"\\G\\s*(transition)\\s+","end":"(?=^(?!\\+))","patterns":[{"name":"support.constant.other.mode.ditroff","match":"\\b(Blinds|Box|Cover|Dissolve|Fade|Fly|Glitter|Push|R|Split|Uncover|Wipe)\\b"},{"name":"constant.language.boolean.$1.ditroff","match":"\\b(true|false)\\b"},{"name":"constant.language.null.ditroff","match":"\\b(?:None)\\b"},{"name":"support.constant.feature.ditroff","match":"\\b(?:SLIDE|BLOCK)\\b"},{"name":"support.constant.dimension.ditroff","match":"\\b(?:H|V)\\b"},{"name":"support.constant.motion.ditroff","match":"\\b(?:I|O)\\b"},{"name":"constant.numeric.ditroff","match":"[-+]?[\\d.]+"},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.pdfmark.ditroff","begin":"(?:\\G|^)(PDFMark)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"name":"meta.bookmark.ditroff","contentName":"string.unquoted.ditroff","begin":"\\G\\s*(Bookmark(?:Closed)?)(?:\\s+(\\d+))?\\s+","end":"(?=^(?!\\+))","beginCaptures":{"1":{"name":"storage.type.bookmark.ditroff"},"2":{"name":"constant.numeric.integer.level.ditroff"}}},{"name":"meta.pdfmark.ditroff","contentName":"string.unquoted.ditroff","begin":"\\G\\s*(\\S+)\\s+","end":"(?=^(?!\\+))","beginCaptures":{"1":{"name":"entity.name.field.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(tty)s*(:)","end":"(?=^(?!\\+))","patterns":[{"match":"\\G\\s*(sgr)\\b(?:\\s+([-+]?[\\d.0]+))?","captures":{"1":{"name":"keyword.control.directive.gnu.ditroff"},"2":{"name":"constant.numeric.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.set-paper-size.ditroff","begin":"(?:\\G|^)(papersize)\\s*(=)","end":"(?=^(?!\\+))","patterns":[{"include":"source.ditroff.desc#paperSizes"}],"beginCaptures":{"1":{"name":"storage.type.paper-size.ditroff"},"2":{"name":"punctuation.separator.key-value.equals-sign.ditroff"}}},{"name":"meta.devtag.ditroff","begin":"(?:\\G|^)(devtag)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"constant.numeric.ditroff","match":"[-+]?\\d+(?:\\.\\d+)?"},{"name":"entity.name.tag.ditroff","match":"\\.?[^\\s.]+(?:\\.[^\\s.]+)*+","captures":{"0":{"name":"punctuation.definition.tag.ditroff"}}}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.infer.ditroff","begin":"(?:\\G|^)(infer)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"meta.$1-$2.ditroff","begin":"\\G\\s*(start|end)\\s+(\\S+)(?=\\s|$)","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"support.constant.other.ditroff","match":".+"}],"beginCaptures":{"1":{"name":"keyword.control.$1-scope.ditroff"},"2":{"name":"entity.name.type.ditroff"}}}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.manpage-reference.ditroff","match":"(?:\\G|^)(html)\\s+(?:(manref\\s+end)|(manref(?:\\s+start)?))(?:\\s+((?!#)\\S+))(?:\\s+(?:(\\()([0-9])(\\))|((?!#)\\S+)))","captures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"keyword.control.end-reference.ditroff"},"3":{"name":"keyword.control.start-reference.ditroff"},"4":{"name":"entity.name.subject.ditroff"},"5":{"name":"punctuation.definition.bracket.round.begin.ditroff"},"6":{"name":"constant.numeric.section.ditroff"},"7":{"name":"punctuation.definition.bracket.round.end.ditroff"},"8":{"name":"constant.numeric.section.ditroff"}}},{"begin":"(?:\\G|^)(index)\\s*(:)(?:\\s*(\\d+)(?=\\s))?.*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"},"3":{"name":"constant.numeric.integer.ditroff"}}},{"name":"meta.assertion.ditroff","begin":"(?:\\G|^)(assertion)\\s*(:)(?=\\s*\\[)","end":"(?=^(?!\\+))","patterns":[{"contentName":"string.raw.unquoted.heredoc.ditroff","begin":"\\G\\s*(\\[)(x|y)?","end":"\\*(\\])|(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"punctuation.section.bracket.square.begin.ditroff"},"2":{"name":"variable.parameter.assertion-type.$2.ditroff"}},"endCaptures":{"1":{"name":"punctuation.section.bracket.square.end.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)((?:html|math)\\b(?:\u003c[/?]p\u003e)?)(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"begin":"\\G[ \\t]*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"text.embedded.html.basic","match":".+","captures":{"0":{"patterns":[{"include":"text.html.basic"}]}}}]},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(Anchor|U?Link)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"contentName":"string.other.link.ditroff","begin":"\\G(?:\\s+([+-]?\\d+(?:,[+-]?\\d+)*+)(?=\\s))?\\s*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"patterns":[{"name":"constant.numeric.integer.ditroff","match":"\\d+"},{"name":"punctuation.separator.comma.ditroff","match":","}]}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(BleedAt|CropAt|HorScale|PaperSize|Track|TrimAt)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"name":"constant.numeric.ditroff","match":"[-+]?\\d+(?:\\.\\d+)?"},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"match":"(?:\\G|^)(LC_CTYPE)\\b(?:\\s*(:))?\\s+((?!#)\\S+)(.*)","captures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"},"3":{"name":"entity.name.locale.ditroff"},"4":{"patterns":[{"include":"#comment"}]}}},{"begin":"(?:\\G|^)(SupplyFont)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"contentName":"string.other.link.filename.ditroff","begin":"\\G\\s*(\\S+)[ \\t]*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"entity.name.font.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(SetColor)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"match":"(?:\\G|^)\\s*(?:([\\s\\d.]+)(?\u003c=\\s)(rgb|hsb|cmyk|setgray|setcolor)|(\\S+))","captures":{"1":{"patterns":[{"name":"constant.numeric.ditroff","match":"[\\d.]+"}]},"2":{"name":"constant.language.colour-scheme.ditroff"},"3":{"name":"variable.other.named-colour.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"contentName":"string.raw.unquoted.heredoc.ditroff","begin":"(?:\\G|^)([^\\s:#]+)(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"include":"#continueLine"}]},"xImportParams":{"patterns":[{"match":"(?:\\G|^)(\\S+)(?:\\s+((-)[LCR]))?","captures":{"1":{"name":"string.other.link.filename.ditroff"},"2":{"name":"constant.language.alignment-type.ditroff"},"3":{"name":"punctuation.definition.dash.ditroff"}}},{"name":"constant.numeric.ditroff","match":"[-+]?(?:\\d*\\.\\d+|\\d+)"},{"include":"#continueLine"}]}}}
1
+ {"name":"Ditroff (Troff Intermediate Output)","scopeName":"source.ditroff","patterns":[{"include":"#main"}],"repository":{"colourMode":{"patterns":[{"name":"meta.colour-mode.default.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(d)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"}}},{"name":"meta.colour-mode.rgb.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(r)((?:\\s*\\d+){3})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.colour-mode.cmyk.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(k)((?:\\s*\\d+){4})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.colour-mode.cmy.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(c)((?:\\s*\\d+){3})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.colour-mode.grey.gnu.ditroff","match":"(?:(m)|(D)\\s*(F))\\s*(g)\\s*(\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.function.ditroff"},"3":{"name":"keyword.operator.subcommand.ditroff"},"4":{"name":"constant.language.colour-scheme.ditroff"},"5":{"patterns":[{"include":"text.roff#number"}]}}}]},"comment":{"name":"comment.line.number-sign.ditroff","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.ditroff"}}},"continueLine":{"name":"keyword.operator.line-continuation.gnu.ditroff","match":"^\\+"},"deviceControl":{"patterns":[{"name":"meta.device-control.x-command.ditroff","begin":"(x)\\s*(X\\S*)[ \\t]*","end":"(?=^(?!\\+))(?!\\G)","patterns":[{"include":"#xCommands"}],"beginCaptures":{"0":{"name":"meta.device-control.lhs.ditroff"},"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.device.control.ditroff"}}},{"name":"meta.device-control.ditroff","begin":"(x)\\s*","end":"(?=$|#)","patterns":[{"name":"keyword.device.control.ditroff","match":"\\G([ipst]\\S*)\\s*?(?=$|#)"},{"name":"meta.space-underlining.gnu.ditroff","match":"\\G(u\\S*)\\s+(?:(1|0)|(\\d+))\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"},"3":{"name":"invalid.illegal.argument.ditroff"}}},{"name":"meta.source-filename.gnu.ditroff","match":"\\G(F\\S*)\\s+(\\S+)\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"string.other.link.filename.ditroff"}}},{"name":"meta.typesetter-device.ditroff","match":"\\G(T\\S*)\\s+(\\S+)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"support.constant.device-name.ditroff"}}},{"name":"meta.device-resolution.ditroff","match":"\\G(r\\S*)((?:\\s+(\\d+)){1,3})\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.mount-font.ditroff","match":"\\G(f\\S*)(?:\\s+(\\d+))?(?:\\s+([-\\w]+))?(?:\\s+(\\S.*?)\\s+(\\d+)[ \\t]*$)?[ \\t]*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"constant.numeric.integer.position.ditroff"},"3":{"name":"entity.name.font.ditroff"},"4":{"name":"string.other.link.filename.ditroff"},"5":{"name":"constant.numeric.integer.flags.ditroff"}}},{"name":"meta.mount-font.ditroff","match":"\\G(f\\S*)(?:\\s+(\\d+))?(?:\\s+([-\\w]+))?\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"},"3":{"name":"variable.parameter.ditroff"}}},{"name":"meta.set-character-property.ditroff","match":"\\G([HS]\\S*)\\s+(?:(-23)\\s+(-?[\\d.]+)|(-?\\d+))?\\s*?(?=$|#)","captures":{"1":{"name":"keyword.device.control.ditroff"},"2":{"name":"comment.dummy.argument.ditroff"},"3":{"name":"constant.numeric.float.ditroff"},"4":{"name":"constant.numeric.integer.ditroff"}}},{"name":"meta.unknown-command.ditroff","begin":"\\G(\\S+)","end":"(?=$|#)","beginCaptures":{"1":{"name":"keyword.device.control.ditroff"}}}],"beginCaptures":{"0":{"name":"meta.device-control.lhs.ditroff"},"1":{"name":"keyword.operator.function.ditroff"}}}]},"eol":{"name":"meta.end-of-line.ditroff","match":"(n)((?:\\s*\\d+){2})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"patterns":[{"include":"text.roff#number"}]}}},"font":{"name":"meta.change-font.ditroff","match":"(f)\\s*(\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},"graphics":{"patterns":[{"name":"meta.graphics.gnu.ditroff","match":"(D)\\s*(C)\\s*(\\d+)(?:\\s+(\\d+))?","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditrof"},"3":{"name":"constant.numeric.integer.ditroff"},"4":{"name":"comment.dummy.argument.ditroff"}}},{"name":"meta.graphics.gnu.ditroff","match":"(D)\\s*(E)((?:\\s*(\\d+)){1,2})","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditroff"},"3":{"patterns":[{"include":"text.roff#number"}]}}},{"name":"meta.graphics.ditroff","begin":"(D)\\s*([lceafptPR~])","end":"(?=$|#)","patterns":[{"include":"text.roff#number"}],"beginCaptures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditroff"}}},{"name":"meta.graphics.unknown-command.ditroff","contentName":"variable.parameter.ditroff","begin":"(D)\\s*([^\\s\\\\])","end":"(?=$|#)","beginCaptures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"keyword.operator.subcommand.ditroff"}}}]},"main":{"patterns":[{"include":"#comment"},{"include":"#deviceControl"},{"include":"#colourMode"},{"include":"#print"},{"include":"#font"},{"include":"#eol"},{"include":"#move"},{"include":"#size"},{"include":"#page"},{"include":"#graphics"},{"include":"#movePrint"},{"include":"#wordSpace"}]},"move":{"name":"meta.move.ditroff","match":"([HhVv])\\s*(-?\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},"movePrint":{"name":"meta.move-and-print.ditroff","match":"(\\d{2})(.)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.character.ditroff"}}},"page":{"name":"meta.start-page.ditroff","match":"(p)\\s*(\\d+)","captures":{"1":{"name":"keyword.control.page.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},"print":{"patterns":[{"name":"meta.print-character.indexed.ditroff","match":"(N)\\s*(-?\\d+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}},{"name":"meta.print-character.ditroff","match":"(c)(?:\\s*(\\S)|(\\s))|(CPS|C)\\s*(\\S+)","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.character.ditroff"},"3":{"name":"constant.character.whitespace.ditroff"},"4":{"name":"keyword.operator.function.ditroff"},"5":{"name":"string.unquoted.ditroff"}}},{"name":"meta.print-text.gnu.ditroff","contentName":"string.quoted.double.ditroff","begin":"(t)\\s*","end":"(?=$)|\\s+(\\d*)","beginCaptures":{"0":{"name":"keyword.operator.function.ditroff"},"1":{"name":"punctuation.definition.entity.ditroff"}},"endCaptures":{"1":{"name":"comment.dummy.argument.ditroff"}}},{"name":"meta.print-text.track-kerned.gnu.ditroff","contentName":"string.quoted.double.ditroff","begin":"(u)\\s*(-?\\d+)\\s*","end":"(?=\\s|$)","beginCaptures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"constant.numeric.integer.ditroff"}}}]},"size":{"match":"(s)\\s*(?:(-23)\\s+(-?[\\d.]+)|(-?\\d+))","captures":{"1":{"name":"keyword.operator.function.ditroff"},"2":{"name":"comment.dummy.argument.ditroff"},"3":{"name":"constant.numeric.float.ditroff"},"4":{"name":"constant.numeric.integer.ditroff"}}},"wordSpace":{"name":"keyword.operator.function.word-space.ditroff","match":"(?\u003c=^|[\\s\\d])w"},"xCommands":{"patterns":[{"begin":"(?:\\G|^)(?:(ps)\\s*(:)(?=\\s*(?:exec|m?def)\\b)|(PSSetup|PS)\\s*(:)?)","end":"(?=^(?!\\+))","patterns":[{"begin":"\\G(?:(?\u003c=:)\\s*(?:(exec|def)|(mdef)(?:\\s+(\\d+))?)\\b)?\\s*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"source.embedded.postscript","match":".+","captures":{"0":{"patterns":[{"include":"source.postscript"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"},"2":{"name":"keyword.control.directive.gnu.ditroff"},"3":{"name":"constant.numeric.integer.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"},"3":{"name":"keyword.device.control.subcommand.heirloom.ditroff"},"4":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(ps)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"match":"\\G\\s*(?:(invis)|(endinvis))\\b","captures":{"1":{"name":"keyword.control.suppress-output.begin.gnu.ditroff"},"2":{"name":"keyword.control.suppress-output.end.gnu.ditroff"}}},{"contentName":"string.other.link.filename.ditroff","begin":"\\G\\s*(file)\\s+","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"begin":"\\G\\s*(import)\\s+","end":"(?=^(?!\\+))","patterns":[{"include":"#xImportParams"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(pdf)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"name":"keyword.control.directive.gnu.ditroff","match":"\\G\\s*(xrev)\\b"},{"begin":"\\G\\s*(pdfpic)\\s+","end":"(?=^(?!\\+))","patterns":[{"include":"#xImportParams"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"name":"meta.pdfmark.$2.ditroff","begin":"\\G\\s*(mark(start|end|suspend|restart))\\b(\\s+(\\S.*))?","end":"(?=^(?!\\+))","beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"},"2":{"name":"source.embedded.postscript"},"3":{"patterns":[{"include":"source.postscript"}]}}},{"name":"meta.transition-settings.ditroff","begin":"\\G\\s*(transition)\\s+","end":"(?=^(?!\\+))","patterns":[{"name":"support.constant.other.mode.ditroff","match":"\\b(Blinds|Box|Cover|Dissolve|Fade|Fly|Glitter|Push|R|Split|Uncover|Wipe)\\b"},{"name":"constant.language.boolean.$1.ditroff","match":"\\b(true|false)\\b"},{"name":"constant.language.null.ditroff","match":"\\b(?:None)\\b"},{"name":"support.constant.feature.ditroff","match":"\\b(?:SLIDE|BLOCK)\\b"},{"name":"support.constant.dimension.ditroff","match":"\\b(?:H|V)\\b"},{"name":"support.constant.motion.ditroff","match":"\\b(?:I|O)\\b"},{"name":"constant.numeric.ditroff","match":"[-+]?[\\d.]+"},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.control.directive.gnu.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.pdfmark.ditroff","begin":"(?:\\G|^)(PDFMark)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"name":"meta.bookmark.ditroff","contentName":"string.unquoted.ditroff","begin":"\\G\\s*(Bookmark(?:Closed)?)(?:\\s+(\\d+))?\\s+","end":"(?=^(?!\\+))","beginCaptures":{"1":{"name":"storage.type.bookmark.ditroff"},"2":{"name":"constant.numeric.integer.level.ditroff"}}},{"name":"meta.pdfmark.ditroff","contentName":"string.unquoted.ditroff","begin":"\\G\\s*(\\S+)\\s+","end":"(?=^(?!\\+))","beginCaptures":{"1":{"name":"entity.name.field.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(tty)s*(:)","end":"(?=^(?!\\+))","patterns":[{"name":"meta.osc8-link.ditroff","begin":"\\G\\s*(link)(?=\\s|$)","end":"(?=^(?!\\+))","patterns":[{"name":"meta.link-destination.ditroff","match":"\\G\\s*(\\S+)","captures":{"1":{"name":"string.other.link.ditroff"}}},{"name":"meta.link-parameter.ditroff","contentName":"string.unquoted.ditroff","begin":"(?!\\G)([^\\s=]+)(=)","end":"(?=\\s|$)","beginCaptures":{"1":{"name":"entity.other.attribute-name.ditroff"},"2":{"name":"punctuation.separator.key-value.ditroff"}}}],"beginCaptures":{"1":{"name":"storage.type.link.ditroff"}}},{"match":"\\G\\s*(sgr)\\b(?:\\s+([-+]?[\\d.0]+))?","captures":{"1":{"name":"keyword.control.directive.gnu.ditroff"},"2":{"name":"constant.numeric.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.gnu.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.set-paper-size.ditroff","begin":"(?:\\G|^)(papersize)\\s*(=)","end":"(?=^(?!\\+))","patterns":[{"include":"source.ditroff.desc#paperSizes"}],"beginCaptures":{"1":{"name":"storage.type.paper-size.ditroff"},"2":{"name":"punctuation.separator.key-value.equals-sign.ditroff"}}},{"name":"meta.devtag.ditroff","begin":"(?:\\G|^)(devtag)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"constant.numeric.ditroff","match":"[-+]?\\d+(?:\\.\\d+)?"},{"name":"entity.name.tag.ditroff","match":"\\.?[^\\s.]+(?:\\.[^\\s.]+)*+","captures":{"0":{"name":"punctuation.definition.tag.ditroff"}}}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.infer.ditroff","begin":"(?:\\G|^)(infer)\\s*(:)","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"meta.$1-$2.ditroff","begin":"\\G\\s*(start|end)\\s+(\\S+)(?=\\s|$)","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"support.constant.other.ditroff","match":".+"}],"beginCaptures":{"1":{"name":"keyword.control.$1-scope.ditroff"},"2":{"name":"entity.name.type.ditroff"}}}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"name":"meta.manpage-reference.ditroff","match":"(?:\\G|^)(html)\\s+(?:(manref\\s+end)|(manref(?:\\s+start)?))(?:\\s+((?!#)\\S+))(?:\\s+(?:(\\()([0-9])(\\))|((?!#)\\S+)))","captures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"keyword.control.end-reference.ditroff"},"3":{"name":"keyword.control.start-reference.ditroff"},"4":{"name":"entity.name.subject.ditroff"},"5":{"name":"punctuation.definition.bracket.round.begin.ditroff"},"6":{"name":"constant.numeric.section.ditroff"},"7":{"name":"punctuation.definition.bracket.round.end.ditroff"},"8":{"name":"constant.numeric.section.ditroff"}}},{"begin":"(?:\\G|^)(index)\\s*(:)(?:\\s*(\\d+)(?=\\s))?.*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"},"3":{"name":"constant.numeric.integer.ditroff"}}},{"name":"meta.assertion.ditroff","begin":"(?:\\G|^)(assertion)\\s*(:)(?=\\s*\\[)","end":"(?=^(?!\\+))","patterns":[{"contentName":"string.raw.unquoted.heredoc.ditroff","begin":"\\G\\s*(\\[)(x|y)?","end":"\\*(\\])|(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"punctuation.section.bracket.square.begin.ditroff"},"2":{"name":"variable.parameter.assertion-type.$2.ditroff"}},"endCaptures":{"1":{"name":"punctuation.section.bracket.square.end.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)((?:html|math)\\b(?:\u003c[/?]p\u003e)?)(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"begin":"\\G[ \\t]*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"},{"name":"text.embedded.html.basic","match":".+","captures":{"0":{"patterns":[{"include":"text.html.basic"}]}}}]},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(Anchor|U?Link)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"contentName":"string.other.link.ditroff","begin":"\\G(?:\\s+([+-]?\\d+(?:,[+-]?\\d+)*+)(?=\\s))?\\s*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"patterns":[{"name":"constant.numeric.integer.ditroff","match":"\\d+"},{"name":"punctuation.separator.comma.ditroff","match":","}]}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(BleedAt|CropAt|HorScale|PaperSize|Track|TrimAt)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"name":"constant.numeric.ditroff","match":"[-+]?\\d+(?:\\.\\d+)?"},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"match":"(?:\\G|^)(LC_CTYPE)\\b(?:\\s*(:))?\\s+((?!#)\\S+)(.*)","captures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"},"3":{"name":"entity.name.locale.ditroff"},"4":{"patterns":[{"include":"#comment"}]}}},{"begin":"(?:\\G|^)(SupplyFont)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"contentName":"string.other.link.filename.ditroff","begin":"\\G\\s*(\\S+)[ \\t]*","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"entity.name.font.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"begin":"(?:\\G|^)(SetColor)\\b(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"match":"(?:\\G|^)\\s*(?:([\\s\\d.]+)(?\u003c=\\s)(rgb|hsb|cmyk|setgray|setcolor)|(\\S+))","captures":{"1":{"patterns":[{"name":"constant.numeric.ditroff","match":"[\\d.]+"}]},"2":{"name":"constant.language.colour-scheme.ditroff"},"3":{"name":"variable.other.named-colour.ditroff"}}},{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"contentName":"string.raw.unquoted.heredoc.ditroff","begin":"(?:\\G|^)([^\\s:#]+)(?:\\s*(:))?","end":"(?=^(?!\\+))","patterns":[{"include":"#continueLine"}],"beginCaptures":{"1":{"name":"keyword.device.control.subcommand.ditroff"},"2":{"name":"punctuation.separator.key-value.colon.ditroff"}}},{"include":"#continueLine"}]},"xImportParams":{"patterns":[{"match":"(?:\\G|^)(\\S+)(?:\\s+((-)[LCR]))?","captures":{"1":{"name":"string.other.link.filename.ditroff"},"2":{"name":"constant.language.alignment-type.ditroff"},"3":{"name":"punctuation.definition.dash.ditroff"}}},{"name":"constant.numeric.ditroff","match":"[-+]?(?:\\d*\\.\\d+|\\d+)"},{"include":"#continueLine"}]}}}
@@ -0,0 +1 @@
1
+ {"name":".env","scopeName":"source.dotenv","patterns":[{"include":"#main"}],"repository":{"comment":{"begin":"^([ \\t]*)(?=#)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.dotenv","begin":"\\G(#)","end":"$","beginCaptures":{"1":{"name":"punctuation.definition.comment.dotenv"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.comment.dotenv"}}},"field":{"name":"meta.field.dotenv","contentName":"meta.field.rhs.dotenv","begin":"^(([ \\t]*)(?:(export)\\s+)?([-\\w.]+)\\s*)(=|:)","end":"(?!\\G)","patterns":[{"name":"punctuation.whitespace.trailing.empty-value.dotenv","match":"\\G[ \\t]+$"},{"begin":"\\G[ \\t]*(?=(\"|')(?:[^\\\\\"']|(?!\\1)[\"']|\\\\.)*+\\1$)","end":"(?!\\G)","patterns":[{"include":"#strings"}]},{"contentName":"string.unquoted.field.dotenv","begin":"\\G[ \\t]*(?!\"|')(?=\\S)","end":"([ \\t]*)$","endCaptures":{"1":{"name":"punctuation.whitespace.trailing.dotenv"}}}],"beginCaptures":{"1":{"name":"meta.field.lhs.dotenv"},"2":{"name":"punctuation.whitespace.leading.field.dotenv"},"3":{"name":"storage.modifier.export.dotenv"},"4":{"name":"variable.assignment.environment.dotenv"},"5":{"name":"keyword.operator.assignment.key-value.dotenv"}}},"main":{"patterns":[{"include":"#comment"},{"include":"#field"}]},"strings":{"patterns":[{"name":"string.quoted.double.dotenv","begin":"\\G\"","end":"\"","patterns":[{"name":"constant.character.escape.newline.dotenv","match":"(\\\\)n","captures":{"1":{"name":"punctuation.definition.escape.backslash.dotenv"}}},{"name":"constant.character.escape.quote.dotenv","match":"(\\\\)\"","captures":{"1":{"name":"punctuation.definition.escape.backslash.dotenv"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dotenv"}},"endCaptures":{"0":{"name":"punctuation.definition.string.env.dotenv"}}},{"name":"string.quoted.single.dotenv","begin":"\\G'","end":"'","patterns":[{"name":"constant.character.escape.quote.dotenv","match":"(\\\\)'","captures":{"1":{"name":"punctuation.definition.escape.backslash.dotenv"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dotenv"}},"endCaptures":{"0":{"name":"punctuation.definition.string.env.dotenv"}}}]}},"injections":{"source.dotenv meta.field.rhs string - string.quoted.single":{"patterns":[{"name":"source.shell.embedded.dotenv","match":"(?\u003c!\\\\)(\\${)(.*?)(?\u003c!\\\\)(})","captures":{"1":{"name":"punctuation.section.embedded.begin.dotenv"},"2":{"name":"constant.language.environment.variable.dotenv"},"3":{"name":"punctuation.section.embedded.end.dotenv"}}},{"name":"entity.name.variable.dotenv","match":"(?\u003c!\\\\)(\\$)[a-zA-Z0-9_]+","captures":{"1":{"name":"punctuation.definition.variable.dotenv"}}},{"name":"source.shell.embedded.dotenv","match":"(?\u003c!\\\\)(\\$\\()(.*?)(?\u003c!\\\\)(\\))","captures":{"1":{"name":"punctuation.section.embedded.begin.dotenv"},"2":{"patterns":[{"include":"source.shell"}]},"3":{"name":"punctuation.section.embedded.end.dotenv"}}}]},"source.dotenv meta.field.rhs string.unquoted":{"patterns":[{"name":"comment.line.number-sign.inline.dotenv","begin":"(?\u003c=\\S)[ \\t]+(#)","end":"(?=$)","captures":{"1":{"name":"punctuation.definition.comment.dotenv"}}}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Earthfile","scopeName":"source.earthfile","patterns":[{"include":"#comment"},{"include":"#constant"},{"include":"#entity"},{"include":"#keyword"},{"include":"#string"},{"include":"#variable"},{"include":"#target"},{"include":"#user-command"}],"repository":{"comment":{"patterns":[{"match":"^(\\s*)((#).*$\\n?)","captures":{"1":{"name":"punctuation.whitespace.comment.leading.earthfile"},"2":{"name":"comment.line.number-sign.earthfile"},"3":{"name":"punctuation.definition.comment.earthfile"}}},{"name":"comment.line.earthfile","match":"(\\s+)((#).*$\\n?)"},{"match":"([\\\\\\s]+)((#).*$\\n?)","captures":{"2":{"name":"comment.line.number-sign.earthfile"}}}]},"constant":{"patterns":[{"name":"constant.character.escape.earthfile","match":"\\\\."},{"name":"constant.character.escape.earthfile","match":"\\\\$"},{"name":"constant.numeric.earthfile","match":"(?\u003c=EXPOSE\\s)(\\d+)"}]},"entity":{"patterns":[{"name":"entity.name.variable.artifact.earthfile","match":"([a-zA-Z0-9._\\-/:]*\\+[a-z][a-zA-Z0-9.\\-]*(/\\S*)+)"},{"name":"entity.name.type.target.earthfile","match":"([a-zA-Z0-9._\\-/:]*\\+[a-z][a-zA-Z0-9.\\-]*)"},{"name":"entity.name.function.user-command.earthfile","match":"([a-zA-Z0-9._\\-/:]*\\+[A-Z][a-zA-Z0-9._]*)"}]},"keyword":{"patterns":[{"name":"keyword.operator.shell.earthfile","match":"((\u0026\u0026)|(\u003e\u003e)|(\u003c\u003c)|[|;\u003e])"},{"name":"keyword.operator.assignment.earthfile","match":"([=])"},{"name":"keyword.operator.flag.earthfile","match":"(\\B(-)+[a-zA-Z0-9\\-]+)"},{"include":"#special-method"},{"include":"#target"},{"include":"#user-command"}]},"special-method":{"patterns":[{"match":"^\\s*\\b(SAVE ARTIFACT)(\\b.*?\\b)(AS LOCAL)\\b","captures":{"1":{"name":"keyword.other.special-method.earthfile"},"2":{"name":"entity.name.variable.target.earthfile"},"3":{"name":"keyword.other.special-method.earthfile"}}},{"match":"^\\s*\\b(FOR)\\b.*?\\b(IN)\\b","captures":{"1":{"name":"keyword.other.special-method.earthfile"},"2":{"name":"keyword.other.special-method.earthfile"}}},{"match":"(?\u003c=(^FROM\\s))(\\S+)","captures":{"1":{"name":"keyword.other.special-method.earthfile"},"2":{"name":"entity.name.type.base-image.earthfile"}}},{"name":"keyword.other.special-method.earthfile","match":"^\\s*HEALTHCHECK\\s+(NONE|CMD)\\s"},{"name":"keyword.other.special-method.earthfile","match":"^\\s*FROM DOCKERFILE\\s"},{"name":"keyword.other.special-method.earthfile","match":"^\\s*(FROM|COPY|SAVE ARTIFACT|SAVE IMAGE|RUN|LABEL|EXPOSE|VOLUME|USER|ENV|ARG|BUILD|WORKDIR|ENTRYPOINT|CMD|GIT CLONE|DOCKER LOAD|DOCKER PULL|HEALTHCHECK|WITH DOCKER|END|IF|ELSE|ELSE IF|DO|COMMAND|IMPORT|LOCALLY|FOR|VERSION)\\s"}]},"string":{"patterns":[{"name":"string.quoted.double.earthfile","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escaped.earthfile","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.earthfile"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.earthfile"}}},{"name":"string.quoted.single.earthfile","begin":"'","end":"'","patterns":[{"name":"constant.character.escaped.earthfile","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.earthfile"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.earthfile"}}}]},"target":{"patterns":[{"match":"^\\s*([a-z]([a-zA-Z0-9.]|-)*):","captures":{"1":{"name":"entity.name.class.target.earthfile"}}}]},"user-command":{"patterns":[{"match":"^\\s*([A-Z][a-zA-Z0-9._]*):","captures":{"1":{"name":"entity.name.function.user-command.earthfile"}}}]},"variable":{"patterns":[{"name":"variable.other.earthfile","match":"\\$[a-zA-Z0-9_\\-]+"},{"name":"variable.other.earthfile","match":"(?\u003c=\\${)([a-zA-Z0-9.\\-_]+)(?=})"},{"name":"variable.other.earthfile","begin":"\\$\\{","end":"\\}","beginCaptures":{"1":{"name":"punctuation.definition.variable.begin.earthfile"}},"endCaptures":{"1":{"name":"punctuation.definition.variable.end.earthfile"}}}]}}}
@@ -0,0 +1 @@
1
+ {"name":"ECL","scopeName":"source.ecl","patterns":[{"include":"#expression"},{"name":"support.class.ecl","match":"\\b(?i:(std).(file|date|str|math|metaphone|metaphone3|uni|audit|blas|system.(debug|email|job|log|thorlib|util|workunit)))\\b"}],"repository":{"array-literal":{"name":"meta.array.literal.ecl","begin":"\\[","end":"\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.square.ecl"}},"endCaptures":{"0":{"name":"meta.brace.square.ecl"}}},"boolean-literal":{"name":"constant.language.boolean.ecl","match":"\\b(?i:(false|true))\\b"},"comment":{"name":"comment.ecl","patterns":[{"include":"#comment-block-doc"},{"include":"#comment-block"},{"include":"#comment-line"}]},"comment-block":{"name":"comment.block.ecl","begin":"/\\*","end":"\\*/"},"comment-block-doc":{"name":"comment.block.documentation.ecl","begin":"/\\*\\*(?!/)","end":"\\*/"},"comment-line":{"name":"comment.line.ecl","match":"(//).*$\\n?"},"decimal":{"name":"entity.name.type.ecl","match":"\\b(?i)(u?)decimal(\\d+(_\\d+)?)\\b"},"digital-signature":{"name":"digital-signature.ecl","patterns":[{"include":"#digital-signature-header"},{"include":"#digital-signature-footer"}]},"digital-signature-footer":{"name":"keyword.control.ecl","begin":"-----BEGIN PGP SIGNATURE-----","end":"-----END PGP SIGNATURE-----"},"digital-signature-header":{"name":"keyword.control.ecl","begin":"-----BEGIN PGP SIGNED MESSAGE-----","end":"Hash: SHA512"},"embedded-any":{"name":"entity.other.ecl","begin":"((?i:(embed)))\\s*(\\()","end":"(?i:(endembed))","beginCaptures":{"0":{"name":"entity.name.function.ecl"}},"endCaptures":{"0":{"name":"entity.name.function.ecl"}}},"embedded-cpp":{"name":"entity.other.ecl","begin":"(?i:(beginc))\\+\\+","end":"(?i:(endc))\\+\\+","beginCaptures":{"0":{"name":"entity.name.function.ecl"}},"endCaptures":{"0":{"name":"entity.name.function.ecl"}}},"embedded-single":{"match":"(?i:(embed))\\s*(\\([^\\)]+\\));","captures":{"1":{"name":"entity.name.function.ecl"}}},"expression":{"name":"meta.expression.ecl","patterns":[{"include":"#comment"},{"include":"#special-structures"},{"include":"#embedded-single"},{"include":"#embedded-any"},{"include":"#embedded-cpp"},{"include":"#function-call"},{"include":"#operators"},{"include":"#logicals"},{"include":"#types"},{"include":"#keywords-pound"},{"include":"#keywords-workflow"},{"include":"#keywords"},{"include":"#digital-signature"},{"include":"#string"},{"include":"#literal"}]},"function-call":{"match":"([#A-Za-z_0-9]+)\\s*(\\()","captures":{"1":{"patterns":[{"include":"#functions"},{"include":"#functions-pound"},{"include":"#functions-hash"},{"include":"#functions-hash2"},{"include":"#functions-action"},{"include":"#functions-workflow"}]}}},"functions":{"name":"entity.name.function.ecl","match":"\\b(?i:(abs|acos|aggregate|allnodes|apply|apply|ascii|asin|assert|asstring|atan|atan2|ave|build|buildindex|case|catch|choose|choosen|choosesets|clustersize|combine|correlation|cos|cosh|count|covariance|cron|dataset|dedup|define|denormalize|deprecated|dictionary|distribute|distributed|distribution|ebcdic|enth|evaluate|evaluate|event|eventextra|eventname|exists|exp|fail|failcode|failmessage|fetch|fromunicode|fromxml|getenv|getisvalid|graph|group|hashcrc|hashmd5|having|httpcall|httpheader|if|iff|index|interface|intformat|isvalid|iterate|join|keydiff|keypatch|keyunicode|length|library|limit|ln|loadxml|local|log|loop|map|matched|matchlength|matchposition|matchtext|matchunicode|max|merge|mergejoin|min|nofold|nolocal|nonempty|normalize|nothor|notify|opt|output|parse|pattern|penalty|pipe|power|preload|process|project|pull|random|range|rank|ranked|realformat|record|recordof|regexfind|regexfindset|regexreplace|regroup|rejected|rollup|round|roundup|row|rowdiff|rule|sample|sequential|sin|sinh|sizeof|soapcall|sort|sorted|sqrt|stepped|stored|sum|table|tan|tanh|thisnode|topn|tounicode|toxml|transfer|transform|trim|truncate|typeof|ungroup|unicodeorder|use|validate|variance|wait|when|which|xmldecode|xmlencode|xmltext|xmlunicode))\\b"},"functions-action":{"name":"keyword.other.ecl","match":"\\b(?i:(algorithm|cluster|escape|encrypt|expire|heading|keyed|maxlength|module|named|ordered|parallel|quote|terminator|threshold|timelimit|timeout|separator|set|skew|virtual|wild))\\b"},"functions-hash":{"name":"entity.name.function.ecl","match":"\\b(?i:hash(32|64|crc)?)\\b"},"functions-hash2":{"name":"entity.name.function.ecl","match":"\\b(?i:hashmd(5))\\b"},"functions-pound":{"name":"keyword.other.ecl","match":"#(?i:(append|constant|declare|demangle|end|else|elseif|error|expand|export|exportXML|for|getdatatype|if|inmodule|mangle|onwarning|option|set|stored|text|uniquename|warning|webservice|workunit))\\b"},"functions-workflow":{"name":"keyword.control.ecl","match":"\\b(?i:(checkpoint|deprecated|failmessage|failure|global|onwarning|persist|priority|recovery|stored|success|when))\\b"},"integer":{"name":"entity.name.type.ecl","match":"\\b(?i:(integer|unsigned))[1-8]\\b"},"keywords":{"name":"keyword.other.ecl","match":"\\b(?i:(after|all|andor|any|as|atmost|before|best|between|case|compressed|compression|const|counter|csv|default|descend|distributed|encoding|end|endmacro|enum|error|except|exclusive|expand|export|exportxml|extend|fail|failcode|few|fileposition|first|flat|for|forward|from|full|group|grouped|hole|if|ifblock|import|inmodule|inner|internal|joined|keep|keyed|last|left|limit|linkcounted|literal|little_endian|load|local|locale|lookup|lzw|mangle|many|maxcount|maxlength|min skew|mofn|multiple|named|namespace|nocase|noroot|noscan|nosort|noxpath|of|onfail|only|opt|option|outer|overwrite|packed|partition|physicallength|pipe|prefetch|repeat|retry|return|right|right1|right2|rows|rowset|scan|scope|self|service|set|shared|skip|smart|soapaction|sql|stable|store|stored|success|thor|token|trim|type|unicodeorder|uniquename|unordered|unsorted|unstable|update|virtual|warning|whole|width|within|wnotrim|xml|xpath|__compressed_))\\b"},"keywords-pound":{"name":"keyword.other.ecl","match":"#(?i:(break|else|end|loop))\\b"},"keywords-workflow":{"name":"keyword.control.ecl","match":"\\b(?i:(global|independent|once))\\b"},"literal":{"name":"literal.ecl","patterns":[{"include":"#numeric-literal"},{"include":"#boolean-literal"},{"include":"#array-literal"},{"include":"#self-literal"}]},"logicals":{"name":"keyword.other.ecl","match":"\\b(?i:(and|in|not|or))\\b"},"numeric-literal":{"name":"constant.numeric.ecl","match":"\\b(?\u003c=[^$])((0(x|X)[0-9a-fA-F]+)|([0-9a-fA-F]+(x|X))|(0(o|O)[0-7]+)|(0(b|B)(0|1)+)|((0|1)+(b|B))|(([0-9]+(\\.[0-9]+)?))([eE]([+-]?)[0-9]+(\\.[0-9]+)?)?)\\b"},"operators":{"name":"keyword.operator.ecl","match":"(\u003e|\u003e=|\u003c|\u003c=|\u003c\u003e|/|\\|+|-|=)"},"qstring-single":{"name":"string.single.ecl","begin":"'","end":"\\'|(?:[^\\\\\\n]$)","patterns":[{"include":"#string-character-escape"}]},"real":{"name":"entity.name.type.ecl","match":"\\b(?i)real(?-i)(4|8)\\b"},"self-literal":{"name":"constant.language.this.ecl","match":"\\b(?i:(self))\\b"},"special-structures":{"name":"entity.name.function.ecl","match":"\\b(?i:(endmacro|function|functionmacro|interface|macro|module|record|transform))\\b"},"string":{"name":"string.ecl","patterns":[{"include":"#qstring-single"}]},"string-character-escape":{"name":"constant.character.escape.ecl","match":"\\\\(x[[:xdigit:]]{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},"type-number":{"name":"entity.name.type.ecl","match":"\\b(?i:(data|string|qstring|varstring|varunicode|unicode|utf8))\\d+\\b"},"type-rest":{"name":"entity.name.type.ecl","match":"\\b(?i:(ascii|big_endian|boolean|data|decimal|ebcdic|grouped|integer|linkcounted|pattern|qstring|real|rule|set of|streamed|string|token|udecimal|unicode|utf8|unsigned|varstring|varunicode))\\b"},"types":{"name":"entity.name.type.ecl","patterns":[{"include":"#real"},{"include":"#decimal"},{"include":"#unicode"},{"include":"#integer"},{"include":"#type-number"},{"include":"#type-rest"}]},"unicode":{"name":"entity.name.type.ecl","match":"\\b(?i:(d|u|q|v|x))(8)?(?='.*')"}}}
@@ -0,0 +1 @@
1
+ {"name":"ed","scopeName":"source.ed","patterns":[{"name":"comment.line.number-sign.hashbang.source.ed","begin":"\\A#!","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.source.ed"}}},{"include":"#main"}],"repository":{"address":{"patterns":[{"match":"(?:\\G|^|(?\u003c=[,mt]))[ \\t]*(?:(\\.)|(\\$)|([-^])|(\\+)|([,%])|(;)|(\\d+)|([-^]\\d+)|(\\+\\d+)|((')[a-z]))","captures":{"1":{"name":"variable.language.address.current-line.ed"},"10":{"name":"variable.address.marked-line.ed"},"11":{"name":"punctuation.definition.variable.marked-line.ed"},"2":{"name":"variable.language.address.last-line.ed"},"3":{"name":"variable.language.address.previous-line.ed"},"4":{"name":"variable.language.address.next-line.ed"},"5":{"name":"variable.language.address.range.first-to-last.ed"},"6":{"name":"variable.language.address.range.current-to-last.ed"},"7":{"name":"constant.numeric.line-index.address.nth-line.ed"},"8":{"name":"constant.numeric.line-index.address.nth-previous-line.ed"},"9":{"name":"constant.numeric.line-index.address.nth-next-line.ed"}}},{"name":"meta.address.pattern.search-forward.repeat-last.ed","match":"(?:\\G|^|(?\u003c=,))[ \\t]*(//|/$)","captures":{"1":{"name":"punctuation.delimiter.pattern.empty.ed"}}},{"name":"meta.address.pattern.search-forward.ed","contentName":"string.regexp.address.ed","begin":"(?:\\G|^|(?\u003c=,))[ \\t]*(/)","end":"/|(?=$)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pattern.begin.ed"}},"endCaptures":{"0":{"name":"punctuation.delimiter.pattern.end.ed"}}},{"name":"meta.address.pattern.search-backward.repeat-last.ed","match":"(?:\\G|^|(?\u003c=,))[ \\t]*(\\?\\?|\\?$)","captures":{"1":{"name":"punctuation.delimiter.pattern.empty.ed"}}},{"name":"meta.address.pattern.search-backward.ed","contentName":"string.regexp.address.ed","begin":"(?:\\G|^|(?\u003c=,))[ \\t]*(\\?)","end":"\\?|(?=$)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pattern.begin.ed"}},"endCaptures":{"0":{"name":"punctuation.delimiter.pattern.end.ed"}}}]},"comma":{"name":"punctuation.separator.range.address.comma.ed","match":","},"command":{"patterns":[{"name":"meta.command.append-text.ed","begin":"(a)([pln]*)$","end":"(?!\\G)","patterns":[{"include":"#inputMode"}],"beginCaptures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.change-lines.ed","begin":"(c)([pln]*)$","end":"(?!\\G)","patterns":[{"include":"#inputMode"}],"beginCaptures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.delete-lines.ed","match":"(d)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.edit-command-output.ed","match":"(e)[ \\t]+(!.*?)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#shell"}]}}},{"name":"meta.command.edit-file.ed","contentName":"constant.other.filename.path.ed","begin":"(e)(?=\\s|$)[ \\t]*(?!!)","end":"(?=\\\\?$)","beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.edit-file.discard-unsaved-changes.ed","contentName":"constant.other.filename.path.ed","begin":"(E)(?=\\s|$)[ \\t]*(?!!)","end":"(?=\\\\?$)","beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.set-default-filename.ed","contentName":"constant.other.filename.path.ed","begin":"(f)(?=\\s|$)[ \\t]*","end":"(?=\\\\?$)","beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.conditional.ed","begin":"g(?=/)","end":"(?\u003c!\\\\)$","patterns":[{"include":"#commandList"}],"beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.conditional.edit-interactively.ed","begin":"G(?=/)","end":"(?\u003c!\\\\)$","patterns":[{"include":"#commandList"}],"beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.toggle-error-reporting.ed","match":"(H)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.print-error-info.ed","match":"(h)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.insert-text.ed","begin":"(i)([pln]*)$","end":"(?!\\G)","patterns":[{"include":"#inputMode"}],"beginCaptures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.join-lines.ed","match":"(j)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.mark-line.ed","match":"(k)(?:([a-z])|([^a-z]))([pln]*)(?=\\\\?$)","captures":{"1":{"name":"storage.type.mark.ed"},"2":{"name":"entity.name.mark.ed"},"3":{"name":"invalid.illegal.not-lowercase.ed"},"4":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.print-lines-unambiguously.ed","match":"(l)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.move-lines.ed","match":"(m)(.*?)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#address"}]},"3":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.print-numbered-lines.ed","match":"(n)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.print-lines.ed","match":"(p)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.toggle-prompt.ed","match":"(P)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.quit.ed","match":"(q)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.quit.discard-unsaved-changes.ed","match":"(Q)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.read-command-output.ed","match":"(r)[ \\t]+(!.*?)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#shell"}]}}},{"name":"meta.command.read-file.ed","contentName":"constant.other.filename.path.ed","begin":"(r)(?=\\s|$)[ \\t]*(?!!)","end":"(?=\\\\?$)","beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.substitution.ed","begin":"s","end":"(?=\\\\?$)","patterns":[{"include":"#substitution"}],"beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.copy-lines.ed","begin":"t","end":"([pln]*)(?=\\\\?$)","patterns":[{"include":"#address"}],"beginCaptures":{"0":{"name":"keyword.control.command.ed"}},"endCaptures":{"1":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.undo.ed","match":"(u)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.conditional.inverted.ed","begin":"v(?=/)","end":"(?\u003c!\\\\)$","patterns":[{"include":"#commandList"}],"beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.conditional.edit-interactively.inverted.ed","begin":"V(?=/)","end":"(?\u003c!\\\\)$","patterns":[{"include":"#commandList"}],"beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.write-lines-to-command.ed","match":"(w)[ \\t]+(!.*?)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#shell"}]}}},{"name":"meta.command.write-lines-to-file.ed","contentName":"constant.other.filename.path.ed","begin":"(w)(?=\\s|$)[ \\t]*(?!!)","end":"(?=\\\\?$)","beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.write-lines-to-file.quit.ed","contentName":"constant.other.filename.path.ed","begin":"(wq)(?=\\s|$)[ \\t]*(?!!)","end":"(?=\\\\?$)","beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.append-lines-to-file.ed","contentName":"constant.other.filename.path.ed","begin":"(W)(?=\\s|$)[ \\t]*","end":"(?=\\\\?$)","beginCaptures":{"0":{"name":"keyword.control.command.ed"}}},{"name":"meta.command.set-encryption-key.ed","match":"(x)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.scroll.ed","match":"(z)(\\d+)?([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"name":"constant.numeric.integer.int.line-count.ed"},"3":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.print-line-number.ed","match":"(=)([pln]*)(?=\\\\?$)","captures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]}}},{"name":"meta.command.shell.ed","match":"(!.*?)(?=\\\\?$)","captures":{"1":{"patterns":[{"include":"#shell"}]}}}]},"commandList":{"patterns":[{"name":"meta.pattern.ed","contentName":"string.regexp.search.ed","begin":"\\G/","end":"(?=/|$)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.delimiter.pattern.begin.ed"}}},{"contentName":"meta.command-list.ed","begin":"(?!\\G)(/)","end":"(?=(?\u003c!\\\\)$)","patterns":[{"include":"#escapedNewline"},{"name":"meta.command.append-text.ed","contentName":"string.unquoted.user-input.ed","begin":"(a)([pln]*)(\\\\)$","end":"^(\\.)(?=\\\\?$)|^(?!\\.)(.*)(?\u003c!\\\\)$","patterns":[{"include":"#escapedNewline"}],"beginCaptures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]},"3":{"patterns":[{"include":"#escapedNewline"}]}},"endCaptures":{"1":{"patterns":[{"include":"#inputTerminator"}]},"2":{"name":"string.unquoted.user-input.ed"}}},{"name":"meta.command.change-lines.ed","contentName":"string.unquoted.user-input.ed","begin":"(c)([pln]*)(\\\\)$\\R?","end":"^(\\.)(?=\\\\?$)|^(?!\\.)(.*)(?\u003c!\\\\)$","patterns":[{"include":"#escapedNewline"}],"beginCaptures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]},"3":{"patterns":[{"include":"#escapedNewline"}]}},"endCaptures":{"1":{"patterns":[{"include":"#inputTerminator"}]},"2":{"name":"string.unquoted.user-input.ed"}}},{"name":"meta.command.insert-text.ed","contentName":"string.unquoted.user-input.ed","begin":"(i)([pln]*)(\\\\)$\\R?","end":"^(\\.)(?=\\\\?$)|^(?!\\.)(.*)(?\u003c!\\\\)$","patterns":[{"include":"#escapedNewline"}],"beginCaptures":{"1":{"name":"keyword.control.command.ed"},"2":{"patterns":[{"include":"#printSuffix"}]},"3":{"patterns":[{"include":"#escapedNewline"}]}},"endCaptures":{"1":{"patterns":[{"include":"#inputTerminator"}]},"2":{"name":"string.unquoted.user-input.ed"}}},{"name":"invalid.illegal.nested-command.ed","match":"g|v|G|V"},{"include":"#command"}],"beginCaptures":{"0":{"name":"meta.pattern.ed"},"1":{"name":"punctuation.delimiter.pattern.end.ed"}}}]},"escapedNewline":{"name":"constant.character.escape.newline.ed","begin":"\\\\$(?!R)\\R?","end":"^"},"inputMode":{"name":"string.unquoted.user-input.ed","begin":"\\G","end":"^(\\.)$","endCaptures":{"1":{"patterns":[{"include":"#inputTerminator"}]}}},"inputTerminator":{"name":"keyword.control.end-input.ed","match":"\\.","captures":{"0":{"name":"punctuation.terminator.period.dot.full-stop.ed"}}},"main":{"patterns":[{"include":"#command"},{"include":"#address"},{"include":"#comma"}]},"printSuffix":{"patterns":[{"name":"keyword.control.print-suffix.print.ed","match":"p"},{"name":"keyword.control.print-suffix.list.ed","match":"l"},{"name":"keyword.control.print-suffix.enumerate.ed","match":"n"}]},"regexp":{"patterns":[{"name":"constant.language.wildcard.dot.match.any.ed","match":"\\."},{"name":"constant.language.anchor.line-start.ed","match":"\\^"},{"name":"constant.language.anchor.line-end.ed","match":"\\$"},{"name":"constant.language.anchor.word-start.ed","match":"\\\\\u003c"},{"name":"constant.language.anchor.word-end.ed","match":"\\\\\u003e"},{"name":"constant.language.quantifier.min-0.ed","match":"(?!\\G)\\*"},{"include":"source.sed#regexp.bracketExpression"},{"include":"#escapedNewline"},{"name":"meta.subexpression.ed","begin":"\\\\\\(","end":"\\\\\\)|(?=(?\u003c!\\\\)$)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.subexpression.begin.ed"}},"endCaptures":{"0":{"name":"punctuation.definition.subexpression.end.ed"}}},{"name":"meta.quantifier.specific-range.ed","match":"(\\\\{)(\\d+)(?:(,)(\\d+)?)?(\\\\})","captures":{"1":{"name":"punctuation.definition.quantifier.bracket.curly.begin.ed"},"2":{"name":"constant.numeric.integer.ed"},"3":{"name":"punctuation.separator.range.comma.ed"},"4":{"name":"constant.numeric.integer.ed"},"5":{"name":"punctuation.definition.quantifier.bracket.curly.end.ed"}}},{"name":"constant.character.escape.literal.ed","match":"(\\\\).","captures":{"1":{"name":"punctuation.definition.escape.backslash.ed"}}}]},"shell":{"name":"meta.shell-command.ed","match":"(?:\\G|^)(!)(!?)(.*)","captures":{"1":{"name":"keyword.operator.shell-command.ed"},"2":{"name":"constant.language.previous-command-text.ed"},"3":{"name":"source.embedded.shell","patterns":[{"include":"source.shell"}]}}},"substitution":{"patterns":[{"name":"meta.match-pattern.ed","contentName":"string.regexp.substitution.search.ed","begin":"\\G([^ ])","end":"(?=\\1|(?\u003c!\\\\)$)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pattern.begin.ed"}}},{"name":"meta.replacement.ed","match":"([^ ])(%)(?:(\\1)([rgp\\d]*+)(.+?)?(?=(?\u003c!\\\\)$)|(?=(?\u003c!\\\\)$))","captures":{"1":{"name":"punctuation.delimiter.pattern.middle.ed"},"2":{"name":"constant.language.last-substitution.ed"},"3":{"name":"punctuation.delimiter.pattern.end.ed"},"4":{"patterns":[{"include":"#substitutionFlags"}]},"5":{"name":"invalid.illegal.unexpected-characters.ed"}}},{"name":"meta.replacement.ed","contentName":"string.quoted.double.ed","begin":"([^ ])","end":"(\\1)([rgp\\d]*+)(.*)|(?=(?\u003c!\\\\)$)","patterns":[{"name":"variable.language.input.ed","match":"\u0026"},{"name":"variable.language.reference.ed","match":"\\\\[0-9]"},{"name":"constant.character.escape.ed","match":"\\\\."},{"include":"#escapedNewline"}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pattern.middle.ed"}},"endCaptures":{"1":{"name":"punctuation.delimiter.pattern.end.ed"},"2":{"patterns":[{"include":"#substitutionFlags"}]},"3":{"name":"invalid.illegal.unexpected-characters.ed"}}}]},"substitutionFlags":{"patterns":[{"name":"keyword.operator.modifier.repeat-last-search.ed","match":"r"},{"name":"keyword.operator.modifier.replace-all.ed","match":"g"},{"name":"keyword.operator.modifier.print.ed","match":"p"},{"name":"keyword.operator.modifier.replace-nth.ed","match":"\\d+"}]}},"injections":{"L:source.ed - meta.command-list":{"patterns":[{"match":"([=HPQdhjlnpqux]|k.|[mtz].*?)[pln]*(?=\\\\$)"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Fennel","scopeName":"source.fnl","patterns":[{"include":"#expression"}],"repository":{"comment":{"patterns":[{"name":"comment.line.semicolon.fennel","begin":";","end":"$"}]},"constants":{"patterns":[{"name":"constant.language.nil.fennel","match":"nil"},{"name":"constant.language.boolean.fennel","match":"false|true"},{"name":"constant.numeric.double.fennel","match":"(-?\\d+\\.\\d+([eE][+-]?\\d+)?)"},{"name":"constant.numeric.integer.fennel","match":"(-?\\d+)"}]},"expression":{"patterns":[{"include":"#comment"},{"include":"#constants"},{"include":"#sexp"},{"include":"#table"},{"include":"#vector"},{"include":"#keywords"},{"include":"#special"},{"include":"#lua"},{"include":"#strings"},{"include":"#methods"},{"include":"#symbols"}]},"keywords":{"name":"constant.keyword.fennel","match":":[^ ]+"},"lua":{"patterns":[{"name":"support.function.fennel","match":"\\b(assert|collectgarbage|dofile|error|getmetatable|ipairs|load|loadfile|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setmetatable|tonumber|tostring|type|xpcall)\\b"},{"name":"support.function.library.fennel","match":"\\b(coroutine|coroutine.create|coroutine.isyieldable|coroutine.resume|coroutine.running|coroutine.status|coroutine.wrap|coroutine.yield|debug|debug.debug|debug.gethook|debug.getinfo|debug.getlocal|debug.getmetatable|debug.getregistry|debug.getupvalue|debug.getuservalue|debug.sethook|debug.setlocal|debug.setmetatable|debug.setupvalue|debug.setuservalue|debug.traceback|debug.upvalueid|debug.upvaluejoin|io|io.close|io.flush|io.input|io.lines|io.open|io.output|io.popen|io.read|io.stderr|io.stdin|io.stdout|io.tmpfile|io.type|io.write|math|math.abs|math.acos|math.asin|math.atan|math.ceil|math.cos|math.deg|math.exp|math.floor|math.fmod|math.huge|math.log|math.max|math.maxinteger|math.min|math.mininteger|math.modf|math.pi|math.rad|math.random|math.randomseed|math.sin|math.sqrt|math.tan|math.tointeger|math.type|math.ult|os|os.clock|os.date|os.difftime|os.execute|os.exit|os.getenv|os.remove|os.rename|os.setlocale|os.time|os.tmpname|package|package.config|package.cpath|package.loaded|package.loadlib|package.path|package.preload|package.searchers|package.searchpath|string|string.byte|string.char|string.dump|string.find|string.format|string.gmatch|string.gsub|string.len|string.lower|string.match|string.pack|string.packsize|string.rep|string.reverse|string.sub|string.unpack|string.upper|table|table.concat|table.insert|table.move|table.pack|table.remove|table.sort|table.unpack|utf8|utf8.char|utf8.charpattern|utf8.codepoint|utf8.codes|utf8.len|utf8.offset)\\b"},{"name":"constant.language.fennel","match":"\\b(_G|_VERSION)\\b"}]},"methods":{"patterns":[{"name":"entity.name.function.method.fennel","match":"\\w+\\:\\w+"}]},"sexp":{"name":"sexp.fennel","begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.paren.open.fennel"}},"endCaptures":{"0":{"name":"punctuation.paren.close.fennel"}}},"special":{"patterns":[{"name":"keyword.special.fennel","match":"\\#|\\%|\\+|\\*|[?][.]|(\\.)?\\.|(\\/)?\\/|:|\u003c=?|=|\u003e=?|\\^"},{"name":"keyword.special.fennel","match":"(\\-\\\u003e(\\\u003e)?)"},{"name":"keyword.special.fennel","match":"\\-\\?\\\u003e(\\\u003e)?"},{"name":"keyword.special.fennel","match":"-"},{"name":"keyword.special.fennel","match":"not="},{"name":"keyword.special.fennel","match":"set-forcibly!"},{"name":"keyword.special.fennel","match":"\\b(and|band|bnot|bor|bxor|collect|comment|do|doc|doto|each|eval-compiler|for|global|hashfn|icollect|if|import-macros|include|lambda|length|let|local|lshift|lua|macro|macrodebug|macros|match|not=?|or|partial|pick-args|pick-values|quote|require-macros|rshift|set|tset|values|var|when|while|with-open)\\b"},{"name":"keyword.control.fennel","match":"\\b(fn)\\b"},{"name":"keyword.special.fennel","match":"~="},{"name":"keyword.special.fennel","match":"λ"}]},"strings":{"name":"string.quoted.double.fennel","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.fennel","match":"\\\\."}]},"symbols":{"patterns":[{"name":"entity.name.function.symbol.fennel","match":"\\w+(?:\\.\\w+)+"},{"name":"variable.other.fennel","match":"\\w+"}]},"table":{"name":"table.fennel","begin":"\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.table.bracket.open.fennel"}},"endCaptures":{"0":{"name":"punctuation.table.bracket.close.fennel"}}},"vector":{"name":"meta.vector.fennel","begin":"\\[","end":"\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.vector.bracket.open.fennel"}},"endCaptures":{"0":{"name":"punctuation.vector.bracket.close.fennel"}}}}}
@@ -1 +1 @@
1
- {"name":"fsharp","scopeName":"source.fsharp","patterns":[{"include":"#compiler_directives"},{"include":"#comments"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#abstract_definition"},{"include":"#attributes"},{"include":"#modules"},{"include":"#anonymous_functions"},{"include":"#du_declaration"},{"include":"#record_declaration"},{"include":"#records"},{"include":"#strp_inlined"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"repository":{"abstract_definition":{"name":"abstract.definition.fsharp","begin":"\\b(abstract)\\s+(member)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(:)","end":"\\s*(with)\\b|=|$","patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"match":"(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"5":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},"anonymous_functions":{"patterns":[{"name":"function.anonymous","begin":"\\b(fun)\\b","end":"(-\u003e)","patterns":[{"include":"#comments"},{"begin":"(\\()","end":"\\s*(?=(-\u003e))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}},{"include":"#variables"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}}]},"anonymous_record_declaration":{"begin":"(\\{\\|)","end":"(\\|\\})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(:)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},"attributes":{"patterns":[{"name":"support.function.attribute.fsharp","begin":"\\[\\\u003c","end":"\\\u003e\\]|\\]","patterns":[{"include":"$self"}]}]},"cexprs":{"patterns":[{"name":"cexpr.fsharp","match":"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)\\s*\\{","captures":{"0":{"name":"keyword.fsharp"}}}]},"chars":{"patterns":[{"name":"char.fsharp","match":"('\\\\?.')","captures":{"1":{"name":"string.quoted.single.fsharp"}}}]},"comments":{"patterns":[{"name":"comment.block.markdown.fsharp","begin":"^\\s*(\\(\\*\\*(?!\\)))(?!\\*\\))$","while":"^(?!\\s*\\*\\)$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.fsharp","begin":"(\\(\\*(?!\\)))","end":"(\\*\\))","patterns":[{"name":"fast-capture.comment.line.double-slash.fsharp","match":"//"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp.end","match":"(\\*\\))","captures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.line.markdown.fsharp","begin":"///","while":"///","patterns":[{"include":"source.gfm"}]},{"name":"comment.line.double-slash.fsharp","match":"//.*$"}]},"common_binding_definition":{"patterns":[{"include":"#comments"},{"include":"#attributes"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(:)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)","end":"(?=:)","patterns":[{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"match":"([[:alpha:]0-9'^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(:)\\s*([?[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"match":"(-\u003e)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*","end":"(?==)|(?=\\))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\u003c+(?![[:space:]]*\\)))","end":"((?\u003c!:)\u003e|\\))","patterns":[{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"({)","end":"(})","patterns":[{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#definition"},{"include":"#variables"},{"include":"#keywords"}]},"common_declaration":{"patterns":[{"begin":"\\s*(-\u003e)\\s*([[:alpha:]0-9'`^._ ]+)(\u003c)","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(-\u003e)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(\u003c))","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"keyword.symbol.fsharp"},"5":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"compiler_directives":{"patterns":[{"name":"keyword.control.directive.fsharp","match":"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)"}]},"constants":{"patterns":[{"name":"constant.language.unit.fsharp","match":"\\(\\)"},{"name":"constant.numeric.float.fsharp","match":"\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"},{"name":"constant.numeric.integer.nativeint.fsharp","match":"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"},{"name":"constant.other.fsharp","match":"\\b(true|false|null|unit|void)\\b"}]},"definition":{"patterns":[{"name":"binding.fsharp","begin":"\\b(let mutable|static let mutable|static let|let inline|let|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(with\\b|=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},{"name":"binding.fsharp","begin":"(?\u003c=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"4":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\n$","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(new)\\b\\s+(\\()","end":"(\\))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}}]},"double_tick":{"patterns":[{"name":"variable.other.binding.fsharp","match":"(``)([^`]*)(``)","captures":{"1":{"name":"string.quoted.single.fsharp"},"2":{"name":"variable.other.binding.fsharp"},"3":{"name":"string.quoted.single.fsharp"}}}]},"du_declaration":{"patterns":[{"name":"du_declaration.fsharp","begin":"\\b(of)\\b","end":"$|(\\|)","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)","captures":{"1":{"name":"variable.parameter.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"match":"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"generic_declaration":{"patterns":[{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.fsharp","match":":"},{"include":"#constants"},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"(\u003e)","patterns":[{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"},{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"match":"(\\|)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"storage.modifier","match":"\\b(private|public|internal)\\b"},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|class|exception|delegate|of|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.control","match":"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"},{"name":"keyword.symbol.new","match":"\\b(new)\\b"},{"name":"keyword.symbol.fsharp","match":"(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|\u003c\u003c\u003c|\u003e\u003e\u003e|\\|\u003e|\\-\u003e|\\\u003c\\-|:\u003e|:\\?\u003e|:|\\[|\\]|\\;|\u003c\u003e|=|@|\\|\\||\u0026\u0026|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003c|\\\u003c\\=|\\(|\\)|\\\u003c\\\u003c)"}]},"member_declaration":{"patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`\u003c\u003e._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}]},"modules":{"patterns":[{"name":"entity.name.section.fsharp","begin":"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)","end":"(\\s?=|\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"storage.modifier.fsharp"},"4":{"name":"entity.name.section.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"namespace.open.fsharp","begin":"\\b(open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"name":"namespace.alias.fsharp","begin":"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.type.namespace.fsharp"},"3":{"name":"punctuation.separator.namespace-definition.fsharp"},"4":{"name":"entity.name.section.fsharp"}}}]},"record_declaration":{"patterns":[{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`\u003c\u003e^._]*)\\s*((?\u003c!:):(?!:))\\s*","end":"$|(;|\\})","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#attributes"},{"include":"#anonymous_functions"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"record_signature":{"patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"begin":"({)","end":"(})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"records":{"patterns":[{"name":"record.fsharp","begin":"\\b(type)[\\s]+(private|internal|public)?\\s*","end":"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))","patterns":[{"include":"#comments"},{"include":"#attributes"},{"match":"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"((?\u003c!:)\u003e)","patterns":[{"match":"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(static member|member|new)","captures":{"1":{"name":"keyword.fsharp"}}},{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},{"match":"\\s*(private|internal|public)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"storage.modifier.fsharp"}}},{"begin":"(\\()","end":"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"storage.modifier.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.fsharp"},"5":{"name":"variable.parameter.fsharp"},"6":{"name":"keyword.symbol.fsharp"},"7":{"name":"constant.language.unit.fsharp"}}}]},"string_formatter":{"patterns":[{"name":"entity.name.type.format.specifier.fsharp","match":"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))","captures":{"1":{"name":"keyword.format.specifier.fsharp"}}}]},"strings":{"patterns":[{"name":"string.quoted.literal.fsharp","begin":"(?=[^\\\\])(@\")","end":"(\")(?!\")","patterns":[{"name":"constant.character.string.escape.fsharp","match":"\"(\")"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.triple.fsharp","begin":"(?=[^\\\\])(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.double.fsharp","begin":"(?=[^\\\\])(\")","end":"(\")","patterns":[{"name":"punctuation.separator.string.ignore-eol.fsharp","match":"\\\\$[ \\t]*"},{"name":"constant.character.string.escape.fsharp","match":"\\\\([\\\\''ntbr]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})"},{"name":"invalid.illeagal.character.string.fsharp","match":"\\\\(?![\\\\''ntbr]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})."},{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}}]},"strp_inlined":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"strp_inlined_body":{"patterns":[{"include":"#comments"},{"include":"#anonymous_functions"},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(static member|member)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)","captures":{"1":{"name":"keyword.fsharp"},"2":{"name":"variable.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#keywords"},{"include":"#text"},{"include":"#definition"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}]},"text":{"patterns":[{"name":"text.fsharp","match":"\\\\"}]},"tuple_signature":{"patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"variables":{"patterns":[{"name":"constant.language.unit.fsharp","match":"\\(\\)"},{"match":"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private\\b)\\b[\\w[:alpha:]0-9'`\u003c\u003e^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}}]}}}
1
+ {"name":"fsharp","scopeName":"source.fsharp","patterns":[{"include":"#compiler_directives"},{"include":"#comments"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#abstract_definition"},{"include":"#attributes"},{"include":"#modules"},{"include":"#anonymous_functions"},{"include":"#du_declaration"},{"include":"#record_declaration"},{"include":"#records"},{"include":"#strp_inlined"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"repository":{"abstract_definition":{"name":"abstract.definition.fsharp","begin":"\\b(abstract)\\s+(member)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(:)","end":"\\s*(with)\\b|=|$","patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"match":"(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"5":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},"anonymous_functions":{"patterns":[{"name":"function.anonymous","begin":"\\b(fun)\\b","end":"(-\u003e)","patterns":[{"include":"#comments"},{"begin":"(\\()","end":"\\s*(?=(-\u003e))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}},{"include":"#variables"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}}]},"anonymous_record_declaration":{"begin":"(\\{\\|)","end":"(\\|\\})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(:)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},"attributes":{"patterns":[{"name":"support.function.attribute.fsharp","begin":"\\[\\\u003c","end":"\\\u003e\\]|\\]","patterns":[{"include":"$self"}]}]},"cexprs":{"patterns":[{"name":"cexpr.fsharp","match":"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)\\s*\\{","captures":{"0":{"name":"keyword.fsharp"}}}]},"chars":{"patterns":[{"name":"char.fsharp","match":"('\\\\?.')","captures":{"1":{"name":"string.quoted.single.fsharp"}}}]},"comments":{"patterns":[{"name":"comment.block.markdown.fsharp","begin":"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$","while":"^(?!\\s*(\\*)+\\)$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.fsharp","begin":"(\\(\\*(?!\\)))","end":"(\\*\\))","patterns":[{"name":"fast-capture.comment.line.double-slash.fsharp","match":"//"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp.end","match":"((?\u003c!\\()(\\*)+\\))","captures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.line.markdown.fsharp","begin":"///","while":"///","patterns":[{"include":"source.gfm"}]},{"name":"comment.line.double-slash.fsharp","match":"//.*$"}]},"common_binding_definition":{"patterns":[{"include":"#comments"},{"include":"#attributes"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(:)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)","end":"(?=:)","patterns":[{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"match":"([[:alpha:]0-9'^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(:)\\s*([?[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"match":"(-\u003e)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*","end":"(?==)|(?=\\))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\u003c+(?![[:space:]]*\\)))","end":"((?\u003c!:)\u003e|\\))","patterns":[{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"({)","end":"(})","patterns":[{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#definition"},{"include":"#variables"},{"include":"#keywords"}]},"common_declaration":{"patterns":[{"begin":"\\s*(-\u003e)\\s*([[:alpha:]0-9'`^._ ]+)(\u003c)","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(-\u003e)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(\u003c))","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"keyword.symbol.fsharp"},"5":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"compiler_directives":{"patterns":[{"name":"keyword.control.directive.fsharp","match":"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)"}]},"constants":{"patterns":[{"name":"constant.language.unit.fsharp","match":"\\(\\)"},{"name":"constant.numeric.float.fsharp","match":"\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"},{"name":"constant.numeric.integer.nativeint.fsharp","match":"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"},{"name":"constant.language.boolean.fsharp","match":"\\b(true|false)\\b"},{"name":"constant.other.fsharp","match":"\\b(null|unit|void)\\b"}]},"definition":{"patterns":[{"name":"binding.fsharp","begin":"\\b(let mutable|static let mutable|static let|let inline|let|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(with\\b|=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},{"name":"binding.fsharp","begin":"(?\u003c=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"4":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\n$","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(new)\\b\\s+(\\()","end":"(\\))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}}]},"double_tick":{"patterns":[{"name":"variable.other.binding.fsharp","match":"(``)([^`]*)(``)","captures":{"1":{"name":"string.quoted.single.fsharp"},"2":{"name":"variable.other.binding.fsharp"},"3":{"name":"string.quoted.single.fsharp"}}}]},"du_declaration":{"patterns":[{"name":"du_declaration.fsharp","begin":"\\b(of)\\b","end":"$|(\\|)","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)","captures":{"1":{"name":"variable.parameter.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"match":"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"generic_declaration":{"patterns":[{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.fsharp","match":":"},{"include":"#constants"},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"(\u003e)","patterns":[{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"},{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"match":"(\\|)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"storage.modifier","match":"\\b(private|public|internal)\\b"},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|class|exception|delegate|of|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.control","match":"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"},{"name":"keyword.symbol.new","match":"\\b(new)\\b"},{"name":"keyword.symbol.fsharp","match":"(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|\u003c\u003c\u003c|\u003e\u003e\u003e|\\|\u003e|\\-\u003e|\\\u003c\\-|:\u003e|:\\?\u003e|:|\\[|\\]|\\;|\u003c\u003e|=|@|\\|\\||\u0026\u0026|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003c|\\\u003c\\=|\\(|\\)|\\\u003c\\\u003c)"}]},"member_declaration":{"patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`\u003c\u003e._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}]},"modules":{"patterns":[{"name":"entity.name.section.fsharp","begin":"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)","end":"(\\s?=|\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"storage.modifier.fsharp"},"4":{"name":"entity.name.section.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"namespace.open.fsharp","begin":"\\b(open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"name":"namespace.alias.fsharp","begin":"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.type.namespace.fsharp"},"3":{"name":"punctuation.separator.namespace-definition.fsharp"},"4":{"name":"entity.name.section.fsharp"}}}]},"record_declaration":{"patterns":[{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`\u003c\u003e^._]*)\\s*((?\u003c!:):(?!:))\\s*","end":"$|(;|\\})","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#attributes"},{"include":"#anonymous_functions"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"record_signature":{"patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"begin":"({)","end":"(})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"records":{"patterns":[{"name":"record.fsharp","begin":"\\b(type)[\\s]+(private|internal|public)?\\s*","end":"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))","patterns":[{"include":"#comments"},{"include":"#attributes"},{"match":"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"((?\u003c!:)\u003e)","patterns":[{"match":"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(static member|member|new)","captures":{"1":{"name":"keyword.fsharp"}}},{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},{"match":"\\s*(private|internal|public)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"storage.modifier.fsharp"}}},{"begin":"(\\()","end":"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"storage.modifier.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.fsharp"},"5":{"name":"variable.parameter.fsharp"},"6":{"name":"keyword.symbol.fsharp"},"7":{"name":"constant.language.unit.fsharp"}}}]},"string_formatter":{"patterns":[{"name":"entity.name.type.format.specifier.fsharp","match":"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))","captures":{"1":{"name":"keyword.format.specifier.fsharp"}}}]},"strings":{"patterns":[{"name":"string.quoted.literal.fsharp","begin":"(?=[^\\\\])(@\")","end":"(\")(?!\")","patterns":[{"name":"constant.character.string.escape.fsharp","match":"\"(\")"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.triple.fsharp","begin":"(?=[^\\\\])(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.double.fsharp","begin":"(?=[^\\\\])(\")","end":"(\")","patterns":[{"name":"punctuation.separator.string.ignore-eol.fsharp","match":"\\\\$[ \\t]*"},{"name":"constant.character.string.escape.fsharp","match":"\\\\([\\\\''ntbr]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})"},{"name":"invalid.illeagal.character.string.fsharp","match":"\\\\(?![\\\\''ntbr]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})."},{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}}]},"strp_inlined":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"strp_inlined_body":{"patterns":[{"include":"#comments"},{"include":"#anonymous_functions"},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(static member|member)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)","captures":{"1":{"name":"keyword.fsharp"},"2":{"name":"variable.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#keywords"},{"include":"#text"},{"include":"#definition"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}]},"text":{"patterns":[{"name":"text.fsharp","match":"\\\\"}]},"tuple_signature":{"patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"variables":{"patterns":[{"name":"constant.language.unit.fsharp","match":"\\(\\)"},{"match":"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private\\b)\\b[\\w[:alpha:]0-9'`\u003c\u003e^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}}]}}}
@@ -1 +1 @@
1
- {"name":"F*","scopeName":"source.fstar","patterns":[{"include":"#comments"},{"include":"#modules"},{"include":"#options"},{"include":"#expr"}],"repository":{"commentblock":{"patterns":[{"name":"comment.block.fstar","begin":"\\(\\*","end":"\\*\\)","patterns":[{"include":"#commentblock"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.fstar"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.fstar"}}}]},"comments":{"patterns":[{"name":"comment.line.fstar","match":"//.*"},{"include":"#commentblock"}]},"expr":{"patterns":[{"include":"#comments"},{"name":"variable.other.generic-type.fstar","match":"'[a-zA-Z0-9_]+\\b"},{"include":"#strings"},{"name":"support.class.base.fstar","match":"\\b(int|nat|pos|bool|unit|string|Type|Type0|eqtype)\\b"},{"name":"support.class.base.fstar","match":"(/\\\\|\\\\/|\u003c:|\u003c@|[(][|]|[|][)]|u#|~\u003e|-\u003e|\u003c--|\u003c-|\u003c==\u003e|==\u003e|[?][.]|[.]\\[|[.]\\(|[{][:]pattern|::|:=|;;|[!][{]|\\[[|]|[|]\u003e|[|]\\]|[~+^\u0026?$|#,.:;=\\[\\](){}-])"},{"name":"constant.language.monad.fstar","match":"\\b(Pure|PURE|Tot|STATE|ST|St|Stack|StackInline|HST|ALL|All|EXN|Exn|Ex|DIV|Div|GHOST|Ghost|GTot|Lemma)\\b"},{"name":"constant.language.fstar","match":"\\b(_|[(]\\s*[)]|\\[\\s*\\])\\b"},{"name":"keyword.other.fstar","match":"\\b(let|in|type|kind|val|rec|and|if|then|else|assume|admit|assert|assert_norm|squash|failwith|SMTPat|SMTPatOr|hasEq|fun|function|forall|exists|exception|by|new_effect|reify|try|synth|with|when)\\b"},{"name":"storage.modifier.fstar","match":"\\b(abstract|attributes|noeq|unopteq|inline|inline_for_extraction|irreducible|logic|mutable|new|noextract|private|reifiable|reflectable|total|unfold|unfoldable)\\b"},{"name":"constant.language.boolean.fstar","match":"\\b([tT]rue|[fF]alse)\\b"},{"name":"constant.numeric.hex.js","match":"\\b0[xX][0-9a-fA-F]+[uU]?[zyslL]?\\b"},{"name":"constant.numeric.decimal.js","match":"\\b[0-9]+[uU]?[zyslL]?\\b"},{"match":"(?x)\n(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)[L]?[fF]?","captures":{"0":{"name":"constant.numeric.decimal.fstar"},"1":{"name":"meta.delimiter.decimal.period.fstar"},"2":{"name":"meta.delimiter.decimal.period.fstar"},"3":{"name":"meta.delimiter.decimal.period.fstar"},"4":{"name":"meta.delimiter.decimal.period.fstar"},"5":{"name":"meta.delimiter.decimal.period.fstar"},"6":{"name":"meta.delimiter.decimal.period.fstar"}}},{"begin":"([(])\\s*(requires|ensures|decreases)?","end":"([)])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"punctuation.definition.scope.begin.bracket.round.fstar"},"2":{"name":"keyword.other.fstar"}},"endCaptures":{"1":{"name":"punctuation.definition.scope.end.bracket.round.fstar"}}},{"begin":"([(])","end":"([)])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"punctuation.definition.clause.begin.bracket.round.fstar"}},"endCaptures":{"1":{"name":"punctuation.definition.clause.end.bracket.round.fstar"}}},{"begin":"([%]\\[)","end":"(\\])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"constant.language.termorder.begin.fstar"}},"endCaptures":{"1":{"name":"constant.language.termorder.end.fstar"}}},{"begin":"(\\[[@])","end":"(\\])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"storage.modifier.attributes.begin.fstar"}},"endCaptures":{"1":{"name":"storage.modifier.attributes.end.fstar"}}},{"begin":"\\b(match)\\b","end":"\\b(with)\\b","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"keyword.control.match.fstar"}},"endCaptures":{"1":{"name":"keyword.control.with.fstar"}}},{"begin":"\\b(begin)\\b","end":"\\b(end)\\b","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"keyword.control.begin.fstar"}},"endCaptures":{"1":{"name":"keyword.control.end.fstar"}}},{"match":"\\b([\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)\\b(?!\\s*[.])","captures":{"1":{"name":"support.function.constructor.fstar"}}},{"match":"\\b((?:[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*[.])+)","captures":{"1":{"name":"variable.other.module.fstar"}}},{"match":"\\b([\\p{Ll}_][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)","captures":{"1":{"name":"entity.name.function.fstar"}}}]},"modules":{"patterns":[{"begin":"\\b(module)\\s+([\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)\\s*(=)","end":"\\b((?\u003cname\u003e[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)(?:[.]\\g\u003cname\u003e)*)\\b","beginCaptures":{"1":{"name":"keyword.control.module.fstar"},"2":{"name":"variable.other.module-alias.fstar"},"3":{"name":"keyword.operator.assignment.fstar"}},"endCaptures":{"1":{"name":"variable.other.module.fstar"}}},{"begin":"\\b(module|open|include)\\b","end":"\\b((?\u003cname\u003e[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)(?:[.]\\g\u003cname\u003e)*)\\b","beginCaptures":{"1":{"name":"keyword.control.module.fstar"}},"endCaptures":{"1":{"name":"variable.other.module.fstar"}}}]},"op_names":{"patterns":[{"name":"entity.name.tag.fstar","match":"\\bop(?:_(?:Multiply|Star|Slash|Percent|Plus|Substraction|Equals|Less|Greater|Bang|Dollar|Amp|Dot|Hat|Colon|Pipe|Question))+\\b"}]},"options":{"patterns":[{"match":"(#(?:re)?set-options)\\s*([\"])((?:[^\"]|\\\\\")*)([\"])","captures":{"1":{"name":"keyword.control.setoption.fstar"},"2":{"name":"punctuation.definition.options.begin.fstar"},"3":{"name":"string.quoted.double.fstar"},"4":{"name":"punctuation.definition.options.end.fstar"}}}]},"string_escapes":{"patterns":[{"name":"invalid.illegal.unicode-escape.fstar","match":"\\\\u(?![A-Fa-f0-9]{4}|{[A-Fa-f0-9]+})[^'\"]*"},{"name":"constant.character.escape.js","match":"\\\\u(?:[A-Fa-f0-9]{4}|({)([A-Fa-f0-9]+)(}))","captures":{"1":{"name":"punctuation.definition.unicode-escape.begin.bracket.curly.fstar"},"2":{"patterns":[{"name":"invalid.illegal.unicode-escape.fstar","match":"[A-Fa-f\\d]{7,}|(?!10)[A-Fa-f\\d]{6}"}]},"3":{"name":"punctuation.definition.unicode-escape.end.bracket.curly.fstar"}}},{"name":"constant.character.escape.fstar","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"}]},"strings":{"patterns":[{"name":"string.quoted.double.fstar","begin":"\"","end":"\"","patterns":[{"include":"#string_escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.fstar"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.fstar"}}},{"name":"string.quoted.single.fstar","begin":"'","end":"'","patterns":[{"include":"#string_escapes"},{"name":"invalid.illegal.string.js","match":".{2,}"}],"beginCaptures":{"0":{"name":"punctuation.definition.char.begin.fstar"}},"endCaptures":{"0":{"name":"punctuation.definition.char.end.fstar"}}},{"name":"string.quoted.template.fstar","begin":"`","end":"`","patterns":[{"include":"#op_names"}],"beginCaptures":{"0":{"name":"punctuation.definition.operator.begin.fstar"}},"endCaptures":{"0":{"name":"punctuation.definition.operator.end.fstar"}}}]}}}
1
+ {"name":"F*","scopeName":"source.fstar","patterns":[{"include":"#comments"},{"include":"#modules"},{"include":"#options"},{"include":"#expr"}],"repository":{"commentblock":{"patterns":[{"name":"comment.block.fstar","begin":"\\(\\*","end":"\\*\\)","patterns":[{"include":"#commentblock"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.fstar"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.fstar"}}}]},"comments":{"patterns":[{"name":"comment.line.fstar","match":"//.*"},{"include":"#commentblock"}]},"expr":{"patterns":[{"include":"#comments"},{"name":"variable.other.generic-type.fstar","match":"'[a-zA-Z0-9_]+\\b"},{"include":"#strings"},{"name":"support.class.base.fstar","match":"\\b(int|nat|pos|bool|unit|string|Type|Type0|eqtype)\\b"},{"name":"support.class.base.fstar","match":"(/\\\\|\\\\/|\u003c:|\u003c@|[(][|]|[|][)]|u#|`|~\u003e|-\u003e|\u003c--|\u003c-|\u003c==\u003e|==\u003e|[?][.]|[.]\\[|[.]\\(|[{][:]pattern|::|:=|;;|[!][{]|\\[[|]|[|]\u003e|[|]\\]|[~+^\u0026?$|#,.:;=\\[\\](){}-])"},{"name":"constant.language.monad.fstar","match":"\\b(Pure|PURE|Tot|STATE|ST|St|Stack|StackInline|HST|ALL|All|EXN|Exn|Ex|DIV|Div|GHOST|Ghost|GTot|Lemma)\\b"},{"name":"constant.language.fstar","match":"\\b(_|[(]\\s*[)]|\\[\\s*\\])\\b"},{"name":"keyword.other.fstar","match":"\\b(let|in|type|kind|val|rec|and|if|then|else|assume|admit|assert|assert_norm|squash|failwith|SMTPat|SMTPatOr|hasEq|fun|function|forall|exists|exception|by|new_effect|reify|try|synth|with|when)\\b"},{"name":"storage.modifier.fstar","match":"\\b(abstract|attributes|noeq|unopteq|inline|inline_for_extraction|irreducible|logic|mutable|new|noextract|private|reifiable|reflectable|total|unfold|unfoldable)\\b"},{"name":"constant.language.boolean.fstar","match":"\\b([tT]rue|[fF]alse)\\b"},{"name":"constant.numeric.hex.js","match":"\\b0[xX][0-9a-fA-F]+[uU]?[zyslL]?\\b"},{"name":"constant.numeric.decimal.js","match":"\\b[0-9]+[uU]?[zyslL]?\\b"},{"match":"(?x)\n(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)[L]?[fF]?","captures":{"0":{"name":"constant.numeric.decimal.fstar"},"1":{"name":"meta.delimiter.decimal.period.fstar"},"2":{"name":"meta.delimiter.decimal.period.fstar"},"3":{"name":"meta.delimiter.decimal.period.fstar"},"4":{"name":"meta.delimiter.decimal.period.fstar"},"5":{"name":"meta.delimiter.decimal.period.fstar"},"6":{"name":"meta.delimiter.decimal.period.fstar"}}},{"begin":"([(])\\s*(requires|ensures|decreases)?","end":"([)])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"punctuation.definition.scope.begin.bracket.round.fstar"},"2":{"name":"keyword.other.fstar"}},"endCaptures":{"1":{"name":"punctuation.definition.scope.end.bracket.round.fstar"}}},{"begin":"([(])","end":"([)])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"punctuation.definition.clause.begin.bracket.round.fstar"}},"endCaptures":{"1":{"name":"punctuation.definition.clause.end.bracket.round.fstar"}}},{"begin":"([%]\\[)","end":"(\\])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"constant.language.termorder.begin.fstar"}},"endCaptures":{"1":{"name":"constant.language.termorder.end.fstar"}}},{"begin":"(\\[[@])","end":"(\\])","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"storage.modifier.attributes.begin.fstar"}},"endCaptures":{"1":{"name":"storage.modifier.attributes.end.fstar"}}},{"begin":"\\b(match)\\b","end":"\\b(with)\\b","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"keyword.control.match.fstar"}},"endCaptures":{"1":{"name":"keyword.control.with.fstar"}}},{"begin":"\\b(begin)\\b","end":"\\b(end)\\b","patterns":[{"include":"#expr"}],"beginCaptures":{"1":{"name":"keyword.control.begin.fstar"}},"endCaptures":{"1":{"name":"keyword.control.end.fstar"}}},{"match":"\\b([\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)\\b(?!\\s*[.])","captures":{"1":{"name":"support.function.constructor.fstar"}}},{"match":"\\b((?:[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*[.])+)","captures":{"1":{"name":"variable.other.module.fstar"}}},{"match":"\\b([\\p{Ll}_][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)","captures":{"1":{"name":"entity.name.function.fstar"}}}]},"modules":{"patterns":[{"begin":"\\b(module)\\s+([\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)\\s*(=)","end":"\\b((?\u003cname\u003e[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)(?:[.]\\g\u003cname\u003e)*)\\b","beginCaptures":{"1":{"name":"keyword.control.module.fstar"},"2":{"name":"variable.other.module-alias.fstar"},"3":{"name":"keyword.operator.assignment.fstar"}},"endCaptures":{"1":{"name":"variable.other.module.fstar"}}},{"begin":"\\b(module|open|include)\\b","end":"\\b((?\u003cname\u003e[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)(?:[.]\\g\u003cname\u003e)*)\\b","beginCaptures":{"1":{"name":"keyword.control.module.fstar"}},"endCaptures":{"1":{"name":"variable.other.module.fstar"}}}]},"op_names":{"patterns":[{"name":"entity.name.tag.fstar","match":"\\bop(?:_(?:Multiply|Star|Slash|Percent|Plus|Substraction|Equals|Less|Greater|Bang|Dollar|Amp|Dot|Hat|Colon|Pipe|Question))+\\b"}]},"options":{"patterns":[{"match":"(#(?:re)?set-options)\\s*([\"])((?:[^\"]|\\\\\")*)([\"])","captures":{"1":{"name":"keyword.control.setoption.fstar"},"2":{"name":"punctuation.definition.options.begin.fstar"},"3":{"name":"string.quoted.double.fstar"},"4":{"name":"punctuation.definition.options.end.fstar"}}}]},"string_escapes":{"patterns":[{"name":"invalid.illegal.unicode-escape.fstar","match":"\\\\u(?![A-Fa-f0-9]{4}|{[A-Fa-f0-9]+})[^'\"]*"},{"name":"constant.character.escape.js","match":"\\\\u(?:[A-Fa-f0-9]{4}|({)([A-Fa-f0-9]+)(}))","captures":{"1":{"name":"punctuation.definition.unicode-escape.begin.bracket.curly.fstar"},"2":{"patterns":[{"name":"invalid.illegal.unicode-escape.fstar","match":"[A-Fa-f\\d]{7,}|(?!10)[A-Fa-f\\d]{6}"}]},"3":{"name":"punctuation.definition.unicode-escape.end.bracket.curly.fstar"}}},{"name":"constant.character.escape.fstar","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"}]},"strings":{"patterns":[{"name":"string.quoted.double.fstar","begin":"\"","end":"\"","patterns":[{"include":"#string_escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.fstar"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.fstar"}}},{"name":"string.quoted.single.fstar","begin":"'","end":"'","patterns":[{"include":"#string_escapes"},{"name":"invalid.illegal.string.js","match":".{2,}"}],"beginCaptures":{"0":{"name":"punctuation.definition.char.begin.fstar"}},"endCaptures":{"0":{"name":"punctuation.definition.char.end.fstar"}}}]}}}
@@ -1 +1 @@
1
- {"name":"Futhark","scopeName":"source.futhark","patterns":[{"include":"#main"}],"repository":{"attribute":{"name":"meta.attribute.futhark","match":"(#\\[)([^\\]]*)(\\])","captures":{"1":{"name":"punctuation.definition.attribute.begin.futhark"},"2":{"name":"storage.modifier.attribute.futhark"},"3":{"name":"punctuation.definition.attribute.end.futhark"}}},"booleans":{"name":"constant.language.boolean.$1.futhark","match":"(?\u003c![#'])(true|false)\\b(?![#'])"},"builtInTypes":{"patterns":[{"name":"support.type.builtin.futhark","match":"(?\u003c![#'])(bool)\\b(?![#'])"},{"include":"#numericTypes"}]},"character":{"name":"string.quoted.single.character.futhark","match":"(')[^']?(')","captures":{"1":{"name":"punctuation.definition.string.begin.futhark"},"2":{"name":"punctuation.definition.string.end.futhark"}}},"comment":{"name":"comment.line.double-dash.futhark","begin":"--","end":"$"},"constructor":{"name":"entity.name.function.constructor.futhark","match":"(#)['\\w]+","captures":{"1":{"name":"punctuation.definition.constructor.number-sign.futhark"}}},"functionDefinition":{"match":"(?\u003c![#'])\\b(let|entry)(?:\\s+([_A-Za-z]['\\w]*))?(?:\\b(?![#'])|(?\u003c=')\\B(?!#))","captures":{"1":{"name":"storage.type.var.$1.futhark"},"2":{"name":"entity.name.function.futhark"}}},"keywords":{"name":"keyword.control.$1.futhark","match":"(?\u003c![#'])\\b(assert|case|do|else|entry|for|if|import|include|in|let|local|loop|match|module|open|then|unsafe|val|while|with)\\b(?![#'])"},"main":{"patterns":[{"include":"#typeBinding"},{"include":"#typeParameter"},{"include":"#functionDefinition"},{"include":"#comment"},{"include":"#keywords"},{"include":"#attribute"},{"include":"#numericTypes"},{"include":"#builtInTypes"},{"include":"#booleans"},{"include":"#number"},{"include":"#character"},{"include":"#var"},{"include":"#constructor"},{"include":"#operator"},{"match":"#"},{"match":"'"},{"include":"etc#bracket"},{"include":"etc"}]},"number":{"name":"constant.numeric.futhark","match":"(?x) -?\n(?:\n\t(?:0[xX])\n\t[0-9a-fA-F]+\n\t(?: \\.[0-9a-fA-F]+)?\n\t(?: [Pp][+-]?[0-9]+)?\n\t\n\t|\n\t\n\t(?:0[bB])\n\t[0-1_]+\n\t\n\t|\n\n\t[0-9]+\n\t(?:\\.[0-9]+)?\n\t(?:[Ee][+-]?[0-9]+)?\n) (?:i8|i16|i32|i64|u8|u16|u32|u64|f32|f64)?"},"numericTypes":{"name":"support.type.numeric.futhark","match":"(?\u003c![#'])\\b(f32|f64|i16|i32|i64|i8|u16|u32|u64|u8)\\b(?![#'])"},"operator":{"patterns":[{"name":"keyword.operator.futhark","match":"[-+*/%!\u003c\u003e=\u0026|@]+"},{"name":"string.interpolated.quoted.backticks.futhark","match":"(`)[^`]*(`)","captures":{"1":{"name":"punctuation.definition.string.begin.futhark"},"2":{"name":"punctuation.definition.string.end.futhark"}}}]},"typeBinding":{"name":"meta.type.binding.futhark","begin":"(?\u003c![#'])\\b(module\\s+)?(type[~^]?)(?:\\s+([_A-Za-z]['\\w]*))?(?:\\b(?![#'])|(?\u003c=')\\B(?!#))","end":"=|(?=\\s*(?!--)[^\\s=])","patterns":[{"include":"#comment"},{"include":"#typeParameter"}],"beginCaptures":{"1":{"name":"storage.modifier.module.futhark"},"2":{"name":"storage.type.decl.futhark"},"3":{"name":"entity.name.type.futhark"}},"endCaptures":{"0":{"name":"keyword.operator.futhark"}}},"typeParameter":{"name":"entity.name.type.parameter.futhark","match":"('[~^]?)[_A-Za-z]\\w*\\b(?![#'])","captures":{"1":{"name":"punctuation.definition.type.parameter.futhark"}}},"var":{"name":"variable.other.readwrite.futhark","match":"(?\u003c![#'])\\b[_A-Za-z]['\\w]*"}}}
1
+ {"name":"Futhark","scopeName":"source.futhark","patterns":[{"include":"#main"}],"repository":{"attribute":{"name":"meta.attribute.futhark","match":"(#\\[)([^\\]]*)(\\])","captures":{"1":{"name":"punctuation.definition.attribute.begin.futhark"},"2":{"name":"storage.modifier.attribute.futhark"},"3":{"name":"punctuation.definition.attribute.end.futhark"}}},"booleans":{"name":"constant.language.boolean.$1.futhark","match":"(?\u003c![#'])(true|false)\\b(?![#'])"},"builtInTypes":{"patterns":[{"name":"support.type.builtin.futhark","match":"(?\u003c![#'])(bool)\\b(?![#'])"},{"include":"#numericTypes"}]},"character":{"name":"string.quoted.single.character.futhark","match":"(')[^']?(')","captures":{"1":{"name":"punctuation.definition.string.begin.futhark"},"2":{"name":"punctuation.definition.string.end.futhark"}}},"comment":{"name":"comment.line.double-dash.futhark","begin":"--","end":"$"},"constructor":{"name":"entity.name.function.constructor.futhark","match":"(#)['\\w]+","captures":{"1":{"name":"punctuation.definition.constructor.number-sign.futhark"}}},"functionDefinition":{"match":"(?\u003c![#'])\\b(def|let|entry)(?:\\s+([_A-Za-z]['\\w]*))?(?:\\b(?![#'])|(?\u003c=')\\B(?!#))","captures":{"1":{"name":"storage.type.var.$1.futhark"},"2":{"name":"entity.name.function.futhark"}}},"keywords":{"name":"keyword.control.$1.futhark","match":"(?\u003c![#'])\\b(assert|case|do|else|def|entry|for|if|import|include|in|let|local|loop|match|module|open|then|unsafe|val|while|with)\\b(?![#'])"},"main":{"patterns":[{"include":"#typeBinding"},{"include":"#typeParameter"},{"include":"#functionDefinition"},{"include":"#comment"},{"include":"#keywords"},{"include":"#attribute"},{"include":"#numericTypes"},{"include":"#builtInTypes"},{"include":"#booleans"},{"include":"#number"},{"include":"#character"},{"include":"#var"},{"include":"#constructor"},{"include":"#operator"},{"match":"#"},{"match":"'"},{"include":"etc#bracket"},{"include":"etc"}]},"number":{"name":"constant.numeric.futhark","match":"(?x) -?\n(?:\n\t(?:0[xX])\n\t[0-9a-fA-F]+\n\t(?: \\.[0-9a-fA-F]+)?\n\t(?: [Pp][+-]?[0-9]+)?\n\t\n\t|\n\t\n\t(?:0[bB])\n\t[0-1_]+\n\t\n\t|\n\n\t[0-9]+\n\t(?:\\.[0-9]+)?\n\t(?:[Ee][+-]?[0-9]+)?\n) (?:i8|i16|i32|i64|u8|u16|u32|u64|f32|f64)?"},"numericTypes":{"name":"support.type.numeric.futhark","match":"(?\u003c![#'])\\b(f32|f64|i16|i32|i64|i8|u16|u32|u64|u8)\\b(?![#'])"},"operator":{"patterns":[{"name":"keyword.operator.futhark","match":"[-+*/%!\u003c\u003e=\u0026|@]+"},{"name":"string.interpolated.quoted.backticks.futhark","match":"(`)[^`]*(`)","captures":{"1":{"name":"punctuation.definition.string.begin.futhark"},"2":{"name":"punctuation.definition.string.end.futhark"}}}]},"typeBinding":{"name":"meta.type.binding.futhark","begin":"(?\u003c![#'])\\b(module\\s+)?(type[~^]?)(?:\\s+([_A-Za-z]['\\w]*))?(?:\\b(?![#'])|(?\u003c=')\\B(?!#))","end":"=|(?=\\s*(?!--)[^\\s=])","patterns":[{"include":"#comment"},{"include":"#typeParameter"}],"beginCaptures":{"1":{"name":"storage.modifier.module.futhark"},"2":{"name":"storage.type.decl.futhark"},"3":{"name":"entity.name.type.futhark"}},"endCaptures":{"0":{"name":"keyword.operator.futhark"}}},"typeParameter":{"name":"entity.name.type.parameter.futhark","match":"('[~^]?)[_A-Za-z]\\w*\\b(?![#'])","captures":{"1":{"name":"punctuation.definition.type.parameter.futhark"}}},"var":{"name":"variable.other.readwrite.futhark","match":"(?\u003c![#'])\\b[_A-Za-z]['\\w]*"}}}
@@ -1 +1 @@
1
- {"name":"VSCode GCode Syntax","scopeName":"source.gcode","patterns":[{"include":"#all"}],"repository":{"all":{"patterns":[{"include":"#comments"},{"include":"#speedsfeeds"},{"include":"#prognumbers"},{"include":"#coords"},{"include":"#tools"},{"include":"#modifiers"},{"include":"#macrovars"},{"include":"#keywords"},{"include":"#operators"},{"include":"#bracket-expression"}]},"bracket-expression":{"name":"expression.group","begin":"\\[","end":"\\]","patterns":[{"include":"#all"}],"beginCaptures":{"0":{"name":"punctuation.paren.open"}},"endCaptures":{"0":{"name":"punctuation.paren.close"}}},"comments":{"patterns":[{"name":"comment.gcode","match":"(\\(.+\\))"},{"name":"comment.gcode","begin":";","end":"\\n"}]},"coords":{"patterns":[{"name":"string.gcode","match":"([xX])\\s?(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"string.gcode","match":"([yY])\\s?(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"invalid.gcode","match":"([zZ])\\s?(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"constant.character.escape.gcode","match":"([aAbBcC])\\s?(\\-*\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"}]},"keywords":{"patterns":[{"name":"keyword.control.gcode","match":"(GOTO(?\u003e\\d+))|(IF)|(EQ)|(NE)|(LT)|(GT)|(LE)|(GE)|(DO(?\u003e\\d+))|(WHILE)|(WH)|(END(?\u003e\\d+))|(AND)|(OR)|(XOR)"},{"name":"constant.numeric.gcode","match":"[gG](1)?5[4-9](.1)?\\s?(P[0-9]{1,3})?"},{"name":"constant.numeric.gcode","match":"[gG]1[1-2][0-9]"},{"name":"constant.numeric.gcode","match":"[gG]15\\s?(H[0-9]{1,2})?"},{"name":"markup.bold.gcode","match":"[gG][0-9]{1,3}(\\.[0-9])?"},{"name":"keyword.operator.quantifier.regexp.gcode","match":"[mM][0-9]{1,3}"},{"name":"string.gcode","match":"([\\%])"}]},"macrovars":{"patterns":[{"name":"variable.other.gcode","match":"[#][0-9]+"},{"name":"variable.other.gcode","match":"[#][\\[].+[\\]]"}]},"modifiers":{"patterns":[{"name":"constant.character.escape.gcode","match":"([iIjJkK])(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"support.constant.math.gcode","match":"([qQrR])(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]]))"},{"name":"support.constant.math.gcode","match":"([uUwW])(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]]))"}]},"operators":{"patterns":[{"name":"support.constant.math.gcode","match":"(SIN)|(COS)|(TAN)|(ASIN)|(ACOS)|(ATAN)|(FIX)|(FUP)|(LN)|(ROUND)|(SQRT)"},{"name":"support.constant.math.gcode","match":"(FIX)|(FUP)|(ROUND)|(ABS)|(MOD)"},{"name":"support.constant.math.gcode","match":"(\\+)|(\\*)|(\\/)|(\\*\\*)"},{"name":"invalid.gcode","match":"(\\-)"}]},"prognumbers":{"patterns":[{"name":"constant.numeric.gcode","match":"(^[nN])(\\d+)"},{"name":"string.regexp.gcode","match":"(^[oO])(\\d+)"},{"name":"string.regexp.gcode","match":"([pP])\\s?(\\d?\\.?\\d+\\.?|\\.?(?=[#\\[]))"}]},"speedsfeeds":{"patterns":[{"name":"constant.language.gcode","match":"([sS])\\s?(\\d+|(?=[#\\[]))"},{"name":"constant.language.gcode","match":"([eEfF])\\s?(\\d*\\.?\\d+\\.?|\\.?(?=[#\\[]))"}]},"tools":{"patterns":[{"name":"constant.character.gcode","match":"([dD])\\s?(\\d*\\.?\\d*|(?=[#\\[]))"},{"name":"constant.character.gcode","match":"([hH])\\s?(\\d*\\.?\\d*|(?=[#\\[]))"},{"name":"constant.character.gcode","match":"([tT])\\s?(\\d*\\.?\\d*|(?=[#\\[]))"}]}}}
1
+ {"name":"VSCode GCode Syntax","scopeName":"source.gcode","patterns":[{"include":"#all"}],"repository":{"all":{"patterns":[{"include":"#comments"},{"include":"#bracket-expression"},{"include":"#keywords"},{"include":"#operators"},{"include":"#speedsfeeds"},{"include":"#prognumbers"},{"include":"#coords"},{"include":"#tools"},{"include":"#modifiers"},{"include":"#macrovars"}]},"bracket-expression":{"name":"expression.group","begin":"\\[","end":"\\]","patterns":[{"include":"#all"}],"beginCaptures":{"0":{"name":"punctuation.paren.open"}},"endCaptures":{"0":{"name":"punctuation.paren.close"}}},"comments":{"patterns":[{"name":"comment.gcode","match":"(\\(.+\\))"},{"name":"comment.gcode","begin":";","end":"\\n"}]},"coords":{"patterns":[{"name":"string.gcode","match":"([xX])\\s?(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"string.gcode","match":"([yY])\\s?(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"invalid.gcode","match":"([zZ])\\s?(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"constant.character.escape.gcode","match":"([aAbBcC])\\s?(\\-*\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"}]},"keywords":{"patterns":[{"name":"keyword.control.gcode","match":"(GOTO(?\u003e\\d+))|(IF)|(EQ)|(NE)|(LT)|(GT)|(LE)|(GE)|(DO ?(?\u003e\\d+))|(WHILE)|(WH)|(END ?(?\u003e\\d+))|(AND)|(OR)|(XOR)|(THEN)|(ELSE)|(ENDIF)"},{"name":"constant.numeric.gcode","match":"[gG](1)?5[4-9](.1)?\\s?(P[0-9]{1,3})?"},{"name":"constant.numeric.gcode","match":"[gG]1[1-2][0-9]"},{"name":"constant.numeric.gcode","match":"[gG]15\\s?(H[0-9]{1,2})?"},{"name":"markup.bold.gcode","match":"[gG][0-9]{1,3}(\\.[0-9])?"},{"name":"keyword.operator.quantifier.regexp.gcode","match":"[mM][0-9]{1,3}"},{"name":"string.gcode","match":"([\\%])"}]},"macrovars":{"patterns":[{"name":"variable.other.gcode","match":"[#][0-9]+"},{"name":"variable.other.gcode","match":"[#][\\[].+[\\]]"}]},"modifiers":{"patterns":[{"name":"constant.character.escape.gcode","match":"([iIjJkK])(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))"},{"name":"support.constant.math.gcode","match":"([qQrR])(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]]))"},{"name":"support.constant.math.gcode","match":"([uUwW])(\\-?\\d*\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]]))"}]},"operators":{"patterns":[{"name":"support.constant.math.gcode","match":"(SIN)|(COS)|(TAN)|(ASIN)|(ACOS)|(ATAN)|(FIX)|(FUP)|(LN)|(ROUND)|(SQRT)"},{"name":"support.constant.math.gcode","match":"(FIX)|(FUP)|(ROUND)|(ABS)|(MOD)"},{"name":"support.constant.math.gcode","match":"(\\+)|(\\*)|(\\/)|(\\*\\*)"},{"name":"invalid.gcode","match":"(\\-)"}]},"prognumbers":{"patterns":[{"name":"constant.numeric.gcode","match":"(^[nN])(\\d+)"},{"name":"string.regexp.gcode","match":"(^[oO])(\\d+)"},{"name":"string.regexp.gcode","match":"([pP])\\s?(\\d?\\.?\\d+\\.?|\\.?(?=[#\\[]))"}]},"speedsfeeds":{"patterns":[{"name":"constant.language.gcode","match":"([sS])\\s?(\\d+|(?=[#\\[]))"},{"name":"constant.language.gcode","match":"([eEfF])\\s?(\\d*\\.?\\d+\\.?|\\.?(?=[#\\[]))"}]},"tools":{"patterns":[{"name":"constant.character.gcode","match":"([dD])\\s?(\\d*\\.?\\d*|(?=[#\\[]))"},{"name":"constant.character.gcode","match":"([hH])\\s?(\\d*\\.?\\d*|(?=[#\\[]))"},{"name":"constant.character.gcode","match":"([tT])\\s?(\\d*\\.?\\d*|(?=[#\\[]))"}]}}}