@shikijs/langs-precompiled 3.2.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/abap.mjs +1 -1
  2. package/dist/actionscript-3.mjs +1 -1
  3. package/dist/ada.mjs +1 -1
  4. package/dist/angular-expression.mjs +1 -1
  5. package/dist/angular-html.mjs +1 -1
  6. package/dist/angular-inline-style.mjs +1 -1
  7. package/dist/angular-inline-template.mjs +1 -1
  8. package/dist/angular-let-declaration.mjs +1 -1
  9. package/dist/angular-template-blocks.mjs +1 -1
  10. package/dist/angular-ts.mjs +1 -1
  11. package/dist/apache.mjs +1 -1
  12. package/dist/apex.mjs +1 -1
  13. package/dist/apl.mjs +1 -1
  14. package/dist/applescript.mjs +1 -1
  15. package/dist/ara.mjs +1 -1
  16. package/dist/asciidoc.mjs +1 -1
  17. package/dist/asm.mjs +1 -1
  18. package/dist/astro.mjs +1 -1
  19. package/dist/awk.mjs +1 -1
  20. package/dist/ballerina.mjs +1 -1
  21. package/dist/bat.mjs +1 -1
  22. package/dist/beancount.mjs +1 -1
  23. package/dist/berry.mjs +1 -1
  24. package/dist/bibtex.mjs +1 -1
  25. package/dist/bicep.mjs +1 -1
  26. package/dist/blade.mjs +1 -1
  27. package/dist/bsl.mjs +1 -1
  28. package/dist/c.mjs +1 -1
  29. package/dist/cadence.mjs +1 -1
  30. package/dist/cairo.mjs +1 -1
  31. package/dist/clarity.mjs +1 -1
  32. package/dist/clojure.mjs +1 -1
  33. package/dist/cobol.mjs +1 -1
  34. package/dist/codeql.mjs +1 -1
  35. package/dist/coffee.mjs +1 -1
  36. package/dist/common-lisp.mjs +1 -1
  37. package/dist/coq.mjs +1 -1
  38. package/dist/cpp-macro.mjs +1 -1
  39. package/dist/cpp.mjs +1 -1
  40. package/dist/crystal.mjs +1 -1
  41. package/dist/csharp.mjs +1 -1
  42. package/dist/css.mjs +1 -1
  43. package/dist/cue.mjs +1 -1
  44. package/dist/cypher.mjs +1 -1
  45. package/dist/d.mjs +1 -1
  46. package/dist/dart.mjs +1 -1
  47. package/dist/dax.mjs +1 -1
  48. package/dist/desktop.mjs +1 -1
  49. package/dist/diff.mjs +1 -1
  50. package/dist/dotenv.mjs +1 -1
  51. package/dist/dream-maker.mjs +1 -1
  52. package/dist/edge.mjs +1 -1
  53. package/dist/elixir.mjs +1 -1
  54. package/dist/elm.mjs +1 -1
  55. package/dist/emacs-lisp.mjs +1 -1
  56. package/dist/erb.mjs +1 -1
  57. package/dist/erlang.mjs +1 -1
  58. package/dist/es-tag-css.mjs +1 -1
  59. package/dist/es-tag-glsl.mjs +1 -1
  60. package/dist/es-tag-html.mjs +1 -1
  61. package/dist/es-tag-sql.mjs +1 -1
  62. package/dist/es-tag-xml.mjs +1 -1
  63. package/dist/fennel.mjs +1 -1
  64. package/dist/fish.mjs +1 -1
  65. package/dist/fluent.mjs +1 -1
  66. package/dist/fortran-fixed-form.mjs +1 -1
  67. package/dist/fortran-free-form.mjs +1 -1
  68. package/dist/fsharp.mjs +1 -1
  69. package/dist/gdresource.mjs +1 -1
  70. package/dist/gdscript.mjs +1 -1
  71. package/dist/gdshader.mjs +1 -1
  72. package/dist/genie.mjs +1 -1
  73. package/dist/gherkin.mjs +1 -1
  74. package/dist/gleam.mjs +1 -1
  75. package/dist/glimmer-js.mjs +1 -1
  76. package/dist/glimmer-ts.mjs +1 -1
  77. package/dist/glsl.mjs +1 -1
  78. package/dist/gnuplot.mjs +1 -1
  79. package/dist/go.mjs +1 -1
  80. package/dist/graphql.mjs +1 -1
  81. package/dist/groovy.mjs +1 -1
  82. package/dist/hack.mjs +1 -1
  83. package/dist/haml.mjs +1 -1
  84. package/dist/handlebars.mjs +1 -1
  85. package/dist/haskell.mjs +1 -1
  86. package/dist/haxe.mjs +1 -1
  87. package/dist/hcl.mjs +1 -1
  88. package/dist/hjson.mjs +1 -1
  89. package/dist/hlsl.mjs +1 -1
  90. package/dist/html-derivative.mjs +1 -1
  91. package/dist/html.mjs +1 -1
  92. package/dist/http.mjs +1 -1
  93. package/dist/hxml.mjs +1 -1
  94. package/dist/hy.mjs +1 -1
  95. package/dist/imba.mjs +1 -1
  96. package/dist/ini.mjs +1 -1
  97. package/dist/java.mjs +1 -1
  98. package/dist/javascript.mjs +1 -1
  99. package/dist/jinja.mjs +1 -1
  100. package/dist/jison.mjs +1 -1
  101. package/dist/json.mjs +1 -1
  102. package/dist/json5.mjs +1 -1
  103. package/dist/jsonc.mjs +1 -1
  104. package/dist/jsonl.mjs +1 -1
  105. package/dist/jsonnet.mjs +1 -1
  106. package/dist/jssm.mjs +1 -1
  107. package/dist/jsx.mjs +1 -1
  108. package/dist/julia.mjs +1 -1
  109. package/dist/kotlin.mjs +1 -1
  110. package/dist/kusto.mjs +1 -1
  111. package/dist/latex.mjs +1 -1
  112. package/dist/lean.mjs +1 -1
  113. package/dist/less.mjs +1 -1
  114. package/dist/liquid.mjs +1 -1
  115. package/dist/llvm.mjs +1 -1
  116. package/dist/log.mjs +1 -1
  117. package/dist/logo.mjs +1 -1
  118. package/dist/lua.mjs +1 -1
  119. package/dist/luau.mjs +1 -1
  120. package/dist/make.mjs +1 -1
  121. package/dist/markdown-vue.mjs +1 -1
  122. package/dist/markdown.mjs +1 -1
  123. package/dist/marko.mjs +1 -1
  124. package/dist/matlab.mjs +1 -1
  125. package/dist/mdc.mjs +1 -1
  126. package/dist/mdx.mjs +1 -1
  127. package/dist/mermaid.mjs +1 -1
  128. package/dist/mipsasm.mjs +1 -1
  129. package/dist/mojo.mjs +1 -1
  130. package/dist/move.mjs +1 -1
  131. package/dist/narrat.mjs +1 -1
  132. package/dist/nextflow.mjs +1 -1
  133. package/dist/nginx.mjs +1 -1
  134. package/dist/nim.mjs +1 -1
  135. package/dist/nix.mjs +1 -1
  136. package/dist/nushell.mjs +1 -1
  137. package/dist/objective-c.mjs +1 -1
  138. package/dist/objective-cpp.mjs +1 -1
  139. package/dist/ocaml.mjs +1 -1
  140. package/dist/pascal.mjs +1 -1
  141. package/dist/perl.mjs +1 -1
  142. package/dist/php.mjs +1 -1
  143. package/dist/plsql.mjs +1 -1
  144. package/dist/po.mjs +1 -1
  145. package/dist/polar.mjs +1 -1
  146. package/dist/postcss.mjs +1 -1
  147. package/dist/powerquery.mjs +1 -1
  148. package/dist/powershell.mjs +1 -1
  149. package/dist/prisma.mjs +1 -1
  150. package/dist/prolog.mjs +1 -1
  151. package/dist/proto.mjs +1 -1
  152. package/dist/pug.mjs +1 -1
  153. package/dist/puppet.mjs +1 -1
  154. package/dist/purescript.mjs +1 -1
  155. package/dist/python.mjs +1 -1
  156. package/dist/qml.mjs +1 -1
  157. package/dist/qss.mjs +1 -1
  158. package/dist/r.mjs +1 -1
  159. package/dist/racket.mjs +1 -1
  160. package/dist/raku.mjs +1 -1
  161. package/dist/razor.mjs +1 -1
  162. package/dist/reg.mjs +1 -1
  163. package/dist/regexp.mjs +1 -1
  164. package/dist/rel.mjs +1 -1
  165. package/dist/riscv.mjs +1 -1
  166. package/dist/rst.mjs +1 -1
  167. package/dist/ruby.mjs +1 -1
  168. package/dist/rust.mjs +1 -1
  169. package/dist/sas.mjs +1 -1
  170. package/dist/sass.mjs +1 -1
  171. package/dist/scala.mjs +1 -1
  172. package/dist/scheme.mjs +1 -1
  173. package/dist/scss.mjs +1 -1
  174. package/dist/sdbl.mjs +1 -1
  175. package/dist/shaderlab.mjs +1 -1
  176. package/dist/shellscript.mjs +1 -1
  177. package/dist/shellsession.mjs +1 -1
  178. package/dist/smalltalk.mjs +1 -1
  179. package/dist/solidity.mjs +1 -1
  180. package/dist/soy.mjs +1 -1
  181. package/dist/sparql.mjs +1 -1
  182. package/dist/splunk.mjs +1 -1
  183. package/dist/sql.mjs +1 -1
  184. package/dist/ssh-config.mjs +1 -1
  185. package/dist/stata.mjs +1 -1
  186. package/dist/stylus.mjs +1 -1
  187. package/dist/svelte.mjs +1 -1
  188. package/dist/system-verilog.mjs +1 -1
  189. package/dist/systemd.mjs +1 -1
  190. package/dist/talonscript.mjs +1 -1
  191. package/dist/tasl.mjs +1 -1
  192. package/dist/tcl.mjs +1 -1
  193. package/dist/templ.mjs +1 -1
  194. package/dist/terraform.mjs +1 -1
  195. package/dist/tex.mjs +1 -1
  196. package/dist/toml.mjs +1 -1
  197. package/dist/tsx.mjs +1 -1
  198. package/dist/turtle.mjs +1 -1
  199. package/dist/twig.mjs +1 -1
  200. package/dist/typescript.mjs +1 -1
  201. package/dist/typespec.mjs +1 -1
  202. package/dist/typst.mjs +1 -1
  203. package/dist/v.mjs +1 -1
  204. package/dist/vala.mjs +1 -1
  205. package/dist/vb.mjs +1 -1
  206. package/dist/verilog.mjs +1 -1
  207. package/dist/vhdl.mjs +1 -1
  208. package/dist/viml.mjs +1 -1
  209. package/dist/vue-html.mjs +1 -1
  210. package/dist/vue-sfc-style-variable-injection.mjs +1 -1
  211. package/dist/vue.mjs +3 -3
  212. package/dist/vyper.mjs +1 -1
  213. package/dist/wasm.mjs +1 -1
  214. package/dist/wenyan.mjs +1 -1
  215. package/dist/wgsl.mjs +1 -1
  216. package/dist/wikitext.mjs +1 -1
  217. package/dist/wit.mjs +1 -1
  218. package/dist/wolfram.mjs +1 -1
  219. package/dist/xml.mjs +1 -1
  220. package/dist/xsl.mjs +1 -1
  221. package/dist/yaml.mjs +1 -1
  222. package/dist/zenscript.mjs +1 -1
  223. package/dist/zig.mjs +1 -1
  224. package/package.json +4 -4
package/dist/fsharp.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import markdown from './markdown.mjs'
2
2
 
3
- const lang = Object.freeze({displayName:"F#",name:"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:{begin:/\b(static\p{space}+)?(abstract)\p{space}+(member)?(\p{space}+\[<[^\n]*>\])?\p{space}*([_\p{Alpha}0-9\,\.\`\p{space}]+)(<)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"keyword.fsharp"},"4":{name:"support.function.attribute.fsharp"},"5":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(with)\b|=|(?=\n?$)/dgv,endCaptures:{"1":{name:"keyword.fsharp"}},name:"abstract.definition.fsharp",patterns:[{include:"#comments"},{include:"#common_declaration"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}},match:/(\??)([\p{Alpha}0-9'\`\^\._ ]+)\p{space}*(:)((?!with\b)\b([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._ ]+))?/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:/(?!with|get|set\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{include:"#keywords"}]},anonymous_functions:{patterns:[{begin:/\b(fun)\b/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/(->)/dgv,endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},name:"function.anonymous",patterns:[{include:"#comments"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(?=(->))/dgv,endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#variables"}]}]},anonymous_record_declaration:{begin:/(\{\|)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\|\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"}},match:/[\p{Alpha}0-9'\`\^_ ]+(:)/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([\p{Alpha}0-9'\`\^_ ]+)/dgv},{include:"#anonymous_record_declaration"},{include:"#keywords"}]},attributes:{patterns:[{begin:/\[</dgv,end:/>\]|\]/dgv,name:"support.function.attribute.fsharp",patterns:[{include:"$self"}]}]},cexprs:{patterns:[{captures:{"0":{name:"keyword.fsharp"}},match:/\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\p{space}*\{)/dgv,name:"cexpr.fsharp"}]},chars:{patterns:[{captures:{"1":{name:"string.quoted.single.fsharp"}},match:/('\\?[^\n]')/dgv,name:"char.fsharp"}]},comments:{patterns:[{beginCaptures:{"1":{name:"comment.block.fsharp"}},match:/(\(\*{3}[^\n]*\*{3}\))/dgv,name:"comment.literate.command.fsharp"},{begin:/^\p{space}*(\(\*\*(?!\)))((?!\*\))[^\n])*(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.block.fsharp"}},endCaptures:{"1":{name:"comment.block.fsharp"}},name:"comment.block.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:/^(?!\p{space}*(\*)+\)\p{space}*(?=\n?$))/dgv},{begin:/(\(\*(?!\)))/dgv,beginCaptures:{"1":{name:"comment.block.fsharp"}},end:/(\*+\))/dgv,endCaptures:{"1":{name:"comment.block.fsharp"}},name:"comment.block.fsharp",patterns:[{comments:"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",match:/\/\//dgv,name:"fast-capture.comment.line.double-slash.fsharp"},{comments:"Capture (*) when inside of (* *) so that it doesn't prematurely end the comment block.",match:/\(\*\)/dgv,name:"fast-capture.comment.line.mul-operator.fsharp"},{include:"#comments"}]},{captures:{"1":{name:"comment.block.fsharp"}},match:/((?<!\()(\*)+\))/dgv,name:"comment.block.markdown.fsharp.end"},{begin:/(?<![\!\%\&\+-\.\<\=\>\?\@\^\|\/])\/\/\/(?!\/)/dgv,name:"comment.line.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:/(?<![\!\%\&\+-\.\<\=\>\?\@\^\|\/])\/\/\/(?!\/)/dgv},{match:/(?<![\!\%\&\+-\.\<\=\>\?\@\^\|\/])\/\/([^\n]*(?=\n?$))/dgv,name:"comment.line.double-slash.fsharp"}]},common_binding_definition:{patterns:[{include:"#comments"},{include:"#attributes"},{begin:/(:)\p{space}*(\()\p{space}*(static member|member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))\p{space}*((?=,)|(?==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[\p{Alpha}0-9'\._]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{begin:/(:)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\)\p{space}*(([\?\p{Alpha}0-9'\`\^\._ ]*)))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(:)\p{space}*(\^[\p{Alpha}0-9'\._]+)\p{space}*(when)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.fsharp"}},end:/(?=:)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([\p{Alpha}0-9'\^\._]+)/dgv},{match:/([\(\)])/dgv,name:"keyword.symbol.fsharp"}]},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},match:/(:)\p{space}*([\?\p{Alpha}0-9'\`\^\._ ]+)/dgv},{captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}},match:/(->)\p{space}*(\()?\p{space}*([\?\p{Alpha}0-9'\`\^\._ ]+)*/dgv},{begin:/(\*)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\)\p{space}*(([\?\p{Alpha}0-9'\`\^\._ ]+))*)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(\*)(\p{space}*([\?\p{Alpha}0-9'\`\^\._ ]+))*/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},end:/(?==)|(?=\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(<+(?!\p{space}*\)))/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},beginComment:"The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",end:/((?<!:)>|\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},endComment:"The group (?<!:) prevent us from stopping on :> when using SRTP synthax",patterns:[{include:"#generic_declaration"}]},{include:"#anonymous_record_declaration"},{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#record_signature"}]},{include:"#definition"},{include:"#variables"},{include:"#keywords"}]},common_declaration:{patterns:[{begin:/\p{space}*(->)\p{space}*([\p{Alpha}0-9'\`\^\._ ]+)(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.symbol.fsharp"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([\p{Alpha}0-9'\`\^\._ ]+)/dgv},{include:"#keywords"}]},{captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"}},match:/\p{space}*(->)\p{space}*(?!with|get|set\b)\b([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{include:"#anonymous_record_declaration"},{begin:/(\??)([\p{Alpha}0-9'\`\^\._ ]+)\p{space}*(:)(\p{space}*([\?\p{Alpha}0-9'\`\^\._ ]+)(<))/dgv,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"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([\p{Alpha}0-9'\`\^\._ ]+)/dgv},{include:"#keywords"}]}]},compiler_directives:{patterns:[{captures:{},match:/\p{space}?(#(?:if|elif|elseif|else|endif|light|nowarn))/dgv,name:"keyword.control.directive.fsharp"}]},constants:{patterns:[{match:/\(\)/dgv,name:"keyword.symbol.fsharp"},{match:/\b-?[0-9][0-9_]*((\.(?!\.)([0-9][0-9_]*([eE][\+\-]??[0-9][0-9_]*)?)?)|([eE][\+\-]??[0-9][0-9_]*))/dgv,name:"constant.numeric.float.fsharp"},{match:/\b(-?((0([xX])\p{AHex}[_\p{AHex}]*)|(0([oO])[0-7][0-7_]*)|(0([bB])[01][01_]*)|([0-9][0-9_]*)))/dgv,name:"constant.numeric.integer.nativeint.fsharp"},{match:/\b(true|false)\b/dgv,name:"constant.language.boolean.fsharp"},{match:/\b(null|void)\b/dgv,name:"constant.other.fsharp"}]},definition:{patterns:[{begin:/\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\p{space}+rec|mutable)?(\p{space}+\[<[^\n]*>\])?\p{space}*(private|internal|public)?\p{space}+(\[[^\-\=]*\]|[_\p{Alpha}]([_\p{Alpha}0-9\.]+)*|``[_\p{Alpha}]([_\p{Alpha}0-9\.\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},end:/\p{space}*((with\b)|(=|\n+=|(?<==)))/dgv,endCaptures:{"2":{name:"keyword.fsharp"},"3":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(use|use!|and|and!)\p{space}+(\[[^\-\=]*\]|[_\p{Alpha}]([_\p{Alpha}0-9\.]+)*|``[_\p{Alpha}]([_\p{Alpha}0-9\.\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/\p{space}*(=)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/(?<=with|and)\p{space}*\b((get|set)\p{space}*(?=\())(\[[^\-\=]*\]|[_\p{Alpha}]([_\p{Alpha}0-9\.]+)*|``[_\p{Alpha}]([_\p{Alpha}0-9\.\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"4":{name:"variable.fsharp"}},end:/\p{space}*(=|\n+=|(?<==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(static val mutable|val mutable|val inline|val)(\p{space}+rec|mutable)?(\p{space}+\[<[^\n]*>\])?\p{space}*(private|internal|public)?\p{space}+(\[[^\-\=]*\]|[_\p{Alpha}]([_\p{Alpha}0-9\,\.]+)*|``[_\p{Alpha}]([_\p{Alpha}0-9\,\.\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},end:/\n(?=\n?$)/dgv,name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(new)\b\p{space}+(\()/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]}]},double_tick:{patterns:[{captures:{"1":{name:"string.quoted.single.fsharp"},"2":{name:"variable.other.binding.fsharp"},"3":{name:"string.quoted.single.fsharp"}},match:/(``)([^\`]*)(``)/dgv,name:"variable.other.binding.fsharp"}]},du_declaration:{patterns:[{begin:/\b(of)\b/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/(?=\n?$)|(\|)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"du_declaration.fsharp",patterns:[{include:"#comments"},{captures:{"1":{name:"variable.parameter.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}},match:/([\p{Alpha}0-9'\`\<\>\^\._]+|``[\p{Alpha}0-9' \<\>\^\._]+``)\p{space}*(:)\p{space}*([\p{Alpha}0-9'\`\<\>\^\._]+|``[\p{Alpha}0-9' \<\>\^\._]+``)/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(``([\p{Alpha}0-9'\^\._ ]+)``|[\p{Alpha}0-9'\`\^\._]+)/dgv},{include:"#anonymous_record_declaration"},{include:"#keywords"}]}]},generic_declaration:{patterns:[{begin:/(:)\p{space}*(\()\p{space}*(static member|member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])[\p{Alpha}0-9'\._]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{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/dgv,name:"keyword.fsharp"},{match:/:/dgv,name:"keyword.symbol.fsharp"},{include:"#constants"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])[\p{Alpha}0-9'\._]+)/dgv},{begin:/(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])[\p{Alpha}0-9'\._]+)/dgv},{include:"#tuple_signature"},{include:"#generic_declaration"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([\?\p{Alpha}0-9'\`\^\._ ]+))+/dgv},{include:"#tuple_signature"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words are allowed",match:/(?!when|and|or\b)\b([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{captures:{"1":{name:"keyword.symbol.fsharp"}},comments:"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",match:/(\|)/dgv},{include:"#keywords"}]},keywords:{patterns:[{match:/\b(private|public|internal)\b/dgv,name:"storage.modifier"},{match:/\b(private|to|public|internal|function|class|exception|delegate|of|new|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/dgv,name:"keyword.fsharp"},{match:/\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\b/dgv,name:"keyword.control"},{match:/(->|<-)/dgv,name:"keyword.symbol.arrow.fsharp"},{match:/[\.\?]*(&&&|\|\|\||\^\^\^|~~~|~\+|~-|<<<|>>>|\|>|:>|:\?>|[\:\[\]\;]|<>|[\=\@]|\|\||&&|[\&\%\{\}\|_]|\.\.|[\,\+\-\*\/\^\!\>]|>=|>>|<|<=|[\(\)]|<<)[\.\?]*/dgv,name:"keyword.symbol.fsharp"}]},member_declaration:{patterns:[{include:"#comments"},{include:"#common_declaration"},{begin:/(:)\p{space}*(\()\p{space}*(static member|member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))\p{space}*((?=,)|(?==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[\p{Alpha}0-9'\._]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[\p{Alpha}0-9'\._]+)/dgv},{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{match:/([\(\)])/dgv,name:"keyword.symbol.fsharp"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}},match:/(\??)([\p{Alpha}0-9'\`\^\._]+|``[\p{Alpha}0-9'\`\^\:\,\._ ]+``)\p{space}*(:?)(\p{space}*([\?\p{Alpha}0-9'\`\<\>\._ ]+))?/dgv},{include:"#keywords"}]},modules:{patterns:[{begin:/\b(?:(namespace global)|(namespace|module)\p{space}*(public|internal|private|rec)?\p{space}+([\p{Alpha}\|\`][\p{Alpha}0-9'_\. ]*))/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"storage.modifier.fsharp"},"4":{name:"entity.name.section.fsharp"}},end:/(\p{space}?=|\p{space}|(?=\n?$))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"entity.name.section.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)([A-Z][\p{Alpha}0-9'_]*)/dgv,name:"entity.name.section.fsharp"}]},{begin:/\b(open(?: type|))\p{space}+([\p{Alpha}\|\`][\p{Alpha}0-9'_]*)(?=(\.[A-Z][\p{Alpha}0-9_]*)*)/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.section.fsharp"}},end:/(\p{space}|(?=\n?$))/dgv,name:"namespace.open.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)(\p{Alpha}[\p{Alpha}0-9'_]*)/dgv,name:"entity.name.section.fsharp"},{include:"#comments"}]},{begin:/^\p{space}*(module)\p{space}+([A-Z][\p{Alpha}0-9'_]*)\p{space}*(=)\p{space}*([A-Z][\p{Alpha}0-9'_]*)/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.type.namespace.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.section.fsharp"}},end:/(\p{space}|(?=\n?$))/dgv,name:"namespace.alias.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)([A-Z][\p{Alpha}0-9'_]*)/dgv,name:"entity.name.section.fsharp"}]}]},record_declaration:{patterns:[{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(?<=\})/dgv,patterns:[{include:"#comments"},{begin:/(((mutable)\p{space}\p{Alpha}+)|[\p{Alpha}0-9'\`\<\>\^\._]*)\p{space}*((?<!:):(?!:))\p{space}*/dgv,beginCaptures:{"3":{name:"keyword.fsharp"},"4":{name:"keyword.symbol.fsharp"}},end:/(?=\n?$)|([\;\}])/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#comments"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([\p{Alpha}0-9'\`\^_ ]+)/dgv},{include:"#keywords"}]},{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"}]}]},record_signature:{patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/[\p{Alpha}0-9'\`\^_ ]+(=)([\p{Alpha}0-9'\`\^_ ]+)/dgv},{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/[\p{Alpha}0-9'\`\^_ ]+(=)([\p{Alpha}0-9'\`\^_ ]+)/dgv},{include:"#record_signature"}]},{include:"#keywords"}]},records:{patterns:[{begin:/\b(type)\p{space}+(private|internal|public)?\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"storage.modifier.fsharp"}},end:/\p{space}*((with)|((as)\p{space}+([\p{Alpha}0-9']+))|(=)|[\n\=]|(\(\)))/dgv,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:"keyword.symbol.fsharp"}},name:"record.fsharp",patterns:[{include:"#comments"},{include:"#attributes"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([\p{Alpha}0-9'\^\._]+|``[\p{Alpha}0-9'\`\^\:\,\._ ]+``)/dgv},{begin:/(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/((?<!:)>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])``[\p{Alpha}0-9\`\^\:\,\._ ]+``|(['\^])[\p{Alpha}0-9\`\^\:\._]+)/dgv},{match:/\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\b/dgv,name:"keyword.fsharp"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.fsharp"}},match:/(static member|member|new)/dgv},{include:"#common_binding_definition"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:/([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{include:"#keywords"}]},{captures:{"1":{name:"storage.modifier.fsharp"}},match:/\p{space}*(private|internal|public)/dgv},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(?=(=)|[\n\=]|(\(\))|(as))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#keywords"}]}]},string_formatter:{patterns:[{captures:{"1":{name:"keyword.format.specifier.fsharp"}},match:/(%0?-?(\p{Nd}+)?(([at])|(\.\p{Nd}+)?([fFeEgGM])|([bcsdixXou])|([sbO])|(\+?A)))/dgv,name:"entity.name.type.format.specifier.fsharp"}]},strings:{patterns:[{begin:/(?=[^\\])(@")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(")(?!")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.literal.fsharp",patterns:[{match:/"(")/dgv,name:"constant.character.string.escape.fsharp"}]},{begin:/(?=[^\\])(""")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(""")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.triple.fsharp",patterns:[{include:"#string_formatter"}]},{begin:/(?=[^\\])(")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.double.fsharp",patterns:[{match:/\\(?=\n?$)[ \t]*/dgv,name:"punctuation.separator.string.ignore-eol.fsharp"},{match:/\\(['"\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x\p{AHex}{2})|(u\p{AHex}{4})|(U00(0\p{AHex}|10)\p{AHex}{4}))/dgv,name:"constant.character.string.escape.fsharp"},{match:/\\(([0-9]{1,3})|(x\P{space}{0,2})|(u\P{space}{0,4})|(U\P{space}{0,8})|\P{space})/dgv,name:"invalid.illegal.character.string.fsharp"},{include:"#string_formatter"}]}]},strp_inlined:{patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]}]},strp_inlined_body:{patterns:[{include:"#comments"},{include:"#anonymous_functions"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[\p{Alpha}0-9'\._]+)/dgv},{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]},{captures:{"1":{name:"keyword.fsharp"},"2":{name:"variable.fsharp"},"3":{name:"keyword.symbol.fsharp"}},match:/(static member|member)\p{space}*([\p{Alpha}0-9'\`\<\>\^\._]+|``[\p{Alpha}0-9' \<\>\^\._]+``)\p{space}*(:)/dgv},{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:[{match:/\\/dgv,name:"text.fsharp"}]},tuple_signature:{patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([\?\p{Alpha}0-9'\`\^\._ ]+))+/dgv},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([\?\p{Alpha}0-9'\`\^\._ ]+))+/dgv},{include:"#tuple_signature"}]},{include:"#keywords"}]},variables:{patterns:[{match:/\(\)/dgv,name:"keyword.symbol.fsharp"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/(\??)(``[\p{Alpha}0-9'\`\^\:\,\._ ]+``|(?!private|struct\b)\b[\p{L}\p{M}\p{N}\p{Pc}\p{Alpha}0-9'\`\<\>\^\._ ]+)/dgv}]}},scopeName:"source.fsharp",embeddedLangs:["markdown"],aliases:["f#","fs"]})
3
+ const lang = Object.freeze({displayName:"F#",name:"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:{begin:/\b(static\p{space}+)?(abstract)\p{space}+(member)?(\p{space}+\[<[^\n]*>\])?\p{space}*([\,\.0-9_\`\p{Alpha}\p{space}]+)(<)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"keyword.fsharp"},"4":{name:"support.function.attribute.fsharp"},"5":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(with)\b|=|(?=\n?$)/dgv,endCaptures:{"1":{name:"keyword.fsharp"}},name:"abstract.definition.fsharp",patterns:[{include:"#comments"},{include:"#common_declaration"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}},match:/(\??)([ '\.0-9\^_\`\p{Alpha}]+)\p{space}*(:)((?!with\b)\b([ '\.0-9\^_\`\p{L}\p{M}\p{N}\p{Pc}]+))?/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:/(?!with|get|set\b)\p{space}*(['\.0-9\^_\`\p{L}\p{M}\p{N}\p{Pc}]+)/dgv},{include:"#keywords"}]},anonymous_functions:{patterns:[{begin:/\b(fun)\b/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/(->)/dgv,endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},name:"function.anonymous",patterns:[{include:"#comments"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(?=(->))/dgv,endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#variables"}]}]},anonymous_record_declaration:{begin:/(\{\|)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\|\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"}},match:/[ '0-9\^_\`\p{Alpha}]+(:)/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([ '0-9\^_\`\p{Alpha}]+)/dgv},{include:"#anonymous_record_declaration"},{include:"#keywords"}]},attributes:{patterns:[{begin:/\[</dgv,end:/(?:>|)\]/dgv,name:"support.function.attribute.fsharp",patterns:[{include:"$self"}]}]},cexprs:{patterns:[{captures:{"0":{name:"keyword.fsharp"}},match:/\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\p{space}*\{)/dgv,name:"cexpr.fsharp"}]},chars:{patterns:[{captures:{"1":{name:"string.quoted.single.fsharp"}},match:/('\\?[^\n]')/dgv,name:"char.fsharp"}]},comments:{patterns:[{beginCaptures:{"1":{name:"comment.block.fsharp"}},match:/(\(\*{3}[^\n]*\*{3}\))/dgv,name:"comment.literate.command.fsharp"},{begin:/^\p{space}*(\(\*\*(?!\)))((?!\*\))[^\n])*(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.block.fsharp"}},endCaptures:{"1":{name:"comment.block.fsharp"}},name:"comment.block.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:/^(?!\p{space}*(\*)+\)\p{space}*(?=\n?$))/dgv},{begin:/(\(\*(?!\)))/dgv,beginCaptures:{"1":{name:"comment.block.fsharp"}},end:/(\*+\))/dgv,endCaptures:{"1":{name:"comment.block.fsharp"}},name:"comment.block.fsharp",patterns:[{comments:"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",match:/\/\//dgv,name:"fast-capture.comment.line.double-slash.fsharp"},{comments:"Capture (*) when inside of (* *) so that it doesn't prematurely end the comment block.",match:/\(\*\)/dgv,name:"fast-capture.comment.line.mul-operator.fsharp"},{include:"#comments"}]},{captures:{"1":{name:"comment.block.fsharp"}},match:/((?<!\()(\*)+\))/dgv,name:"comment.block.markdown.fsharp.end"},{begin:/(?<![\!\%\&\+-\/\<-\@\^\|])\/\/\/(?!\/)/dgv,name:"comment.line.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:/(?<![\!\%\&\+-\/\<-\@\^\|])\/\/\/(?!\/)/dgv},{match:/(?<![\!\%\&\+-\/\<-\@\^\|])\/\/([^\n]*)(?=\n?$)/dgv,name:"comment.line.double-slash.fsharp"}]},common_binding_definition:{patterns:[{include:"#comments"},{include:"#attributes"},{begin:/(:)\p{space}*(\()\p{space}*((?:static |)member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))\p{space}*((?=,)|(?==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^['\.0-9_\p{Alpha}]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{begin:/(:)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\)\p{space}*(([ '\.0-9\?\^_\`\p{Alpha}]*)))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(:)\p{space}*(\^['\.0-9_\p{Alpha}]+)\p{space}*(when)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.fsharp"}},end:/(?=:)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(['\.0-9\^_\p{Alpha}]+)/dgv},{match:/([\(\)])/dgv,name:"keyword.symbol.fsharp"}]},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},match:/(:)\p{space}*([ '\.0-9\?\^_\`\p{Alpha}]+)/dgv},{captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}},match:/(->)\p{space}*(\()?\p{space}*([ '\.0-9\?\^_\`\p{Alpha}]+)*/dgv},{begin:/(\*)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\)\p{space}*(([ '\.0-9\?\^_\`\p{Alpha}]+))*)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(\*)(\p{space}*([ '\.0-9\?\^_\`\p{Alpha}]+))*/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},end:/(?==)|(?=\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(<+(?!\p{space}*\)))/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},beginComment:"The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",end:/((?<!:)>|\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},endComment:"The group (?<!:) prevent us from stopping on :> when using SRTP synthax",patterns:[{include:"#generic_declaration"}]},{include:"#anonymous_record_declaration"},{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#record_signature"}]},{include:"#definition"},{include:"#variables"},{include:"#keywords"}]},common_declaration:{patterns:[{begin:/\p{space}*(->)\p{space}*([ '\.0-9\^_\`\p{Alpha}]+)(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.symbol.fsharp"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([ '\.0-9\^_\`\p{Alpha}]+)/dgv},{include:"#keywords"}]},{captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"}},match:/\p{space}*(->)\p{space}*(?!with|get|set\b)\b(['\.0-9\^_\`\p{L}\p{M}\p{N}\p{Pc}]+)/dgv},{include:"#anonymous_record_declaration"},{begin:/(\??)([ '\.0-9\^_\`\p{Alpha}]+)\p{space}*(:)(\p{space}*([ '\.0-9\?\^_\`\p{Alpha}]+)(<))/dgv,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"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([ '\.0-9\^_\`\p{Alpha}]+)/dgv},{include:"#keywords"}]}]},compiler_directives:{patterns:[{captures:{},match:/\p{space}?(#(?:if|elif|elseif|else|endif|light|nowarn))/dgv,name:"keyword.control.directive.fsharp"}]},constants:{patterns:[{match:/\(\)/dgv,name:"keyword.symbol.fsharp"},{match:/\b-?[0-9][0-9_]*((\.(?!\.)([0-9][0-9_]*([Ee][\-\+]??[0-9][0-9_]*)?)?)|([Ee][\-\+]??[0-9][0-9_]*))/dgv,name:"constant.numeric.float.fsharp"},{match:/\b(-?((0([Xx])\p{AHex}[_\p{AHex}]*)|(0([Oo])[0-7][0-7_]*)|(0([Bb])[01][01_]*)|([0-9][0-9_]*)))/dgv,name:"constant.numeric.integer.nativeint.fsharp"},{match:/\b(true|false)\b/dgv,name:"constant.language.boolean.fsharp"},{match:/\b(null|void)\b/dgv,name:"constant.other.fsharp"}]},definition:{patterns:[{begin:/\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\p{space}+rec|mutable)?(\p{space}+\[<[^\n]*>\])?\p{space}*(private|internal|public)?\p{space}+(\[[^\-\=]*\]|[_\p{Alpha}]([\.0-9_\p{Alpha}]+)*|``[_\p{Alpha}]([\.0-9_\`\p{Alpha}\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},end:/\p{space}*((with)\b|(=|\n+=|(?<==)))/dgv,endCaptures:{"2":{name:"keyword.fsharp"},"3":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(use|use!|and|and!)\p{space}+(\[[^\-\=]*\]|[_\p{Alpha}]([\.0-9_\p{Alpha}]+)*|``[_\p{Alpha}]([\.0-9_\`\p{Alpha}\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/\p{space}*(=)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/(?<=with|and)\p{space}*\b(([gs]et)\p{space}*(?=\())(\[[^\-\=]*\]|[_\p{Alpha}]([\.0-9_\p{Alpha}]+)*|``[_\p{Alpha}]([\.0-9_\`\p{Alpha}\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"4":{name:"variable.fsharp"}},end:/\p{space}*(=|\n+=|(?<==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(static val mutable|val mutable|val inline|val)(\p{space}+rec|mutable)?(\p{space}+\[<[^\n]*>\])?\p{space}*(private|internal|public)?\p{space}+(\[[^\-\=]*\]|[_\p{Alpha}]([\,\.0-9_\p{Alpha}]+)*|``[_\p{Alpha}]([\,\.0-9_\`\p{Alpha}\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},end:/\n(?=\n?$)/dgv,name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(new)\b\p{space}+(\()/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]}]},double_tick:{patterns:[{captures:{"1":{name:"string.quoted.single.fsharp"},"2":{name:"variable.other.binding.fsharp"},"3":{name:"string.quoted.single.fsharp"}},match:/(``)([^\`]*)(``)/dgv,name:"variable.other.binding.fsharp"}]},du_declaration:{patterns:[{begin:/\b(of)\b/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/(?=\n?$)|(\|)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"du_declaration.fsharp",patterns:[{include:"#comments"},{captures:{"1":{name:"variable.parameter.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}},match:/(['\.0-9\<\>\^_\`\p{Alpha}]+|``[ '\.0-9\<\>\^_\p{Alpha}]+``)\p{space}*(:)\p{space}*(['\.0-9\<\>\^_\`\p{Alpha}]+|``[ '\.0-9\<\>\^_\p{Alpha}]+``)/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(``([ '\.0-9\^_\p{Alpha}]+)``|['\.0-9\^_\`\p{Alpha}]+)/dgv},{include:"#anonymous_record_declaration"},{include:"#keywords"}]}]},generic_declaration:{patterns:[{begin:/(:)\p{space}*(\()\p{space}*((?:static |)member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])['\.0-9_\p{Alpha}]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{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/dgv,name:"keyword.fsharp"},{match:/:/dgv,name:"keyword.symbol.fsharp"},{include:"#constants"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])['\.0-9_\p{Alpha}]+)/dgv},{begin:/(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])['\.0-9_\p{Alpha}]+)/dgv},{include:"#tuple_signature"},{include:"#generic_declaration"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([ '\.0-9\?\^_\`\p{Alpha}]+))+/dgv},{include:"#tuple_signature"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words are allowed",match:/(?!when|and|or\b)\b(['\.0-9\^_\`\p{L}\p{M}\p{N}\p{Pc}]+)/dgv},{captures:{"1":{name:"keyword.symbol.fsharp"}},comments:"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",match:/(\|)/dgv},{include:"#keywords"}]},keywords:{patterns:[{match:/\b(private|public|internal)\b/dgv,name:"storage.modifier"},{match:/\b(private|to|public|internal|function|class|exception|delegate|of|new|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/dgv,name:"keyword.fsharp"},{match:/\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\b/dgv,name:"keyword.control"},{match:/(->|<-)/dgv,name:"keyword.symbol.arrow.fsharp"},{match:/[\.\?]*(&&&|\|\|\||\^\^\^|~~~|~\+|~-|<<<|>>>|\|>|:>|:\?>|[\]\:\;\[]|<>|[\=\@]|\|\||&&|[\%\&_\{\|\}]|\.\.|[\!\*-\-\/\>\^]|>=|>>|<|<=|[\(\)]|<<)[\.\?]*/dgv,name:"keyword.symbol.fsharp"}]},member_declaration:{patterns:[{include:"#comments"},{include:"#common_declaration"},{begin:/(:)\p{space}*(\()\p{space}*((?:static |)member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))\p{space}*((?=,)|(?==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^['\.0-9_\p{Alpha}]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^['\.0-9_\p{Alpha}]+)/dgv},{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{match:/([\(\)])/dgv,name:"keyword.symbol.fsharp"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}},match:/(\??)(['\.0-9\^_\`\p{Alpha}]+|``[ '\,\.0-\:\^_\`\p{Alpha}]+``)\p{space}*(:?)(\p{space}*([ '\.0-9\<\>\?_\`\p{Alpha}]+))?/dgv},{include:"#keywords"}]},modules:{patterns:[{begin:/\b(?:(namespace global)|(namespace|module)\p{space}*(public|internal|private|rec)?\p{space}+([\`\|\p{Alpha}][ '\.0-9_\p{Alpha}]*))/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"storage.modifier.fsharp"},"4":{name:"entity.name.section.fsharp"}},end:/(\p{space}?=|\p{space}|(?=\n?$))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"entity.name.section.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)([A-Z]['0-9_\p{Alpha}]*)/dgv,name:"entity.name.section.fsharp"}]},{begin:/\b(open(?: type|))\p{space}+([\`\|\p{Alpha}]['0-9_\p{Alpha}]*)(?=(\.[A-Z][0-9_\p{Alpha}]*)*)/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.section.fsharp"}},end:/(\p{space}|(?=\n?$))/dgv,name:"namespace.open.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)(\p{Alpha}['0-9_\p{Alpha}]*)/dgv,name:"entity.name.section.fsharp"},{include:"#comments"}]},{begin:/^\p{space}*(module)\p{space}+([A-Z]['0-9_\p{Alpha}]*)\p{space}*(=)\p{space}*([A-Z]['0-9_\p{Alpha}]*)/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.type.namespace.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.section.fsharp"}},end:/(\p{space}|(?=\n?$))/dgv,name:"namespace.alias.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)([A-Z]['0-9_\p{Alpha}]*)/dgv,name:"entity.name.section.fsharp"}]}]},record_declaration:{patterns:[{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(?<=\})/dgv,patterns:[{include:"#comments"},{begin:/(((mutable)\p{space}\p{Alpha}+)|['\.0-9\<\>\^_\`\p{Alpha}]*)\p{space}*((?<!:):(?!:))\p{space}*/dgv,beginCaptures:{"3":{name:"keyword.fsharp"},"4":{name:"keyword.symbol.fsharp"}},end:/(?=\n?$)|([\;\}])/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#comments"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([ '0-9\^_\`\p{Alpha}]+)/dgv},{include:"#keywords"}]},{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"}]}]},record_signature:{patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/[ '0-9\^_\`\p{Alpha}]+(=)([ '0-9\^_\`\p{Alpha}]+)/dgv},{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/[ '0-9\^_\`\p{Alpha}]+(=)([ '0-9\^_\`\p{Alpha}]+)/dgv},{include:"#record_signature"}]},{include:"#keywords"}]},records:{patterns:[{begin:/\b(type)\p{space}+(private|internal|public)?\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"storage.modifier.fsharp"}},end:/\p{space}*((with)|((as)\p{space}+(['0-9\p{Alpha}]+))|(=)|[\n\=]|(\(\)))/dgv,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:"keyword.symbol.fsharp"}},name:"record.fsharp",patterns:[{include:"#comments"},{include:"#attributes"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(['\.0-9\^_\p{Alpha}]+|``[ '\,\.0-\:\^_\`\p{Alpha}]+``)/dgv},{begin:/(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/((?<!:)>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/((['\^])``[ \,\.0-\:\^_\`\p{Alpha}]+``|(['\^])[\.0-\:\^_\`\p{Alpha}]+)/dgv},{match:/\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\b/dgv,name:"keyword.fsharp"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.fsharp"}},match:/(static member|member|new)/dgv},{include:"#common_binding_definition"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:/(['\.0-9\^_\`\p{L}\p{M}\p{N}\p{Pc}]+)/dgv},{include:"#keywords"}]},{captures:{"1":{name:"storage.modifier.fsharp"}},match:/\p{space}*(private|internal|public)/dgv},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(?=(=)|[\n\=]|(\(\))|(as))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#keywords"}]}]},string_formatter:{patterns:[{captures:{"1":{name:"keyword.format.specifier.fsharp"}},match:/(%0?-?(\p{Nd}+)?(([at])|(\.\p{Nd}+)?([EFGMefg])|([Xbcdiosux])|([Obs])|(\+?A)))/dgv,name:"entity.name.type.format.specifier.fsharp"}]},strings:{patterns:[{begin:/(?=[^\\])(@")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(")(?!")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.literal.fsharp",patterns:[{match:/"(")/dgv,name:"constant.character.string.escape.fsharp"}]},{begin:/(?=[^\\])(""")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(""")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.triple.fsharp",patterns:[{include:"#string_formatter"}]},{begin:/(?=[^\\])(")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.double.fsharp",patterns:[{match:/\\(?=\n?$)[\t ]*/dgv,name:"punctuation.separator.string.ignore-eol.fsharp"},{match:/\\(["'\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x\p{AHex}{2})|(u\p{AHex}{4})|(U00(0\p{AHex}|10)\p{AHex}{4}))/dgv,name:"constant.character.string.escape.fsharp"},{match:/\\(([0-9]{1,3})|(x\P{space}{0,2})|(u\P{space}{0,4})|(U\P{space}{0,8})|\P{space})/dgv,name:"invalid.illegal.character.string.fsharp"},{include:"#string_formatter"}]}]},strp_inlined:{patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]}]},strp_inlined_body:{patterns:[{include:"#comments"},{include:"#anonymous_functions"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^['\.0-9_\p{Alpha}]+)/dgv},{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]},{captures:{"1":{name:"keyword.fsharp"},"2":{name:"variable.fsharp"},"3":{name:"keyword.symbol.fsharp"}},match:/((?:static |)member)\p{space}*(['\.0-9\<\>\^_\`\p{Alpha}]+|``[ '\.0-9\<\>\^_\p{Alpha}]+``)\p{space}*(:)/dgv},{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:[{match:/\\/dgv,name:"text.fsharp"}]},tuple_signature:{patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([ '\.0-9\?\^_\`\p{Alpha}]+))+/dgv},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([ '\.0-9\?\^_\`\p{Alpha}]+))+/dgv},{include:"#tuple_signature"}]},{include:"#keywords"}]},variables:{patterns:[{match:/\(\)/dgv,name:"keyword.symbol.fsharp"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/(\??)(``[ '\,\.0-\:\^_\`\p{Alpha}]+``|(?!private|struct\b)\b[ '\.0-9\<\>\^_\`\p{L}\p{M}\p{N}\p{Pc}\p{Alpha}]+)/dgv}]}},scopeName:"source.fsharp",embeddedLangs:["markdown"],aliases:["f#","fs"]})
4
4
 
5
5
  export default [
6
6
  ...markdown,
@@ -1,7 +1,7 @@
1
1
  import gdshader from './gdshader.mjs'
2
2
  import gdscript from './gdscript.mjs'
3
3
 
4
- const lang = Object.freeze({displayName:"GDResource",name:"gdresource",patterns:[{include:"#embedded_shader"},{include:"#embedded_gdscript"},{include:"#comment"},{include:"#heading"},{include:"#key_value"}],repository:{comment:{captures:{"1":{name:"punctuation.definition.comment.gdresource"}},match:/(;)[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.gdresource"},data:{patterns:[{include:"#comment"},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\{)\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.table.inline.gdresource"}},end:/\p{space}*(\})(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,endCaptures:{"1":{name:"punctuation.definition.table.inline.gdresource"}},patterns:[{include:"#key_value"},{include:"#data"}]},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\[)\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.array.gdresource"}},end:/\p{space}*(\])(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,endCaptures:{"1":{name:"punctuation.definition.array.gdresource"}},patterns:[{include:"#data"}]},{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.basic.block.gdresource",patterns:[{match:/\\([btnfr"\\\n\/ ]|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.gdresource"},{match:/\\[^btnfr\/"\\\n]/dgv,name:"invalid.illegal.escape.gdresource"}]},{match:/"res:\/\/[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"support.function.any-method.gdresource"},{match:/(?<=type=)"[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"support.class.library.gdresource"},{match:/(?<=NodePath\(|parent=|name=)"[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"constant.character.escape.gdresource"},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.basic.line.gdresource",patterns:[{match:/\\([btnfr"\\\n\/ ]|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.gdresource"},{match:/\\[^btnfr\/"\\\n]/dgv,name:"invalid.illegal.escape.gdresource"}]},{match:/'[^\n]*?'/dgv,name:"string.quoted.single.literal.line.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(true|false)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.language.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\.(0|([1-9](([0-9]|_[0-9])+)?)))?[eE][\+\-]?[1-9]_?[0-9]*|\.[0-9_]*))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.float.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?(0|([1-9](([0-9]|_[0-9])+)?)))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.integer.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?inf)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.inf.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?nan)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.nan.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0x((\p{AHex}((\p{AHex}|_\p{AHex})+)?)))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.hex.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0o[0-7](_?[0-7])*)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.oct.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0b[01](_?[01])*)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.bin.gdresource"},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\()\p{space}?/dgv,beginCaptures:{"1":{name:"support.class.library.gdresource"}},end:/\p{space}?(\))/dgv,patterns:[{include:"#key_value"},{include:"#data"}]},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(ExtResource|SubResource)(\()\p{space}?/dgv,beginCaptures:{"1":{name:"keyword.control.gdresource"}},end:/\p{space}?(\))/dgv,patterns:[{include:"#key_value"},{include:"#data"}]}]},embedded_gdscript:{begin:/(script\/source) = "/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"}},end:/"/dgv,patterns:[{include:"source.gdscript"}]},embedded_shader:{begin:/(code) = "/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"}},end:/"/dgv,name:"meta.embedded.block.gdshader",patterns:[{include:"source.gdshader"}]},heading:{begin:/\[([a-z_]*)\p{space}?/dgv,beginCaptures:{"1":{name:"keyword.control.gdresource"}},end:/\]/dgv,patterns:[{include:"#heading_properties"},{include:"#data"}]},heading_properties:{patterns:[{match:/(\p{space}*[A-Za-z_\-][A-Za-z0-9_\-]*\p{space}*=)(?=\p{space}*(?=\n?$))/dgv,name:"invalid.illegal.noValue.gdresource"},{begin:/\p{space}*([A-Za-z_\-]\P{space}*|"[^\n]+"|'[^\n]+'|[0-9]+)\p{space}*(=)\p{space}*/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"},"2":{name:"punctuation.definition.keyValue.gdresource"}},end:/((?=\n?$)|(?==)|,?|\p{space}*(?=\}))/dgv,patterns:[{include:"#data"}]}]},key_value:{patterns:[{match:/(\p{space}*[A-Za-z_\-][A-Za-z0-9_\-]*\p{space}*=)(?=\p{space}*(?=\n?$))/dgv,name:"invalid.illegal.noValue.gdresource"},{begin:/\p{space}*([A-Za-z_\-]\P{space}*|"[^\n]+"|'[^\n]+'|[0-9]+)\p{space}*(=)\p{space}*/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"},"2":{name:"punctuation.definition.keyValue.gdresource"}},end:/((?=\n?$)|(?==)|,|\p{space}*(?=\}))/dgv,patterns:[{include:"#data"}]}]}},scopeName:"source.gdresource",embeddedLangs:["gdshader","gdscript"],aliases:undefined})
4
+ const lang = Object.freeze({displayName:"GDResource",name:"gdresource",patterns:[{include:"#embedded_shader"},{include:"#embedded_gdscript"},{include:"#comment"},{include:"#heading"},{include:"#key_value"}],repository:{comment:{captures:{"1":{name:"punctuation.definition.comment.gdresource"}},match:/(;)[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.gdresource"},data:{patterns:[{include:"#comment"},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\{)\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.table.inline.gdresource"}},end:/\p{space}*(\})(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,endCaptures:{"1":{name:"punctuation.definition.table.inline.gdresource"}},patterns:[{include:"#key_value"},{include:"#data"}]},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\[)\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.array.gdresource"}},end:/\p{space}*(\])(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,endCaptures:{"1":{name:"punctuation.definition.array.gdresource"}},patterns:[{include:"#data"}]},{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.basic.block.gdresource",patterns:[{match:/\\([\n "\/\\bfnrt]|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.gdresource"},{match:/\\[^\n"\/\\bfnrt]/dgv,name:"invalid.illegal.escape.gdresource"}]},{match:/"res:\/\/[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"support.function.any-method.gdresource"},{match:/(?<=type=)"[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"support.class.library.gdresource"},{match:/(?<=NodePath\(|parent=|name=)"[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"constant.character.escape.gdresource"},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.basic.line.gdresource",patterns:[{match:/\\([\n "\/\\bfnrt]|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.gdresource"},{match:/\\[^\n"\/\\bfnrt]/dgv,name:"invalid.illegal.escape.gdresource"}]},{match:/'[^\n]*?'/dgv,name:"string.quoted.single.literal.line.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(true|false)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.language.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\-\+]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\.(0|([1-9](([0-9]|_[0-9])+)?)))?[Ee][\-\+]?[1-9]_?[0-9]*|\.[0-9_]*))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.float.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\-\+]?(0|([1-9](([0-9]|_[0-9])+)?)))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.integer.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\-\+]?inf)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.inf.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\-\+]?nan)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.nan.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0x((\p{AHex}(((?:|_)\p{AHex})+)?)))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.hex.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0o[0-7](_?[0-7])*)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.oct.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0b[01](_?[01])*)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.bin.gdresource"},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\()\p{space}?/dgv,beginCaptures:{"1":{name:"support.class.library.gdresource"}},end:/\p{space}?(\))/dgv,patterns:[{include:"#key_value"},{include:"#data"}]},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])((?:Ext|Sub)Resource)(\()\p{space}?/dgv,beginCaptures:{"1":{name:"keyword.control.gdresource"}},end:/\p{space}?(\))/dgv,patterns:[{include:"#key_value"},{include:"#data"}]}]},embedded_gdscript:{begin:/(script\/source) = "/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"}},end:/"/dgv,patterns:[{include:"source.gdscript"}]},embedded_shader:{begin:/(code) = "/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"}},end:/"/dgv,name:"meta.embedded.block.gdshader",patterns:[{include:"source.gdshader"}]},heading:{begin:/\[([_a-z]*)\p{space}?/dgv,beginCaptures:{"1":{name:"keyword.control.gdresource"}},end:/\]/dgv,patterns:[{include:"#heading_properties"},{include:"#data"}]},heading_properties:{patterns:[{match:/(\p{space}*[\-A-Z_a-z][\-0-9A-Z_a-z]*\p{space}*=)(?=\p{space}*(?=\n?$))/dgv,name:"invalid.illegal.noValue.gdresource"},{begin:/\p{space}*([\-A-Z_a-z]\P{space}*|"[^\n]+"|'[^\n]+'|[0-9]+)\p{space}*(=)\p{space}*/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"},"2":{name:"punctuation.definition.keyValue.gdresource"}},end:/((?=\n?$)|(?==)|,?|\p{space}*(?=\}))/dgv,patterns:[{include:"#data"}]}]},key_value:{patterns:[{match:/(\p{space}*[\-A-Z_a-z][\-0-9A-Z_a-z]*\p{space}*=)(?=\p{space}*(?=\n?$))/dgv,name:"invalid.illegal.noValue.gdresource"},{begin:/\p{space}*([\-A-Z_a-z]\P{space}*|"[^\n]+"|'[^\n]+'|[0-9]+)\p{space}*(=)\p{space}*/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"},"2":{name:"punctuation.definition.keyValue.gdresource"}},end:/((?=\n?$)|(?==)|,|\p{space}*(?=\}))/dgv,patterns:[{include:"#data"}]}]}},scopeName:"source.gdresource",embeddedLangs:["gdshader","gdscript"],aliases:undefined})
5
5
 
6
6
  export default [
7
7
  ...gdshader,
package/dist/gdscript.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"GDScript",fileTypes:["gd"],name:"gdscript",patterns:[{include:"#statement"},{include:"#expression"}],repository:{annotated_parameter:{begin:/\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(:)\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv,beginCaptures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.annotation.gdscript"},"3":{name:"entity.name.type.class.gdscript"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#expression"},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"}]},annotations:{captures:{"1":{name:"entity.name.function.decorator.gdscript"},"2":{name:"entity.name.function.decorator.gdscript"}},match:/(@)(export|export_group|export_color_no_alpha|export_custom|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|export_storage|icon|onready|rpc|tool|warning_ignore|static_unload)\b/dgv},any_method:{match:/\b([A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?=\p{space}*\()/dgv,name:"entity.name.function.other.gdscript"},any_property:{captures:{"1":{name:"punctuation.accessor.gdscript"},"2":{name:"constant.language.gdscript"},"3":{name:"variable.other.property.gdscript"}},match:/\b(\.)\p{space}*(?<![\@\$\#\%])(?:([A-Z_][A-Z_0-9]*)|([A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*))\b(?!\()/dgv},any_variable:{match:/\b(?<![\@\$\#\%])([A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\()/dgv,name:"variable.other.gdscript"},arithmetic_operator:{match:/->|\+=|-=|\*\*=|\*=|\^=|\/=|%=|&=|~=|\|=|\*\*|[\*\/\%\+\-]/dgv,name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:/=/dgv,name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#builtin_classes"},{include:"#const_vars"},{include:"#keywords"},{include:"#operators"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#match_keyword"},{include:"#curly_braces"},{include:"#square_braces"},{include:"#round_braces"},{include:"#function_call"},{include:"#region"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},bitwise_operator:{match:/[\&\|]|<<=|>>=|<<|>>|[\^\~]/dgv,name:"keyword.operator.bitwise.gdscript"},boolean_operator:{match:/(&&|\|\|)/dgv,name:"keyword.operator.boolean.gdscript"},builtin_classes:{match:/(?<![^\.]\.|:)\b(Vector2|Vector2i|Vector3|Vector3i|Vector4|Vector4i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|Signal|Callable|StringName|Quaternion|Projection|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedVector4Array|PackedColorArray|JSON|UPNP|OS|IP|JSONRPC|XRVRS)\b/dgv,name:"entity.name.type.class.builtin.gdscript"},builtin_get_node_shorthand:{patterns:[{include:"#builtin_get_node_shorthand_quoted"},{include:"#builtin_get_node_shorthand_bare"},{include:"#builtin_get_node_shorthand_bare_multi"}]},builtin_get_node_shorthand_bare:{captures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"constant.character.escape.gdscript"},"3":{name:"constant.character.escape.gdscript"},"4":{name:"constant.character.escape.gdscript"}},match:/(?<!\/\p{space}*)(\$\p{space}*|%|\$%\p{space}*)(\/\p{space}*)?([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\p{space}*\/)/dgv,name:"meta.literal.nodepath.bare.gdscript"},builtin_get_node_shorthand_bare_multi:{begin:/(\$\p{space}*|%|\$%\p{space}*)(\/\p{space}*)?([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,beginCaptures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"constant.character.escape.gdscript"},"3":{name:"constant.character.escape.gdscript"}},end:/(?!\p{space}*\/\p{space}*%?\p{space}*[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"meta.literal.nodepath.bare.gdscript",patterns:[{captures:{"1":{name:"constant.character.escape.gdscript"},"2":{name:"keyword.control.flow.gdscript"},"3":{name:"constant.character.escape.gdscript"}},match:/(\/)\p{space}*(%)?\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*/dgv}]},builtin_get_node_shorthand_quoted:{begin:/(?:([\$\%])|([\&\^\@]))(["'])/dgv,beginCaptures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"variable.other.enummember.gdscript"}},end:/(\3)()()/dgv,name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape.gdscript",patterns:[{match:/%/dgv,name:"keyword.control.flow"}]},class_declaration:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:/(?<=^class)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=:)/dgv},class_enum:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"variable.other.enummember.gdscript"}},match:/\b([A-Z][a-zA-Z_0-9]*)\.([A-Z_0-9]+)/dgv},class_is:{captures:{"1":{name:"storage.type.is.gdscript"},"2":{name:"entity.name.type.class.gdscript"}},match:/\p{space}+(is)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},class_name:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:/(?<=class_name)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(\.([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*))?)/dgv},class_new:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"storage.type.new.gdscript"},"3":{name:"punctuation.parenthesis.begin.gdscript"}},match:/\b([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)[^\n](new)\(/dgv},comment:{captures:{"1":{name:"punctuation.definition.comment.number-sign.gdscript"}},match:/(#(?:#|))[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.number-sign.gdscript"},compare_operator:{match:/<=|>=|==|[\<\>]|!=|!/dgv,name:"keyword.operator.comparison.gdscript"},const_vars:{match:/\b([A-Z_][A-Z_0-9]*)\b/dgv,name:"variable.other.constant.gdscript"},control_flow:{match:/\b(?:if|elif|else|while|break|continue|pass|return|when|yield|await)\b/dgv,name:"keyword.control.gdscript"},curly_braces:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.dict.begin.gdscript"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.dict.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},expression:{patterns:[{include:"#getter_setter_godot4"},{include:"#base_expression"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{"1":{name:"keyword.language.gdscript"},"2":{name:"entity.other.inherited-class.gdscript"}},match:/(extends)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\.[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv},func:{match:/\bfunc\b/dgv,name:"keyword.language.gdscript"},function_arguments:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:/(?=\))(?!\)\p{space}*\()/dgv,patterns:[{match:/(,)/dgv,name:"punctuation.separator.arguments.gdscript"},{captures:{"1":{name:"variable.parameter.function-call.gdscript"},"2":{name:"keyword.operator.assignment.gdscript"}},match:/\b([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)(?!=)/dgv},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{"1":{name:"punctuation.definition.arguments.end.gdscript"},"2":{name:"punctuation.definition.arguments.begin.gdscript"}},match:/\p{space}*(\))\p{space}*(\()/dgv},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:/(?=\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b\()/dgv,end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:/\p{space}*(func)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/(:)/dgv,endCaptures:{"1":{name:"punctuation.section.function.begin.gdscript"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{match:/\b(preload)\b/dgv,name:"keyword.language.gdscript"},{match:/\b([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.function.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{"1":{name:"entity.name.function.gdscript"},"2":{name:"punctuation.separator.annotation.gdscript"}},match:/(get)\p{space}*(:)/dgv,name:"meta.variable.declaration.getter.gdscript"},{captures:{"1":{name:"entity.name.function.gdscript"},"2":{name:"punctuation.definition.arguments.begin.gdscript"},"3":{name:"variable.other.gdscript"},"4":{name:"punctuation.definition.arguments.end.gdscript"},"5":{name:"punctuation.separator.annotation.gdscript"}},match:/(set)\p{space}*(\()\p{space}*([A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(\))\p{space}*(:)/dgv,name:"meta.variable.declaration.setter.gdscript"}]},in_keyword:{patterns:[{begin:/\b(for)\b/dgv,captures:{"1":{name:"keyword.control.gdscript"}},end:/:/dgv,patterns:[{match:/\bin\b/dgv,name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:/\bin\b/dgv,name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:/\b(?:class|class_name|abstract|is|onready|tool|static|export|as|void|enum|assert|breakpoint|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace|super)\b/dgv,name:"keyword.language.gdscript"},lambda_declaration:{begin:/(func)\p{space}?(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/(:|(?=[\#'"\n]))/dgv,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{"1":{name:"punctuation.separator.annotation.result.gdscript"},"2":{name:"keyword.language.void.gdscript"},"3":{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:/\b(?:true|false|null)\b/dgv,name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{"1":{name:"punctuation.separator.continuation.line.gdscript"},"2":{name:"invalid.illegal.line.continuation.gdscript"}},match:/(\\)\p{space}*(\P{space}[^\n]*(?=\n?$)\n?)/dgv},{begin:/(\\)\p{space}*(?=\n?$)\n?/dgv,beginCaptures:{"1":{name:"punctuation.separator.continuation.line.gdscript"}},end:/*@__PURE__*/ new EmulatedRegExp("(?=^\\p{space}*(?=\\n?$))|(?!(\\p{space}*[rR]?('''|\"\"\"|['\"]))|(^(?=\\n?$)))","dgv",{"strategy":"clip_search"}),patterns:[{include:"#base_expression"}]}]},loose_default:{begin:/(=)/dgv,beginCaptures:{"1":{name:"keyword.operator.gdscript"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#expression"}]},match_keyword:{captures:{"1":{name:"keyword.control.gdscript"}},match:/^\n\p{space}*(match)/dgv},nodepath_function:{begin:/(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.gdscript"},"2":{name:"punctuation.definition.parameters.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.gdscript",patterns:[{begin:/(["'])/dgv,end:/\1()/dgv,name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:/%/dgv,name:"keyword.control.flow"}]},{include:"#expression"}]},nodepath_object:{begin:/(NodePath)\p{space}*\(/dgv,beginCaptures:{"1":{name:"support.class.library.gdscript"}},end:/\)/dgv,name:"meta.literal.nodepath.gdscript",patterns:[{begin:/(["'])/dgv,end:/\1()/dgv,name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:/%/dgv,name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:/0b[01_]+/dgv,name:"constant.numeric.integer.binary.gdscript"},{match:/0x[_\p{AHex}]+/dgv,name:"constant.numeric.integer.hexadecimal.gdscript"},{match:/\.[0-9][0-9_]*([eE][\+\-]?[0-9_]+)?/dgv,name:"constant.numeric.float.gdscript"},{match:/([0-9][0-9_]*)\.[0-9_]*([eE][\+\-]?[0-9_]+)?/dgv,name:"constant.numeric.float.gdscript"},{match:/([0-9][0-9_]*)?\.[0-9_]*([eE][\+\-]?[0-9_]+)/dgv,name:"constant.numeric.float.gdscript"},{match:/[0-9][0-9_]*[eE][\+\-]?[0-9_]+/dgv,name:"constant.numeric.float.gdscript"},{match:/-?[0-9][0-9_]*/dgv,name:"constant.numeric.integer.gdscript"}]},operators:{patterns:[{include:"#wordlike_operator"},{include:"#boolean_operator"},{include:"#arithmetic_operator"},{include:"#bitwise_operator"},{include:"#compare_operator"}]},parameters:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.gdscript"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.parameters.gdscript"}},match:/([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?:(,)|(?=[\)\#\n\=]))/dgv},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:/\b([A-Z]+[a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\b/dgv,name:"entity.name.type.class.gdscript"},region:{match:/#(end)?region[^\n]*(?=\n?$)\n?/dgv,name:"keyword.language.region.gdscript"},round_braces:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.begin.gdscript"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:/\bself\b/dgv,name:"variable.language.gdscript"},signal_declaration:{begin:/\p{space}*(signal)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/((?=[\#'"\n]))/dgv,name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},match:/\p{space}*(signal)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)(?=[\n\p{space}])/dgv,name:"meta.signal.gdscript"},square_braces:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.list.begin.gdscript"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.list.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:/\b(?<!\.)(continue|assert|break|elif|else|if|pass|return|while)\b/dgv,name:"keyword.control.flow.gdscript"},{match:/\b(?<!\.)(class)\b/dgv,name:"storage.type.class.gdscript"},{captures:{"1":{name:"keyword.control.flow.gdscript"}},match:/^\p{space}*(case|match)(?=\p{space}*([\-\+\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\(\[\{'"\:\#]|(?=\n?$)))\b/dgv}]},string_bracket_placeholders:{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"},"3":{name:"storage.type.format.gdscript"},"4":{name:"storage.type.format.gdscript"}},match:/(\{\{|\}\}|\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)?\})/dgv,name:"meta.format.brace.gdscript"},{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"},"3":{name:"storage.type.format.gdscript"},"4":{name:"storage.type.format.gdscript"}},match:/(\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:)[^'"\{\}\n]*(?:\{[^'"\}\n]*?\}[^'"\{\}\n]*)*\})/dgv,name:"meta.format.brace.gdscript"}]},string_percent_placeholders:{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"}},match:/(%(\([\p{L}\p{M}\p{N}\p{Pc}\p{space}]*\))?[\-\+\#0 ]*(\p{Nd}+|\*)?(\.(\p{Nd}+|\*))?([hlL])?[diouxXeEfFgGcrsab\%])/dgv,name:"meta.format.percent.gdscript"},strings:{begin:/(r)?("""|'''|["'])/dgv,beginCaptures:{"1":{name:"constant.character.escape.gdscript"}},end:/\2()()/dgv,name:"string.quoted.gdscript",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.gdscript"},{include:"#string_percent_placeholders"},{include:"#string_bracket_placeholders"}]},variable_declaration:{begin:/\b(?:(var)|(const))\b/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.var.gdscript"},"2":{name:"keyword.language.gdscript storage.type.const.gdscript"}},end:/(?=\n?$)|;/dgv,name:"meta.variable.declaration.gdscript",patterns:[{captures:{"1":{name:"punctuation.separator.annotation.gdscript"},"2":{name:"entity.name.function.gdscript"},"3":{name:"entity.name.function.gdscript"}},match:/(:)?\p{space}*(set|get)\p{space}+=\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{match:/:=|=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"},{captures:{"1":{name:"punctuation.separator.annotation.gdscript"},"2":{name:"entity.name.type.class.gdscript"}},match:/(:)\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv},{captures:{"1":{name:"keyword.language.gdscript"},"2":{name:"entity.name.function.gdscript"},"3":{name:"entity.name.function.gdscript"}},match:/(setget)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)(?:,\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*))?/dgv},{include:"#expression"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},wordlike_operator:{match:/\b(and|or|not)\b/dgv,name:"keyword.operator.wordlike.gdscript"}},scopeName:"source.gdscript",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"GDScript",fileTypes:["gd"],name:"gdscript",patterns:[{include:"#statement"},{include:"#expression"}],repository:{annotated_parameter:{begin:/\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(:)\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv,beginCaptures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.annotation.gdscript"},"3":{name:"entity.name.type.class.gdscript"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#expression"},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"}]},annotations:{captures:{"1":{name:"entity.name.function.decorator.gdscript"},"2":{name:"entity.name.function.decorator.gdscript"}},match:/(@)(export|export_group|export_color_no_alpha|export_custom|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|export_storage|icon|onready|rpc|tool|warning_ignore|static_unload)\b/dgv},any_method:{match:/\b([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?=\p{space}*\()/dgv,name:"entity.name.function.other.gdscript"},any_property:{captures:{"1":{name:"punctuation.accessor.gdscript"},"2":{name:"constant.language.gdscript"},"3":{name:"variable.other.property.gdscript"}},match:/\b(\.)\p{space}*(?<![\#\$\%\@])(?:([A-Z_][0-9A-Z_]*)|([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))\b(?!\()/dgv},any_variable:{match:/\b(?<![\#\$\%\@])([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\()/dgv,name:"variable.other.gdscript"},arithmetic_operator:{match:/->|\+=|-=|\*\*=|\*=|\^=|\/=|%=|&=|~=|\|=|\*\*|[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:/=/dgv,name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#builtin_classes"},{include:"#const_vars"},{include:"#keywords"},{include:"#operators"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#match_keyword"},{include:"#curly_braces"},{include:"#square_braces"},{include:"#round_braces"},{include:"#function_call"},{include:"#region"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},bitwise_operator:{match:/[\&\|]|<<=|>>=|<<|>>|[\^\~]/dgv,name:"keyword.operator.bitwise.gdscript"},boolean_operator:{match:/(&&|\|\|)/dgv,name:"keyword.operator.boolean.gdscript"},builtin_classes:{match:/(?<![^\.]\.|:)\b(Vector2|Vector2i|Vector3|Vector3i|Vector4|Vector4i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|Signal|Callable|StringName|Quaternion|Projection|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedVector4Array|PackedColorArray|JSON|UPNP|OS|IP|JSONRPC|XRVRS)\b/dgv,name:"entity.name.type.class.builtin.gdscript"},builtin_get_node_shorthand:{patterns:[{include:"#builtin_get_node_shorthand_quoted"},{include:"#builtin_get_node_shorthand_bare"},{include:"#builtin_get_node_shorthand_bare_multi"}]},builtin_get_node_shorthand_bare:{captures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"constant.character.escape.gdscript"},"3":{name:"constant.character.escape.gdscript"},"4":{name:"constant.character.escape.gdscript"}},match:/(?<!\/\p{space}*)(\$\p{space}*|%|\$%\p{space}*)(\/\p{space}*)?([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\p{space}*\/)/dgv,name:"meta.literal.nodepath.bare.gdscript"},builtin_get_node_shorthand_bare_multi:{begin:/(\$\p{space}*|%|\$%\p{space}*)(\/\p{space}*)?([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,beginCaptures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"constant.character.escape.gdscript"},"3":{name:"constant.character.escape.gdscript"}},end:/(?!\p{space}*\/\p{space}*%?\p{space}*[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"meta.literal.nodepath.bare.gdscript",patterns:[{captures:{"1":{name:"constant.character.escape.gdscript"},"2":{name:"keyword.control.flow.gdscript"},"3":{name:"constant.character.escape.gdscript"}},match:/(\/)\p{space}*(%)?\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*/dgv}]},builtin_get_node_shorthand_quoted:{begin:/(?:([\$\%])|([\&\@\^]))(["'])/dgv,beginCaptures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"variable.other.enummember.gdscript"}},end:/(\3)()()/dgv,name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape.gdscript",patterns:[{match:/%/dgv,name:"keyword.control.flow"}]},class_declaration:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:/(?<=^class)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=:)/dgv},class_enum:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"variable.other.enummember.gdscript"}},match:/\b([A-Z][0-9A-Z_a-z]*)\.([0-9A-Z_]+)/dgv},class_is:{captures:{"1":{name:"storage.type.is.gdscript"},"2":{name:"entity.name.type.class.gdscript"}},match:/\p{space}+(is)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},class_name:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:/(?<=class_name)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*(\.([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))?)/dgv},class_new:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"storage.type.new.gdscript"},"3":{name:"punctuation.parenthesis.begin.gdscript"}},match:/\b([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)[^\n](new)\(/dgv},comment:{captures:{"1":{name:"punctuation.definition.comment.number-sign.gdscript"}},match:/(#(?:#|))[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.number-sign.gdscript"},compare_operator:{match:/<=|>=|==|[\<\>]|!=|!/dgv,name:"keyword.operator.comparison.gdscript"},const_vars:{match:/\b([A-Z_][0-9A-Z_]*)\b/dgv,name:"variable.other.constant.gdscript"},control_flow:{match:/\b(?:if|elif|else|while|break|continue|pass|return|when|yield|await)\b/dgv,name:"keyword.control.gdscript"},curly_braces:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.dict.begin.gdscript"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.dict.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},expression:{patterns:[{include:"#getter_setter_godot4"},{include:"#base_expression"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{"1":{name:"keyword.language.gdscript"},"2":{name:"entity.other.inherited-class.gdscript"}},match:/(extends)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\.[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv},func:{match:/\bfunc\b/dgv,name:"keyword.language.gdscript"},function_arguments:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:/(?=\))(?!\)\p{space}*\()/dgv,patterns:[{match:/(,)/dgv,name:"punctuation.separator.arguments.gdscript"},{captures:{"1":{name:"variable.parameter.function-call.gdscript"},"2":{name:"keyword.operator.assignment.gdscript"}},match:/\b([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)(?!=)/dgv},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{"1":{name:"punctuation.definition.arguments.end.gdscript"},"2":{name:"punctuation.definition.arguments.begin.gdscript"}},match:/\p{space}*(\))\p{space}*(\()/dgv},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:/(?=\b[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\b\()/dgv,end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:/\p{space}*(func)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/(:)/dgv,endCaptures:{"1":{name:"punctuation.section.function.begin.gdscript"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{match:/\b(preload)\b/dgv,name:"keyword.language.gdscript"},{match:/\b([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.function.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{"1":{name:"entity.name.function.gdscript"},"2":{name:"punctuation.separator.annotation.gdscript"}},match:/(get)\p{space}*(:)/dgv,name:"meta.variable.declaration.getter.gdscript"},{captures:{"1":{name:"entity.name.function.gdscript"},"2":{name:"punctuation.definition.arguments.begin.gdscript"},"3":{name:"variable.other.gdscript"},"4":{name:"punctuation.definition.arguments.end.gdscript"},"5":{name:"punctuation.separator.annotation.gdscript"}},match:/(set)\p{space}*(\()\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(\))\p{space}*(:)/dgv,name:"meta.variable.declaration.setter.gdscript"}]},in_keyword:{patterns:[{begin:/\b(for)\b/dgv,captures:{"1":{name:"keyword.control.gdscript"}},end:/:/dgv,patterns:[{match:/\bin\b/dgv,name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:/\bin\b/dgv,name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:/\b(?:class|class_name|abstract|is|onready|tool|static|export|as|void|enum|assert|breakpoint|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace|super)\b/dgv,name:"keyword.language.gdscript"},lambda_declaration:{begin:/(func)\p{space}?(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/(:|(?=[\n"\#']))/dgv,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{"1":{name:"punctuation.separator.annotation.result.gdscript"},"2":{name:"keyword.language.void.gdscript"},"3":{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:/\b(?:true|false|null)\b/dgv,name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{"1":{name:"punctuation.separator.continuation.line.gdscript"},"2":{name:"invalid.illegal.line.continuation.gdscript"}},match:/(\\)\p{space}*(\P{space}[^\n]*(?=\n?$)\n?)/dgv},{begin:/(\\)\p{space}*(?=\n?$)\n?/dgv,beginCaptures:{"1":{name:"punctuation.separator.continuation.line.gdscript"}},end:/*@__PURE__*/ new EmulatedRegExp("(?=^\\p{space}*(?=\\n?$))|(?!(\\p{space}*[Rr]?('''|\"\"\"|[\"']))|^()(?=\\n?$))","dgv",{"strategy":"clip_search"}),patterns:[{include:"#base_expression"}]}]},loose_default:{begin:/(=)/dgv,beginCaptures:{"1":{name:"keyword.operator.gdscript"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#expression"}]},match_keyword:{captures:{"1":{name:"keyword.control.gdscript"}},match:/^\n\p{space}*(match)/dgv},nodepath_function:{begin:/(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.gdscript"},"2":{name:"punctuation.definition.parameters.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.gdscript",patterns:[{begin:/(["'])/dgv,end:/\1()/dgv,name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:/%/dgv,name:"keyword.control.flow"}]},{include:"#expression"}]},nodepath_object:{begin:/(NodePath)\p{space}*\(/dgv,beginCaptures:{"1":{name:"support.class.library.gdscript"}},end:/\)/dgv,name:"meta.literal.nodepath.gdscript",patterns:[{begin:/(["'])/dgv,end:/\1()/dgv,name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:/%/dgv,name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:/0b[01_]+/dgv,name:"constant.numeric.integer.binary.gdscript"},{match:/0x[_\p{AHex}]+/dgv,name:"constant.numeric.integer.hexadecimal.gdscript"},{match:/\.[0-9][0-9_]*([Ee][\-\+]?[0-9_]+)?/dgv,name:"constant.numeric.float.gdscript"},{match:/([0-9][0-9_]*)\.[0-9_]*([Ee][\-\+]?[0-9_]+)?/dgv,name:"constant.numeric.float.gdscript"},{match:/([0-9][0-9_]*)?\.[0-9_]*([Ee][\-\+]?[0-9_]+)/dgv,name:"constant.numeric.float.gdscript"},{match:/[0-9][0-9_]*[Ee][\-\+]?[0-9_]+/dgv,name:"constant.numeric.float.gdscript"},{match:/-?[0-9][0-9_]*/dgv,name:"constant.numeric.integer.gdscript"}]},operators:{patterns:[{include:"#wordlike_operator"},{include:"#boolean_operator"},{include:"#arithmetic_operator"},{include:"#bitwise_operator"},{include:"#compare_operator"}]},parameters:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.gdscript"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.parameters.gdscript"}},match:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?:(,)|(?=[\n\#\)\=]))/dgv},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:/\b([A-Z]+[0-9_a-z]*([A-Z]?[0-9_a-z]+)*[A-Z]?)\b/dgv,name:"entity.name.type.class.gdscript"},region:{match:/#(end)?region[^\n]*(?=\n?$)\n?/dgv,name:"keyword.language.region.gdscript"},round_braces:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.begin.gdscript"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:/\bself\b/dgv,name:"variable.language.gdscript"},signal_declaration:{begin:/\p{space}*(signal)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/((?=[\n"\#']))/dgv,name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},match:/\p{space}*(signal)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)(?=[\n\p{space}])/dgv,name:"meta.signal.gdscript"},square_braces:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.list.begin.gdscript"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.list.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:/\b(?<!\.)(continue|assert|break|elif|else|if|pass|return|while)\b/dgv,name:"keyword.control.flow.gdscript"},{match:/\b(?<!\.)(class)\b/dgv,name:"storage.type.class.gdscript"},{captures:{"1":{name:"keyword.control.flow.gdscript"}},match:/^\p{space}*(case|match)(?=\p{space}*([\-"\#'\(\+\:\[\{\p{L}\p{M}\p{N}\p{Pc}\p{Nd}]|(?=\n?$)))\b/dgv}]},string_bracket_placeholders:{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"},"3":{name:"storage.type.format.gdscript"},"4":{name:"storage.type.format.gdscript"}},match:/(\{\{|\}\}|\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[_\p{Alpha}][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]"']+\])*(![ars])?(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\=\>\^]?[\- \+]?#?\p{Nd}*,?(\.\p{Nd}+)?[\%EFGXb-gnosx]?)?\})/dgv,name:"meta.format.brace.gdscript"},{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"},"3":{name:"storage.type.format.gdscript"},"4":{name:"storage.type.format.gdscript"}},match:/(\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[_\p{Alpha}][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]"']+\])*(![ars])?(:)[^\n"'\{\}]*(?:\{[^\n"'\}]*?\}[^\n"'\{\}]*)*\})/dgv,name:"meta.format.brace.gdscript"}]},string_percent_placeholders:{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"}},match:/(%(\([\p{L}\p{M}\p{N}\p{Pc}\p{space}]*\))?[\- \#\+0]*(\p{Nd}+|\*)?(\.(\p{Nd}+|\*))?([Lhl])?[\%EFGXa-giorsux])/dgv,name:"meta.format.percent.gdscript"},strings:{begin:/(r)?("""|'''|["'])/dgv,beginCaptures:{"1":{name:"constant.character.escape.gdscript"}},end:/\2()()/dgv,name:"string.quoted.gdscript",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.gdscript"},{include:"#string_percent_placeholders"},{include:"#string_bracket_placeholders"}]},variable_declaration:{begin:/\b(?:(var)|(const))\b/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.var.gdscript"},"2":{name:"keyword.language.gdscript storage.type.const.gdscript"}},end:/(?=\n?$)|;/dgv,name:"meta.variable.declaration.gdscript",patterns:[{captures:{"1":{name:"punctuation.separator.annotation.gdscript"},"2":{name:"entity.name.function.gdscript"},"3":{name:"entity.name.function.gdscript"}},match:/(:)?\p{space}*([gs]et)\p{space}+=\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{match:/:=|=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"},{captures:{"1":{name:"punctuation.separator.annotation.gdscript"},"2":{name:"entity.name.type.class.gdscript"}},match:/(:)\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv},{captures:{"1":{name:"keyword.language.gdscript"},"2":{name:"entity.name.function.gdscript"},"3":{name:"entity.name.function.gdscript"}},match:/(setget)\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)(?:,\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))?/dgv},{include:"#expression"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},wordlike_operator:{match:/\b(and|or|not)\b/dgv,name:"keyword.operator.wordlike.gdscript"}},scopeName:"source.gdscript",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang
package/dist/gdshader.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"GDShader",fileTypes:["gdshader"],name:"gdshader",patterns:[{include:"#any"}],repository:{any:{patterns:[{include:"#comment"},{include:"#enclosed"},{include:"#classifier"},{include:"#definition"},{include:"#keyword"},{include:"#element"},{include:"#separator"},{include:"#operator"}]},arraySize:{begin:/\[/dgv,captures:{"0":{name:"punctuation.bracket.gdshader"}},end:/\]/dgv,name:"meta.array-size.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#element"},{include:"#separator"}]},classifier:{begin:/(?=\b(?:shader_type|render_mode)\b)/dgv,end:/(?<=;)/dgv,name:"meta.classifier.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#identifierClassification"},{include:"#separator"}]},classifierKeyword:{match:/\b(?:shader_type|render_mode)\b/dgv,name:"keyword.language.classifier.gdshader"},comment:{patterns:[{include:"#commentLine"},{include:"#commentBlock"}]},commentBlock:{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block.gdshader"},commentLine:{begin:/\/\//dgv,end:/(?=\n?$)/dgv,name:"comment.line.double-slash.gdshader"},constantFloat:{match:/\b(?:E|PI|TAU)\b/dgv,name:"constant.language.float.gdshader"},constructor:{match:/\b(?:[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(?=\p{space}*\[\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\]\p{space}*\()|[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*(?=\p{space}*\())/dgv,name:"entity.name.type.constructor.gdshader"},controlKeyword:{match:/\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\b/dgv,name:"keyword.control.gdshader"},definition:{patterns:[{include:"#structDefinition"}]},element:{patterns:[{include:"#literalFloat"},{include:"#literalInt"},{include:"#literalBool"},{include:"#identifierType"},{include:"#constructor"},{include:"#processorFunction"},{include:"#identifierFunction"},{include:"#swizzling"},{include:"#identifierField"},{include:"#constantFloat"},{include:"#languageVariable"},{include:"#identifierVariable"}]},enclosed:{begin:/\(/dgv,captures:{"0":{name:"punctuation.parenthesis.gdshader"}},end:/\)/dgv,name:"meta.parenthesis.gdshader",patterns:[{include:"#any"}]},fieldDefinition:{begin:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,beginCaptures:{"0":{patterns:[{include:"#typeKeyword"},{match:/[^\n]+/dgv,name:"entity.name.type.gdshader"}]}},end:/(?<=;)/dgv,name:"meta.definition.field.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#arraySize"},{include:"#fieldName"},{include:"#any"}]},fieldName:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.variable.field.gdshader"},hintKeyword:{match:/\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\b/dgv,name:"support.type.annotation.gdshader"},identifierClassification:{match:/\b[a-z_]+\b/dgv,name:"entity.other.inherited-class.gdshader"},identifierField:{captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"entity.name.variable.field.gdshader"}},match:/(\.)\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\p{space}*\()/dgv},identifierFunction:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(?=(?:\p{space}|\/\*(?:\*(?!\/)|[^\*])*\*\/)*\()/dgv,name:"entity.name.function.gdshader"},identifierType:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(?=(?:\p{space}*\[\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\])?\p{space}+[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b)/dgv,name:"entity.name.type.gdshader"},identifierVariable:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.name.gdshader"},keyword:{patterns:[{include:"#classifierKeyword"},{include:"#structKeyword"},{include:"#controlKeyword"},{include:"#modifierKeyword"},{include:"#precisionKeyword"},{include:"#typeKeyword"},{include:"#hintKeyword"}]},languageVariable:{match:/\b[A-Z][A-Z_0-9]*\b/dgv,name:"variable.language.gdshader"},literalBool:{match:/\b(?:false|true)\b/dgv,name:"constant.language.boolean.gdshader"},literalFloat:{match:/\b(?:\p{Nd}+[eE][\-\+]?\p{Nd}+|(?:\p{Nd}*\.\p{Nd}+|\p{Nd}+\.)(?:[eE][\-\+]?\p{Nd}+)?)[fF]?/dgv,name:"constant.numeric.float.gdshader"},literalInt:{match:/\b(?:0[xX]\p{AHex}+|\p{Nd}+[uU]?)\b/dgv,name:"constant.numeric.integer.gdshader"},modifierKeyword:{match:/\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\b/dgv,name:"storage.modifier.gdshader"},operator:{match:/<<=?|>>=?|[\-\+\*\/\&\|\<\>\=\!]=|&&|\|\||[\-\+\~\!\*\/\%\<\>\&\^\|\=]/dgv,name:"keyword.operator.gdshader"},precisionKeyword:{match:/\b(?:low|medium|high)p\b/dgv,name:"storage.type.built-in.primitive.precision.gdshader"},processorFunction:{match:/\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\p{space}|\/\*(?:\*(?!\/)|[^\*])*\*\/)*\()/dgv,name:"support.function.gdshader"},separator:{patterns:[{match:/\./dgv,name:"punctuation.accessor.gdshader"},{include:"#separatorComma"},{match:/;/dgv,name:"punctuation.terminator.statement.gdshader"},{match:/:/dgv,name:"keyword.operator.type.annotation.gdshader"}]},separatorComma:{match:/,/dgv,name:"punctuation.separator.comma.gdshader"},structDefinition:{begin:/(?=\bstruct\b)/dgv,end:/(?<=;)/dgv,patterns:[{include:"#comment"},{include:"#keyword"},{include:"#structName"},{include:"#structDefinitionBlock"},{include:"#separator"}]},structDefinitionBlock:{begin:/\{/dgv,captures:{"0":{name:"punctuation.definition.block.struct.gdshader"}},end:/\}/dgv,name:"meta.definition.block.struct.gdshader",patterns:[{include:"#comment"},{include:"#precisionKeyword"},{include:"#fieldDefinition"},{include:"#keyword"},{include:"#any"}]},structKeyword:{match:/\bstruct\b/dgv,name:"keyword.other.struct.gdshader"},structName:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.type.struct.gdshader"},swizzling:{captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"variable.other.property.gdshader"}},match:/(\.)\p{space}*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\b/dgv},typeKeyword:{match:/\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\b/dgv,name:"support.type.gdshader"}},scopeName:"source.gdshader",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"GDShader",fileTypes:["gdshader"],name:"gdshader",patterns:[{include:"#any"}],repository:{any:{patterns:[{include:"#comment"},{include:"#enclosed"},{include:"#classifier"},{include:"#definition"},{include:"#keyword"},{include:"#element"},{include:"#separator"},{include:"#operator"}]},arraySize:{begin:/\[/dgv,captures:{"0":{name:"punctuation.bracket.gdshader"}},end:/\]/dgv,name:"meta.array-size.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#element"},{include:"#separator"}]},classifier:{begin:/(?=\b(?:shader_type|render_mode)\b)/dgv,end:/(?<=;)/dgv,name:"meta.classifier.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#identifierClassification"},{include:"#separator"}]},classifierKeyword:{match:/\b(?:shader_type|render_mode)\b/dgv,name:"keyword.language.classifier.gdshader"},comment:{patterns:[{include:"#commentLine"},{include:"#commentBlock"}]},commentBlock:{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block.gdshader"},commentLine:{begin:/\/\//dgv,end:/(?=\n?$)/dgv,name:"comment.line.double-slash.gdshader"},constantFloat:{match:/\b(?:E|PI|TAU)\b/dgv,name:"constant.language.float.gdshader"},constructor:{match:/\b(?:[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*(?=\p{space}*\[\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\]\p{space}*\()|[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*(?=\p{space}*\())/dgv,name:"entity.name.type.constructor.gdshader"},controlKeyword:{match:/\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\b/dgv,name:"keyword.control.gdshader"},definition:{patterns:[{include:"#structDefinition"}]},element:{patterns:[{include:"#literalFloat"},{include:"#literalInt"},{include:"#literalBool"},{include:"#identifierType"},{include:"#constructor"},{include:"#processorFunction"},{include:"#identifierFunction"},{include:"#swizzling"},{include:"#identifierField"},{include:"#constantFloat"},{include:"#languageVariable"},{include:"#identifierVariable"}]},enclosed:{begin:/\(/dgv,captures:{"0":{name:"punctuation.parenthesis.gdshader"}},end:/\)/dgv,name:"meta.parenthesis.gdshader",patterns:[{include:"#any"}]},fieldDefinition:{begin:/\b[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,beginCaptures:{"0":{patterns:[{include:"#typeKeyword"},{match:/[^\n]+/dgv,name:"entity.name.type.gdshader"}]}},end:/(?<=;)/dgv,name:"meta.definition.field.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#arraySize"},{include:"#fieldName"},{include:"#any"}]},fieldName:{match:/\b[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.variable.field.gdshader"},hintKeyword:{match:/\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[abgr]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\b/dgv,name:"support.type.annotation.gdshader"},identifierClassification:{match:/\b[_a-z]+\b/dgv,name:"entity.other.inherited-class.gdshader"},identifierField:{captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"entity.name.variable.field.gdshader"}},match:/(\.)\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\p{space}*\()/dgv},identifierFunction:{match:/\b[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*(?=(?:\p{space}|\/\*(?:\*(?!\/)|[^\*])*\*\/)*\()/dgv,name:"entity.name.function.gdshader"},identifierType:{match:/\b[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*(?=(?:\p{space}*\[\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\])?\p{space}+[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\b)/dgv,name:"entity.name.type.gdshader"},identifierVariable:{match:/\b[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.name.gdshader"},keyword:{patterns:[{include:"#classifierKeyword"},{include:"#structKeyword"},{include:"#controlKeyword"},{include:"#modifierKeyword"},{include:"#precisionKeyword"},{include:"#typeKeyword"},{include:"#hintKeyword"}]},languageVariable:{match:/\b[A-Z][0-9A-Z_]*\b/dgv,name:"variable.language.gdshader"},literalBool:{match:/\b(?:false|true)\b/dgv,name:"constant.language.boolean.gdshader"},literalFloat:{match:/\b(?:\p{Nd}+[Ee][\-\+]?\p{Nd}+|(?:\p{Nd}*\.\p{Nd}+|\p{Nd}+\.)(?:[Ee][\-\+]?\p{Nd}+)?)[Ff]?/dgv,name:"constant.numeric.float.gdshader"},literalInt:{match:/\b(?:0[Xx]\p{AHex}+|\p{Nd}+[Uu]?)\b/dgv,name:"constant.numeric.integer.gdshader"},modifierKeyword:{match:/\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\b/dgv,name:"storage.modifier.gdshader"},operator:{match:/<<=?|>>=?|[\-\!\&\*\+\/\<\=\>\|]=|&&|\|\||[\-\!\%\&\*\+\/\<\=\>\^\|\~]/dgv,name:"keyword.operator.gdshader"},precisionKeyword:{match:/\b(?:low|medium|high)p\b/dgv,name:"storage.type.built-in.primitive.precision.gdshader"},processorFunction:{match:/\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\p{space}|\/\*(?:\*(?!\/)|[^\*])*\*\/)*\()/dgv,name:"support.function.gdshader"},separator:{patterns:[{match:/\./dgv,name:"punctuation.accessor.gdshader"},{include:"#separatorComma"},{match:/;/dgv,name:"punctuation.terminator.statement.gdshader"},{match:/:/dgv,name:"keyword.operator.type.annotation.gdshader"}]},separatorComma:{match:/,/dgv,name:"punctuation.separator.comma.gdshader"},structDefinition:{begin:/(?=\bstruct\b)/dgv,end:/(?<=;)/dgv,patterns:[{include:"#comment"},{include:"#keyword"},{include:"#structName"},{include:"#structDefinitionBlock"},{include:"#separator"}]},structDefinitionBlock:{begin:/\{/dgv,captures:{"0":{name:"punctuation.definition.block.struct.gdshader"}},end:/\}/dgv,name:"meta.definition.block.struct.gdshader",patterns:[{include:"#comment"},{include:"#precisionKeyword"},{include:"#fieldDefinition"},{include:"#keyword"},{include:"#any"}]},structKeyword:{match:/\bstruct\b/dgv,name:"keyword.other.struct.gdshader"},structName:{match:/\b[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.type.struct.gdshader"},swizzling:{captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"variable.other.property.gdshader"}},match:/(\.)\p{space}*([w-z]{2,4}|[abgr]{2,4}|[pqst]{2,4})\b/dgv},typeKeyword:{match:/\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\b/dgv,name:"support.type.gdshader"}},scopeName:"source.gdshader",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/genie.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"Genie",fileTypes:["gs"],name:"genie",patterns:[{include:"#code"}],repository:{code:{patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#keywords"},{include:"#types"},{include:"#functions"},{include:"#variables"}]},comments:{patterns:[{captures:{"0":{name:"punctuation.definition.comment.vala"}},match:/\/\*\*\//dgv,name:"comment.block.empty.vala"},{include:"text.html.javadoc"},{include:"#comments-inline"}]},"comments-inline":{patterns:[{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.vala"}},end:/\*\//dgv,name:"comment.block.vala"},{captures:{"1":{name:"comment.line.double-slash.vala"},"2":{name:"punctuation.definition.comment.vala"}},match:/\p{space}*((\/\/)[^\n]*(?=\n?$)\n?)/dgv}]},constants:{patterns:[{match:/\b((0([xX])\p{AHex}*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))(([eE])([\+\-])?[0-9]+)?)([LlFfUuDd]|UL|ul)?\b/dgv,name:"constant.numeric.vala"},{match:/\b([A-Z][A-Z0-9_]+)\b/dgv,name:"variable.other.constant.vala"}]},functions:{patterns:[{match:/([\p{L}\p{M}\p{N}\p{Pc}]+)(?=\p{space}*(<[\p{space}\p{L}\p{M}\p{N}\p{Pc}\.]+>\p{space}*)?\()/dgv,name:"entity.name.function.vala"}]},keywords:{patterns:[{match:/(?<=^|[^\@\p{L}\p{M}\p{N}\p{Pc}\.])(as|do|if|in|is|of|or|to|and|def|for|get|isa|new|not|out|ref|set|try|var|case|dict|else|enum|init|list|lock|null|pass|prop|self|true|uses|void|weak|when|array|async|break|class|const|event|false|final|owned|print|super|raise|while|yield|assert|delete|downto|except|extern|inline|params|public|raises|return|sealed|sizeof|static|struct|typeof|default|dynamic|ensures|finally|private|unowned|virtual|abstract|continue|delegate|internal|override|readonly|requires|volatile|construct|errordomain|interface|namespace|protected|implements)\b/dgv,name:"keyword.vala"},{match:/(?<=^|[^\@\p{L}\p{M}\p{N}\p{Pc}\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\b/dgv,name:"keyword.vala"},{match:/(#(?:if|elif|else|endif))/dgv,name:"keyword.vala"}]},strings:{patterns:[{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.vala"},{begin:/@"/dgv,end:/"/dgv,name:"string.quoted.interpolated.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"},{match:/\$[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"constant.character.escape.vala"},{match:/\$\(([^\)\(]|\(([^\)\(]|\([^\)]*\))*\))*\)/dgv,name:"constant.character.escape.vala"}]},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"}]},{begin:/'/dgv,end:/'/dgv,name:"string.quoted.single.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"}]},{match:/\/((\\\/)|([^\/]))*\/(?=\p{space}*[\,\;\)\.\n])/dgv,name:"string.regexp.vala"}]},types:{patterns:[{match:/(?<=^|[^\@\p{L}\p{M}\p{N}\p{Pc}\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\b/dgv,name:"storage.type.primitive.vala"},{match:/\b([A-Z]+[\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.type.vala"}]},variables:{patterns:[{match:/\b([_a-z]+[\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"variable.other.vala"}]}},scopeName:"source.genie",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"Genie",fileTypes:["gs"],name:"genie",patterns:[{include:"#code"}],repository:{code:{patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#keywords"},{include:"#types"},{include:"#functions"},{include:"#variables"}]},comments:{patterns:[{captures:{"0":{name:"punctuation.definition.comment.vala"}},match:/\/\*\*\//dgv,name:"comment.block.empty.vala"},{include:"text.html.javadoc"},{include:"#comments-inline"}]},"comments-inline":{patterns:[{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.vala"}},end:/\*\//dgv,name:"comment.block.vala"},{captures:{"1":{name:"comment.line.double-slash.vala"},"2":{name:"punctuation.definition.comment.vala"}},match:/\p{space}*((\/\/)[^\n]*(?=\n?$)\n?)/dgv}]},constants:{patterns:[{match:/\b((0([Xx])\p{AHex}*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))(([Ee])([\-\+])?[0-9]+)?)([DFLUdflu]|UL|ul)?\b/dgv,name:"constant.numeric.vala"},{match:/\b([A-Z][0-9A-Z_]+)\b/dgv,name:"variable.other.constant.vala"}]},functions:{patterns:[{match:/([\p{L}\p{M}\p{N}\p{Pc}]+)(?=\p{space}*(<[\.\p{space}\p{L}\p{M}\p{N}\p{Pc}]+>\p{space}*)?\()/dgv,name:"entity.name.function.vala"}]},keywords:{patterns:[{match:/(?<=^|[^\.\@\p{L}\p{M}\p{N}\p{Pc}])(as|do|if|in|is|of|or|to|and|def|for|get|isa|new|not|out|ref|set|try|var|case|dict|else|enum|init|list|lock|null|pass|prop|self|true|uses|void|weak|when|array|async|break|class|const|event|false|final|owned|print|super|raise|while|yield|assert|delete|downto|except|extern|inline|params|public|raises|return|sealed|sizeof|static|struct|typeof|default|dynamic|ensures|finally|private|unowned|virtual|abstract|continue|delegate|internal|override|readonly|requires|volatile|construct|errordomain|interface|namespace|protected|implements)\b/dgv,name:"keyword.vala"},{match:/(?<=^|[^\.\@\p{L}\p{M}\p{N}\p{Pc}])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\b/dgv,name:"keyword.vala"},{match:/(#(?:if|elif|else|endif))/dgv,name:"keyword.vala"}]},strings:{patterns:[{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.vala"},{begin:/@"/dgv,end:/"/dgv,name:"string.quoted.interpolated.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"},{match:/\$[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"constant.character.escape.vala"},{match:/\$\(([^\(\)]|\(([^\(\)]|\([^\)]*\))*\))*\)/dgv,name:"constant.character.escape.vala"}]},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"}]},{begin:/'/dgv,end:/'/dgv,name:"string.quoted.single.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"}]},{match:/\/((\\\/)|([^\/]))*\/(?=\p{space}*[\n\)\,\.\;])/dgv,name:"string.regexp.vala"}]},types:{patterns:[{match:/(?<=^|[^\.\@\p{L}\p{M}\p{N}\p{Pc}])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\b/dgv,name:"storage.type.primitive.vala"},{match:/\b([A-Z]+[\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.type.vala"}]},variables:{patterns:[{match:/\b([_a-z]+[\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"variable.other.vala"}]}},scopeName:"source.genie",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/gherkin.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Gherkin",fileTypes:["feature"],firstLineMatch:/기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd([^\n]*)/dgv,foldingStartMarker:/^\p{space}*\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)/dgv,foldingStopMarker:/^\p{space}*(?=\n?$)/dgv,name:"gherkin",patterns:[{include:"#feature_element_keyword"},{include:"#feature_keyword"},{include:"#step_keyword"},{include:"#strings_triple_quote"},{include:"#strings_single_quote"},{include:"#strings_double_quote"},{include:"#comments"},{include:"#tags"},{include:"#scenario_outline_variable"},{include:"#table"}],repository:{comments:{captures:{"0":{name:"comment.line.number-sign"}},match:/^\p{space}*(#[^\n]*)/dgv},feature_element_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.scenario"},"2":{name:"string.language.gherkin.scenario.title.title"}},match:/^\p{space}*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):([^\n]*)/dgv},feature_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature"},"2":{name:"string.language.gherkin.feature.title"}},match:/^\p{space}*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):([^\n]*)\b/dgv},scenario_outline_variable:{match:/<[a-zA-Z0-9 _\-]*>/dgv,name:"variable.other"},step_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.step"}},match:/*@__PURE__*/ new EmulatedRegExp("^\\p{space}*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\* )","dgv",{"lazyCompile":true})},strings_double_quote:{begin:/(?<![a-zA-Z0-9'])"/dgv,end:/"(?![a-zA-Z0-9'])/dgv,name:"string.quoted.double",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.untitled"}]},strings_single_quote:{begin:/(?<![a-zA-Z0-9"])'/dgv,end:/'(?![a-zA-Z0-9"])/dgv,name:"string.quoted.single",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape"}]},strings_triple_quote:{begin:/"""[^\n]*/dgv,end:/"""/dgv,name:"string.quoted.single"},table:{begin:/^\p{space}*\|/dgv,end:/\|\p{space}*(?=\n?$)/dgv,name:"keyword.control.cucumber.table",patterns:[{match:/[\p{L}\p{M}\p{N}\p{Pc}]/dgv,name:"source"}]},tags:{captures:{"0":{name:"entity.name.type.class.tsx"}},match:/(@[^\@\r\n\t ]+)/dgv}},scopeName:"text.gherkin.feature",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"Gherkin",fileTypes:["feature"],firstLineMatch:/기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd([^\n]*)/dgv,foldingStartMarker:/^\p{space}*\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)/dgv,foldingStopMarker:/^\p{space}*(?=\n?$)/dgv,name:"gherkin",patterns:[{include:"#feature_element_keyword"},{include:"#feature_keyword"},{include:"#step_keyword"},{include:"#strings_triple_quote"},{include:"#strings_single_quote"},{include:"#strings_double_quote"},{include:"#comments"},{include:"#tags"},{include:"#scenario_outline_variable"},{include:"#table"}],repository:{comments:{captures:{"0":{name:"comment.line.number-sign"}},match:/^\p{space}*(#[^\n]*)/dgv},feature_element_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.scenario"},"2":{name:"string.language.gherkin.scenario.title.title"}},match:/^\p{space}*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):([^\n]*)/dgv},feature_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature"},"2":{name:"string.language.gherkin.feature.title"}},match:/^\p{space}*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):([^\n]*)\b/dgv},scenario_outline_variable:{match:/<[\- 0-9A-Z_a-z]*>/dgv,name:"variable.other"},step_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.step"}},match:/*@__PURE__*/ new EmulatedRegExp("^\\p{space}*((?:En|[EYو]|Եվ|Ya|Too right|Və|Həm|[AИ]|而且|并且|同时|並且|同時|Ak|Epi|A také|Og|😂|And|Kaj|Ja|Et que|Et qu'|Et|და|Und|Και|અને|וגם|और|तथा|És|Dan|Agus|かつ|Lan|ಮತ್ತು|'ej|latlh|그리고|AN|Un|Ir|an|a|Мөн|Тэгээд|Ond|7|ਅਤੇ|Aye|Oraz|Si|Și|Şi|К тому же|Также|An|A tiež|A taktiež|A zároveň|In|Ter|Och|மேலும்|மற்றும்|Һәм|Вә|మరియు|และ|Ve|І|А також|Та|اور|Ва|Và|Maar|لكن|Pero|Բայց|Peru|Yeah nah|Amma|Ancaq|Ali|Но|Però|但是|Men|Ale|😔|But|Sed|Kuid|Mutta|Mais que|Mais qu'|Mais|მაგ­რამ|Aber|Αλλά|પણ|אבל|पर|परन्तु|किन्तु|De|En|Tapi|Ach|Ma|しかし|但し|ただし|Nanging|Ananging|ಆದರೆ|'ach|'a|하지만|단|BUT|Bet|awer|mä|No|Tetapi|Гэхдээ|Харин|Ac|ਪਰ|اما|Avast!|Mas|Dar|А|Иначе|Buh|Али|Toda|Ampak|Vendar|ஆனால்|Ләкин|Әмма|కాని|แต่|Fakat|Ama|Але|لیکن|Лекин|Бирок|Аммо|Nhưng|Ond|Dan|اذاً|ثم|Alavez|Allora|Antonces|Ապա|Entós|But at the end of the day I reckon|O halda|Zatim|То|Aleshores|Cal|那么|那麼|Lè sa a|Le sa a|Onda|Pak|Så|🙏|Then|Do|Siis|Niin|Alors|Entón|Logo|მაშინ|Dann|Τότε|પછી|אז|אזי|तब|तदा|Akkor|Þá|Maka|Ansin|ならば|Njuk|Banjur|ನಂತರ|vaj|그러면|DEN|Tad|Tada|dann|Тогаш|Togash|Kemudian|Тэгэхэд|Үүний дараа|Tha|Þa|Ða|Tha the|Þa þe|Ða ðe|ਤਦ|آنگاه|Let go and haul|Wtedy|Então|Entao|Atunci|Затем|Тогда|Dun|Den youse gotta|Онда|Tak|Potom|Nato|Potem|Takrat|Entonces|அப்பொழுது|Нәтиҗәдә|అప్పుడు|ดังนั้น|O zaman|Тоді|پھر|تب|Унда|Thì|Yna|Wanneer|متى|عندما|Cuan|Եթե|Երբ|Cuando|It's just unbelievable|Əgər|Nə vaxt ki|Kada|Когато|Quan|[当當]|Lè|Le|Kad|Když|Når|Als|🎬|When|Se|Kui|Kun|Quand|Lorsque|Lorsqu'|Cando|როდესაც|Wenn|Όταν|ક્યારે|כאשר|जब|कदा|Majd|Ha|Amikor|Þegar|Ketika|Nuair a|Nuair nach|Nuair ba|Nuair nár|Quando|もし|Manawa|Menawa|ಸ್ಥಿತಿಯನ್ನು|qaSDI'|만일|만약|WEN|Ja|Kai|wann|Кога|Koga|Apabila|Хэрэв|Tha|Þa|Ða|ਜਦੋਂ|هنگامی|Blimey!|Jeżeli|Jeśli|Gdy|Kiedy|Cand|Când|Когда|Если|Wun|Youse know like when|Када|Кад|Keď|Ak|Ko|Ce|Če|Kadar|När|எப்போது|Әгәр|ఈ పరిస్థితిలో|เมื่อ|Eğer ki|Якщо|Коли|جب|Агар|Khi|Pryd|Gegewe|بفرض|Dau|Dada|Daus|Dadas|Դիցուք|Dáu|Daos|Daes|Y'know|Tutaq ki|Verilir|Dato|Дадено|Donat|Donada|Atès|Atesa|假如|假设|假定|假設|Sipoze|Sipoze ke|Sipoze Ke|Zadan|Zadani|Zadano|Pokud|Za předpokladu|Givet|Gegeven|Stel|😐|Given|Donitaĵo|Komence|Eeldades|Oletetaan|Soit|Etant donné que|Etant donné qu'|Etant donné|Etant donnée|Etant donnés|Etant données|Étant donné que|Étant donné qu'|Étant donné|Étant donnée|Étant donnés|Étant données|Dado|Dados|მოცემული|Angenommen|Gegeben sei|Gegeben seien|Δεδομένου|આપેલ છે|בהינתן|अगर|यदि|चूंकि|Amennyiben|Adott|Ef|Dengan|Cuir i gcás go|Cuir i gcás nach|Cuir i gcás gur|Cuir i gcás nár|Data|Dati|Date|前提|Nalika|Nalikaning|ನೀಡಿದ|ghu' noblu'|DaH ghu' bejlu'|조건|먼저|I CAN HAZ|Kad|Duota|ugeholl|Дадена|Dadeno|Dadena|Diberi|Bagi|Өгөгдсөн нь|Анх|Gitt|Thurh|Þurh|Ðurh|ਜੇਕਰ|ਜਿਵੇਂ ਕਿ|با فرض|Gangway!|Zakładając|Mając|Zakładając, że|Date fiind|Dat fiind|Dată fiind|Dati fiind|Dați fiind|Daţi fiind|Допустим|Дано|Пусть|Givun|Youse know when youse got|За дато|За дате|За дати|Za dato|Za date|Za dati|Pokiaľ|Za predpokladu|Dano|Podano|Zaradi|Privzeto|கொடுக்கப்பட்ட|Әйтик|చెప్పబడినది|กำหนดให้|Diyelim ki|Припустимо|Припустимо, що|Нехай|اگر|بالفرض|فرض کیا|Агар|Biết|Cho|Anrhegedig a|\\*) )","dgv",{"lazyCompile":true})},strings_double_quote:{begin:/(?<!['0-9A-Za-z])"/dgv,end:/"(?!['0-9A-Za-z])/dgv,name:"string.quoted.double",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.untitled"}]},strings_single_quote:{begin:/(?<!["0-9A-Za-z])'/dgv,end:/'(?!["0-9A-Za-z])/dgv,name:"string.quoted.single",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape"}]},strings_triple_quote:{begin:/"""[^\n]*/dgv,end:/"""/dgv,name:"string.quoted.single"},table:{begin:/^\p{space}*\|/dgv,end:/\|\p{space}*(?=\n?$)/dgv,name:"keyword.control.cucumber.table",patterns:[{match:/[\p{L}\p{M}\p{N}\p{Pc}]/dgv,name:"source"}]},tags:{captures:{"0":{name:"entity.name.type.class.tsx"}},match:/(@[^\t\n\r \@]+)/dgv}},scopeName:"text.gherkin.feature",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang
package/dist/gleam.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"Gleam",fileTypes:["gleam"],name:"gleam",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#constant"},{include:"#entity"},{include:"#discards"}],repository:{binary_number:{match:/\b0[bB]0*1[01_]*\b/dgv,name:"constant.numeric.binary.gleam",patterns:[]},comments:{patterns:[{match:/\/\/[^\n]*/dgv,name:"comment.line.gleam"}]},constant:{patterns:[{include:"#binary_number"},{include:"#octal_number"},{include:"#hexadecimal_number"},{include:"#decimal_number"},{match:/\p{Upper}[\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.gleam"}]},decimal_number:{match:/\b(0*[1-9][0-9_]*|0)(\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9][0-9]*)?)?\b/dgv,name:"constant.numeric.decimal.gleam",patterns:[]},discards:{match:/\b_(?:[\p{Alpha}\p{M}\p{Nd}\p{Pc}]+)?\b/dgv,name:"comment.unused.gleam"},entity:{patterns:[{begin:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*)\b\p{space}*\(/dgv,captures:{"1":{name:"entity.name.function.gleam"}},end:/\)/dgv,patterns:[{include:"$self"}]},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):\p{space}/dgv,name:"variable.parameter.gleam"},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):/dgv,name:"entity.name.namespace.gleam"}]},hexadecimal_number:{match:/\b0[xX]0*[1-9a-zA-Z][0-9a-zA-Z]*\b/dgv,name:"constant.numeric.hexadecimal.gleam",patterns:[]},keywords:{patterns:[{match:/\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic|else|try|echo)\b/dgv,name:"keyword.control.gleam"},{match:/(<-|->)/dgv,name:"keyword.operator.arrow.gleam"},{match:/\|>/dgv,name:"keyword.operator.pipe.gleam"},{match:/\.\./dgv,name:"keyword.operator.splat.gleam"},{match:/(==|!=)/dgv,name:"keyword.operator.comparison.gleam"},{match:/([\<\>](?:=\.|\.))/dgv,name:"keyword.operator.comparison.float.gleam"},{match:/(<=|>=|[\<\>])/dgv,name:"keyword.operator.comparison.int.gleam"},{match:/(&&|\|\|)/dgv,name:"keyword.operator.logical.gleam"},{match:/<>/dgv,name:"keyword.operator.string.gleam"},{match:/\|/dgv,name:"keyword.operator.other.gleam"},{match:/(\+\.|-\.|\/\.|\*\.)/dgv,name:"keyword.operator.arithmetic.float.gleam"},{match:/([\+\-\/\*\%])/dgv,name:"keyword.operator.arithmetic.int.gleam"},{match:/=/dgv,name:"keyword.operator.assignment.gleam"}]},octal_number:{match:/\b0[oO]0*[1-7][0-7]*\b/dgv,name:"constant.numeric.octal.gleam",patterns:[]},strings:{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.gleam",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.gleam"}]}},scopeName:"source.gleam",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"Gleam",fileTypes:["gleam"],name:"gleam",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#constant"},{include:"#entity"},{include:"#discards"}],repository:{binary_number:{match:/\b0[Bb]0*1[01_]*\b/dgv,name:"constant.numeric.binary.gleam",patterns:[]},comments:{patterns:[{match:/\/\/[^\n]*/dgv,name:"comment.line.gleam"}]},constant:{patterns:[{include:"#binary_number"},{include:"#octal_number"},{include:"#hexadecimal_number"},{include:"#decimal_number"},{match:/\p{Upper}[\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.gleam"}]},decimal_number:{match:/\b(0*[1-9][0-9_]*|0)(\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9][0-9]*)?)?\b/dgv,name:"constant.numeric.decimal.gleam",patterns:[]},discards:{match:/\b_(?:[\p{Alpha}\p{M}\p{Nd}\p{Pc}]+)?\b/dgv,name:"comment.unused.gleam"},entity:{patterns:[{begin:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*)\b\p{space}*\(/dgv,captures:{"1":{name:"entity.name.function.gleam"}},end:/\)/dgv,patterns:[{include:"$self"}]},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):\p{space}/dgv,name:"variable.parameter.gleam"},{match:/\b(\p{Lower}[\p{Alpha}\p{M}\p{Nd}\p{Pc}]*):/dgv,name:"entity.name.namespace.gleam"}]},hexadecimal_number:{match:/\b0[Xx]0*[1-9A-Za-z][0-9A-Za-z]*\b/dgv,name:"constant.numeric.hexadecimal.gleam",patterns:[]},keywords:{patterns:[{match:/\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic|else|try|echo)\b/dgv,name:"keyword.control.gleam"},{match:/(<-|->)/dgv,name:"keyword.operator.arrow.gleam"},{match:/\|>/dgv,name:"keyword.operator.pipe.gleam"},{match:/\.\./dgv,name:"keyword.operator.splat.gleam"},{match:/([\!\=]=)/dgv,name:"keyword.operator.comparison.gleam"},{match:/([\<\>](?:=|)\.)/dgv,name:"keyword.operator.comparison.float.gleam"},{match:/(<=|>=|[\<\>])/dgv,name:"keyword.operator.comparison.int.gleam"},{match:/(&&|\|\|)/dgv,name:"keyword.operator.logical.gleam"},{match:/<>/dgv,name:"keyword.operator.string.gleam"},{match:/\|/dgv,name:"keyword.operator.other.gleam"},{match:/([\-\*\+\/]\.)/dgv,name:"keyword.operator.arithmetic.float.gleam"},{match:/([\-\%\*\+\/])/dgv,name:"keyword.operator.arithmetic.int.gleam"},{match:/=/dgv,name:"keyword.operator.assignment.gleam"}]},octal_number:{match:/\b0[Oo]0*[1-7][0-7]*\b/dgv,name:"constant.numeric.octal.gleam",patterns:[]},strings:{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.gleam",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.gleam"}]}},scopeName:"source.gleam",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang