github-linguist 8.0.1 → 9.1.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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/go.mod.json +1 -1
  3. data/grammars/liquid.injection.json +1 -1
  4. data/grammars/markdown.vue.codeblock.json +1 -0
  5. data/grammars/mdx.vue.codeblock.json +1 -0
  6. data/grammars/source.QB64.json +1 -0
  7. data/grammars/source.abap.json +1 -1
  8. data/grammars/source.abl.json +1 -1
  9. data/grammars/source.angelscript.json +1 -1
  10. data/grammars/source.answersetprogramming.json +1 -0
  11. data/grammars/source.apacheconf.json +1 -0
  12. data/grammars/source.assembly.json +1 -1
  13. data/grammars/source.ats.json +1 -1
  14. data/grammars/source.basic.json +1 -1
  15. data/grammars/source.bb.json +1 -1
  16. data/grammars/source.brs.json +1 -1
  17. data/grammars/source.bsl.json +1 -1
  18. data/grammars/source.bst.json +1 -0
  19. data/grammars/source.c.linker.json +1 -0
  20. data/grammars/source.cairo0.json +1 -1
  21. data/grammars/source.cmake.json +1 -1
  22. data/grammars/source.cmakecache.json +1 -0
  23. data/grammars/source.cobol.json +1 -1
  24. data/grammars/source.cs.json +1 -1
  25. data/grammars/source.curry.json +1 -1
  26. data/grammars/source.dart.json +1 -1
  27. data/grammars/source.dds.dspf.json +1 -1
  28. data/grammars/source.erlang.json +1 -1
  29. data/grammars/source.fsharp.json +1 -1
  30. data/grammars/source.gdscript.json +1 -1
  31. data/grammars/source.git-revlist.json +1 -1
  32. data/grammars/source.gleam.json +1 -1
  33. data/grammars/source.graphql.json +1 -1
  34. data/grammars/source.hack.json +1 -1
  35. data/grammars/source.hcl.json +1 -1
  36. data/grammars/source.hcl.terraform.json +1 -1
  37. data/grammars/source.ice.json +1 -1
  38. data/grammars/source.ispc.json +1 -0
  39. data/grammars/source.jai.json +1 -0
  40. data/grammars/source.json.comments.json +1 -0
  41. data/grammars/source.julia.json +1 -1
  42. data/grammars/source.just.json +1 -1
  43. data/grammars/source.kdl.json +1 -0
  44. data/grammars/source.lean.markdown.json +1 -1
  45. data/grammars/source.lean4.markdown.json +1 -1
  46. data/grammars/source.luau.json +1 -1
  47. data/grammars/source.matlab.json +1 -1
  48. data/grammars/source.mdx.astro.json +1 -0
  49. data/grammars/source.mdx.json +1 -1
  50. data/grammars/source.mo.json +1 -1
  51. data/grammars/source.moonbit.json +1 -0
  52. data/grammars/source.msg.json +1 -0
  53. data/grammars/source.mzn.json +1 -0
  54. data/grammars/source.ned.json +1 -0
  55. data/grammars/source.nr.json +1 -1
  56. data/grammars/source.nushell.json +1 -1
  57. data/grammars/source.odin.json +1 -1
  58. data/grammars/source.openesql.json +1 -0
  59. data/grammars/source.overpassql.json +1 -0
  60. data/grammars/source.p4.json +1 -1
  61. data/grammars/source.polar.json +1 -1
  62. data/grammars/source.powerbuilder.json +1 -1
  63. data/grammars/source.prisma.json +1 -1
  64. data/grammars/source.purescript.json +1 -1
  65. data/grammars/source.ql.json +1 -1
  66. data/grammars/source.qsharp.json +1 -1
  67. data/grammars/source.rascal.json +1 -1
  68. data/grammars/source.rescript.json +1 -1
  69. data/grammars/source.rpgle.json +1 -1
  70. data/grammars/source.scala.json +1 -1
  71. data/grammars/source.scm.json +1 -0
  72. data/grammars/source.sdbl.json +1 -1
  73. data/grammars/source.slang.json +1 -0
  74. data/grammars/source.slice.json +1 -1
  75. data/grammars/source.sourcepawn.json +1 -1
  76. data/grammars/source.stan.json +1 -1
  77. data/grammars/source.swift.json +1 -1
  78. data/grammars/source.tact.json +1 -0
  79. data/grammars/source.talon.json +1 -1
  80. data/grammars/source.templ.json +1 -1
  81. data/grammars/source.textgrid.json +1 -1
  82. data/grammars/source.toc.json +1 -1
  83. data/grammars/source.ts.json +1 -1
  84. data/grammars/source.ts.prismaClientRawSQL.json +1 -1
  85. data/grammars/source.tsp.json +1 -0
  86. data/grammars/source.tsx.json +1 -1
  87. data/grammars/source.typst.json +1 -1
  88. data/grammars/source.vba.json +1 -1
  89. data/grammars/source.vue.json +1 -0
  90. data/grammars/source.wdl.json +1 -1
  91. data/grammars/source.xmake.json +1 -0
  92. data/grammars/text.adblock.json +1 -1
  93. data/grammars/text.html.liquid.json +1 -1
  94. data/grammars/text.html.markdown.d2.json +1 -1
  95. data/grammars/text.md.json +1 -1
  96. data/grammars/text.rtf.json +1 -1
  97. data/grammars/version +1 -1
  98. data/grammars/vue.directives.json +1 -0
  99. data/grammars/vue.interpolations.json +1 -0
  100. data/grammars/vue.sfc.style.variable.injection.json +1 -0
  101. data/lib/linguist/VERSION +1 -1
  102. data/lib/linguist/generated.rb +32 -1
  103. data/lib/linguist/generic.yml +1 -0
  104. data/lib/linguist/heuristics.yml +109 -25
  105. data/lib/linguist/languages.json +1 -1
  106. data/lib/linguist/languages.yml +232 -10
  107. data/lib/linguist/lazy_blob.rb +15 -7
  108. data/lib/linguist/repository.rb +18 -13
  109. data/lib/linguist/samples.json +1 -1
  110. data/lib/linguist/shebang.rb +1 -1
  111. data/lib/linguist/source/diff.rb +72 -0
  112. data/lib/linguist/source/repository.rb +64 -0
  113. data/lib/linguist/source/rugged.rb +95 -0
  114. metadata +34 -9
  115. data/grammars/source.apache-config.json +0 -1
  116. data/grammars/source.apache-config.mod_perl.json +0 -1
  117. data/grammars/source.cache.cmake.json +0 -1
  118. data/grammars/text.html.erlang.yaws.json +0 -1
  119. data/grammars/text.html.vue.json +0 -1
  120. data/grammars/text.mdx.astro.codeblock.json +0 -1
@@ -1 +1 @@
1
- {"name":"HashiCorp Terraform","scopeName":"source.hcl.terraform","patterns":[{"include":"#comments"},{"include":"#attribute_definition"},{"include":"#block"},{"include":"#expressions"}],"repository":{"attribute_access":{"begin":"\\.(?!\\*)","end":"[[:alpha:]][\\w-]*|\\d*","beginCaptures":{"0":{"name":"keyword.operator.accessor.hcl"}},"endCaptures":{"0":{"patterns":[{"name":"variable.other.member.hcl","match":"(?!null|false|true)[[:alpha:]][\\w-]*"},{"name":"constant.numeric.integer.hcl","match":"\\d+"}]}}},"attribute_definition":{"name":"variable.declaration.hcl","match":"(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\\u003e))\\s*","captures":{"1":{"name":"punctuation.section.parens.begin.hcl"},"2":{"name":"variable.other.readwrite.hcl"},"3":{"name":"punctuation.section.parens.end.hcl"},"4":{"name":"keyword.operator.assignment.hcl"}}},"attribute_splat":{"begin":"\\.","end":"\\*","beginCaptures":{"0":{"name":"keyword.operator.accessor.hcl"}},"endCaptures":{"0":{"name":"keyword.operator.splat.hcl"}}},"block":{"name":"meta.block.hcl","begin":"([\\w][\\-\\w]*)([\\s\\\"\\-\\w]*)(\\{)","end":"\\}","patterns":[{"include":"#comments"},{"include":"#attribute_definition"},{"include":"#block"},{"include":"#expressions"}],"beginCaptures":{"1":{"patterns":[{"name":"entity.name.type.terraform","match":"\\bdata|check|import|locals|module|output|provider|resource|terraform|variable\\b"},{"name":"entity.name.type.hcl","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"}]},"2":{"patterns":[{"name":"variable.other.enummember.hcl","match":"[\\\"\\-\\w]+"}]},"3":{"name":"punctuation.section.block.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.hcl"}}},"block_inline_comments":{"name":"comment.block.hcl","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.hcl"}}},"brackets":{"begin":"\\[","end":"\\]","patterns":[{"name":"keyword.operator.splat.hcl","match":"\\*"},{"include":"#comma"},{"include":"#comments"},{"include":"#inline_for_expression"},{"include":"#inline_if_expression"},{"include":"#expressions"},{"include":"#local_identifiers"}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.hcl"}}},"char_escapes":{"name":"constant.character.escape.hcl","match":"\\\\[nrt\"\\\\]|\\\\u([[:xdigit:]]{8}|[[:xdigit:]]{4})"},"comma":{"name":"punctuation.separator.hcl","match":"\\,"},"comments":{"patterns":[{"include":"#hash_line_comments"},{"include":"#double_slash_line_comments"},{"include":"#block_inline_comments"}]},"double_slash_line_comments":{"name":"comment.line.double-slash.hcl","begin":"//","end":"$\\n?","captures":{"0":{"name":"punctuation.definition.comment.hcl"}}},"expressions":{"patterns":[{"include":"#literal_values"},{"include":"#operators"},{"include":"#tuple_for_expression"},{"include":"#object_for_expression"},{"include":"#brackets"},{"include":"#objects"},{"include":"#attribute_access"},{"include":"#attribute_splat"},{"include":"#functions"},{"include":"#parens"}]},"for_expression_body":{"patterns":[{"name":"keyword.operator.word.hcl","match":"\\bin\\b"},{"name":"keyword.control.conditional.hcl","match":"\\bif\\b"},{"name":"keyword.operator.hcl","match":"\\:"},{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"include":"#local_identifiers"}]},"functions":{"name":"meta.function-call.hcl","begin":"([:\\-\\w]+)(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expressions"},{"include":"#comma"}],"beginCaptures":{"1":{"patterns":[{"name":"support.function.builtin.terraform","match":"\\b(core::)?(abs|abspath|alltrue|anytrue|base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|can|ceil|chomp|chunklist|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|coalesce|coalescelist|compact|concat|contains|csvdecode|dirname|distinct|element|endswith|file|filebase64|filebase64sha256|filebase64sha512|fileexists|filemd5|fileset|filesha1|filesha256|filesha512|flatten|floor|format|formatdate|formatlist|indent|index|join|jsondecode|jsonencode|keys|length|log|lookup|lower|matchkeys|max|md5|merge|min|nonsensitive|one|parseint|pathexpand|plantimestamp|pow|range|regex|regexall|replace|reverse|rsadecrypt|sensitive|setintersection|setproduct|setsubtract|setunion|sha1|sha256|sha512|signum|slice|sort|split|startswith|strcontains|strrev|substr|sum|templatefile|textdecodebase64|textencodebase64|timeadd|timecmp|timestamp|title|tobool|tolist|tomap|tonumber|toset|tostring|transpose|trim|trimprefix|trimspace|trimsuffix|try|upper|urlencode|uuid|uuidv5|values|yamldecode|yamlencode|zipmap)\\b"},{"name":"support.function.provider.terraform","match":"\\bprovider::[[:alpha:]][\\w_-]*::[[:alpha:]][\\w_-]*\\b"}]},"2":{"name":"punctuation.section.parens.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.hcl"}}},"hash_line_comments":{"name":"comment.line.number-sign.hcl","begin":"#","end":"$\\n?","captures":{"0":{"name":"punctuation.definition.comment.hcl"}}},"hcl_type_keywords":{"name":"storage.type.hcl","match":"\\b(any|string|number|bool|list|set|map|tuple|object)\\b"},"heredoc":{"name":"string.unquoted.heredoc.hcl","begin":"(\\\u003c\\\u003c\\-?)\\s*(\\w+)\\s*$","end":"^\\s*\\2\\s*$","patterns":[{"include":"#string_interpolation"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.hcl"},"2":{"name":"keyword.control.heredoc.hcl"}},"endCaptures":{"0":{"name":"keyword.control.heredoc.hcl"}}},"inline_for_expression":{"match":"(for)\\b(.*)\\n","captures":{"1":{"name":"keyword.control.hcl"},"2":{"patterns":[{"name":"storage.type.function.hcl","match":"\\=\\\u003e"},{"include":"#for_expression_body"}]}}},"inline_if_expression":{"begin":"(if)\\b","end":"\\n","patterns":[{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"include":"#local_identifiers"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.hcl"}}},"language_constants":{"name":"constant.language.hcl","match":"\\b(true|false|null)\\b"},"literal_values":{"patterns":[{"include":"#numeric_literals"},{"include":"#language_constants"},{"include":"#string_literals"},{"include":"#heredoc"},{"include":"#hcl_type_keywords"},{"include":"#named_value_references"}]},"local_identifiers":{"name":"variable.other.readwrite.hcl","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"},"named_value_references":{"name":"variable.other.readwrite.terraform","match":"\\b(var|local|module|data|path|terraform)\\b"},"numeric_literals":{"patterns":[{"name":"constant.numeric.float.hcl","match":"\\b\\d+([Ee][+-]?)\\d+\\b","captures":{"1":{"name":"punctuation.separator.exponent.hcl"}}},{"name":"constant.numeric.float.hcl","match":"\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b","captures":{"1":{"name":"punctuation.separator.decimal.hcl"},"2":{"name":"punctuation.separator.exponent.hcl"}}},{"name":"constant.numeric.integer.hcl","match":"\\b\\d+\\b"}]},"object_for_expression":{"begin":"(\\{)\\s?(for)\\b","end":"\\}","patterns":[{"name":"storage.type.function.hcl","match":"\\=\\\u003e"},{"include":"#for_expression_body"}],"beginCaptures":{"1":{"name":"punctuation.section.braces.begin.hcl"},"2":{"name":"keyword.control.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.hcl"}}},"object_key_values":{"patterns":[{"include":"#comments"},{"include":"#literal_values"},{"include":"#operators"},{"include":"#tuple_for_expression"},{"include":"#object_for_expression"},{"include":"#heredoc"},{"include":"#functions"}]},"objects":{"name":"meta.braces.hcl","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#objects"},{"include":"#inline_for_expression"},{"include":"#inline_if_expression"},{"match":"\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=\\\u003e?)\\s*","captures":{"1":{"name":"meta.mapping.key.hcl variable.other.readwrite.hcl"},"2":{"name":"keyword.operator.assignment.hcl","patterns":[{"name":"storage.type.function.hcl","match":"\\=\\\u003e"}]}}},{"match":"\\b((\").*(\"))\\s*(\\=)\\s*","captures":{"0":{"patterns":[{"include":"#named_value_references"}]},"1":{"name":"meta.mapping.key.hcl string.quoted.double.hcl"},"2":{"name":"punctuation.definition.string.begin.hcl"},"3":{"name":"punctuation.definition.string.end.hcl"},"4":{"name":"keyword.operator.hcl"}}},{"name":"meta.mapping.key.hcl","begin":"^\\s*\\(","end":"(\\))\\s*(=|:)\\s*","patterns":[{"include":"#named_value_references"},{"include":"#attribute_access"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.hcl"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.hcl"},"2":{"name":"keyword.operator.hcl"}}},{"include":"#object_key_values"}],"beginCaptures":{"0":{"name":"punctuation.section.braces.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.hcl"}}},"operators":{"patterns":[{"name":"keyword.operator.hcl","match":"\\\u003e\\="},{"name":"keyword.operator.hcl","match":"\\\u003c\\="},{"name":"keyword.operator.hcl","match":"\\=\\="},{"name":"keyword.operator.hcl","match":"\\!\\="},{"name":"keyword.operator.arithmetic.hcl","match":"\\+"},{"name":"keyword.operator.arithmetic.hcl","match":"\\-"},{"name":"keyword.operator.arithmetic.hcl","match":"\\*"},{"name":"keyword.operator.arithmetic.hcl","match":"\\/"},{"name":"keyword.operator.arithmetic.hcl","match":"\\%"},{"name":"keyword.operator.logical.hcl","match":"\\\u0026\\\u0026"},{"name":"keyword.operator.logical.hcl","match":"\\|\\|"},{"name":"keyword.operator.logical.hcl","match":"\\!"},{"name":"keyword.operator.hcl","match":"\\\u003e"},{"name":"keyword.operator.hcl","match":"\\\u003c"},{"name":"keyword.operator.hcl","match":"\\?"},{"name":"keyword.operator.hcl","match":"\\.\\.\\."},{"name":"keyword.operator.hcl","match":"\\:"},{"name":"keyword.operator.hcl","match":"\\=\\\u003e"}]},"parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.hcl"}}},"string_interpolation":{"name":"meta.interpolation.hcl","begin":"(?\u003c![%$])([%$]{)","end":"\\}","patterns":[{"name":"keyword.operator.template.left.trim.hcl","match":"\\~\\s"},{"name":"keyword.operator.template.right.trim.hcl","match":"\\s\\~"},{"name":"keyword.control.hcl","match":"\\b(if|else|endif|for|in|endfor)\\b"},{"include":"#expressions"},{"include":"#local_identifiers"}],"beginCaptures":{"1":{"name":"keyword.other.interpolation.begin.hcl"}},"endCaptures":{"0":{"name":"keyword.other.interpolation.end.hcl"}}},"string_literals":{"name":"string.quoted.double.hcl","begin":"\"","end":"\"","patterns":[{"include":"#string_interpolation"},{"include":"#char_escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.hcl"}}},"tuple_for_expression":{"begin":"(\\[)\\s?(for)\\b","end":"\\]","patterns":[{"include":"#for_expression_body"}],"beginCaptures":{"1":{"name":"punctuation.section.brackets.begin.hcl"},"2":{"name":"keyword.control.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.hcl"}}}}}
1
+ {"name":"HashiCorp Terraform","scopeName":"source.hcl.terraform","patterns":[{"include":"#comments"},{"include":"#attribute_definition"},{"include":"#block"},{"include":"#expressions"}],"repository":{"attribute_access":{"begin":"\\.(?!\\*)","end":"[[:alpha:]][\\w-]*|\\d*","beginCaptures":{"0":{"name":"keyword.operator.accessor.hcl"}},"endCaptures":{"0":{"patterns":[{"name":"variable.other.member.hcl","match":"(?!null|false|true)[[:alpha:]][\\w-]*"},{"name":"constant.numeric.integer.hcl","match":"\\d+"}]}}},"attribute_definition":{"name":"variable.declaration.hcl","match":"(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\\u003e))\\s*","captures":{"1":{"name":"punctuation.section.parens.begin.hcl"},"2":{"name":"variable.other.readwrite.hcl"},"3":{"name":"punctuation.section.parens.end.hcl"},"4":{"name":"keyword.operator.assignment.hcl"}}},"attribute_splat":{"begin":"\\.","end":"\\*","beginCaptures":{"0":{"name":"keyword.operator.accessor.hcl"}},"endCaptures":{"0":{"name":"keyword.operator.splat.hcl"}}},"block":{"name":"meta.block.hcl","begin":"([\\w][\\-\\w]*)([\\s\\\"\\-\\w]*)(\\{)","end":"\\}","patterns":[{"include":"#comments"},{"include":"#attribute_definition"},{"include":"#block"},{"include":"#expressions"}],"beginCaptures":{"1":{"patterns":[{"name":"entity.name.type.terraform","match":"\\bdata|check|import|locals|module|output|provider|resource|terraform|variable\\b"},{"name":"entity.name.type.hcl","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"}]},"2":{"patterns":[{"name":"variable.other.enummember.hcl","match":"[\\\"\\-\\w]+"}]},"3":{"name":"punctuation.section.block.begin.hcl"},"5":{"name":"punctuation.section.block.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.hcl"}}},"block_inline_comments":{"name":"comment.block.hcl","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.hcl"}}},"brackets":{"begin":"\\[","end":"\\]","patterns":[{"name":"keyword.operator.splat.hcl","match":"\\*"},{"include":"#comma"},{"include":"#comments"},{"include":"#inline_for_expression"},{"include":"#inline_if_expression"},{"include":"#expressions"},{"include":"#local_identifiers"}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.hcl"}}},"char_escapes":{"name":"constant.character.escape.hcl","match":"\\\\[nrt\"\\\\]|\\\\u([[:xdigit:]]{8}|[[:xdigit:]]{4})"},"comma":{"name":"punctuation.separator.hcl","match":"\\,"},"comments":{"patterns":[{"include":"#hash_line_comments"},{"include":"#double_slash_line_comments"},{"include":"#block_inline_comments"}]},"double_slash_line_comments":{"name":"comment.line.double-slash.hcl","begin":"//","end":"$\\n?","captures":{"0":{"name":"punctuation.definition.comment.hcl"}}},"expressions":{"patterns":[{"include":"#literal_values"},{"include":"#operators"},{"include":"#tuple_for_expression"},{"include":"#object_for_expression"},{"include":"#brackets"},{"include":"#objects"},{"include":"#attribute_access"},{"include":"#attribute_splat"},{"include":"#functions"},{"include":"#parens"}]},"for_expression_body":{"patterns":[{"name":"keyword.operator.word.hcl","match":"\\bin\\b"},{"name":"keyword.control.conditional.hcl","match":"\\bif\\b"},{"name":"keyword.operator.hcl","match":"\\:"},{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"include":"#local_identifiers"}]},"functions":{"name":"meta.function-call.hcl","begin":"([:\\-\\w]+)(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expressions"},{"include":"#comma"}],"beginCaptures":{"1":{"patterns":[{"name":"support.function.builtin.terraform","match":"\\b(core::)?(abs|abspath|alltrue|anytrue|base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|can|ceil|chomp|chunklist|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|coalesce|coalescelist|compact|concat|contains|csvdecode|dirname|distinct|element|endswith|file|filebase64|filebase64sha256|filebase64sha512|fileexists|filemd5|fileset|filesha1|filesha256|filesha512|flatten|floor|format|formatdate|formatlist|indent|index|join|jsondecode|jsonencode|keys|length|log|lookup|lower|matchkeys|max|md5|merge|min|nonsensitive|one|parseint|pathexpand|plantimestamp|pow|range|regex|regexall|replace|reverse|rsadecrypt|sensitive|setintersection|setproduct|setsubtract|setunion|sha1|sha256|sha512|signum|slice|sort|split|startswith|strcontains|strrev|substr|sum|templatefile|textdecodebase64|textencodebase64|timeadd|timecmp|timestamp|title|tobool|tolist|tomap|tonumber|toset|tostring|transpose|trim|trimprefix|trimspace|trimsuffix|try|upper|urlencode|uuid|uuidv5|values|yamldecode|yamlencode|zipmap)\\b"},{"name":"support.function.provider.terraform","match":"\\bprovider::[[:alpha:]][\\w_-]*::[[:alpha:]][\\w_-]*\\b"}]},"2":{"name":"punctuation.section.parens.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.hcl"}}},"hash_line_comments":{"name":"comment.line.number-sign.hcl","begin":"#","end":"$\\n?","captures":{"0":{"name":"punctuation.definition.comment.hcl"}}},"hcl_type_keywords":{"name":"storage.type.hcl","match":"\\b(any|string|number|bool|list|set|map|tuple|object)\\b"},"heredoc":{"name":"string.unquoted.heredoc.hcl","begin":"(\\\u003c\\\u003c\\-?)\\s*(\\w+)\\s*$","end":"^\\s*\\2\\s*$","patterns":[{"include":"#string_interpolation"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.hcl"},"2":{"name":"keyword.control.heredoc.hcl"}},"endCaptures":{"0":{"name":"keyword.control.heredoc.hcl"}}},"inline_for_expression":{"match":"(for)\\b(.*)\\n","captures":{"1":{"name":"keyword.control.hcl"},"2":{"patterns":[{"name":"storage.type.function.hcl","match":"\\=\\\u003e"},{"include":"#for_expression_body"}]}}},"inline_if_expression":{"begin":"(if)\\b","end":"\\n","patterns":[{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"include":"#local_identifiers"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.hcl"}}},"language_constants":{"name":"constant.language.hcl","match":"\\b(true|false|null)\\b"},"literal_values":{"patterns":[{"include":"#numeric_literals"},{"include":"#language_constants"},{"include":"#string_literals"},{"include":"#heredoc"},{"include":"#hcl_type_keywords"},{"include":"#named_value_references"}]},"local_identifiers":{"name":"variable.other.readwrite.hcl","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"},"named_value_references":{"name":"variable.other.readwrite.terraform","match":"\\b(var|local|module|data|path|terraform)\\b"},"numeric_literals":{"patterns":[{"name":"constant.numeric.float.hcl","match":"\\b\\d+([Ee][+-]?)\\d+\\b","captures":{"1":{"name":"punctuation.separator.exponent.hcl"}}},{"name":"constant.numeric.float.hcl","match":"\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b","captures":{"1":{"name":"punctuation.separator.decimal.hcl"},"2":{"name":"punctuation.separator.exponent.hcl"}}},{"name":"constant.numeric.integer.hcl","match":"\\b\\d+\\b"}]},"object_for_expression":{"begin":"(\\{)\\s?(for)\\b","end":"\\}","patterns":[{"name":"storage.type.function.hcl","match":"\\=\\\u003e"},{"include":"#for_expression_body"}],"beginCaptures":{"1":{"name":"punctuation.section.braces.begin.hcl"},"2":{"name":"keyword.control.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.hcl"}}},"object_key_values":{"patterns":[{"include":"#comments"},{"include":"#literal_values"},{"include":"#operators"},{"include":"#tuple_for_expression"},{"include":"#object_for_expression"},{"include":"#heredoc"},{"include":"#functions"}]},"objects":{"name":"meta.braces.hcl","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#objects"},{"include":"#inline_for_expression"},{"include":"#inline_if_expression"},{"match":"\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=\\\u003e?)\\s*","captures":{"1":{"name":"meta.mapping.key.hcl variable.other.readwrite.hcl"},"2":{"name":"keyword.operator.assignment.hcl","patterns":[{"name":"storage.type.function.hcl","match":"\\=\\\u003e"}]}}},{"match":"\\b((\").*(\"))\\s*(\\=)\\s*","captures":{"0":{"patterns":[{"include":"#named_value_references"}]},"1":{"name":"meta.mapping.key.hcl string.quoted.double.hcl"},"2":{"name":"punctuation.definition.string.begin.hcl"},"3":{"name":"punctuation.definition.string.end.hcl"},"4":{"name":"keyword.operator.hcl"}}},{"name":"meta.mapping.key.hcl","begin":"^\\s*\\(","end":"(\\))\\s*(=|:)\\s*","patterns":[{"include":"#named_value_references"},{"include":"#attribute_access"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.hcl"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.hcl"},"2":{"name":"keyword.operator.hcl"}}},{"include":"#object_key_values"}],"beginCaptures":{"0":{"name":"punctuation.section.braces.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.hcl"}}},"operators":{"patterns":[{"name":"keyword.operator.hcl","match":"\\\u003e\\="},{"name":"keyword.operator.hcl","match":"\\\u003c\\="},{"name":"keyword.operator.hcl","match":"\\=\\="},{"name":"keyword.operator.hcl","match":"\\!\\="},{"name":"keyword.operator.arithmetic.hcl","match":"\\+"},{"name":"keyword.operator.arithmetic.hcl","match":"\\-"},{"name":"keyword.operator.arithmetic.hcl","match":"\\*"},{"name":"keyword.operator.arithmetic.hcl","match":"\\/"},{"name":"keyword.operator.arithmetic.hcl","match":"\\%"},{"name":"keyword.operator.logical.hcl","match":"\\\u0026\\\u0026"},{"name":"keyword.operator.logical.hcl","match":"\\|\\|"},{"name":"keyword.operator.logical.hcl","match":"\\!"},{"name":"keyword.operator.hcl","match":"\\\u003e"},{"name":"keyword.operator.hcl","match":"\\\u003c"},{"name":"keyword.operator.hcl","match":"\\?"},{"name":"keyword.operator.hcl","match":"\\.\\.\\."},{"name":"keyword.operator.hcl","match":"\\:"},{"name":"keyword.operator.hcl","match":"\\=\\\u003e"}]},"parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.hcl"}}},"string_interpolation":{"name":"meta.interpolation.hcl","begin":"(?\u003c![%$])([%$]{)","end":"\\}","patterns":[{"name":"keyword.operator.template.left.trim.hcl","match":"\\~\\s"},{"name":"keyword.operator.template.right.trim.hcl","match":"\\s\\~"},{"name":"keyword.control.hcl","match":"\\b(if|else|endif|for|in|endfor)\\b"},{"include":"#expressions"},{"include":"#local_identifiers"}],"beginCaptures":{"1":{"name":"keyword.other.interpolation.begin.hcl"}},"endCaptures":{"0":{"name":"keyword.other.interpolation.end.hcl"}}},"string_literals":{"name":"string.quoted.double.hcl","begin":"\"","end":"\"","patterns":[{"include":"#string_interpolation"},{"include":"#char_escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.hcl"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.hcl"}}},"tuple_for_expression":{"begin":"(\\[)\\s?(for)\\b","end":"\\]","patterns":[{"include":"#for_expression_body"}],"beginCaptures":{"1":{"name":"punctuation.section.brackets.begin.hcl"},"2":{"name":"keyword.control.hcl"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.hcl"}}}}}
@@ -1 +1 @@
1
- {"name":"Slice","scopeName":"source.ice","patterns":[{"include":"#comment"},{"include":"#preprocessor"},{"include":"#metadata.global"},{"include":"#storage.module"}],"repository":{"annotation":{"name":"storage.type.annotation.ice","match":"(@)\\S*\\b","captures":{"1":{"name":"punctuation.definition.annotation.ice"}}},"comment":{"patterns":[{"include":"#comment.line"},{"include":"#comment.block"}]},"comment.block":{"name":"comment.block.ice","contentName":"text.ice","begin":"\\/\\*","end":"\\*\\/","patterns":[{"include":"#annotation"},{"include":"#link"},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.ice"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.ice"}}},"comment.line":{"name":"comment.line.ice","contentName":"text.ice","begin":"\\/\\/","end":"$","patterns":[{"include":"#annotation"},{"include":"#link"},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.line.begin.ice"}}},"constant":{"patterns":[{"include":"#constant.boolean"},{"include":"#constant.string"},{"include":"#constant.numeric.float"},{"include":"#constant.numeric.hex"},{"include":"#constant.numeric.oct"},{"include":"#constant.numeric.dec"}]},"constant.boolean":{"match":"\\b(?:(true)|(false))\\b","captures":{"0":{"name":"constant.language.ice"},"1":{"name":"constant.boolean.true.ice"},"2":{"name":"constant.boolean.false.ice"}}},"constant.numeric.dec":{"name":"constant.numeric.integer.ice","match":"(-|\\+)?\\b(?:0|[1-9]\\d*)\\b","captures":{"1":{"name":"punctuation.definition.numeric.sign.ice"}}},"constant.numeric.float":{"name":"constant.numeric.float.ice","match":"(-|\\+)?(?:\\d+(\\.)\\d*|\\d*(\\.)\\d+|\\d+(?=e|E|f|F))(?:(e|E)-?\\d+)?(f|F)?","captures":{"1":{"name":"punctuation.numeric.sign.ice"},"2":{"name":"punctuation.separator.decimal.ice"},"3":{"name":"punctuation.separator.decimal.ice"},"4":{"name":"punctuation.numeric.exponent.ice"},"5":{"name":"punctuation.definition.float.ice"}}},"constant.numeric.hex":{"name":"constant.numeric.hex.ice","match":"(-|\\+)?\\b(0x)[\\da-fA-F]+\\b","captures":{"1":{"name":"punctuation.definition.numeric.sign.ice"},"2":{"name":"punctuation.definition.numeric.hex.ice"}}},"constant.numeric.oct":{"name":"constant.numeric.octal.ice","match":"(-|\\+)?\\b(0)(\\d+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.sign.ice"},"2":{"name":"punctuation.definition.numeric.oct.ice"},"3":{"patterns":[{"name":"invalid.illegal.oct.ice","match":"[8-9]"}]}}},"constant.string":{"name":"string.quoted.double.ice","begin":"\"","end":"(\")|$","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}},"invalid":{"name":"invalid.illegal","match":"\\S"},"line.continuation":{"begin":"(\\\\)\\s*$","end":"^","beginCaptures":{"1":{"name":"punctuation.separator.continuation.backslash.ice"}}},"link":{"name":"variable.link.ice","match":"(\\b\\S*)?(#)\\S*\\b","captures":{"1":{"name":"punctuation.definition.link.ice"}}},"metadata":{"patterns":[{"include":"#metadata.global"},{"include":"#metadata.local"}]},"metadata.content":{"patterns":[{"include":"#standard"},{"begin":"(\")","end":"(?=\\])|(?\u003c=,)","patterns":[{"include":"#line.continuation"},{"name":"string.quoted.double.ice","match":"((?:[^\\\\\"]|\\\\.)+)","captures":{"1":{"patterns":[{"include":"#metadata.identifier"}]}}},{"begin":"(\")","end":"(?=\\])|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"name":"string.quoted.double.ice"},"1":{"name":"punctuation.definition.string.end.ice"}},"endCaptures":{"1":{"name":"punctuation.separator.metadata.ice"}}}],"beginCaptures":{"0":{"name":"string.quoted.double.ice"},"1":{"name":"punctuation.definition.string.begin.ice"}}}]},"metadata.global":{"name":"meta.metadata.global.ice","begin":"\\[\\[","end":"\\]\\]","patterns":[{"include":"#metadata.content"}],"beginCaptures":{"0":{"name":"punctuation.definition.metadata.global.begin.ice"}},"endCaptures":{"0":{"name":"punctuation.definition.metadata.global.end.ice"}}},"metadata.identifier":{"name":"entity.metadata.directive.ice","match":"\\S+"},"metadata.local":{"name":"meta.metadata.local.ice","begin":"\\[","end":"\\]","patterns":[{"include":"#metadata.content"}],"beginCaptures":{"0":{"name":"punctuation.definition.metadata.local.begin.ice"}},"endCaptures":{"0":{"name":"punctuation.definition.metadata.local.end.ice"}}},"preprocessor":{"patterns":[{"include":"#preprocessor.if"},{"include":"#preprocessor.ifdef"},{"include":"#preprocessor.ifndef"},{"include":"#preprocessor.elif"},{"include":"#preprocessor.else"},{"include":"#preprocessor.endif"},{"include":"#preprocessor.define"},{"include":"#preprocessor.undef"},{"include":"#preprocessor.include"},{"include":"#preprocessor.pragma"},{"include":"#preprocessor.line"},{"include":"#preprocessor.error"},{"include":"#preprocessor.null"}]},"preprocessor.define":{"name":"meta.preprocessor.define.ice","begin":"(#)\\s*define\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b(\\w+)((\\())","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"(?=\\))|(,)|($)","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}},"endCaptures":{"1":{"name":"punctuation.separator.parameter.preprocessor.ice"},"2":{"name":"invalid.mismatched.parenthesis.ice"}}},{"begin":"\\b\\w+\\b","end":"(?=\\))|((,))|($)","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"punctuation.variable.parameter.preprocessor.ice"}},"endCaptures":{"1":{"name":"punctuation.separator.parameter.preprocessor.ice"},"2":{"name":"invalid.trailing-comma.ice"},"3":{"name":"invalid.mismatched.parenthesis.ice"}}},{"begin":"(\\))","end":"$","patterns":[{"include":"#standardP"},{"name":"constant.preprocessor.ice","match":"\\S"}],"beginCaptures":{"0":{"name":"meta.group.parameters.preprocessor.ice"},"1":{"name":"punctuation.section.group.parameters.end.ice"}}}],"beginCaptures":{"1":{"patterns":[{"include":"#preprocessor.identifier"}]},"2":{"name":"meta.group.parameters.preprocessor.ice"},"3":{"name":"punctuation.section.group.parameters.begin.ice"}}},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"},{"name":"constant.preprocessor.ice","match":"\\S"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.define.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.elif":{"name":"meta.preprocessor.elif.ice","begin":"(#)\\s*elif\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.elif.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.else":{"name":"meta.preprocessor.endif.ice","begin":"(#)\\s*else\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.else.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.endif":{"name":"meta.preprocessor.endif.ice","begin":"(#)\\s*endif\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.endif.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.error":{"name":"meta.preprocessor.error.ice","begin":"((#)\\s*error)\\b","end":"$","patterns":[{"include":"#standardP"},{"name":"text.error.ice","match":"."}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.error.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.identifier":{"patterns":[{"name":"entity.identifier.preprocessor.ice","match":"\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"},{"include":"#invalid"}]},"preprocessor.if":{"name":"meta.preprocessor.if.ice","begin":"(#)\\s*if\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.if.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.ifdef":{"name":"meta.preprocessor.ifdef.ice","begin":"(#)\\s*ifdef\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.ifdef.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.ifndef":{"name":"meta.preprocessor.ifndef.ice","begin":"(#)\\s*ifndef\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.ifndef.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.include":{"name":"meta.preprocessor.include.ice","begin":"((#)\\s*include)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"(?\u003c=\"|\u003e)","end":"$","patterns":[{"include":"#standardP"}]},{"name":"string.quoted.double.ice","contentName":"entity.name.header.ice","begin":"\"","end":"(\")|($)","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}},{"name":"string.quoted.other.angle.ice","contentName":"entity.name.header.ice","begin":"\u003c","end":"(\u003e)|($)","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.include.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.line":{"name":"meta.preprocessor.line.ice","begin":"((#)\\s*line)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b[\\d]+\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"(?\u003c=\")","end":"$","patterns":[{"include":"#standardP"}]},{"name":"string.quoted.double.ice","contentName":"entity.name.file.ice","begin":"\"","end":"(\")|($)","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}}],"beginCaptures":{"0":{"patterns":[{"include":"#constant.numeric.dec"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.line.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.null":{"name":"meta.preprocessor.null.ice","begin":"(#)","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"punctuation.definition.preprocessor.ice"},"1":{"name":"keyword.control.preprocessor.null.ice"}}},"preprocessor.pragma":{"name":"meta.preprocessor.pragma.ice","begin":"((#)\\s*pragma)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\S+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.pragma.other.ice"}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.pragma.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.undef":{"name":"meta.preprocessor.undef.ice","begin":"((#)\\s*undef)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.undef.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"standard":{"patterns":[{"include":"#comment"},{"include":"#preprocessor"},{"include":"#line.continuation"}]},"standardP":{"patterns":[{"include":"#comment"},{"include":"#line.continuation"}]},"storage":{"patterns":[{"include":"#storage.module"},{"include":"#storage.enum"},{"include":"#storage.struct"},{"include":"#storage.sequence"},{"include":"#storage.dictionary"},{"include":"#storage.interface"},{"include":"#storage.exception"},{"include":"#storage.class"},{"include":"#storage.basic"}]},"storage.basic":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.bool.ice","begin":"\\\\?\\bbool\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.bool.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.byte.ice","begin":"\\\\?\\bbyte\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.byte.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.short.ice","begin":"\\\\?\\bshort\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.short.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.int.ice","begin":"\\\\?\\bint\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.int.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.long.ice","begin":"\\\\?\\blong\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.long.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.float.ice","begin":"\\\\?\\bfloat\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.float.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.double.ice","begin":"\\\\?\\bdouble\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.double.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.string.ice","begin":"\\\\?\\bstring\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.string.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.type.ice","begin":"\\\\?\\b[:\\w]+\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types.custom"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}}]},"storage.basic.assignment":{"patterns":[{"include":"#standard"},{"begin":"=","end":"(?=;|})","patterns":[{"include":"#standard"},{"include":"#constant"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.ice"}}}]},"storage.class":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.class.ice","begin":"(?\u003c!\\\\)\\bclass\\b","end":"(})|(;)","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=}|;)","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bextends\\b","end":"(?=})|((?=;))","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?=}|;)","patterns":[{"include":"#standard"},{"include":"#storage.class.implements"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}}},{"name":"invalid.illegal.missing-types.ice","include":"#storage.class.implements"}],"beginCaptures":{"0":{"name":"storage.modifier.extends.ice"}},"endCaptures":{"1":{"name":"invalid.illegal.missing-brace.ice"}}},{"include":"#storage.class.implements"}],"beginCaptures":{"0":{"name":"entity.name.class.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.class.ice"}},"endCaptures":{"1":{"name":"punctuation.section.block.end.ice"},"2":{"name":"punctuation.terminator.semicolon.ice"}}}]},"storage.class.body":{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.basic"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}},"storage.class.implements":{"patterns":[{"begin":"(?\u003c!\\\\)\\bimplements\\b","end":"(?=})|((?=;))","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?={|}|;)|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.class.implements.ice"}}},{"include":"#storage.class.body"}],"beginCaptures":{"0":{"name":"storage.modifier.implements.ice"}},"endCaptures":{"1":{"name":"invalid.illegal.missing-brace.ice"}}},{"include":"#storage.class.body"}]},"storage.dictionary":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.dictionary.ice","begin":"(?\u003c!\\\\)\\bdictionary\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"(\\\u003c)","end":"(?=;|})","patterns":[{"include":"#standard"},{"include":"#storage.modifier"},{"begin":"(\\\\?[:\\w]+)|(?=\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(,)|(?=\\\u003e)","end":"(?=;|{|})","patterns":[{"include":"#standard"},{"include":"#storage.modifier"},{"begin":"(\\\\?[:\\w]+)|(?=\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","beginCaptures":{"0":{"name":"entity.name.dictionary.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"meta.generic.dictionary.ice"},"1":{"name":"punctuation.definition.generic.end.ice"}}}],"beginCaptures":{"1":{"name":"meta.generic.dictionary.ice","patterns":[{"include":"#storage.types"}]},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"0":{"name":"meta.generic.dictionary.ice"},"1":{"name":"punctuation.separator.dictionary.ice"},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"1":{"name":"meta.generic.dictionary.ice","patterns":[{"include":"#storage.types"}]},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"0":{"name":"meta.generic.dictionary.ice"},"1":{"name":"punctuation.definition.generic.begin.ice"}}}],"beginCaptures":{"0":{"name":"storage.type.dictionary.ice"}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}}]},"storage.enum":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.enum.ice","begin":"(?\u003c!\\\\)\\benum\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"(?=\\[)","end":"(?\u003c=])","patterns":[{"include":"#standard"},{"include":"#metadata.local"}]},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})|(,)","patterns":[{"include":"#standard"},{"begin":"=","end":"(?=})|(?=,)","patterns":[{"include":"#standard"},{"include":"#constant"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.ice"}}}],"beginCaptures":{"0":{"name":"constant.other.enum.ice","patterns":[{"include":"#identifier"}]}},"endCaptures":{"1":{"name":"punctuation.separator.enum.ice"}}}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.enum.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.enum.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.exception":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.exception.ice","begin":"(?\u003c!\\\\)\\bexception\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bextends\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?={|})|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.exception.extends.ice"}}},{"include":"#storage.exception.body"}],"beginCaptures":{"0":{"name":"storage.modifier.extends.ice"}}},{"include":"#storage.exception.body"}],"beginCaptures":{"0":{"name":"entity.name.exception.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.exception.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.exception.body":{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.basic"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}},"storage.identifier":{"patterns":[{"name":"invalid.illegal.reserved.identifier.ice","match":"(?\u003c!\\\\)\\b(?:bool|byte|class|const|dictionary|double|enum|exception|extends|false|float|idempotent|implements|int|interface|local|LocalObject|long|module|Object|optional|out|sequence|short|string|struct|throws|true|Value|void)\\b"},{"match":"(\\\\)?\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b","captures":{"1":{"name":"punctuation.escape.backslash.ice"},"2":{"patterns":[{"name":"invalid.illegal.underscore.ice","match":"__+|\\b_|_\\b"}]}}},{"name":"invalid.illegal.identifier.ice","match":"."}]},"storage.interface":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.interface.ice","begin":"(?\u003c!\\\\)\\binterface\\b","end":"(})|(;)","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=}|;)","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bextends\\b","end":"(?=})|((?=;))","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?={|}|;)|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.interface.extends.ice"}}},{"include":"#storage.interface.body"}],"beginCaptures":{"0":{"name":"storage.modifier.extends.ice"}},"endCaptures":{"1":{"name":"invalid.illegal.missing-brace.ice"}}},{"include":"#storage.interface.body"}],"beginCaptures":{"0":{"name":"entity.name.interface.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.interface.ice"}},"endCaptures":{"1":{"name":"punctuation.section.block.end.ice"},"2":{"name":"punctuation.terminator.semicolon.ice"}}}]},"storage.interface.body":{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.operation"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}},"storage.modifier":{"patterns":[{"begin":"(?=\\[)","end":"(?\u003c=])","patterns":[{"include":"#standard"},{"include":"#metadata.local"}]},{"match":"(?\u003c!\\\\)\\b(?:(local)|(const)|(idempotent)|(out)|(optional\\([-a-zA-Z0-9_:]*\\)))(?:\\b|(?\u003c=\\)))","captures":{"1":{"name":"storage.modifier.local.ice"},"2":{"name":"storage.modifier.const.ice"},"3":{"name":"storage.modifier.idempotent.ice"},"4":{"name":"storage.modifier.out.ice"},"5":{"patterns":[{"match":"(optional)(\\()([-a-zA-Z0-9_:]*)(\\))","captures":{"1":{"name":"storage.modifier.optional.ice"},"2":{"name":"punctuation.section.group.optional.begin.ice"},"3":{"patterns":[{"include":"#constant.numeric.oct"},{"include":"#constant.numeric.dec"},{"include":"#constant.numeric.hex"},{"include":"#storage.types.custom"}]},"4":{"name":"punctuation.section.group.optional.end.ice"}}}]}}}]},"storage.module":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.module.ice","begin":"(?\u003c!\\\\)\\bmodule\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.module.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.module.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.operation":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.operation.ice","begin":"\\\\?[:\\w]+","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\(","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bthrows\\b","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?=;|})|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.operation.throws.ice"}}}],"beginCaptures":{"0":{"name":"storage.modifier.throws.ice"}}}],"beginCaptures":{"0":{"name":"punctuation.section.group.operation.parameters.end.ice"}}},{"include":"#storage.modifier"},{"begin":"\\\\?[:\\w]+","end":"(?=\\))|(?\u003c=,)","patterns":[{"begin":"\\\\?\\b\\w+\\b","end":"(?=\\))|(,)","beginCaptures":{"0":{"name":"entity.name.operation.parameter","patterns":[{"include":"#storage.identifier"}]}},"endCaptures":{"1":{"name":"punctuation.separator.operation.parameter.ice"}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}}}],"beginCaptures":{"0":{"name":"punctuation.section.group.operation.parameters.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.function.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types.void"},{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing-brace.ice"}}}]},"storage.sequence":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.sequence.ice","begin":"(?\u003c!\\\\)\\bsequence\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"(\\\u003c)","end":"(?=;|})","patterns":[{"include":"#standard"},{"include":"#storage.modifier"},{"begin":"(\\\\?[:\\w]+)|(?=\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","beginCaptures":{"0":{"name":"entity.name.sequence.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"meta.generic.sequence.ice"},"1":{"name":"punctuation.definition.generic.end.ice"}}}],"beginCaptures":{"1":{"name":"meta.generic.sequence.ice","patterns":[{"include":"#storage.types"}]},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"0":{"name":"meta.generic.sequence.ice"},"1":{"name":"punctuation.definition.generic.begin.ice"}}}],"beginCaptures":{"0":{"name":"storage.type.sequence.ice"}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}}]},"storage.struct":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.struct.ice","begin":"(?\u003c!\\\\)\\bstruct\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.basic"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.struct.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.struct.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.types":{"patterns":[{"match":"(\\\\)?\\b(?:(bool)|(byte)|(short)|(int)|(long)|(float)|(double)|(string)|(Object)|(LocalObject)|(Value))\\b","captures":{"1":{"name":"punctuation.escape.backslash.ice"},"10":{"name":"storage.type.object.ice"},"11":{"name":"storage.type.localobject.ice"},"12":{"name":"storage.type.value.ice"},"2":{"name":"storage.type.bool.ice"},"3":{"name":"storage.type.byte.ice"},"4":{"name":"storage.type.short.ice"},"5":{"name":"storage.type.int.ice"},"6":{"name":"storage.type.long.ice"},"7":{"name":"storage.type.float.ice"},"8":{"name":"storage.type.double.ice"},"9":{"name":"storage.type.string.ice"}}},{"include":"#storage.types.custom"}]},"storage.types.custom":{"patterns":[{"match":"(\\\\)?([:\\w]+)","captures":{"1":{"name":"punctuation.escape.backslash.ice"},"2":{"patterns":[{"name":"variable.type.ice","match":"\\w+"},{"name":"punctuation.accessor.ice","match":"::"},{"name":"invalid.illegal.accessor.ice","match":":"}]}}},{"include":"#invalid"}]},"storage.types.void":{"name":"storage.type.void.ice","match":"(\\\\)?\\bvoid\\b","captures":{"1":{"name":"punctuation.escape.backslash.ice"}}}}}
1
+ {"name":"Slice","scopeName":"source.ice","patterns":[{"include":"#standard"},{"include":"#metadata"},{"include":"#constant"},{"include":"#storage.module"},{"include":"#storage.enum"},{"include":"#storage.struct"},{"include":"#storage.sequence"},{"include":"#storage.dictionary"},{"include":"#storage.interface"},{"include":"#storage.exception"},{"include":"#storage.class"},{"include":"#storage.operation"}],"repository":{"annotation":{"name":"storage.type.annotation.ice","match":"(@)\\S*\\b","captures":{"1":{"name":"punctuation.definition.annotation.ice"}}},"comment":{"patterns":[{"include":"#comment.line"},{"include":"#comment.block"}]},"comment.block":{"name":"comment.block.ice","contentName":"text.ice","begin":"\\/\\*","end":"\\*\\/","patterns":[{"include":"#annotation"},{"include":"#link"},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.ice"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.ice"}}},"comment.line":{"name":"comment.line.ice","contentName":"text.ice","begin":"\\/\\/","end":"$","patterns":[{"include":"#annotation"},{"include":"#link"},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.line.begin.ice"}}},"constant":{"patterns":[{"include":"#constant.boolean"},{"include":"#constant.string"},{"include":"#constant.numeric.float"},{"include":"#constant.numeric.hex"},{"include":"#constant.numeric.oct"},{"include":"#constant.numeric.dec"}]},"constant.boolean":{"match":"\\b(?:(true)|(false))\\b","captures":{"0":{"name":"constant.language.ice"},"1":{"name":"constant.boolean.true.ice"},"2":{"name":"constant.boolean.false.ice"}}},"constant.numeric.dec":{"name":"constant.numeric.integer.ice","match":"(-|\\+)?\\b(?:0|[1-9]\\d*)\\b","captures":{"1":{"name":"punctuation.definition.numeric.sign.ice"}}},"constant.numeric.float":{"name":"constant.numeric.float.ice","match":"(-|\\+)?(?:\\d+(\\.)\\d*|\\d*(\\.)\\d+|\\d+(?=e|E|f|F))(?:(e|E)-?\\d+)?(f|F)?","captures":{"1":{"name":"punctuation.numeric.sign.ice"},"2":{"name":"punctuation.separator.decimal.ice"},"3":{"name":"punctuation.separator.decimal.ice"},"4":{"name":"punctuation.numeric.exponent.ice"},"5":{"name":"punctuation.definition.float.ice"}}},"constant.numeric.hex":{"name":"constant.numeric.hex.ice","match":"(-|\\+)?\\b(0x)[\\da-fA-F]+\\b","captures":{"1":{"name":"punctuation.definition.numeric.sign.ice"},"2":{"name":"punctuation.definition.numeric.hex.ice"}}},"constant.numeric.oct":{"name":"constant.numeric.octal.ice","match":"(-|\\+)?\\b(0)(\\d+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.sign.ice"},"2":{"name":"punctuation.definition.numeric.oct.ice"},"3":{"patterns":[{"name":"invalid.illegal.oct.ice","match":"[8-9]"}]}}},"constant.string":{"name":"string.quoted.double.ice","begin":"\"","end":"(\")|$","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}},"invalid":{"name":"invalid.illegal","match":"\\S"},"line.continuation":{"begin":"(\\\\)\\s*$","end":"^","beginCaptures":{"1":{"name":"punctuation.separator.continuation.backslash.ice"}}},"link":{"name":"variable.link.ice","match":"(\\b\\S*)?(#)\\S*\\b","captures":{"1":{"name":"punctuation.definition.link.ice"}}},"metadata":{"patterns":[{"include":"#metadata.global"},{"include":"#metadata.local"}]},"metadata.content":{"patterns":[{"include":"#standard"},{"begin":"(\")","end":"(?=\\])|(?\u003c=,)","patterns":[{"include":"#line.continuation"},{"name":"string.quoted.double.ice","match":"((?:[^\\\\\"]|\\\\.)+)","captures":{"1":{"patterns":[{"include":"#metadata.identifier"}]}}},{"begin":"(\")","end":"(?=\\])|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"name":"string.quoted.double.ice"},"1":{"name":"punctuation.definition.string.end.ice"}},"endCaptures":{"1":{"name":"punctuation.separator.metadata.ice"}}}],"beginCaptures":{"0":{"name":"string.quoted.double.ice"},"1":{"name":"punctuation.definition.string.begin.ice"}}}]},"metadata.global":{"name":"meta.metadata.global.ice","begin":"\\[\\[","end":"\\]\\]","patterns":[{"include":"#metadata.content"}],"beginCaptures":{"0":{"name":"punctuation.definition.metadata.global.begin.ice"}},"endCaptures":{"0":{"name":"punctuation.definition.metadata.global.end.ice"}}},"metadata.identifier":{"name":"entity.metadata.directive.ice","match":"\\S+"},"metadata.local":{"name":"meta.metadata.local.ice","begin":"\\[","end":"\\]","patterns":[{"include":"#metadata.content"}],"beginCaptures":{"0":{"name":"punctuation.definition.metadata.local.begin.ice"}},"endCaptures":{"0":{"name":"punctuation.definition.metadata.local.end.ice"}}},"preprocessor":{"patterns":[{"include":"#preprocessor.ifdef"},{"include":"#preprocessor.ifndef"},{"include":"#preprocessor.if"},{"include":"#preprocessor.elif"},{"include":"#preprocessor.else"},{"include":"#preprocessor.endif"},{"include":"#preprocessor.define"},{"include":"#preprocessor.undef"},{"include":"#preprocessor.include"},{"include":"#preprocessor.pragma"},{"include":"#preprocessor.line"},{"include":"#preprocessor.error"},{"include":"#preprocessor.null"}]},"preprocessor.define":{"name":"meta.preprocessor.define.ice","begin":"(#)\\s*define\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b(\\w+)((\\())","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"(?=\\))|(,)|($)","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}},"endCaptures":{"1":{"name":"punctuation.separator.parameter.preprocessor.ice"},"2":{"name":"invalid.mismatched.parenthesis.ice"}}},{"begin":"\\b\\w+\\b","end":"(?=\\))|((,))|($)","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"punctuation.variable.parameter.preprocessor.ice"}},"endCaptures":{"1":{"name":"punctuation.separator.parameter.preprocessor.ice"},"2":{"name":"invalid.trailing-comma.ice"},"3":{"name":"invalid.mismatched.parenthesis.ice"}}},{"begin":"(\\))","end":"$","patterns":[{"include":"#standardP"},{"name":"constant.preprocessor.ice","match":"\\S"}],"beginCaptures":{"0":{"name":"meta.group.parameters.preprocessor.ice"},"1":{"name":"punctuation.section.group.parameters.end.ice"}}}],"beginCaptures":{"1":{"patterns":[{"include":"#preprocessor.identifier"}]},"2":{"name":"meta.group.parameters.preprocessor.ice"},"3":{"name":"punctuation.section.group.parameters.begin.ice"}}},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"},{"name":"constant.preprocessor.ice","match":"\\S"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.define.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.elif":{"name":"meta.preprocessor.elif.ice","begin":"(#)\\s*elif\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.elif.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.else":{"name":"meta.preprocessor.endif.ice","begin":"(#)\\s*else\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.else.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.endif":{"name":"meta.preprocessor.endif.ice","begin":"(#)\\s*endif\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.endif.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.error":{"name":"meta.preprocessor.error.ice","begin":"((#)\\s*error)\\b","end":"$","patterns":[{"include":"#standardP"},{"name":"text.error.ice","match":"."}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.error.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.identifier":{"patterns":[{"name":"entity.identifier.preprocessor.ice","match":"\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"},{"include":"#invalid"}]},"preprocessor.if":{"name":"meta.preprocessor.if.ice","begin":"(#)\\s*if\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.if.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.ifdef":{"name":"meta.preprocessor.ifdef.ice","begin":"(#)\\s*ifdef\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.ifdef.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.ifndef":{"name":"meta.preprocessor.ifndef.ice","begin":"(#)\\s*ifndef\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.ifndef.ice"},"1":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.include":{"name":"meta.preprocessor.include.ice","begin":"((#)\\s*include)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"(?\u003c=\"|\u003e)","end":"$","patterns":[{"include":"#standardP"}]},{"name":"string.quoted.double.ice","contentName":"entity.name.header.ice","begin":"\"","end":"(\")|($)","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}},{"name":"string.quoted.other.angle.ice","contentName":"entity.name.header.ice","begin":"\u003c","end":"(\u003e)|($)","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.include.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.line":{"name":"meta.preprocessor.line.ice","begin":"((#)\\s*line)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b[\\d]+\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"(?\u003c=\")","end":"$","patterns":[{"include":"#standardP"}]},{"name":"string.quoted.double.ice","contentName":"entity.name.file.ice","begin":"\"","end":"(\")|($)","patterns":[{"match":"\\\\."},{"include":"#line.continuation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ice"},"2":{"name":"invalid.illegal.mismatched-quotes.ice"}}}],"beginCaptures":{"0":{"patterns":[{"include":"#constant.numeric.dec"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.line.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.null":{"name":"meta.preprocessor.null.ice","begin":"(#)","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"punctuation.definition.preprocessor.ice"},"1":{"name":"keyword.control.preprocessor.null.ice"}}},"preprocessor.pragma":{"name":"meta.preprocessor.pragma.ice","begin":"((#)\\s*pragma)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\S+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"name":"keyword.control.preprocessor.pragma.other.ice"}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.pragma.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"preprocessor.undef":{"name":"meta.preprocessor.undef.ice","begin":"((#)\\s*undef)\\b","end":"$","patterns":[{"include":"#standardP"},{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#standardP"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.undef.ice"},"2":{"name":"punctuation.definition.preprocessor.ice"}}},"standard":{"patterns":[{"include":"#comment"},{"include":"#preprocessor"},{"include":"#line.continuation"}]},"standardP":{"patterns":[{"include":"#comment"},{"include":"#line.continuation"}]},"storage":{"patterns":[{"include":"#storage.module"},{"include":"#storage.enum"},{"include":"#storage.struct"},{"include":"#storage.sequence"},{"include":"#storage.dictionary"},{"include":"#storage.interface"},{"include":"#storage.exception"},{"include":"#storage.class"},{"include":"#storage.basic"}]},"storage.basic":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.bool.ice","begin":"\\\\?\\bbool\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.bool.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.byte.ice","begin":"\\\\?\\bbyte\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.byte.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.short.ice","begin":"\\\\?\\bshort\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.short.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.int.ice","begin":"\\\\?\\bint\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.int.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.long.ice","begin":"\\\\?\\blong\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.long.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.float.ice","begin":"\\\\?\\bfloat\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.float.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.double.ice","begin":"\\\\?\\bdouble\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.double.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.string.ice","begin":"\\\\?\\bstring\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.string.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}},{"name":"meta.type.ice","begin":"\\\\?\\b[:\\w]+\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#storage.basic.assignment"}],"beginCaptures":{"0":{"name":"entity.name.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types.custom"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}}]},"storage.basic.assignment":{"patterns":[{"include":"#standard"},{"begin":"=","end":"(?=;|})","patterns":[{"include":"#standard"},{"include":"#constant"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.ice"}}}]},"storage.class":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.class.ice","begin":"(?\u003c!\\\\)\\bclass\\b","end":"(})|(;)","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=}|;)","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bextends\\b","end":"(?=})|((?=;))","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?=}|;)","patterns":[{"include":"#standard"},{"include":"#storage.class.implements"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}}},{"name":"invalid.illegal.missing-types.ice","include":"#storage.class.implements"}],"beginCaptures":{"0":{"name":"storage.modifier.extends.ice"}},"endCaptures":{"1":{"name":"invalid.illegal.missing-brace.ice"}}},{"include":"#storage.class.implements"}],"beginCaptures":{"0":{"name":"entity.name.class.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.class.ice"}},"endCaptures":{"1":{"name":"punctuation.section.block.end.ice"},"2":{"name":"punctuation.terminator.semicolon.ice"}}}]},"storage.class.body":{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.basic"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}},"storage.class.implements":{"patterns":[{"begin":"(?\u003c!\\\\)\\bimplements\\b","end":"(?=})|((?=;))","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?={|}|;)|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.class.implements.ice"}}},{"include":"#storage.class.body"}],"beginCaptures":{"0":{"name":"storage.modifier.implements.ice"}},"endCaptures":{"1":{"name":"invalid.illegal.missing-brace.ice"}}},{"include":"#storage.class.body"}]},"storage.dictionary":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.dictionary.ice","begin":"(?\u003c!\\\\)\\bdictionary\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"(\\\u003c)","end":"(?=;|})","patterns":[{"include":"#standard"},{"include":"#storage.modifier"},{"begin":"(\\\\?[:\\w]+)|(?=\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(,)|(?=\\\u003e)","end":"(?=;|{|})","patterns":[{"include":"#standard"},{"include":"#storage.modifier"},{"begin":"(\\\\?[:\\w]+)|(?=\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","beginCaptures":{"0":{"name":"entity.name.dictionary.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"meta.generic.dictionary.ice"},"1":{"name":"punctuation.definition.generic.end.ice"}}}],"beginCaptures":{"1":{"name":"meta.generic.dictionary.ice","patterns":[{"include":"#storage.types"}]},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"0":{"name":"meta.generic.dictionary.ice"},"1":{"name":"punctuation.separator.dictionary.ice"},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"1":{"name":"meta.generic.dictionary.ice","patterns":[{"include":"#storage.types"}]},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"0":{"name":"meta.generic.dictionary.ice"},"1":{"name":"punctuation.definition.generic.begin.ice"}}}],"beginCaptures":{"0":{"name":"storage.type.dictionary.ice"}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}}]},"storage.enum":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.enum.ice","begin":"(?\u003c!\\\\)\\benum\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"(?=\\[)","end":"(?\u003c=])","patterns":[{"include":"#standard"},{"include":"#metadata.local"}]},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})|(,)","patterns":[{"include":"#standard"},{"begin":"=","end":"(?=})|(?=,)","patterns":[{"include":"#standard"},{"include":"#constant"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.ice"}}}],"beginCaptures":{"0":{"name":"constant.other.enum.ice","patterns":[{"include":"#identifier"}]}},"endCaptures":{"1":{"name":"punctuation.separator.enum.ice"}}}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.enum.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.enum.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.exception":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.exception.ice","begin":"(?\u003c!\\\\)\\bexception\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bextends\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?={|})|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.exception.extends.ice"}}},{"include":"#storage.exception.body"}],"beginCaptures":{"0":{"name":"storage.modifier.extends.ice"}}},{"include":"#storage.exception.body"}],"beginCaptures":{"0":{"name":"entity.name.exception.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.exception.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.exception.body":{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.basic"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}},"storage.identifier":{"patterns":[{"name":"invalid.illegal.reserved.identifier.ice","match":"(?\u003c!\\\\)\\b(?:bool|byte|class|const|dictionary|double|enum|exception|extends|false|float|idempotent|implements|int|interface|local|LocalObject|long|module|Object|optional|out|sequence|short|string|struct|throws|true|Value|void)\\b"},{"match":"(\\\\)?\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b","captures":{"1":{"name":"punctuation.escape.backslash.ice"},"2":{"patterns":[{"name":"invalid.illegal.underscore.ice","match":"__+|\\b_|_\\b"}]}}},{"name":"invalid.illegal.identifier.ice","match":"."}]},"storage.interface":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.interface.ice","begin":"(?\u003c!\\\\)\\binterface\\b","end":"(})|(;)","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=}|;)","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bextends\\b","end":"(?=})|((?=;))","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?={|}|;)|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.interface.extends.ice"}}},{"include":"#storage.interface.body"}],"beginCaptures":{"0":{"name":"storage.modifier.extends.ice"}},"endCaptures":{"1":{"name":"invalid.illegal.missing-brace.ice"}}},{"include":"#storage.interface.body"}],"beginCaptures":{"0":{"name":"entity.name.interface.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.interface.ice"}},"endCaptures":{"1":{"name":"punctuation.section.block.end.ice"},"2":{"name":"punctuation.terminator.semicolon.ice"}}}]},"storage.interface.body":{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.operation"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}},"storage.modifier":{"patterns":[{"begin":"(?=\\[)","end":"(?\u003c=])","patterns":[{"include":"#standard"},{"include":"#metadata.local"}]},{"match":"(?\u003c!\\\\)\\b(?:(local)|(const)|(idempotent)|(out)|(optional\\([-a-zA-Z0-9_:]*\\)))(?:\\b|(?\u003c=\\)))","captures":{"1":{"name":"storage.modifier.local.ice"},"2":{"name":"storage.modifier.const.ice"},"3":{"name":"storage.modifier.idempotent.ice"},"4":{"name":"storage.modifier.out.ice"},"5":{"patterns":[{"match":"(optional)(\\()([-a-zA-Z0-9_:]*)(\\))","captures":{"1":{"name":"storage.modifier.optional.ice"},"2":{"name":"punctuation.section.group.optional.begin.ice"},"3":{"patterns":[{"include":"#constant.numeric.oct"},{"include":"#constant.numeric.dec"},{"include":"#constant.numeric.hex"},{"include":"#storage.types.custom"}]},"4":{"name":"punctuation.section.group.optional.end.ice"}}}]}}}]},"storage.module":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.module.ice","begin":"(?\u003c!\\\\)\\bmodule\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.module.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.module.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.operation":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.operation.ice","begin":"\\\\?[:\\w]+","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\(","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(?\u003c!\\\\)\\bthrows\\b","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\\\?[:\\w]+","end":"(?=;|})|(,)","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.separator.operation.throws.ice"}}}],"beginCaptures":{"0":{"name":"storage.modifier.throws.ice"}}}],"beginCaptures":{"0":{"name":"punctuation.section.group.operation.parameters.end.ice"}}},{"include":"#storage.modifier"},{"begin":"\\\\?[:\\w]+","end":"(?=\\))|(?\u003c=,)","patterns":[{"begin":"\\\\?\\b\\w+\\b","end":"(?=\\))|(,)","beginCaptures":{"0":{"name":"entity.name.operation.parameter","patterns":[{"include":"#storage.identifier"}]}},"endCaptures":{"1":{"name":"punctuation.separator.operation.parameter.ice"}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types"}]}}}],"beginCaptures":{"0":{"name":"punctuation.section.group.operation.parameters.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.function.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.types.void"},{"include":"#storage.types"}]}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing-brace.ice"}}}]},"storage.sequence":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.sequence.ice","begin":"(?\u003c!\\\\)\\bsequence\\b","end":"(;)|((?=}))","patterns":[{"include":"#standard"},{"begin":"(\\\u003c)","end":"(?=;|})","patterns":[{"include":"#standard"},{"include":"#storage.modifier"},{"begin":"(\\\\?[:\\w]+)|(?=\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"(\\\u003e)","end":"(?=;|})","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=;|})","beginCaptures":{"0":{"name":"entity.name.sequence.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"meta.generic.sequence.ice"},"1":{"name":"punctuation.definition.generic.end.ice"}}}],"beginCaptures":{"1":{"name":"meta.generic.sequence.ice","patterns":[{"include":"#storage.types"}]},"2":{"name":"invalid.illegal.missing-type.ice"}}}],"beginCaptures":{"0":{"name":"meta.generic.sequence.ice"},"1":{"name":"punctuation.definition.generic.begin.ice"}}}],"beginCaptures":{"0":{"name":"storage.type.sequence.ice"}},"endCaptures":{"1":{"name":"punctuation.terminator.semicolon.ice"},"2":{"name":"invalid.illegal.missing.semicolon.ice"}}}]},"storage.struct":{"patterns":[{"include":"#storage.modifier"},{"name":"meta.struct.ice","begin":"(?\u003c!\\\\)\\bstruct\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":"{","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#storage.basic"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.ice"}}}],"beginCaptures":{"0":{"name":"entity.name.struct.ice","patterns":[{"include":"#storage.identifier"}]}}}],"beginCaptures":{"0":{"name":"storage.type.struct.ice"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.ice"}}}]},"storage.types":{"patterns":[{"match":"(\\\\)?\\b(?:(bool)|(byte)|(short)|(int)|(long)|(float)|(double)|(string)|(Object)|(LocalObject)|(Value))\\b","captures":{"1":{"name":"punctuation.escape.backslash.ice"},"10":{"name":"storage.type.object.ice"},"11":{"name":"storage.type.localobject.ice"},"12":{"name":"storage.type.value.ice"},"2":{"name":"storage.type.bool.ice"},"3":{"name":"storage.type.byte.ice"},"4":{"name":"storage.type.short.ice"},"5":{"name":"storage.type.int.ice"},"6":{"name":"storage.type.long.ice"},"7":{"name":"storage.type.float.ice"},"8":{"name":"storage.type.double.ice"},"9":{"name":"storage.type.string.ice"}}},{"include":"#storage.types.custom"}]},"storage.types.custom":{"patterns":[{"match":"(\\\\)?([:\\w]+)","captures":{"1":{"name":"punctuation.escape.backslash.ice"},"2":{"patterns":[{"name":"variable.type.ice","match":"\\w+"},{"name":"punctuation.accessor.ice","match":"::"},{"name":"invalid.illegal.accessor.ice","match":":"}]}}},{"include":"#invalid"}]},"storage.types.void":{"name":"storage.type.void.ice","match":"(\\\\)?\\bvoid\\b","captures":{"1":{"name":"punctuation.escape.backslash.ice"}}}}}
@@ -0,0 +1 @@
1
+ {"name":"ISPC","scopeName":"source.ispc","patterns":[{"include":"#preprocessor"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#keywords"},{"include":"#operators"},{"include":"#intrinsics"},{"include":"#pragmas"},{"include":"#function-calls"},{"include":"#functions"},{"include":"#punctuation"},{"include":"#identifiers"}],"repository":{"comments":{"patterns":[{"name":"comment.block.ispc","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.ispc"}}},{"name":"comment.line.double-slash.ispc","begin":"//","end":"$","captures":{"0":{"name":"punctuation.definition.comment.ispc"}}}]},"function-body":{"name":"meta.function.body.ispc","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.function.begin.ispc"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.ispc"}}},"function-calls":{"patterns":[{"match":"\\b([A-Za-z_][A-Za-z0-9_]*)\\s*(?=\\()","captures":{"1":{"name":"entity.name.function.ispc"}}}]},"functions":{"patterns":[{"name":"meta.function.pointer.ispc","begin":"(?x)\n\\b(uniform|varying)?\\s*\n([A-Za-z_][A-Za-z0-9_]*\\s+)\n(\\(\\s*\\*\\s*([A-Za-z_][A-Za-z0-9_]*)\\s*\\))\\s*\\(","end":"\\)","patterns":[{"patterns":[{"include":"#keywords"}]},{"match":"(?x)\n (?:\\b(uniform|varying)\\s+)*\n ([A-Za-z_][A-Za-z0-9_]*(?:\u003c[^\u003e]+\u003e)?\\s+)","captures":{"1":{"name":"storage.modifier.ispc"},"2":{"name":"storage.type.ispc"}}},{"include":"#comments"}],"beginCaptures":{"1":{"name":"storage.modifier.ispc"},"2":{"name":"storage.type.ispc"},"3":{"name":"meta.function.pointer.ispc"}}},{"name":"meta.function.declaration.ispc","begin":"(?x)\n (?:\\b(export|task|inline|noinline|uniform|varying)\\s+)* # Optional modifiers\n ([A-Za-z_][A-Za-z0-9_]*(?:\u003c[^\u003e]+\u003e)?\\s+) # Required return type\n ([A-Za-z_][A-Za-z0-9_]*)\\s* # Function name\n (?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"name":"meta.function.parameters.ispc","begin":"\\(","end":"\\)","patterns":[{"match":"(?x)\n ((?:\\b(?:uniform|varying|unsigned|signed|const)\\b\\s*)*)\n ([A-Za-z_][A-Za-z0-9_]*(?:\u003c[^\u003e]+\u003e)?\\s+)\n (\u0026)?","captures":{"1":{"name":"storage.modifier.ispc"},"2":{"patterns":[{"include":"#keywords"}]},"3":{"name":"keyword.operator.reference.ispc"}}},{"include":"#comments"},{"name":"punctuation.separator.parameter.ispc","match":","}],"beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.ispc"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.ispc"}}},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"storage.modifier.ispc"},"2":{"name":"storage.type.ispc"},"3":{"name":"entity.name.function.ispc"}}}]},"identifiers":{"patterns":[{"name":"entity.name.function.operator.ispc","match":"\\boperator\\s*([+\\-*/=%\u003c\u003e\u0026|^!~\\[\\]\\(\\)]+|\\w+)\\s*\\("},{"name":"constant.other.ispc","match":"\\b[A-Z][A-Z0-9_]+\\b"}]},"intrinsics":{"patterns":[{"name":"support.function.intrinsic.ispc","match":"@llvm\\.[a-zA-Z_0-9\\.]*"}]},"keywords":{"patterns":[{"name":"keyword.control.ispc","match":"\\b(assert|break|case|cdo|cfor|cif|cwhile|continue|default|do|else|for|foreach|foreach_active|foreach_tiled|foreach_unique|goto|if|in|return|switch|sync|task|while|launch|invoke_sycl)\\b"},{"name":"keyword.operator.ispc","match":"\\b(delete|new|sizeof|alloca)\\b"},{"name":"storage.type.ispc","match":"\\b(bool|double|float|float16|int|uint|int8|uint8|int16|uint16|int32|uint32|int64|uint64|void|struct|enum|size_t|ptrdiff_t|intptr_t|uintptr_t)\\b"},{"name":"storage.modifier.ispc","match":"\\b(const|extern|inline|noinline|static|uniform|unmasked|varying|template|typedef|typename|export|signed|unsigned|soa|__vectorcall|__regcall|__attribute__|volatile)\\b"},{"name":"constant.language.ispc","match":"\\b(true|false|NULL|programIndex|programCount|threadIndex|threadIndex0|threadIndex1|threadIndex2|threadCount|taskIndex|taskIndex0|taskIndex1|taskIndex2|taskCount)\\b"}]},"numbers":{"patterns":[{"name":"constant.numeric.hexadecimal.ispc","match":"\\b0[xX][0-9a-fA-F]+([uUlL]*[kMG]?[uUlL]*|\\.\\.\\.)?\\b"},{"name":"constant.numeric.binary.ispc","match":"\\b0b[01]+([uUlL]*[kMG]?[uUlL]*|\\.\\.\\.)?\\b"},{"name":"constant.numeric.float.hexadecimal.ispc","match":"\\b0[xX][01](\\.[0-9a-fA-F]*)?[pP][-+]?[0-9]+([dDfF]|[fF]16)?\\b"},{"name":"constant.numeric.float.decimal.ispc","match":"\\b([0-9]+\\.[0-9]*|\\.[0-9]+)([dD]|[fF]|[fF]16)?\\b"},{"name":"constant.numeric.float.scientific.ispc","match":"\\b([0-9]+|(([0-9]+\\.[0-9]*)|\\.[0-9]+))([eE][-+]?[0-9]+)([dD]|[fF]|[fF]16)?\\b"},{"name":"constant.numeric.integer.decimal.ispc","match":"\\b[0-9]+([uUlL]*[kMG]?[uUlL]*|\\.\\.\\.)?\\b"}]},"operators":{"patterns":[{"name":"keyword.operator.assignment.ispc","match":"\\*=|\\+=|\\-=|/=|%=|\u0026=|\\|=|\\^=|\u003c\u003c=|\u003e\u003e=|="},{"name":"keyword.operator.logical.ispc","match":"\u0026\u0026|\\|\\||!"},{"name":"keyword.operator.bitwise.ispc","match":"\u0026(?!\\s*[A-Za-z_])|\\||\\^|~|\u003c\u003c|\u003e\u003e"},{"name":"keyword.operator.comparison.ispc","match":"==|!=|\u003c=|\u003e=|\u003c|\u003e"},{"name":"keyword.operator.other.ispc","match":"\\-\u003e|\\.|::|\\?"},{"name":"keyword.operator.arithmetic.ispc","match":"\\+\\+|\\-\\-|[+\\-*/%]"}]},"pragmas":{"patterns":[{"name":"meta.preprocessor.pragma.ispc","begin":"#\\s*pragma\\s+","end":"$","patterns":[{"name":"keyword.control.pragma.ispc","match":"\\b(unroll|nounroll|ignore\\s+warning)\\b"}]}]},"preprocessor":{"patterns":[{"name":"meta.preprocessor.conditional.ispc","begin":"^\\s*(#\\s*(if|ifdef|ifndef|elif)\\b)(?=.*\\n)","end":"(?=(?://|/\\*))|$","patterns":[{"include":"#operators"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#identifiers"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.ispc"}}},{"name":"meta.preprocessor.ispc","begin":"^\\s*#\\s*(include)\\b","end":"(?=(?://|/\\*))|$","patterns":[{"name":"string.quoted.other.include.ispc","begin":"\u003c","end":"\u003e"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#identifiers"}],"beginCaptures":{"0":{"name":"keyword.control.import.ispc"}}},{"name":"meta.preprocessor.ispc","begin":"^\\s*#\\s*(define|undef|else|endif|line|error|warning)\\b","end":"(?=(?://|/\\*))|$","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#identifiers"}],"beginCaptures":{"0":{"name":"keyword.control.import.ispc"}}}]},"punctuation":{"patterns":[{"name":"punctuation.terminator.ispc","match":";"},{"name":"punctuation.section.block.begin.ispc","match":"\\{"},{"name":"punctuation.section.block.end.ispc","match":"\\}"},{"name":"punctuation.section.parens.begin.ispc","match":"\\("},{"name":"punctuation.section.parens.end.ispc","match":"\\)"},{"name":"punctuation.section.brackets.begin.ispc","match":"\\["},{"name":"punctuation.section.brackets.end.ispc","match":"\\]"},{"name":"punctuation.separator.colon.ispc","match":":"},{"name":"punctuation.separator.dot.ispc","match":"\\."},{"name":"punctuation.separator.comma.ispc","match":","}]},"strings":{"patterns":[{"name":"string.quoted.double.ispc","begin":"L?\"","end":"\"","patterns":[{"name":"constant.character.escape.ispc","match":"\\\\(['\"?\\\\abfnrtv]|[0-7]{1,3}|x[0-9a-fA-F]+)"}]},{"name":"string.quoted.single.ispc","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.ispc","match":"\\\\(['\"?\\\\abfnrtv]|[0-7]{1,3}|x[0-9a-fA-F]+)"}]}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Jai","scopeName":"source.jai","patterns":[{"include":"#markdown-block-comments"},{"include":"#block-comments"},{"include":"#comments"},{"include":"#imports"},{"include":"#asm"},{"include":"#strings"},{"include":"#deprecated-names"},{"include":"#casts"},{"include":"#keywords"},{"include":"#proc"},{"include":"#deprecated"},{"include":"#fors"},{"include":"#structs"},{"include":"#enums"},{"include":"#enum-members"},{"include":"#composite-literals"},{"include":"#symbols"},{"include":"#support"},{"include":"#numbers"},{"include":"#notes"},{"include":"#declarations"},{"include":"#more-directives"},{"include":"#variables"},{"include":"#more-numbers"}],"repository":{"array":{"match":"(\\[)([^\\]]*)(\\])","captures":{"1":{"name":"punctuation.section.brackets.begin.jai"},"2":{"patterns":[{"include":"#expression"}]},"3":{"name":"punctuation.section.brackets.end.jai"}}},"asm":{"contentName":"source.asm.x86_64","begin":"(#asm)\\s*(([A-Z0-9]+)\\s*(,[^}]*)?)?(\\{)","end":"(\\})","patterns":[{},{"match":"(===)","captures":{"1":{"name":"keyword.operator.pin.jai"}}}],"beginCaptures":{"1":{"name":"keyword.other.directive.asm.jai"},"3":{"name":"keyword.other.feature.asm.jai"},"4":{"patterns":[{"include":"#comma-joined-asm-features"}]},"5":{"name":"punctuation.section.braces.begin.jai"}},"endCaptures":{"1":{"name":"punctuation.section.braces.end.jai"}}},"block-comments":{"name":"comment.block.jai","begin":"(\\/\\*)","end":"(\\*\\/)","patterns":[{"name":"comment.block.jai","include":"#block-comments"},{"match":"(`)([^`]*)(`)","captures":{"1":{"name":"markup.quote.comment.jai"},"2":{"name":"comment.block.backquoted.jai"},"3":{"name":"markup.quote.comment.jai"}}},{"match":"(\\@)((?i)TODO)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.todo.jai"},"2":{"name":"comment.block.annotation.todo.jai"},"3":{"name":"comment.block.todo.jai"}}},{"match":"(\\@)((?i)Release)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.release.jai"},"2":{"name":"comment.block.annotation.release.jai"},"3":{"name":"comment.block.release.jai"}}},{"match":"(\\@)((?i)Note)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.note.jai"},"2":{"name":"comment.block.annotation.note.jai"},"3":{"name":"comment.block.note.jai"}}},{"match":"(\\@)((?i)Urgent)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.urgent.jai"},"2":{"name":"comment.block.annotation.urgent.jai"},"3":{"name":"comment.block.urgent.jai"}}},{"match":"(\\@)((?i)Speed)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.speed.jai"},"2":{"name":"comment.block.annotation.speed.jai"},"3":{"name":"comment.block.speed.jai"}}},{"match":"(\\@)((?i)Robustness)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.robustness.jai"},"2":{"name":"comment.block.annotation.robustness.jai"},"3":{"name":"comment.block.robustness.jai"}}},{"match":"(\\@)((?i)NoCheckin)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.nocheckin.jai"},"2":{"name":"comment.block.annotation.nocheckin.jai"},"3":{"name":"comment.block.todo.jai"}}},{"match":"(\\@)(\\w+)","captures":{"1":{"name":"comment.block.punctuation.annotation.jai"},"2":{"name":"comment.block.annotation.jai"}}},{"name":"comment.block.signature.jai","match":"(-) (\\w+) ([0-9]{4}-[0-9]{2}-[0-9]{2})","captures":{"1":{"name":"comment.block.punctuation.signature.jai"},"2":{"name":"comment.block.signature.name.jai"},"3":{"name":"comment.block.signature.date.jai"}}},{"match":"^\\s*(\\[)( )(\\])(.*)","captures":{"1":{"name":"comment.block.punctuation.checklist.brackets.todo.begin.jai"},"2":{"name":"comment.block.punctuation.checklist.mark.todo.jai"},"3":{"name":"comment.block.punctuation.checklist.brackets.todo.end.jai"},"4":{"name":"comment.block.checklist.item.todo.jai","patterns":[{"include":"#block-comments-line"}]}}},{"match":"^\\s*(\\[)(\\.)(\\])(.*)","captures":{"1":{"name":"comment.block.punctuation.checklist.brackets.partial.begin.jai"},"2":{"name":"comment.block.punctuation.checklist.mark.partial.jai"},"3":{"name":"comment.block.punctuation.checklist.brackets.partial.end.jai"},"4":{"name":"comment.block.checklist.item.partial.jai","patterns":[{"include":"#block-comments-line"}]}}},{"match":"^\\s*(\\[)([^ \\.])(\\])(.*)","captures":{"1":{"name":"comment.block.punctuation.checklist.brackets.done.begin.jai"},"2":{"name":"comment.block.punctuation.checklist.mark.done.jai"},"3":{"name":"comment.block.punctuation.checklist.brackets.done.end.jai"},"4":{"name":"comment.block.checklist.item.done.jai","patterns":[{"include":"#block-comments-line"}]}}}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.jai"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.jai"}}},"block-comments-line":{"patterns":[{"match":"(`)([^`]*)(`)","captures":{"1":{"name":"markup.quote.comment.jai"},"2":{"name":"comment.block.backquoted.jai"},"3":{"name":"markup.quote.comment.jai"}}},{"match":"(\\@)((?i)TODO)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.todo.jai"},"2":{"name":"comment.block.annotation.todo.jai"},"3":{"name":"comment.block.todo.jai"}}},{"match":"(\\@)((?i)Release)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.release.jai"},"2":{"name":"comment.block.annotation.release.jai"},"3":{"name":"comment.block.release.jai"}}},{"match":"(\\@)((?i)Note)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.note.jai"},"2":{"name":"comment.block.annotation.note.jai"},"3":{"name":"comment.block.note.jai"}}},{"match":"(\\@)((?i)Urgent)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.urgent.jai"},"2":{"name":"comment.block.annotation.urgent.jai"},"3":{"name":"comment.block.urgent.jai"}}},{"match":"(\\@)((?i)Speed)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.speed.jai"},"2":{"name":"comment.block.annotation.speed.jai"},"3":{"name":"comment.block.speed.jai"}}},{"match":"(\\@)((?i)Robustness)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.robustness.jai"},"2":{"name":"comment.block.annotation.robustness.jai"},"3":{"name":"comment.block.robustness.jai"}}},{"match":"(\\@)((?i)NoCheckin)([^@]*)","captures":{"1":{"name":"comment.block.punctuation.annotation.nocheckin.jai"},"2":{"name":"comment.block.annotation.nocheckin.jai"},"3":{"name":"comment.block.nocheckin.jai"}}},{"match":"(\\@)(\\w+)","captures":{"1":{"name":"comment.block.punctuation.annotation.jai"},"2":{"name":"comment.block.annotation.jai"}}},{"name":"comment.block.signature.jai","match":"(-)\\s*(.*)\\s*([0-9]{4}-[0-9]{2}-[0-9]{2})","captures":{"1":{"name":"comment.block.punctuation.signature.jai"},"2":{"name":"comment.block.signature.name.jai"},"3":{"name":"comment.block.signature.date.jai"}}}]},"casts":{"patterns":[{"match":"\\b(cast(,trunc)?(,no_check)?(,trunc)?)\\s*(\\()\\s*((\\**)[a-zA-Z_](?:\\w|\\\\ *)*)\\s*(\\))","captures":{"1":{"name":"keyword.control.cast.jai"},"5":{"name":"punctuation.section.parens.begin.jai"},"6":{"name":"storage.type"},"7":{"name":"keyword.operator.pointer.jai"},"8":{"name":"punctuation.section.parens.begin.jai"}}},{"name":"keyword.control.cast.jai","match":"\\b(xx|cast)\\b"}]},"comma-joined-asm-features":{"match":"(,)\\s*([A-Z0-9]+)\\s*","captures":{"1":{"name":"punctuation.separator.jai"},"2":{"name":"keyword.other.feature.asm.jai"}}},"comma-joined-variables":{"match":"(,)\\s*((it_index|it)|([a-zA-Z_](?:\\w|\\\\ *)*))","captures":{"1":{"name":"punctuation.separator.jai"},"2":{"name":"variable.other.declaration.jai"},"3":{"name":"support.variable.jai"}}},"comments":{"patterns":[{"match":"(//)\\s*(\\[)( )(\\])(.*)","captures":{"1":{"name":"punctuation.definition.comment.jai"},"2":{"name":"comment.line.double-slash.punctuation.checklist.brackets.todo.begin.jai"},"3":{"name":"comment.line.double-slash.punctuation.checklist.mark.todo.jai"},"4":{"name":"comment.line.double-slash.punctuation.checklist.brackets.todo.end.jai"},"5":{"name":"comment.line.double-slash.checklist.item.todo.jai","patterns":[{"include":"#comments-line"}]}}},{"match":"(//)\\s*(\\[)(\\.)(\\])(.*)","captures":{"1":{"name":"punctuation.definition.comment.jai"},"2":{"name":"comment.line.double-slash.punctuation.checklist.brackets.partial.begin.jai"},"3":{"name":"comment.line.double-slash.punctuation.checklist.mark.partial.jai"},"4":{"name":"comment.line.double-slash.punctuation.checklist.brackets.partial.end.jai"},"5":{"name":"comment.line.double-slash.checklist.item.partial.jai","patterns":[{"include":"#comments-line"}]}}},{"match":"(//)\\s*(\\[)([^ \\.])(\\])(.*)","captures":{"1":{"name":"punctuation.definition.comment.jai"},"2":{"name":"comment.line.double-slash.punctuation.checklist.brackets.done.begin.jai"},"3":{"name":"comment.line.double-slash.punctuation.checklist.mark.done.jai"},"4":{"name":"comment.line.double-slash.punctuation.checklist.brackets.done.end.jai"},"5":{"name":"comment.line.double-slash.checklist.item.done.jai","patterns":[{"include":"#comments-line"}]}}},{"match":"(//)(.*)","captures":{"1":{"name":"punctuation.definition.comment.jai"},"2":{"name":"comment.line.double-slash.jai","patterns":[{"include":"#comments-line"}]}}}]},"comments-line":{"patterns":[{"match":"(`)([^`]*)(`)","captures":{"1":{"name":"markup.quote.comment.jai"},"2":{"name":"comment.line.double-slash.backquoted.jai"},"3":{"name":"markup.quote.comment.jai"}}},{"match":"(\\@)((?i)TODO)([^@]*)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.todo.jai"},"2":{"name":"comment.line.double-slash.annotation.todo.jai"},"3":{"name":"comment.line.double-slash.todo.jai"}}},{"match":"(\\@)((?i)Release)([^@]*)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.release.jai"},"2":{"name":"comment.line.double-slash.annotation.release.jai"},"3":{"name":"comment.line.double-slash.release.jai"}}},{"match":"(\\@)((?i)Note)([^@]*)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.note.jai"},"2":{"name":"comment.line.double-slash.annotation.note.jai"},"3":{"name":"comment.line.double-slash.note.jai"}}},{"match":"(\\@)((?i)Urgent)([^@]*)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.urgent.jai"},"2":{"name":"comment.line.double-slash.annotation.urgent.jai"},"3":{"name":"comment.line.double-slash.urgent.jai"}}},{"match":"(\\@)((?i)Speed)([^@]*)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.speed.jai"},"2":{"name":"comment.line.double-slash.annotation.speed.jai"},"3":{"name":"comment.line.double-slash.speed.jai"}}},{"match":"(\\@)((?i)Robustness)([^@]*)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.robustness.jai"},"2":{"name":"comment.line.double-slash.annotation.robustness.jai"},"3":{"name":"comment.line.double-slash.robustness.jai"}}},{"match":"(\\@)((?i)NoCheckin)([^@]*)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.nocheckin.jai"},"2":{"name":"comment.line.double-slash.annotation.nocheckin.jai"},"3":{"name":"comment.line.double-slash.nocheckin.jai"}}},{"match":"(\\@)(\\w+)","captures":{"1":{"name":"comment.line.double-slash.punctuation.annotation.jai"},"2":{"name":"comment.line.double-slash.annotation.jai"}}},{"name":"comment.line.double-slash.signature.jai","match":"(-)\\s*(.*)\\s*([0-9]{4}-[0-9]{2}-[0-9]{2})","captures":{"1":{"name":"comment.line.double-slash.punctuation.signature.jai"},"2":{"name":"comment.line.double-slash.signature.name.jai"},"3":{"name":"comment.line.double-slash.signature.date.jai"}}}]},"composite-literals":{"patterns":[{"match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)?\\s*(\\.)(\\{)","captures":{"1":{"name":"storage.type.struct.jai"},"2":{"name":"punctuation.accessor.jai"},"3":{"name":"punctuation.section.braces.begin.jai"}}},{"match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)?\\s*(\\.)(\\[)","captures":{"1":{"name":"storage.type.struct.jai"},"2":{"name":"punctuation.accessor.jai"},"3":{"name":"punctuation.section.bracket.begin.jai"}}}]},"declarations":{"patterns":[{"match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)((\\s*,\\s*[a-zA-Z_](?:\\w|\\\\ *)*)*)\\s*(:)\\s*(\\[[^\\]]*\\])?\\s*((\\**)((#type(,(isa|distinct))?)|[a-zA-Z_](?:\\w|\\\\ *)*))?\\s*(:)","captures":{"1":{"name":"variable.other.constant.declaration.jai"},"12":{"name":"keyword.declaration.jai"},"2":{"patterns":[{"include":"#comma-joined-variables"}]},"4":{"name":"keyword.declaration.jai"},"5":{"patterns":[{"include":"#array"}]},"6":{"name":"storage.type.jai"},"7":{"name":"keyword.operator.pointer.jai"},"9":{"name":"keyword.other.directive.jai"}}},{"match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(:)\\s*(\\[[^\\]]*\\])?\\s*((\\**)((#type(,(isa|distinct))?)|[a-zA-Z_](?:\\w|\\\\ *)*))?\\s*(:)","captures":{"1":{"name":"variable.other.constant.declaration.jai"},"10":{"name":"keyword.declaration.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"patterns":[{"include":"#array"}]},"4":{"name":"storage.type.jai"},"5":{"name":"keyword.operator.pointer.jai"},"7":{"name":"keyword.other.directive.jai"}}},{"match":"\\b((it_index|it)|([a-zA-Z_](?:\\w|\\\\ *)*))((\\s*,\\s*[a-zA-Z_](?:\\w|\\\\ *)*)*)\\s*(:)\\s*((struct)|(enum)|(enum_flags))\\b\\s*([a-zA-Z_](?:\\w|\\\\ *)*)?","captures":{"1":{"name":"variable.other.declaration.jai"},"10":{"name":"keyword.declaration.enum.jai"},"11":{"name":"storage.type.jai"},"2":{"name":"support.variable.jai"},"4":{"patterns":[{"include":"#comma-joined-variables"}]},"6":{"name":"keyword.declaration.jai"},"8":{"name":"keyword.declaration.struct.jai"},"9":{"name":"keyword.declaration.enum.jai"}}},{"match":"\\b((it_index|it)|([a-zA-Z_](?:\\w|\\\\ *)*))\\s*(:)\\s*((struct)|(enum)|(enum_flags))\\b\\s*([a-zA-Z_](?:\\w|\\\\ *)*)?","captures":{"1":{"name":"variable.other.declaration.jai"},"2":{"name":"support.variable.jai"},"4":{"name":"keyword.declaration.jai"},"6":{"name":"keyword.declaration.struct.jai"},"7":{"name":"keyword.declaration.enum.jai"},"8":{"name":"keyword.declaration.enum.jai"},"9":{"name":"storage.type.jai"}}},{"match":"\\b((it_index|it)|([a-zA-Z_](?:\\w|\\\\ *)*))((\\s*,\\s*[a-zA-Z_](?:\\w|\\\\ *)*)*)\\s*(:)\\s*(\\[[^\\]]*\\])?\\s*((\\**)((#type(,(isa|distinct))?)|[a-zA-Z_](?:\\w|\\\\ *)*))?\\s*(=)?","captures":{"1":{"name":"variable.other.declaration.jai"},"11":{"name":"keyword.other.directive.jai"},"14":{"name":"keyword.declaration.jai"},"2":{"name":"support.variable.jai"},"4":{"patterns":[{"include":"#comma-joined-variables"}]},"6":{"name":"keyword.declaration.jai"},"7":{"patterns":[{"include":"#array"}]},"8":{"name":"storage.type.jai"},"9":{"name":"keyword.operator.pointer.jai"}}},{"match":"\\b((it_index|it)|([a-zA-Z_](?:\\w|\\\\ *)*))\\s*(:)\\s*(\\[[^\\]]*\\])?\\s*((\\**)((#type(,(isa|distinct))?)|[a-zA-Z_](?:\\w|\\\\ *)*))?\\s*(=)?","captures":{"1":{"name":"variable.other.declaration.jai"},"12":{"name":"keyword.declaration.jai"},"2":{"name":"support.variable.jai"},"4":{"name":"keyword.declaration.jai"},"5":{"patterns":[{"include":"#array"}]},"6":{"name":"storage.type.jai"},"7":{"name":"keyword.operator.pointer.jai"},"9":{"name":"keyword.other.directive.jai"}}}]},"deprecated":{"match":"(#deprecated\\s*((\")(([^\"\\\\]|\\\\.)*)(\"))?)","captures":{"1":{"name":"invalid.deprecated.jai"},"3":{"name":"punctuation.definition.string.deprecated.begin.jai"},"4":{"name":"string-quoted.other.deprecated.jai"},"6":{"name":"punctuation.definition.string.deprecated.end.jai"}}},"enum-members":{"match":"([^\\w])(\\.)([a-zA-Z_](?:\\w|\\\\ *)*)","captures":{"1":{"patterns":[{"include":"#expression"}]},"2":{"name":"punctuation.accessor.jai"},"3":{"name":"variable.enum.jai"}}},"enums":{"match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*(enum(_flags)?)","captures":{"1":{"name":"entity.name.enum.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"name":"keyword.declaration.enum.jai"}}},"expression":{"patterns":[{"include":"#strings"},{"include":"#casts"},{"include":"#deprecated"},{"include":"#enum-members"},{"include":"#keywords"},{"include":"#symbols"},{"include":"#support"},{"include":"#numbers"},{"include":"#variables"},{"include":"#more-numbers"}]},"fors":{"patterns":[{"match":"\\b(for)\\s+([*\u003c\\s]*)\\s*([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(,)\\s*([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(:)","captures":{"1":{"name":"keyword.control.loop.for.jai"},"2":{"name":"keyword.operator.jai"},"3":{"name":"variable.other.declaration.jai"},"4":{"name":"punctuation.separator.jai"},"5":{"name":"variable.other.declaration.jai"},"6":{"name":"keyword.declaration.jai"}}},{"match":"\\b(for)\\s+([*\u003c\\s]*)\\s*([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(:)","captures":{"1":{"name":"keyword.control.loop.for.jai"},"2":{"name":"keyword.operator.jai"},"3":{"name":"variable.other.declaration.jai"},"4":{"name":"keyword.declaration.jai"}}},{"match":"\\b(for)\\s+([*\u003c\\s]*)","captures":{"1":{"name":"keyword.control.loop.for.jai"},"2":{"name":"keyword.operator.jai"}}}]},"imports":{"patterns":[{"match":"^\\s*([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*(#import(,file|,dir|,string)?)\\s+(\")([^\"]+)(\")","captures":{"1":{"name":"entity.name.namespace.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"name":"keyword.control.import.directive.jai"},"6":{"name":"punctuation.definition.string.import.begin.jai"},"7":{"name":"string-quoted.other.import.jai"},"8":{"name":"punctuation.definition.string.import.end.jai"}}},{"match":"(#import(,file|,dir|,string)?|#load)\\s+(\")([^\"]+)(\")","captures":{"1":{"name":"keyword.control.import.directive.jai"},"4":{"name":"punctuation.definition.string.import.begin.jai"},"5":{"name":"string-quoted.other.import.jai"},"6":{"name":"punctuation.definition.string.import.end.jai"}}},{"match":"(#import(,file|,dir|,string)?|#load)\\s+(\"[^\"]*)?$","captures":{"1":{"name":"keyword.control.import.directive.jai"},"4":{"name":"punctuation.definition.string.import.begin.jai"},"5":{"name":"string-quoted.other.import.jai"}}},{"match":"^\\s*([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*(#foreign_(system_)?library)\\s+(\")([^\"]+)(\")","captures":{"1":{"name":"constant.other.import.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"name":"keyword.control.import.directive.jai"},"5":{"name":"punctuation.definition.string.import.begin.jai"},"6":{"name":"string-quoted.other.import.jai"},"7":{"name":"punctuation.definition.string.import.end.jai"}}},{"match":"^\\s*([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*(#foreign_(system_)?library)\\s+(\"[^\"]*)?$","captures":{"1":{"name":"constant.other.import.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"name":"keyword.control.import.directive.jai"},"5":{"name":"punctuation.definition.string.import.begin.jai"},"6":{"name":"string-quoted.other.import.jai"}}}]},"keywords":{"patterns":[{"name":"keyword.control.conditional.jai","match":"\\b(if|ifx|then|else|case)\\b"},{"name":"keyword.control.jump.jai","match":"\\b(return|break|continue)\\b"},{"name":"keyword.control.loop.while.jai","match":"\\b(while)\\b"},{"name":"keyword.control.loop.for.remove.jai","match":"\\b(remove)\\b"},{"name":"keyword.control.defer.jai","match":"\\b(defer)\\b"},{"name":"keyword.other.directive.jai","match":"(#add_context|#align|#as|#assert|#bake(_arguments|_constants)?|#bytes|#caller_code|#caller_location|#code(,(null|typed))?|#compile_time|#complete|#dump|#elsewhere|#expand|#file|#filepath|#ifx|#if|\\binline\\b|#insert(,scope)?|#intrinsic|#modify|#module_parameters|#must|#no_abc|#no_aoc|#no_alias|#no_padding|#no_reset|#place|#placeholder|#procedure_name|#procedure_of_call|#program_export|#run|#exists|#v2|#Context|#specified|#symmetric|#this|#through|#type(,(isa|distinct))?|#type_info_none|#type_info_procedures_are_void_pointers|#type_info_no_size_complaint|#unshared)\\b"},{"name":"keyword.other.directive.scope.jai","match":"(#scope_export|#scope_file|#scope_module)"},{"name":"keyword.other.directive.string.jai","match":"(#char)"},{"name":"keyword.other.context.jai","match":"\\b(context|push_context)\\b"},{"name":"keyword.other.using.jai","match":"\\b(using(,map|,except|,only)?)\\b"},{"name":"keyword.other.allocator.jai","match":"\\b(temp)\\b"},{"name":"constant.language.true.jai","match":"\\b(true)\\b"},{"name":"constant.language.false.jai","match":"\\b(false)\\b"},{"name":"constant.language.null.jai","match":"\\b(null)\\b"},{"name":"keyword.declaration.struct.jai","match":"\\b(struct)\\b"},{"name":"keyword.declaration.enum.jai","match":"\\b(enum)\\b"},{"name":"keyword.declaration.union.jai","match":"\\b(union)\\b"},{"name":"storage.type.jai","match":"\\b(int|u8|u16|u32|u64|s8|s16|s32|s64|float|float32|float64|bool|string|void|Code|Type)\\b"}]},"more-directives":{"match":"(#foreign\\s+([A-Z-a-z_]\\w*(\\s*(\")(([^\"\\\\]|\\\\.)*)(\"))?)|#compiler|#intrinsic|#runtime_support)","captures":{"1":{"name":"keyword.control.import.directive.decl.jai"},"3":{"name":"constant.other.import.jai"},"5":{"name":"punctuation.definition.string.import.begin.jai"},"6":{"name":"string-quoted.other.import.jai"},"8":{"name":"punctuation.definition.string.import.end.jai"}}},"more-numbers":{"patterns":[{"match":"(0b[01_]+)","captures":{"1":{"name":"constant.numeric.jai"}}},{"match":"(0x[a-fA-F_\\d]+)","captures":{"1":{"name":"constant.numeric.jai"}}},{"match":"(\\d[\\d_]*)","captures":{"1":{"name":"constant.numeric.jai"}}}]},"numbers":{"patterns":[{"match":"[(\\[{:\\s=.,/*+\u003c\u003e-](0b[01_]+)","captures":{"1":{"name":"constant.numeric.jai"}}},{"match":"[(\\[{:\\s=.,/*+\u003c\u003e-](0x[a-fA-F_\\d]+)","captures":{"1":{"name":"constant.numeric.jai"}}},{"match":"[(\\[\\{:\\s=.,/*+\u003c\u003e-](\\d[\\d_]*)","captures":{"1":{"name":"constant.numeric.jai"}}}]},"proc":{"patterns":[{"match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*(#type)\\b\\s*((inline)\\s*|(no_inline)\\s*)*(\\()(.*)(\\))\\s*((-\u003e)([^{]+))?\\s*(((#foreign\\s+([a-zA-Z_](?:\\w|\\\\ *)*(\\s*(\")(([^\"\\\\]|\\\\.)*)(\"))?)|#compiler|#intrinsic|#runtime_support)\\s*)+\\s*(#deprecated\\s*((\")(([^\"\\\\]|\\\\.)*)(\"))?)?\\s*(;)?)?(\\s*#c_call|\\s*#no_context|\\s*#symmetric)*","captures":{"1":{"name":"variable.other.constant.declaration.jai"},"11":{"name":"punctuation.return.jai"},"12":{"name":"meta.function.return-type.jai","patterns":[{"include":"#return-declarations"}]},"13":{"name":"keyword.control.import.directive.decl.jai"},"16":{"name":"constant.other.import.jai"},"18":{"name":"punctuation.definition.string.import.begin.jai"},"19":{"name":"string-quoted.other.import.jai"},"2":{"name":"keyword.declaration.jai"},"21":{"name":"punctuation.definition.string.import.end.jai"},"22":{"name":"invalid.deprecated.jai"},"24":{"name":"punctuation.definition.string.deprecated.begin.jai"},"25":{"name":"string-quoted.other.deprecated.jai"},"27":{"name":"punctuation.definition.string.deprecated.end.jai"},"28":{"name":"punctuation.terminator.jai"},"29":{"name":"keyword.other.directive.jai"},"3":{"name":"keyword.other.directive.jai"},"5":{"name":"storage.modifier.jai"},"6":{"name":"storage.modifier.jai"},"7":{"name":"punctuation.section.parens.begin.jai"},"8":{"name":"meta.function.parameters.jai","patterns":[{"include":"#parameter-declarations"}]},"9":{"name":"punctuation.section.parens.end.jai"}}},{"name":"meta.function.declaration.jai","match":"\\b((main|for_expansion|operator\\s*([^ :]+))|[a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*((inline)\\s*|(no_inline)\\s*)*(\\()(.*)(\\))\\s*((-\u003e)([^{]+))?\\s*(((#foreign\\s+([a-zA-Z_](?:\\w|\\\\ *)*(\\s*(\")(([^\"\\\\]|\\\\.)*)(\"))?)|#compiler|#intrinsic|#runtime_support)\\s*)+\\s*(#deprecated\\s*((\")(([^\"\\\\]|\\\\.)*)(\"))?)?\\s*(;)?)?(\\s*#c_call|\\s*#no_context|\\s*#symmetric)*","captures":{"1":{"name":"entity.name.function.jai"},"10":{"name":"punctuation.section.parens.end.jai"},"12":{"name":"punctuation.return.jai"},"13":{"name":"meta.function.return-type.jai","patterns":[{"include":"#return-declarations"}]},"14":{"name":"keyword.control.import.directive.decl.jai"},"17":{"name":"constant.other.import.jai"},"19":{"name":"punctuation.definition.string.import.begin.jai"},"2":{"patterns":[{"match":"(main)","captures":{"1":{"name":"keyword.other.main.jai"}}},{"match":"(for_expansion)","captures":{"1":{"name":"keyword.other.for_expansion.jai"}}},{"match":"(operator\\s*([^ :]+))","captures":{"1":{"name":"keyword.other.operator.jai"},"2":{"name":"keyword.operator.jai"}}}]},"20":{"name":"string-quoted.other.import.jai"},"22":{"name":"punctuation.definition.string.import.end.jai"},"23":{"name":"invalid.deprecated.jai"},"25":{"name":"punctuation.definition.string.deprecated.begin.jai"},"26":{"name":"string-quoted.other.deprecated.jai"},"28":{"name":"punctuation.definition.string.deprecated.end.jai"},"29":{"name":"punctuation.terminator.jai"},"3":{"name":"keyword.operator.jai"},"30":{"name":"keyword.other.directive.jai"},"4":{"name":"keyword.declaration.jai"},"6":{"name":"storage.modifier.jai"},"7":{"name":"storage.modifier.jai"},"8":{"name":"punctuation.section.parens.begin.jai"},"9":{"name":"meta.function.parameters.jai","patterns":[{"include":"#parameter-declarations"}]}}},{"name":"meta.function.declaration.jai","match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*(#bake(_arguments|_constants))\\s+([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(\\()(.*)(\\))","captures":{"1":{"name":"entity.name.function.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"name":"keyword.other.directive.jai"},"5":{"name":"entity.name.function.jai"},"6":{"name":"punctuation.section.parens.begin.jai"},"7":{"name":"meta.function.parameters.jai","patterns":[{"include":"#parameters"}]},"8":{"name":"punctuation.section.parens.end.jai"}}},{"name":"meta.function.call.jai","match":"(([a-zA-Z_](?:\\w|\\\\ *)*)(\\.)(([a-zA-Z_](?:\\w|\\\\ *)*)(\\.))*)?\\b([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(\\()(\\))","captures":{"2":{"name":"entity.name.namespace.jai"},"3":{"name":"punctuation.accessor.jai"},"5":{"name":"entity.name.namespace.member.jai"},"6":{"name":"punctuation.accessor.jai"},"7":{"patterns":[{"include":"#support"},{"match":"(.*)","captures":{"1":{"name":"entity.name.function.jai"}}}]},"8":{"name":"punctuation.section.parens.begin.jai"},"9":{"name":"punctuation.section.parens.end.jai"}}},{"name":"meta.function.call.jai","match":"(([a-zA-Z_](?:\\w|\\\\ *)*)(\\.)(([a-zA-Z_](?:\\w|\\\\ *)*)(\\.))*)?\\b([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(\\()(.*)(\\))","captures":{"10":{"name":"punctuation.section.parens.end.jai"},"2":{"name":"entity.name.namespace.jai"},"3":{"name":"punctuation.accessor.jai"},"5":{"name":"entity.name.namespace.member.jai"},"6":{"name":"punctuation.accessor.jai"},"7":{"patterns":[{"include":"#support"},{"match":"(.*)","captures":{"1":{"name":"entity.name.function.jai"}}}]},"8":{"name":"punctuation.section.parens.begin.jai"},"9":{"name":"meta.function.parameters.jai","patterns":[{"include":"#parameters"}]}}}],"repository":{"parameter-declarations":{"patterns":[{"match":"(,)?\\s*(using\\s*((,except|,only|,map)\\([^)]*\\)\\s*)?)?((\\$*)[a-zA-Z_](?:\\w|\\\\ *)*)(\\s*:=)([^,]*)","captures":{"1":{"name":"punctuation.separator.parameters.jai"},"2":{"name":"keyword.other.jai"},"5":{"name":"variable.parameter.jai"},"6":{"name":"punctuation.definition.generic.jai"},"7":{"name":"keyword.declaration.jai"},"8":{"patterns":[{"include":"#expression"}]}}},{"match":"(,)?\\s*(using\\s*((,except|,only|,map)\\([^)]*\\)\\s*)?)?((\\$*)[a-zA-Z_](?:\\w|\\\\ *)*)\\s*(:)\\s*(\\.\\.)?\\s*(\\[[^\\]]*\\])?\\s*((\\**)($)?[a-zA-Z_](?:\\w|\\\\ *)*)?(\\s*=)?([^,]*)","captures":{"1":{"name":"punctuation.separator.parameters.jai"},"10":{"name":"storage.type.jai"},"11":{"name":"keyword.operator.pointer.jai"},"12":{"name":"punctuation.definition.generic.jai"},"13":{"name":"keyword.declaration.jai"},"14":{"patterns":[{"include":"#expression"}]},"2":{"name":"keyword.other.jai"},"5":{"name":"variable.parameter.jai"},"6":{"name":"punctuation.definition.generic.jai"},"7":{"name":"keyword.declaration.jai"},"8":{"name":"punctuation.jai"},"9":{"include":"#array"}}}]},"parameters":{"patterns":[{"match":"(,)?\\s*((\")(([^\"\\\\]|\\\\.)*)(\"))\\s*","captures":{"1":{"name":"punctuation.separator.parameters.jai"},"2":{"patterns":[{"include":"#strings"}]}}},{"match":"(,)?(\\s*(#code|#code,null|#code,typed|#caller_code))?((cast(,trunc)?(,no_check)?(,trunc)?)\\s*(\\()\\s*((\\**)[a-zA-Z_](?:\\w|\\\\ *)*)\\s*(\\)))?(\\s*([a-zA-Z_](?:\\w|\\\\ *)*)(\\s*=))?([^,]*)","captures":{"1":{"name":"punctuation.separator.parameters.jai"},"14":{"name":"variable.parameter.jai"},"15":{"name":"keyword.operator.jai"},"16":{"patterns":[{"include":"#expression"}]},"2":{"name":"keyword.other.directive.jai"},"4":{"patterns":[{"include":"#casts"}]}}}]},"return-declarations":{"patterns":[{"match":"(,)?\\s*([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(:)\\s*((\\[[^\\]]*\\])?\\s*(\\**)(\\$*)[a-zA-Z_](?:\\w|\\\\ *)*)\\s*(#must)?\\s*((@)([a-zA-Z_](?:\\w|\\\\ *)*))?\\s*(#expand)?\\s*(((#foreign\\s+([A-Z-a-z_]\\w*(\\s*(\")(([^\"\\\\]|\\\\.)*)(\"))?)|#compiler|#intrinsic|#runtime_support)\\s*)+\\s*(#deprecated\\s*((\")(([^\"\\\\]|\\\\.)*)(\"))?)?\\s*(;)?)?(\\s*#c_call|\\s*#no_context|\\s*#symmetric)*\\s*(//.*)?","captures":{"1":{"name":"punctuation.separator.parameters.jai"},"10":{"name":"punctuation.definition.annotation.jai"},"11":{"name":"variable.annotation.jai"},"12":{"name":"keyword.other.directive.jai"},"13":{"name":"keyword.control.import.directive.r1.jai"},"16":{"name":"constant.other.import.jai"},"18":{"name":"punctuation.definition.string.import.begin.jai"},"19":{"name":"string-quoted.other.import.jai"},"2":{"name":"variable.parameter.return.jai"},"21":{"name":"punctuation.definition.string.import.end.jai"},"22":{"name":"invalid.deprecated.jai"},"24":{"name":"punctuation.definition.string.deprecated.begin.jai"},"25":{"name":"string-quoted.other.deprecated.jai"},"27":{"name":"punctuation.definition.string.deprecated.end.jai"},"28":{"name":"punctuation.terminator.jai"},"29":{"name":"keyword.other.directive.jai"},"3":{"name":"keyword.declaration.jai"},"30":{"patterns":[{"include":"#comments"}]},"4":{"name":"storage.type.jai"},"5":{"patterns":[{"include":"#array"}]},"6":{"name":"keyword.operator.pointer.jai"},"7":{"name":"punctuation.definition.generic"},"8":{"name":"keyword.other.directive.jai"}}},{"match":"(,)?\\s*((\\[[^\\]]*\\])?\\s*(\\**)(\\$*)[a-zA-Z_](?:\\w|\\\\ *)*)\\s*(#must)?\\s*((@)([a-zA-Z_](?:\\w|\\\\ *)*))?\\s*(#expand)?\\s*(((#foreign\\s+([A-Z-a-z_]\\w*(\\s*(\")(([^\"\\\\]|\\\\.)*)(\"))?)|#compiler|#intrinsic|#runtime_support)\\s*)+\\s*(#deprecated\\s*((\")(([^\"\\\\]|\\\\.)*)(\"))?)?\\s*(;)?)?(\\s*#c_call|\\s*#no_context|\\s*#symmetric)*\\s*(//.*)?","captures":{"1":{"name":"punctuation.separator.parameters.jai"},"10":{"name":"keyword.other.directive.jai"},"11":{"name":"keyword.control.import.directive.jai"},"14":{"name":"constant.other.import.jai"},"16":{"name":"punctuation.definition.string.import.begin.jai"},"17":{"name":"string-quoted.other.import.jai"},"19":{"name":"punctuation.definition.string.import.end.jai"},"2":{"name":"storage.type.jai"},"20":{"name":"invalid.deprecated.jai"},"22":{"name":"punctuation.definition.string.deprecated.begin.jai"},"23":{"name":"string-quoted.other.deprecated.jai"},"25":{"name":"punctuation.definition.string.deprecated.end.jai"},"26":{"name":"punctuation.terminator.jai"},"27":{"name":"keyword.other.directive.jai"},"28":{"patterns":[{"include":"#comments"}]},"3":{"patterns":[{"include":"#array"}]},"4":{"name":"keyword.operator.pointer.jai"},"5":{"name":"punctuation.definition.generic"},"6":{"name":"keyword.other.directive.jai"},"8":{"name":"punctuation.definition.annotation.jai"},"9":{"name":"variable.annotation.jai"}}}]}}},"strings":{"patterns":[{"name":"string.quoted.double.empty.jai","match":"(\")(\")","captures":{"1":{"name":"punctuation.definition.string.empty.begin.jai"},"2":{"name":"punctuation.definition.string.empty.end.jai"}}},{"name":"string.quoted.double.jai","begin":"(\")","end":"(\"|$)","patterns":[{"name":"constant.character.escape.jai","match":"\\\\."},{"name":"constant.other.placeholder.jai","match":"%[0-9]+"},{"match":"(%)%","captures":{"1":{"name":"constant.character.escape.jai"}}},{"name":"constant.other.placeholder.jai","match":"%"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.jai"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.jai"}}},{"name":"string.here.embed.arm.jai","contentName":"string.unquoted.here.embed.arm.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(arm))\\b","end":"\\s*(\\3)(\\4)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.arm.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.arm.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.arm.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.arm.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.arm.jai"}}},{"name":"string.here.embed.bat.jai","contentName":"string.unquoted.here.embed.bat.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(bat))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.batchfile"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.bat.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.bat.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.bat.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.bat.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.bat.jai"}}},{"name":"string.here.embed.cpp.jai","contentName":"string.unquoted.here.embed.cpp.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(c(\\+\\+|pp)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.c++"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.cpp.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.cpp.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.cpp.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.cpp.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.cpp.jai"}}},{"name":"string.here.embed.css.jai","contentName":"string.unquoted.here.embed.css.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(css))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.css"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.css.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.css.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.css.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.css.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.css.jai"}}},{"name":"string.here.embed.cs.jai","contentName":"string.unquoted.here.embed.cs.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(c(sharp|#|s)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.cs"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.cs.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.cs.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.cs.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.cs.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.cs.jai"}}},{"name":"string.here.embed.c.jai","contentName":"string.unquoted.here.embed.c.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(c))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.c"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.c.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.c.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.c.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.c.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.c.jai"}}},{"name":"string.here.embed.glsl.jai","contentName":"string.unquoted.here.embed.glsl.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(glsl))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.glsl"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.glsl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.glsl.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.glsl.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.glsl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.glsl.jai"}}},{"name":"string.here.embed.guy.jai","contentName":"string.unquoted.here.embed.guy.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(guy))\\b","end":"\\s*(\\3)(\\4)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.guy.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.guy.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.guy.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.guy.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.guy.jai"}}},{"name":"string.here.embed.hlsl.jai","contentName":"string.unquoted.here.embed.hlsl.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(hlsl))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.hlsl"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.hlsl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.hlsl.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.hlsl.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.hlsl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.hlsl.jai"}}},{"name":"string.here.embed.jai.jai","contentName":"string.unquoted.here.embed.jai.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(jai))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.jai"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.jai.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.jai.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.jai.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.jai.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.jai.jai"}}},{"name":"string.here.embed.java.jai","contentName":"string.unquoted.here.embed.java.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(java))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.java"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.java.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.java.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.java.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.java.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.java.jai"}}},{"name":"string.here.embed.jsonc.jai","contentName":"string.unquoted.here.embed.jsonc.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(jsonc))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.json.comments"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.jsonc.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.jsonc.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.jsonc.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.jsonc.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.jsonc.jai"}}},{"name":"string.here.embed.json.jai","contentName":"string.unquoted.here.embed.json.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(json))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.json"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.json.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.json.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.json.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.json.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.json.jai"}}},{"name":"string.here.embed.js.jai","contentName":"string.unquoted.here.embed.js.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?((js|javascript)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.js"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.js.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.js.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.js.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.js.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.js.jai"}}},{"name":"string.here.embed.lua.jai","contentName":"string.unquoted.here.embed.lua.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(lua))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.lua"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.lua.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.lua.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.lua.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.lua.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.lua.jai"}}},{"name":"string.here.embed.makefile.jai","contentName":"string.unquoted.here.embed.makefile.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(make(file)?))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.makefile"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.makefile.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.makefile.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.makefile.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.makefile.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.makefile.jai"}}},{"name":"string.here.embed.metal.jai","contentName":"string.unquoted.here.embed.metal.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?((metal|msl)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.metal.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.metal.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.metal.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.metal.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.metal.jai"}}},{"name":"string.here.embed.psl.jai","contentName":"string.unquoted.here.embed.psl.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?((powershell|psl)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.powershell"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.psl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.psl.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.psl.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.psl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.psl.jai"}}},{"name":"string.here.embed.python.jai","contentName":"string.unquoted.here.embed.python.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(py(thon)?))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.python"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.python.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.python.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.python.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.python.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.python.jai"}}},{"name":"string.here.embed.shaderlab.jai","contentName":"string.unquoted.here.embed.shaderlab.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(shaderlab))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.shaderlab"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.shaderlab.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.shaderlab.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.shaderlab.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.shaderlab.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.shaderlab.jai"}}},{"name":"string.here.embed.shader.jai","contentName":"string.unquoted.here.embed.shader.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(shader))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.glsl"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.shader.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.shader.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.shader.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.shader.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.shader.jai"}}},{"name":"string.here.embed.sh.jai","contentName":"string.unquoted.here.embed.sh.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(sh(ell)?))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.shell"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.sh.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.sh.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.sh.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.sh.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.sh.jai"}}},{"name":"string.here.embed.sql.jai","contentName":"string.unquoted.here.embed.sql.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(sql))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.sql"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.sql.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.sql.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.sql.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.sql.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.sql.jai"}}},{"name":"string.here.embed.toml.jai","contentName":"string.unquoted.here.embed.toml.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(toml))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.toml"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.toml.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.toml.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.toml.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.toml.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.toml.jai"}}},{"name":"string.here.embed.ts.jai","contentName":"string.unquoted.here.embed.ts.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?((ts|typescript)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.ts"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.ts.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.ts.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.ts.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.ts.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.ts.jai"}}},{"name":"string.here.embed.vdf.jai","contentName":"string.unquoted.here.embed.vdf.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?((vdf|valve)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.vdf.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.vdf.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.vdf.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.vdf.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.vdf.jai"}}},{"name":"string.here.embed.x64.jai","contentName":"string.unquoted.here.embed.x64.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(x(86_)?64))\\b","end":"\\s*(\\3)(\\4)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.x64.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.x64.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.x64.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.x64.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.x64.jai"}}},{"name":"string.here.embed.yaml.jai","contentName":"string.unquoted.here.embed.yaml.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(yaml))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.yaml"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.yaml.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.yaml.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.yaml.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.yaml.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.yaml.jai"}}},{"name":"string.here.embed.html.jai","contentName":"string.unquoted.here.embed.html.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(html))\\b","end":"\\s*(\\3)(\\4)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.html.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.html.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.html.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.html.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.html.jai"}}},{"name":"string.here.embed.md.jai","contentName":"string.unquoted.here.embed.md.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?((md|markdown)))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.md.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.md.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.md.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.md.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.md.jai"}}},{"name":"string.here.embed.xml.jai","contentName":"string.unquoted.here.embed.xml.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(xml))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"text.xml"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.xml.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.xml.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.xml.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.xml.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.xml.jai"}}},{"name":"string.here.embed.xsl.jai","contentName":"string.unquoted.here.embed.xsl.jai","begin":"(#string)\\s+((?i)([A-Za-z_]\\w*)?(xsl))\\b","end":"\\s*(\\3)(\\4)","patterns":[{"include":"text.xml.xsl"}],"beginCaptures":{"1":{"name":"keyword.other.directive.string.xsl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.xsl.jai"},"4":{"name":"constant.other.stringdelimiter.here.embed.language.xsl.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.embed.xsl.jai"},"2":{"name":"constant.other.stringdelimiter.here.embed.language.xsl.jai"}}},{"name":"string.here.jai","contentName":"string.unquoted.here.jai","begin":"(#string)\\s+([A-Za-z_]\\w*)","end":"\\s*(\\2)","beginCaptures":{"1":{"name":"keyword.other.directive.string.jai"},"2":{"name":"constant.other.stringdelimiter.here.jai"}},"endCaptures":{"1":{"name":"constant.other.stringdelimiter.here.jai"}}}]},"structs":{"match":"\\b([a-zA-Z_](?:\\w|\\\\ *)*)\\s*(::)\\s*(struct)","captures":{"1":{"name":"entity.name.struct.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"name":"keyword.declaration.struct.jai"}}},"symbols":{"patterns":[{"match":"(\\})\\s*(=)\\s*(\\.)([a-zA-Z_](?:\\w|\\\\ *)*)","captures":{"1":{"name":"punctuation.section.braces.end.jai"},"2":{"name":"keyword.declaration.jai"},"3":{"name":"punctuation.accessor.jai"},"4":{"name":"variable.enum.jai"}}},{"name":"keyword.declaration.jai","match":"(::|:=|:)"},{"name":"keyword.operator.jai","match":"(=|\\+|-|\\*|/|\u003c|\u003e|~|\\||\u0026|!|\\^)+"},{"name":"keyword.operator.percent.jai","match":"%"},{"name":"punctuation.jai","match":"(\\.\\.)"},{"name":"punctuation.section.parens.begin.jai","match":"\\("},{"name":"punctuation.section.parens.end.jai","match":"\\)"},{"name":"punctuation.section.braces.begin.jai","match":"\\{"},{"name":"punctuation.section.braces.end.jai","match":"\\}"},{"name":"punctuation.section.brackets.begin.jai","match":"\\["},{"name":"punctuation.section.brackets.end.jai","match":"\\]"},{"name":"punctuation.accessor.jai","match":"(\\.)"},{"name":"punctuation.separator.jai","match":"(,)"},{"name":"punctuation.terminator.jai","match":"(;)"}]},"variables":{"patterns":[{"match":"\\b((it_index|it)|([a-zA-Z_](?:\\w|\\\\ *)*))(\\.[a-zA-Z0-9_.]+)?\\b","captures":{"1":{"name":"variable.other.jai"},"2":{"name":"support.variable.jai"},"4":{"patterns":[{"include":"#members"}]}}}],"repository":{"members":{"match":"(\\.)([a-zA-Z_](?:\\w|\\\\ *)*)","captures":{"1":{"name":"punctuation.accessor.jai"},"2":{"name":"variable.other.member.jai"}}}}}}}
@@ -0,0 +1 @@
1
+ {"name":"JSON with Comments","scopeName":"source.json.comments","patterns":[{"include":"#value"}],"repository":{"array":{"name":"meta.structure.array.json.comments","begin":"\\[","end":"\\]","patterns":[{"include":"#value"},{"name":"punctuation.separator.array.json.comments","match":","},{"name":"invalid.illegal.expected-array-separator.json.comments","match":"[^\\s\\]]"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.json.comments"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.json.comments"}}},"comments":{"patterns":[{"name":"comment.block.documentation.json.comments","begin":"/\\*\\*(?!/)","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.json.comments"}}},{"name":"comment.block.json.comments","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.json.comments"}}},{"name":"comment.line.double-slash.js","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.json.comments"}}}]},"constant":{"name":"constant.language.json.comments","match":"\\b(?:true|false|null)\\b"},"number":{"name":"constant.numeric.json.comments","match":"(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional"},"object":{"name":"meta.structure.dictionary.json.comments","begin":"\\{","end":"\\}","patterns":[{"include":"#objectkey"},{"include":"#comments"},{"name":"meta.structure.dictionary.value.json.comments","begin":":","end":"(,)|(?=\\})","patterns":[{"include":"#value"},{"name":"invalid.illegal.expected-dictionary-separator.json.comments","match":"[^\\s,]"}],"beginCaptures":{"0":{"name":"punctuation.separator.dictionary.key-value.json.comments"}},"endCaptures":{"1":{"name":"punctuation.separator.dictionary.pair.json.comments"}}},{"name":"invalid.illegal.expected-dictionary-separator.json.comments","match":"[^\\s\\}]"}],"beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.json.comments"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.json.comments"}}},"objectkey":{"name":"string.json.comments support.type.property-name.json.comments","begin":"\"","end":"\"","patterns":[{"include":"#stringcontent"}],"beginCaptures":{"0":{"name":"punctuation.support.type.property-name.begin.json.comments"}},"endCaptures":{"0":{"name":"punctuation.support.type.property-name.end.json.comments"}}},"string":{"name":"string.quoted.double.json.comments","begin":"\"","end":"\"","patterns":[{"include":"#stringcontent"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.json.comments"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.json.comments"}}},"stringcontent":{"patterns":[{"name":"constant.character.escape.json.comments","match":"(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits"},{"name":"invalid.illegal.unrecognized-string-escape.json.comments","match":"\\\\."}]},"value":{"patterns":[{"include":"#constant"},{"include":"#number"},{"include":"#string"},{"include":"#array"},{"include":"#object"},{"include":"#comments"}]}}}