github-linguist 7.16.0 → 7.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +1 -0
  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/liquid.injection.json +1 -0
  11. data/grammars/markdown.curry.codeblock.json +1 -0
  12. data/grammars/markdown.textproto.codeblock.json +1 -0
  13. data/grammars/source.2da.json +1 -0
  14. data/grammars/source.abap.json +1 -1
  15. data/grammars/source.aidl.json +1 -1
  16. data/grammars/source.ballerina.json +1 -1
  17. data/grammars/source.bc.json +1 -0
  18. data/grammars/source.bicep.json +1 -1
  19. data/grammars/source.bnd.json +1 -0
  20. data/grammars/source.cirru.json +1 -1
  21. data/grammars/source.cl.json +1 -0
  22. data/grammars/source.clar.json +1 -0
  23. data/grammars/source.clarion.json +1 -1
  24. data/grammars/source.clojure.json +1 -1
  25. data/grammars/source.cmd.json +1 -0
  26. data/grammars/source.cs.json +1 -1
  27. data/grammars/source.csound.json +1 -1
  28. data/grammars/source.css.json +1 -1
  29. data/grammars/source.curry.json +1 -0
  30. data/grammars/source.dart.json +1 -1
  31. data/grammars/source.data-weave.json +1 -1
  32. data/grammars/source.dc.json +1 -0
  33. data/grammars/source.dds.dspf.json +1 -0
  34. data/grammars/source.dds.icff.json +1 -0
  35. data/grammars/source.dds.lf.json +1 -0
  36. data/grammars/source.dds.pf.json +1 -0
  37. data/grammars/source.dds.prtf.json +1 -0
  38. data/grammars/source.deb-control.json +1 -0
  39. data/grammars/source.debian.makefile.json +1 -0
  40. data/grammars/source.denizenscript.json +1 -0
  41. data/grammars/source.ditroff.json +1 -1
  42. data/grammars/source.earthfile.json +1 -0
  43. data/grammars/source.elixir.json +1 -1
  44. data/grammars/source.euphoria.json +1 -0
  45. data/grammars/source.fsharp.json +1 -1
  46. data/grammars/source.fstar.json +1 -1
  47. data/grammars/source.futhark.json +1 -1
  48. data/grammars/source.gcode.json +1 -1
  49. data/grammars/source.gitignore.json +1 -1
  50. data/grammars/source.gleam.json +1 -0
  51. data/grammars/source.goldgrm.json +1 -0
  52. data/grammars/source.gsc.json +1 -0
  53. data/grammars/source.haskell.json +1 -1
  54. data/grammars/source.hoon.json +1 -0
  55. data/grammars/source.hsig.json +1 -1
  56. data/grammars/source.icurry.json +1 -0
  57. data/grammars/source.janet.json +1 -0
  58. data/grammars/source.jest.snap.json +1 -0
  59. data/grammars/source.jq.json +1 -1
  60. data/grammars/source.js.json +1 -1
  61. data/grammars/source.json.json +1 -1
  62. data/grammars/source.julia.json +1 -1
  63. data/grammars/source.kotlin.json +1 -1
  64. data/grammars/source.m2.json +1 -1
  65. data/grammars/source.matlab.json +1 -1
  66. data/grammars/source.mi.json +1 -0
  67. data/grammars/source.miniyaml.json +1 -0
  68. data/grammars/source.mint.json +1 -0
  69. data/grammars/source.mlir.json +1 -1
  70. data/grammars/source.mo.json +1 -0
  71. data/grammars/source.odin.json +1 -1
  72. data/grammars/source.opts.json +1 -1
  73. data/grammars/source.pcb.schematic.json +1 -1
  74. data/grammars/source.pcb.sexp.json +1 -1
  75. data/grammars/source.pic.json +1 -1
  76. data/grammars/source.pnlgrp.json +1 -0
  77. data/grammars/source.postscript.json +1 -1
  78. data/grammars/source.powershell.json +1 -1
  79. data/grammars/source.procfile.json +1 -0
  80. data/grammars/source.promela.json +1 -0
  81. data/grammars/source.proto.json +1 -1
  82. data/grammars/source.python.kivy.json +1 -0
  83. data/grammars/source.q_output.json +1 -1
  84. data/grammars/source.qsharp.json +1 -1
  85. data/grammars/source.rascal.json +1 -1
  86. data/grammars/source.rego.json +1 -1
  87. data/grammars/source.rescript.json +1 -1
  88. data/grammars/source.rpg.json +1 -0
  89. data/grammars/source.rpgle.json +1 -0
  90. data/grammars/source.scala.json +1 -1
  91. data/grammars/source.shellcheckrc.json +1 -1
  92. data/grammars/source.smali.json +1 -1
  93. data/grammars/source.solidity.json +1 -1
  94. data/grammars/source.sqf.json +1 -1
  95. data/grammars/source.ssh-config.json +1 -1
  96. data/grammars/source.textproto.json +1 -0
  97. data/grammars/source.ts.json +1 -1
  98. data/grammars/source.tsx.json +1 -1
  99. data/grammars/source.v.json +1 -1
  100. data/grammars/source.vyper.json +1 -1
  101. data/grammars/source.witcherscript.json +1 -0
  102. data/grammars/source.ws.json +1 -0
  103. data/grammars/source.wsd.json +1 -1
  104. data/grammars/source.yara.json +1 -1
  105. data/grammars/source.yasnippet.json +1 -1
  106. data/grammars/text.html.liquid.json +1 -1
  107. data/grammars/text.html.php.json +1 -1
  108. data/grammars/text.roff.json +1 -1
  109. data/grammars/text.rtf.json +1 -1
  110. data/grammars/text.tex.latex.haskell.json +1 -1
  111. data/grammars/version +1 -1
  112. data/lib/linguist/VERSION +1 -1
  113. data/lib/linguist/documentation.yml +1 -0
  114. data/lib/linguist/generated.rb +32 -1
  115. data/lib/linguist/heuristics.yml +52 -2
  116. data/lib/linguist/languages.json +1 -1
  117. data/lib/linguist/languages.yml +297 -22
  118. data/lib/linguist/samples.json +1 -1
  119. data/lib/linguist/vendor.yml +4 -1
  120. metadata +82 -40
  121. data/lib/linguist/linguist.bundle +0 -0
@@ -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.literate.command.fsharp","match":"(\\(\\*{3}.*\\*{3}\\))","beginCaptures":{"1":{"name":"comment.block.fsharp"}}},{"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*|(?=[#\\[]))"}]}}}
@@ -1 +1 @@
1
- {"name":".gitignore","scopeName":"source.gitignore","patterns":[{"include":"#main"}],"repository":{"bazaarPrefixes":{"patterns":[{"name":"storage.modifier.bazaar.re-prefix.gitignore","match":"^RE(:)(?=\\S)"},{"name":"keyword.operator.logical.not.negation.elevated.bazaar.gitignore","match":"^!!(?=\\S)"}]},"comment":{"name":"comment.line.number-sign.gitignore","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.gitignore"}}},"cvsSyntax":{"match":"\\A(syntax)(:)\\s+(glob)$","captures":{"1":{"name":"variable.parameter.assignment.glob-syntax.cvs.gitignore"},"2":{"name":"keyword.operator.assignment.separator.key-value.cvs.gitignore"},"3":{"name":"support.constant.language.syntax-type.cvs.gitignore"}}},"escape":{"name":"constant.character.escape.backslash.gitignore","match":"(\\\\).","captures":{"1":{"name":"punctuation.definition.escape.backslash.gitignore"}}},"magic":{"patterns":[{"name":"meta.magic-signature.long.gitignore","begin":"^(:)(\\()(?=.*?\\))","end":"(?\u003c!\\\\)\\)|(?=\\s*$)","patterns":[{"include":"#escape"},{"include":"#magicInnards"}],"beginCaptures":{"1":{"name":"keyword.operator.signature.begin.gitignore"},"2":{"name":"punctuation.section.signature.begin.gitignore"}},"endCaptures":{"0":{"name":"punctuation.section.signature.end.gitignore"}}},{"name":"meta.magic-signature.short.gitignore","match":"^(:)([!^]+)","captures":{"1":{"name":"keyword.operator.signature.begin.gitignore"},"2":{"name":"keyword.operator.mnemonic.gitignore"}}}]},"magicInnards":{"patterns":[{"include":"etc#comma"},{"name":"meta.attribute-list.gitignore","begin":"(?:\\G|(?\u003c=,|\\())(attr)(:)","end":"(?=,|\\)|$)","patterns":[{"name":"meta.attribute.gitignore","match":"(-|!)?((?:[^\\\\\\s=\\(\\),]|\\\\.)++)(?:(=)((?:[^\\\\\\s=\\(\\),]|\\\\.)*+))?","captures":{"1":{"patterns":[{"include":"#magicMnemonic"}]},"2":{"name":"variable.parameter.attribute.gitignore","patterns":[{"include":"#escape"}]},"3":{"name":"punctuation.definition.assignment.equals-sign.gitignore"},"4":{"name":"constant.language.other.gitignore","patterns":[{"include":"#escape"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.magic-signature.$1.gitignore"},"2":{"patterns":[{"include":"etc#colon"}]}}},{"name":"meta.$1-attribute.gitignore","match":"(?:\\G|(?\u003c=,|\\())(-|!)?(attr|exclude|glob|icase|literal|top)(?=,|\\))","captures":{"1":{"patterns":[{"include":"#magicMnemonic"}]},"2":{"name":"keyword.control.magic-signature.$2.gitignore"}}},{"name":"meta.unknown-attribute.gitignore","match":"(?:\\G|(?\u003c=,|\\())(-|!)?((?:[^\\\\=\\s,:\\)]|\\\\.)++)(?=,|\\))","captures":{"1":{"patterns":[{"include":"#magicMnemonic"}]},"2":{"name":"keyword.control.magic-signature.unknown.gitignore"}}}]},"magicMnemonic":{"patterns":[{"name":"keyword.operator.logical.not.negation.gitignore","match":"-"},{"name":"keyword.operator.unset.delete.gitignore","match":"!"}]},"main":{"patterns":[{"include":"#comment"},{"include":"#cvsSyntax"},{"include":"#magic"},{"include":"#pattern"},{"include":"#escape"}]},"pattern":{"name":"meta.pattern.gitignore","begin":"(?=[^#\\s])","end":"$|(?=#)","patterns":[{"include":"#bazaarPrefixes"},{"include":"#patternInnards"}]},"patternInnards":{"patterns":[{"include":"#escape"},{"include":"#range"},{"name":"keyword.operator.logical.not.negation.gitignore","match":"\\G!"},{"name":"keyword.operator.glob.wildcard.globstar.gitignore","match":"\\*\\*"},{"name":"keyword.operator.glob.wildcard.gitignore","match":"[*?]"},{"name":"punctuation.directory.separator.meta.gitignore","match":"/"},{"name":"entity.other.file.name.gitignore","match":"[^\\[\\]\\\\*?#/\\s]+"}]},"range":{"name":"meta.character-range.gitignore","contentName":"constant.character.class.gitignore","begin":"\\[","end":"\\]|(?=$)","patterns":[{"include":"#escape"},{"name":"punctuation.delimiter.range.character-set.gitignore","match":"-"}],"beginCaptures":{"0":{"name":"punctuation.definition.square.bracket.begin.gitignore"}},"endCaptures":{"0":{"name":"punctuation.definition.square.bracket.end.gitignore"}}}}}
1
+ {"name":"Ignore List","scopeName":"source.gitignore","patterns":[{"include":"#main"}],"repository":{"bazaarPrefixes":{"patterns":[{"name":"storage.modifier.bazaar.re-prefix.gitignore","match":"^RE(:)(?=\\S)"},{"name":"keyword.operator.logical.not.negation.elevated.bazaar.gitignore","match":"^!!(?=\\S)"}]},"comment":{"name":"comment.line.number-sign.gitignore","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.gitignore"}}},"cvsSyntax":{"match":"\\A(syntax)(:)\\s+(glob)$","captures":{"1":{"name":"variable.parameter.assignment.glob-syntax.cvs.gitignore"},"2":{"name":"keyword.operator.assignment.separator.key-value.cvs.gitignore"},"3":{"name":"support.constant.language.syntax-type.cvs.gitignore"}}},"escape":{"name":"constant.character.escape.backslash.gitignore","match":"(\\\\).","captures":{"1":{"name":"punctuation.definition.escape.backslash.gitignore"}}},"magic":{"patterns":[{"name":"meta.magic-signature.long.gitignore","begin":"^(:)(\\()(?=.*?\\))","end":"(?\u003c!\\\\)\\)|(?=\\s*$)","patterns":[{"include":"#escape"},{"include":"#magicInnards"}],"beginCaptures":{"1":{"name":"keyword.operator.signature.begin.gitignore"},"2":{"name":"punctuation.section.signature.begin.gitignore"}},"endCaptures":{"0":{"name":"punctuation.section.signature.end.gitignore"}}},{"name":"meta.magic-signature.short.gitignore","match":"^(:)([!^]+)","captures":{"1":{"name":"keyword.operator.signature.begin.gitignore"},"2":{"name":"keyword.operator.mnemonic.gitignore"}}}]},"magicInnards":{"patterns":[{"include":"etc#comma"},{"name":"meta.attribute-list.gitignore","begin":"(?:\\G|(?\u003c=,|\\())(attr)(:)","end":"(?=,|\\)|$)","patterns":[{"name":"meta.attribute.gitignore","match":"(-|!)?((?:[^\\\\\\s=\\(\\),]|\\\\.)++)(?:(=)((?:[^\\\\\\s=\\(\\),]|\\\\.)*+))?","captures":{"1":{"patterns":[{"include":"#magicMnemonic"}]},"2":{"name":"variable.parameter.attribute.gitignore","patterns":[{"include":"#escape"}]},"3":{"name":"punctuation.definition.assignment.equals-sign.gitignore"},"4":{"name":"constant.language.other.gitignore","patterns":[{"include":"#escape"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.magic-signature.$1.gitignore"},"2":{"patterns":[{"include":"etc#colon"}]}}},{"name":"meta.$1-attribute.gitignore","match":"(?:\\G|(?\u003c=,|\\())(-|!)?(attr|exclude|glob|icase|literal|top)(?=,|\\))","captures":{"1":{"patterns":[{"include":"#magicMnemonic"}]},"2":{"name":"keyword.control.magic-signature.$2.gitignore"}}},{"name":"meta.unknown-attribute.gitignore","match":"(?:\\G|(?\u003c=,|\\())(-|!)?((?:[^\\\\=\\s,:\\)]|\\\\.)++)(?=,|\\))","captures":{"1":{"patterns":[{"include":"#magicMnemonic"}]},"2":{"name":"keyword.control.magic-signature.unknown.gitignore"}}}]},"magicMnemonic":{"patterns":[{"name":"keyword.operator.logical.not.negation.gitignore","match":"-"},{"name":"keyword.operator.unset.delete.gitignore","match":"!"}]},"main":{"patterns":[{"include":"#comment"},{"include":"#cvsSyntax"},{"include":"#magic"},{"include":"#pattern"},{"include":"#escape"}]},"pattern":{"name":"meta.pattern.gitignore","begin":"(?=[^#\\s])","end":"$|(?=#)","patterns":[{"include":"#bazaarPrefixes"},{"include":"#patternInnards"}]},"patternInnards":{"patterns":[{"include":"#escape"},{"include":"#range"},{"name":"keyword.operator.logical.not.negation.gitignore","match":"\\G!"},{"name":"keyword.operator.glob.wildcard.globstar.gitignore","match":"\\*\\*"},{"name":"keyword.operator.glob.wildcard.gitignore","match":"[*?]"},{"name":"punctuation.directory.separator.meta.gitignore","match":"/"},{"name":"entity.other.file.name.gitignore","match":"[^\\[\\]\\\\*?#/\\s]+"}]},"range":{"name":"meta.character-range.gitignore","contentName":"constant.character.class.gitignore","begin":"\\[","end":"\\]|(?=$)","patterns":[{"include":"#escape"},{"name":"punctuation.delimiter.range.character-set.gitignore","match":"-"}],"beginCaptures":{"0":{"name":"punctuation.definition.square.bracket.begin.gitignore"}},"endCaptures":{"0":{"name":"punctuation.definition.square.bracket.end.gitignore"}}}}}
@@ -0,0 +1 @@
1
+ {"name":"Gleam","scopeName":"source.gleam","patterns":[{"include":"#comments"},{"include":"#keywords"},{"include":"#strings"},{"include":"#constant"},{"include":"#entity"}],"repository":{"binary_number":{"name":"constant.numeric.binary.gleam","match":"\\b0b[0-1]+\\b"},"boolean":{"name":"constant.language.boolean.gleam","match":"\\b(True|False)\\b"},"comments":{"patterns":[{"name":"comment.line.gleam","match":"//.*"}]},"constant":{"patterns":[{"include":"#binary_number"},{"include":"#octal_number"},{"include":"#hexadecimal_number"},{"include":"#decimal_number"},{"include":"#boolean"},{"name":"entity.name.type.gleam","match":"[[:upper:]][[:word:]]*"}]},"decimal_number":{"name":"constant.numeric.decimal.gleam","match":"\\b[[:digit:]][[:digit:]_]*(\\.[[:digit:]]*)?\\b"},"entity":{"patterns":[{"begin":"\\b([[:lower:]][[:word:]]*)([[:space:]]*)?\\(","end":"\\)","patterns":[{"include":"$self"}],"captures":{"1":{"name":"entity.name.function.gleam"}}},{"name":"variable.parameter.gleam","match":"\\b([[:lower:]][[:word:]]*):\\s"},{"name":"entity.name.namespace.gleam","match":"\\b([[:lower:]][[:word:]]*):"}]},"hexadecimal_number":{"name":"constant.numeric.hexadecimal.gleam","match":"\\b0x[[:xdigit:]]+\\b"},"keywords":{"patterns":[{"name":"keyword.control.gleam","match":"\\b(case|if|external|fn|import|let|assert|try|pub|type|opaque|const|todo)\\b"},{"name":"keyword.operator.arrow.gleam","match":"-\u003e"},{"name":"keyword.operator.pipe.gleam","match":"\\|\u003e"},{"name":"keyword.operator.splat.gleam","match":"\\.\\."},{"name":"keyword.operator.comparison.float.gleam","match":"(\u003c=\\.|\u003e=\\.|==\\.|!=\\.|\u003c\\.|\u003e\\.)"},{"name":"keyword.operator.comparison.int.gleam","match":"(\u003c=|\u003e=|==|!=|\u003c|\u003e)"},{"name":"keyword.operator.logical.gleam","match":"(\u0026\u0026|\\|\\|)"},{"name":"keyword.operator.other.gleam","match":"\\|"},{"name":"keyword.operator.arithmetic.float.gleam","match":"(\\+\\.|\\-\\.|/\\.|\\*\\.|%\\.)"},{"name":"keyword.operator.arithmetic.int.gleam","match":"(\\+|\\-|/|\\*|%)"},{"name":"keyword.operator.assignment.gleam","match":"="}]},"octal_number":{"name":"constant.numeric.octal.gleam","match":"\\b0o[0-7]+\\b"},"strings":{"name":"string.quoted.double.gleam","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.gleam","match":"\\\\."}]}}}
@@ -0,0 +1 @@
1
+ {"name":"GOLD Grammar","scopeName":"source.goldgrm","patterns":[{"include":"#main"}],"repository":{"alternation":{"name":"keyword.operator.logical.or.alternation.goldgrm","match":"\\|"},"attribute":{"patterns":[{"begin":"(?\u003c=[,\\s{]|^|\\G)[ \\t]*([-.\\w]+)","end":"=|(?=})","patterns":[{"include":"#comments"}],"beginCaptures":{"1":{"name":"entity.other.attribute-name.goldgrm"}},"endCaptures":{"0":{"name":"keyword.operator.assignment.key-value.attribute.goldgrm"}}},{"begin":"(?!\\G)(?\u003c==)","end":"(?=}|,)","patterns":[{"include":"#rhsInnards"}]}]},"attributes":{"begin":"(?\u003c=@=)\\G","end":"(?\u003c=})","patterns":[{"begin":"\\G","end":"(?={)","patterns":[{"include":"#comments"}]},{"name":"meta.attributes.goldgrm","begin":"(?!\\G){","end":"}","patterns":[{"include":"#attribute"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.scope.section.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.scope.section.end.goldgrm"}}}],"applyEndPatternLast":true},"charsets":{"patterns":[{"name":"support.constant.character-set.${1:/[[:^alnum:]]+/-/g:/downcase}.goldgrm","match":"(?x) (?\u003c=^|\\G|[{\\s])\n# Common character sets\n( Number # 30-39\n| Digit # 30-39\n| Letter\\ Extended # C0-D6, D8-F6, F8-FF\n| Letter # 41-5A, 61-7A\n| AlphaNumeric # 30-39, 41-5A, 61-7A\n| Printable\\ Extended # A1-FF\n| Printable # 20-7E, A0\n| Whitespace # 09-0D, 20, A0\n\n# “Useful” character sets\n| All \\ (Latin|Letters|Newline|Printable|Space|Whitespace)\n\n# “Miscellaneous” character sets\n| ANSI (?:\\ (?:Mapped|Printable))?\n| All \\ Valid\n| Control \\ Codes\n| Euro \\ Sign\n| Formatting\n\n# Unicode blocks\n| Alphabetic\\ Presentation\\ Forms\n| Arabic\\ Presentation\\ Forms-[AB]\n| Arabic\\ Supplement\n| Arabic\n| Armenian\n| Arrows\n| Balinese\n| Bamum\n| Basic\\ Latin\n| Bengali\n| Block\\ Elements\n| Box\\ Drawing\n| Braille\\ Patterns\n| Buginese\n| Buhid\n| CJK\\ Compatibility\\ Forms\n| CJK\\ Compatibility\\ Ideographs\n| CJK\\ Compatibility\n| CJK\\ Radicals\\ Supplement\n| CJK\\ Strokes\n| CJK\\ Symbols\\ and\\ Punctuation\n| CJK\\ Unified\\ Ideographs\\ Extension\\ A\n| CJK\\ Unified\\ Ideographs\n| Cham\n| Cherokee\n| Combining\\ Diacritical\\ Marks(?:\\ Supplement|\\ for\\ Symbols)?\n| Combining\\ Half\\ Marks\n| Common\\ Indic\\ Number\\ Forms\n| Control\\ Pictures\n| Coptic\n| Currency\\ Symbols\n| Cyrillic\\ Extended-[AB]\n| Cyrillic\\ Supplement\n| Cyrillic\n| Devanagari\\ Extended\n| Devanagari\n| Dingbats\n| Enclosed\\ Alphanumerics\n| Enclosed\\ CJK\\ Letters\\ and\\ Months\n| Ethiopic\\ Extended\n| Ethiopic\\ Supplement\n| Ethiopic\n| General\\ Punctuation\n| Geometric\\ Shapes\n| Georgian\\ Supplement\n| Georgian\n| Glagolitic\n| Greek\\ Extended\n| Greek\\ and\\ Coptic\n| Gujarati\n| Gurmukhi\n| Halfwidth\\ and\\ Fullwidth\\ Forms\n| Hangul\\ Compatibility\\ Jamo\n| Hangul\\ Jamo(?:\\ Extended-[AB])?\n| Hangul\\ Syllables\n| Hanunoo\n| Hebrew\n| Hiragana\n| IPA\\ Extensions\n| Ideographic\\ Description\\ Characters\n| Javanese\n| Kanbun\n| Kangxi\\ Radicals\n| Kannada\n| Katakana\\ Phonetic\\ Extensions\n| Katakana\n| Kayah\\ Li\n| Khmer\\ Symbols\n| Khmer\n| Lao\n| Latin-1\\ Supplement\n| Latin\\ Extended(?:-[ABCD]|\\ Additional)\n| Lepcha\n| Letterlike\\ Symbols\n| Limbu\n| Lisu\n| Malayalam\n| Mathematical\\ Operators\n| Meetei\\ Mayek\n| Miscellaneous \\ (?:Mathematical\\ Symbols-[AB]|Symbols(?:\\ and\\ Arrows)?|Technical)\n| Modifier\\ Tone\\ Letters\n| Mongolian\n| Myanmar\\ Extended-A\n| Myanmar\n| NKo\n| New\\ Tai\\ Lue\n| Number\\ Forms\n| Ogham\n| Ol\\ Chiki\n| Optical\\ Character\\ Recognition\n| Oriya\n| Phags-pa\n| Phonetic\\ Extensions\\ Supplement\n| Phonetic\\ Extensions\n| Private\\ Use\\ Area\n| Rejang\n| Runic\n| Samaritan\n| Saurashtra\n| Sinhala\n| Small\\ Form\\ Variants\n| Spacing\\ Modifier\\ Letters\n| Sundanese\n| Superscripts\\ and\\ Subscripts\n| Supplemental\\ Arrows-[AB]\n| Supplemental\\ Mathematical\\ Operators\n| Supplemental\\ Punctuation\n| Syloti\\ Nagri\n| Syriac\n| Tagalog\n| Tagbanwa\n| Tai\\ (?:Le|Tham|Viet)\n| Tamil\n| Telugu\n| Thaana\n| Thai\n| Tibetan\n| Tifinagh\n| (?:Bopomofo|Unified\\ Canadian\\ Aboriginal\\ Syllabics)(?:\\ Extended)?\n| Vai\n| Variation\\ Selectors\n| Vedic\\ Extensions\n| Vertical\\ Forms\n| Yi\\ Radicals\n| Yi\\ Syllables\n| Yijing\\ Hexagram\\ Symbols\n) (?=$|\\s|})"}]},"codepoint":{"patterns":[{"include":"#codepointDec"},{"include":"#codepointHex"}]},"codepointDec":{"name":"constant.character.entity.codepoint.decimal.dec.goldgrm","match":"(#)[0-9]+","captures":{"1":{"name":"punctuation.definition.entity.goldgrm"}}},"codepointHex":{"name":"constant.character.entity.codepoint.hexadecimal.hex.goldgrm","match":"(\u0026)[0-9A-Fa-f]+","captures":{"1":{"name":"punctuation.definition.entity.goldgrm"}}},"comma":{"name":"punctuation.separator.delimiter.comma.goldgrm","match":","},"commentBlock":{"name":"comment.block.goldgrm","begin":"!\\*","end":"\\*!","patterns":[{"include":"#commentBlock"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.goldgrm"}}},"commentLine":{"name":"comment.line.bang.exclamation-mark.goldgrm","begin":"!","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.goldgrm"}}},"comments":{"patterns":[{"include":"#commentBlock"},{"include":"#commentLine"}]},"constants":{"match":"(?x)\n(?\u003c=^|\\G|[{\\s])\n( (HT) # Horizontal tab\n| (LF) # Line feed\n| (VT) # Vertical tab. Rarely used.\n| (FF) # Form feed. Also known as “New Page”\n| (CR) # Carriage return\n| (Space) # Space\n| (NBSP) # Non-breaking space\n| (LS) # Line separator\n| (PS) # Paragraph separator\n) (?=$|\\s|})","captures":{"1":{"name":"constant.character.whitespace.horizontal-tab.goldgrm"},"2":{"name":"constant.character.whitespace.line-feed.goldgrm"},"3":{"name":"constant.character.whitespace.vertical-tab.goldgrm"},"4":{"name":"constant.character.whitespace.form-feed.goldgrm"},"5":{"name":"constant.character.whitespace.carriage-return.goldgrm"},"6":{"name":"constant.character.whitespace.space.goldgrm"},"7":{"name":"constant.character.whitespace.non-breaking-space.goldgrm"},"8":{"name":"constant.character.whitespace.line-separator.goldgrm"},"9":{"name":"constant.character.whitespace.paragraph-separator.goldgrm"}}},"lhs":{"name":"meta.lhs.goldgrm","begin":"\\G","end":"(::=)|(@=)|(=)","patterns":[{"begin":"\\G","end":"(?!\\G)","patterns":[{"include":"#stringDouble"},{"include":"#setName"},{"include":"#nonterminal"},{"include":"#terminal"}],"applyEndPatternLast":true}],"endCaptures":{"1":{"name":"keyword.operator.assignment.rule.goldgrm"},"2":{"name":"keyword.operator.assignment.attribute.goldgrm"},"3":{"name":"keyword.operator.assignment.property.goldgrm"}}},"main":{"patterns":[{"include":"#comments"},{"include":"#production"},{"include":"#setName"},{"include":"#setNameInnards"},{"include":"#nonterminal"},{"include":"#terminal"}]},"nonterminal":{"name":"meta.nonterminal.goldgrm","contentName":"entity.name.tag.nonterminal.goldgrm","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.tag.nonterminal.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.nonterminal.end.goldgrm"}}},"operators":{"patterns":[{"name":"keyword.operator.combinator.add.goldgrm","match":"\\+"},{"name":"keyword.operator.combinator.remove.goldgrm","match":"-"}]},"production":{"name":"meta.production.declaration.goldgrm","begin":"(?x)\n(?= \u003c [^\u003c\u003e]* \u003e \\s* :* =\n| { [^{}]*? } \\s* @? =\n| \" [^\"]* \" \\s* @? =\n| (?!\\s) [-.\\s\\w]+? \\s* @? =\n)","end":"(?!\\G)","patterns":[{"include":"#lhs"},{"include":"#rhs"}],"applyEndPatternLast":true},"quantifiers":{"patterns":[{"name":"keyword.operator.quantifier.repetition.kleene-closure.goldgrm","match":"\\*"},{"name":"keyword.operator.quantifier.repitition.optional.goldgrm","match":"\\?"}]},"range":{"name":"keyword.operator.range.splat.spread.goldgrm","match":"(?\u003c!\\[)\\.\\.(?!\\])"},"rhs":{"name":"meta.rhs.goldgrm","begin":"(?\u003c==)","end":"(?x) ^\n(?=\\s*[^!\\s])\n(?=\n\t\\s*\n\t(?: \" [^\"]* \"\n\t| \u003c [^\u003c\u003e]* \u003e\n\t| { [^{}]* }\n\t| (?!\\s)[^{}\u003c\u003e\\[(|)\\]*+?!:=\"']+?\n\t) \\s* :* =\n)","patterns":[{"include":"#attributes"},{"include":"#rhsInnards"}]},"rhsInnards":{"patterns":[{"include":"#comments"},{"include":"#subexpression"},{"include":"#operators"},{"include":"#quantifiers"},{"include":"#alternation"},{"include":"#setName"},{"include":"#nonterminal"},{"include":"#string"},{"include":"#set"},{"include":"#terminal"}]},"set":{"name":"string.regexp.character-class.goldgrm","begin":"\\[","end":"\\]","patterns":[{"include":"#range"},{"include":"#stringSingle"},{"name":"constant.character.single.character-class.goldgrm","match":"[^\\[\\]']"}],"beginCaptures":{"0":{"name":"punctuation.definition.character-class.set.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.definition.character-class.set.end.goldgrm"}}},"setName":{"name":"meta.set-name.goldgrm","contentName":"entity.name.set.goldgrm","begin":"{","end":"}","patterns":[{"include":"#setNameInnards"}],"beginCaptures":{"0":{"name":"punctuation.definition.set.bracket.curly.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.definition.set.bracket.curly.end.goldgrm"}}},"setNameInnards":{"patterns":[{"include":"#constants"},{"include":"#charsets"},{"include":"#codepoint"},{"include":"#range"}]},"string":{"patterns":[{"include":"#stringDouble"},{"include":"#stringSingle"}]},"stringDouble":{"name":"string.quoted.double.goldgrm","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.goldgrm"}}},"stringSingle":{"patterns":[{"name":"constant.character.escape.quote.goldgrm","match":"''"},{"name":"string.quoted.single.goldgrm","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.goldgrm"}}}]},"subexpression":{"name":"meta.expression.group.goldgrm","begin":"\\(","end":"\\)","patterns":[{"include":"#rhsInnards"}],"beginCaptures":{"0":{"name":"punctuation.section.expression.begin.goldgrm"}},"endCaptures":{"0":{"name":"punctuation.section.expression.end.goldgrm"}}},"terminal":{"patterns":[{"name":"meta.group-name.goldgrm","match":"([-.\\w]+)\\s+([-.\\w]+)(?=\\s*(?:$|@?=|::=|!))","captures":{"1":{"name":"entity.name.container.goldgrm"},"2":{"name":"storage.type.role.${2:/downcase}.goldgrm"}}},{"name":"entity.name.terminal.goldgrm","match":"[-.\\w]+(?:\\s+[-.\\w]+)*+"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"GSC","scopeName":"source.gsc","patterns":[{"include":"#code"}],"repository":{"block":{"patterns":[{"name":"meta.block.source.gsc","begin":"{","end":"}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.source.gsc"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.source.gsc"}}},{"name":"meta.devblock.source.gsc","begin":"/#","end":"#/","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.source.gsc"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.source.gsc"}}}]},"code":{"patterns":[{"include":"#block"},{"include":"#comments"},{"include":"#constants"},{"include":"#keywords"},{"include":"#preprocessor"},{"include":"#documentation"},{"include":"#supports"}]},"comments":{"patterns":[{"name":"comment.block.gsc","begin":"/\\*","end":"\\*/\\n?"},{"name":"comment.line.double-slash.gsc","match":"//.*$\\n?"}]},"constants":{"patterns":[{"name":"constant.numeric.source.gsc","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"},{"name":"string.quoted.double.literal.source.gsc","match":"@\"([^\"]|\"\")*\"","captures":{"0":{"name":"punctuation.definition.string.begin.source.gsc"}}},{"name":"string.quoted.double.source.gsc","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.source.gsc","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.source.gsc"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.source.gsc"}}},{"name":"constant.language.source.gsc","match":"\\b(undefined|false|true|self|world|classes|level|game|anim|vararg)\\b"}]},"documentation":{"patterns":[{"name":"comment.block.documentation.gsc","begin":"/@","end":"@/"}]},"keywords":{"patterns":[{"name":"keyword.control.source.gsc","match":"\\b(if|else|while|for|foreach|in|do|return|continue|break|switch|case|default)\\b"},{"name":"keyword.operator.source.gsc","match":"\\b(size|assert|assertmsg|notify|endon)\\b"},{"name":"keyword.other.source.gsc","match":"\\b(class|function|var|wait|thread|waittill|waittillmatch|waittillframeend|isdefined|constructor|destructor|autoexec|private|const)\\b"}]},"preprocessor":{"patterns":[{"name":"keyword.preprocessor.source.gsc","match":"^\\s*#\\s*(define)\\b\\s*(\\S*)","captures":{"2":{"name":"entity.name.function.preprocessor.source.gsc"}}},{"name":"keyword.preprocessor.source.gsc","match":"^\\s*#\\s*(if|ifdef|ifndef|else|elif|endif|define|insert|using|precache|using_animtree)\\b","captures":{"2":{"name":"keyword.control.import.source.gsc"}}},{"name":"keyword.preprocessor.source.gsc","match":"^\\s*#\\s*(namespace)\\b","captures":{"2":{"name":"meta.namespace.identifier"}}}]}}}