github-linguist 9.2.0 → 9.4.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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +23 -4
  3. data/grammars/dart.inline.edgeql.json +1 -0
  4. data/grammars/go.inline.edgeql.json +1 -0
  5. data/grammars/injection.interpolated-ruby.json +1 -0
  6. data/grammars/injections.etc.json +1 -1
  7. data/grammars/inline.surrealql-js-literal.json +1 -0
  8. data/grammars/js.inline.edgeql.json +1 -0
  9. data/grammars/markdown.move.codeblock.json +1 -1
  10. data/grammars/markdown.surrealql.codeblock.json +1 -0
  11. data/grammars/markdown.vue.codeblock.json +1 -1
  12. data/grammars/markdown.wesl.codeblock.json +1 -0
  13. data/grammars/markdown.wgsl.codeblock.json +1 -0
  14. data/grammars/mdx.vue.codeblock.json +1 -1
  15. data/grammars/res.inline.edgeql.json +1 -0
  16. data/grammars/source.abl.json +1 -1
  17. data/grammars/source.agda.json +1 -1
  18. data/grammars/source.al.json +1 -1
  19. data/grammars/source.algol60.json +1 -0
  20. data/grammars/source.apex.json +1 -1
  21. data/grammars/source.ash.json +1 -0
  22. data/grammars/source.ats.json +1 -1
  23. data/grammars/source.b.json +1 -0
  24. data/grammars/source.bicep.json +1 -1
  25. data/grammars/source.brs.json +1 -1
  26. data/grammars/source.bru.json +1 -0
  27. data/grammars/source.c++.json +1 -1
  28. data/grammars/source.c.json +1 -1
  29. data/grammars/source.c.linker.json +1 -1
  30. data/grammars/source.c3.json +1 -0
  31. data/grammars/source.cadence.json +1 -1
  32. data/grammars/source.cj.json +1 -0
  33. data/grammars/source.clar.json +1 -1
  34. data/grammars/source.clean.json +1 -1
  35. data/grammars/source.cmake.json +1 -1
  36. data/grammars/source.cmakecache.json +1 -1
  37. data/grammars/source.cobol.json +1 -1
  38. data/grammars/source.comment-string.wesl.json +1 -0
  39. data/grammars/source.comment-string.wgsl.json +1 -0
  40. data/grammars/source.cooklang.json +1 -0
  41. data/grammars/source.cql.json +1 -0
  42. data/grammars/source.cs.json +1 -1
  43. data/grammars/source.csv.json +1 -0
  44. data/grammars/source.curlrc.json +1 -1
  45. data/grammars/source.data-weave.json +1 -1
  46. data/grammars/source.dotenv.json +1 -1
  47. data/grammars/source.dsv.json +1 -0
  48. data/grammars/source.edgeql.json +1 -1
  49. data/grammars/source.erlang.json +1 -1
  50. data/grammars/source.flix.json +1 -0
  51. data/grammars/source.fsharp.json +1 -1
  52. data/grammars/source.gdscript.json +1 -1
  53. data/grammars/source.gfm.blade.json +1 -1
  54. data/grammars/source.gitignore.json +1 -1
  55. data/grammars/source.go-template.json +1 -0
  56. data/grammars/source.go.injection.double.go-template.json +1 -0
  57. data/grammars/source.go.injection.raw.go-template.json +1 -0
  58. data/grammars/source.hack.json +1 -1
  59. data/grammars/source.harbour.json +1 -1
  60. data/grammars/source.httpspec.json +1 -1
  61. data/grammars/source.hurl.json +1 -0
  62. data/grammars/source.hx.json +1 -1
  63. data/grammars/source.ilecobol.json +1 -1
  64. data/grammars/source.inputrc.json +1 -1
  65. data/grammars/source.isabelle.theory.json +1 -1
  66. data/grammars/source.jac.json +1 -0
  67. data/grammars/source.jai.json +1 -1
  68. data/grammars/source.jq.json +1 -1
  69. data/grammars/source.json.comments.json +1 -1
  70. data/grammars/source.julia.json +1 -1
  71. data/grammars/source.just.json +1 -1
  72. data/grammars/source.kcl.json +1 -0
  73. data/grammars/source.langium.json +1 -0
  74. data/grammars/source.lean.markdown.json +1 -1
  75. data/grammars/source.lean4.json +1 -1
  76. data/grammars/source.lean4.markdown.json +1 -1
  77. data/grammars/source.lp.json +1 -0
  78. data/grammars/source.lua.json +1 -1
  79. data/grammars/source.luau.json +1 -1
  80. data/grammars/source.m2.json +1 -1
  81. data/grammars/source.mask.json +1 -1
  82. data/grammars/source.mdx.json +1 -1
  83. data/grammars/source.mermaid.flowchart.json +1 -1
  84. data/grammars/source.mermaid.gantt.json +1 -1
  85. data/grammars/source.mermaid.json +1 -1
  86. data/grammars/source.mermaid.pie-chart.json +1 -1
  87. data/grammars/source.mermaid.quad-chart.json +1 -0
  88. data/grammars/source.mermaid.sankey.json +1 -0
  89. data/grammars/source.mermaid.timeline.json +1 -0
  90. data/grammars/source.mermaid.user-journey.json +1 -1
  91. data/grammars/source.mermaid.zenuml.json +1 -0
  92. data/grammars/source.mo.json +1 -1
  93. data/grammars/source.mojo.json +1 -1
  94. data/grammars/source.moonbit.json +1 -1
  95. data/grammars/source.move.json +1 -1
  96. data/grammars/source.ned.json +1 -1
  97. data/grammars/source.nginx.json +1 -1
  98. data/grammars/source.nickel.json +1 -0
  99. data/grammars/source.nim.json +1 -1
  100. data/grammars/source.nr.json +1 -1
  101. data/grammars/source.nushell.json +1 -1
  102. data/grammars/source.odin-ehr.json +1 -1
  103. data/grammars/source.openqasm.json +1 -1
  104. data/grammars/source.postscript.json +1 -1
  105. data/grammars/source.proto.json +1 -1
  106. data/grammars/source.psl.json +1 -0
  107. data/grammars/source.pyjade.json +1 -1
  108. data/grammars/source.quakec.json +1 -0
  109. data/grammars/source.rascript.json +1 -0
  110. data/grammars/source.record-jar.json +1 -1
  111. data/grammars/source.rego.json +1 -1
  112. data/grammars/source.roc.json +1 -1
  113. data/grammars/source.rosmsg.json +1 -0
  114. data/grammars/source.rpgle.json +1 -1
  115. data/grammars/source.shell.json +1 -1
  116. data/grammars/source.sieve.json +1 -1
  117. data/grammars/source.singularity.json +1 -1
  118. data/grammars/source.slang.json +1 -1
  119. data/grammars/source.slint.json +1 -1
  120. data/grammars/source.soql.json +1 -1
  121. data/grammars/source.sqf.json +1 -1
  122. data/grammars/source.stan.json +1 -1
  123. data/grammars/source.surrealql.json +1 -0
  124. data/grammars/source.swift.json +1 -1
  125. data/grammars/source.teal.json +1 -0
  126. data/grammars/source.templ.json +1 -1
  127. data/grammars/source.tmdl.json +1 -0
  128. data/grammars/source.tsp.json +1 -1
  129. data/grammars/source.tsv.json +1 -0
  130. data/grammars/source.vb6.json +1 -0
  131. data/grammars/source.vba.json +1 -1
  132. data/grammars/source.vcl.json +1 -0
  133. data/grammars/source.vento.json +1 -1
  134. data/grammars/source.vhdl.json +1 -1
  135. data/grammars/source.vscode.c3.json +1 -0
  136. data/grammars/source.wdl.json +1 -1
  137. data/grammars/source.wesl.json +1 -0
  138. data/grammars/source.wgsl.json +1 -1
  139. data/grammars/source.wit.json +1 -1
  140. data/grammars/source.wwb.json +1 -1
  141. data/grammars/text.codeowners.json +1 -1
  142. data/grammars/text.git-commit.json +1 -0
  143. data/grammars/text.haml.json +1 -1
  144. data/grammars/text.html.jte.json +1 -1
  145. data/grammars/text.html.markdown.d2.json +1 -1
  146. data/grammars/text.html.vue.json +1 -0
  147. data/grammars/text.injection.go-template.json +1 -0
  148. data/grammars/text.jira.json +1 -0
  149. data/grammars/text.k.json +1 -0
  150. data/grammars/text.markdown.go-template.codeblock.json +1 -0
  151. data/grammars/text.marko.json +1 -1
  152. data/grammars/text.md.json +1 -1
  153. data/grammars/text.slim.json +1 -1
  154. data/grammars/text.source.mps.json +1 -0
  155. data/grammars/text.srt.json +1 -1
  156. data/grammars/text.valve-cfg.json +1 -1
  157. data/grammars/text.xml.svg.json +1 -1
  158. data/grammars/v.mod.json +1 -0
  159. data/grammars/version +1 -1
  160. data/grammars/vue.directives.json +1 -1
  161. data/grammars/vue.interpolations.json +1 -1
  162. data/grammars/vue.sfc.script.leading-operator-fix.json +1 -0
  163. data/lib/linguist/VERSION +1 -1
  164. data/lib/linguist/generated.rb +29 -5
  165. data/lib/linguist/generic.yml +3 -0
  166. data/lib/linguist/heuristics.yml +98 -11
  167. data/lib/linguist/instrumenter.rb +19 -0
  168. data/lib/linguist/languages.json +1 -1
  169. data/lib/linguist/languages.yml +405 -117
  170. data/lib/linguist/samples.json +1 -1
  171. data/lib/linguist.rb +1 -0
  172. metadata +59 -5
  173. data/grammars/inline.edgeql.json +0 -1
  174. data/grammars/source.varnish.vcl.json +0 -1
  175. data/grammars/source.vue.json +0 -1
@@ -1 +1 @@
1
- {"name":"BrightScript","scopeName":"source.brs","patterns":[{"include":"#entire_language"}],"repository":{"alias_statement":{"match":"(?i:(alias)\\s+([a-z0-9_]+)\\s*(=)\\s*)","captures":{"1":{"name":"keyword.declaration.alias.brs"},"2":{"name":"entity.name.variable.brs"},"3":{"name":"keyword.operator.assignment.brs"}}},"annotation":{"patterns":[{"match":"^\\s*(@)\\s*([a-zA-Z0-9_]+)","captures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"}}},{"name":"meta.decorator.brs","begin":"(@)\\s*([a-zA-Z0-9_]+)\\s*(\\()","end":"(\\))","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"},"3":{"name":"meta.brace.round.brs"}},"endCaptures":{"1":{"name":"meta.brace.round.brs"}}}]},"apostrophe_comment":{"name":"comment.line.apostrophe.brs","match":"('[^\\r\\n]*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"bsdoc":{"patterns":[{"include":"#bsdoc_param_and_type"},{"include":"#bsdoc_return_and_type"},{"include":"#bsdoc_generic"}]},"bsdoc_generic":{"match":"(?i:\\s*(rem|'+)\\s*(@)(\\w+)(.*$))","captures":{"1":{"name":"comment.line.apostrophe.brs"},"2":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"3":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"4":{"name":"comment.block.documentation.brs"}}},"bsdoc_param_and_type":{"match":"(?i:\\s*(rem|'+)\\s*(@)(param|type)\\s+(?:(\\{)\\s*([^\\}]+)\\s*(\\}))?\\s*([a-z0-9_.]+)?(.*))","captures":{"1":{"name":"comment.line.apostrophe.brs"},"2":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"3":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"4":{"name":"punctuation.definition.bracket.curly.begin.bsdoc"},"5":{"name":" comment.block.documentation.brs entity.name.type.instance.bsdoc"},"6":{"name":"punctuation.definition.bracket.curly.end.bsdoc"},"7":{"name":"variable.other.bsdoc"},"8":{"name":"comment.block.documentation.brs"}}},"bsdoc_return_and_type":{"match":"(?i:\\s*(rem|'+)\\s*(@)(return|returns)\\s+(?:(\\{)\\s*([^\\}]+)\\s*(\\}))?\\s*([a-z0-9_.]+.*)?)","captures":{"1":{"name":"comment.line.apostrophe.brs"},"2":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"3":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"4":{"name":"punctuation.definition.bracket.curly.begin.bsdoc"},"5":{"name":" comment.block.documentation.brs entity.name.type.instance.bsdoc"},"6":{"name":"punctuation.definition.bracket.curly.end.bsdoc"},"7":{"name":"comment.block.documentation.brs"}}},"class_declaration":{"match":"(?i:(class)\\s+([a-z0-9_]+)(?:\\s+(extends)(?:\\s+([a-z0-9_]+))?)?)","captures":{"1":{"name":"keyword.other.class.brs"},"2":{"name":"entity.name.type.class.brs"},"3":{"name":"storage.modifier.brs"},"4":{"name":"entity.name.type.class.brs"}}},"class_roku_builtin":{"name":"support.class.brs","match":"(?i:(?\u003c=\")(roAppInfo|roAppManager|roAppMemoryMonitor|roAppMemoryMonitorEvent|roAppendFile|roArray|roAssetCollection|roAssetFetcher|roAssetFetcherEvent|roAssetFetcherProgressEvent|roAssetPool|roAssetPoolFiles|roAssetRealizer|roAssetRealizerEvent|roAssociativeArray|roAudioConfiguration|roAudioEvent|roAudioEventMx|roAudioGuide|roAudioMetadata|roAudioOutput|roAudioPlayer|roAudioPlayerEvent|roAudioPlayerMx|roAudioResource|roBitmap|roBlockCipher|roBoolean|roBrSub|roBrightPackage|roBtClient|roBtClientEvent|roBtClientManager|roBtClientManagerEvent|roBtManager|roByteArray|roCECStatus|roCECStatusEvent|roCanvasWidget|roCaptionRenderer|roCaptionRendererEvent|roCecInterface|roCecRxFrameEvent|roCecTxCompleteEvent|roChannelManager|roChannelStore|roChannelStoreEvent|roCharDisplay|roClockWidget|roCodeRegistrationScreen|roCodeRegistrationScreenEvent|roCompositor|roConfigurationElements|roControlDown|roControlPort|roControlUp|roCreateFile|roDataGramSocket|roDatagramEvent|roDatagramReceiver|roDatagramSender|roDatagramSocket|roDateTime|roDeviceCrypto|roDeviceCustomization|roDeviceInfo|roDeviceInfoEvent|roDiskErrorEvent|roDiskMonitor|roDouble|roDsa|roEVPCipher|roEVPDigest|roElectron|roElectronEvent|roFileSystem|roFileSystemEvent|roFloat|roFont|roFontMetrics|roFontRegistry|roFunction|roGPIOButton|roGPIOControlPort|roGlobal|roGpioButton|roGpioControlPort|roGridScreen|roGridScreenEvent|roHMAC|roHashGenerator|roHdmiHotPlugEvent|roHdmiInputChanged|roHdmiOutputChanged|roHdmiStatus|roHdmiStatusEvent|roHtmlWidget|roHtmlWidgetEvent|roHttpAgent|roHttpEvent|roHttpServer|roIRDownEvent|roIRRepeatEvent|roIRUpEvent|roIRReceiver|roIRRemote|roIRRemotePress|roIRTransmitCompleteEvent|roIRTransmitter|roImageBuffer|roImageCanvas|roImageCanvasEvent|roImageMetaData|roImageMetadata|roImagePlayer|roImageWidget|roInput|roInputEvent|roInt|roIntrinsicDouble|roInvalid|roJRE|roKeyStore|roKeyboard|roKeyboardPress|roKeyboardScreen|roKeyboardScreenEvent|roList|roListScreen|roListScreenEvent|roLocalization|roLongInteger|roMediaServer|roMediaStreamer|roMediaStreamerEvent|roMessageDialog|roMessageDialogEvent|roMessagePort|roMicrophone|roMicrophoneEvent|roMimeStream|roMimeStreamEvent|roNetworkAdvertisement|roNetworkAttached|roNetworkConfiguration|roNetworkDetached|roNetworkDiscovery|roNetworkHotplug|roNetworkStatistics|roNetworkTimeEvent|roNodeJs|roNodeJsEvent|roOneLineDialog|roOneLineDialogEvent|roOpenVpn|roParagraphScreen|roParagraphScreenEvent|roPassKey|roPath|roPinEntryDialog|roPinEntryDialogEvent|roPosterScreen|roPosterScreenEvent|roPowerEvent|roPowerManager|roProgramGuide|roPtp|roPtpEvent|roQuadravoxButton|roQuadravoxSNS5|roRSA|roRSSArticle|roRSSParser|roReadFile|roReadWriteFile|roRectangle|roRegex|roRegion|roRegistry|roRegistrySection|roRemoteInfo|roResourceManager|roRssArticle|roRssParser|roRtspStream|roRtspStreamEvent|roSGNode|roSGNodeEvent|roSGScreen|roSGScreenEvent|roScreen|roSearchHistory|roSearchScreen|roSearchScreenEvent|roSequenceMatchEvent|roSequenceMatcher|roSerialPort|roSlideShow|roSlideShowEvent|roSnmpAgent|roSnmpEvent|roSocketAddress|roSocketEvent|roSpringboardScreen|roSpringboardScreenEvent|roSprite|roSqliteDatabase|roSqliteEvent|roSqliteStatement|roStorageAttached|roStorageDetached|roStorageHotplug|roStorageInfo|roStreamByteEvent|roStreamConnectResultEvent|roStreamEndEvent|roStreamLineEvent|roStreamQueue|roStreamQueueEvent|roStreamSocket|roString|roSyncManager|roSyncManagerEvent|roSyncPool|roSyncPoolEvent|roSyncPoolFiles|roSyncPoolProgressEvent|roSyncSpec|roSystemLog|roSystemLogEvent|roSystemTime|roTCPConnectEvent|roTCPServer|roTCPStream|roTextField|roTextScreen|roTextScreenEvent|roTextToSpeech|roTextToSpeechEvent|roTextWidget|roTextWidgetEvent|roTextureManager|roTextureRequest|roTextureRequestEvent|roTimeSpan|roTimer|roTimerEvent|roTimespan|roTouchCalibrationEvent|roTouchEvent|roTouchScreen|roTuner|roTunerEvent|roUPnPActionResult|roUPnPController|roUPnPDevice|roUPnPSearchEvent|roUPnPService|roUPnPServiceEvent|roUniversalControlEvent|roUrlEvent|roUrlTransfer|roUsbFilesystem|roUsbHidEmulator|roUsbHidLedEmulatorEvent|roUsbPowerControl|roVideoEvent|roVideoInput|roVideoMode|roVideoPlayer|roVideoPlayerEvent|roVideoScreen|roVideoScreenEvent|roVirtualMemory|roWriteFile|roXMLElement|roXMLList)(?=\"))"},"comment":{"patterns":[{"include":"#rem_comment"},{"include":"#apostrophe_comment"}]},"component_statement":{"name":"meta.component.brs","begin":"(?i)^[ \t]*(component)\\s+(?:([a-z0-9_]+)|(\".*?\"))(?:\\s+(extends)(?:\\s+(?:([a-z0-9_]+)|(\".*?\")))?)?\\s*","end":"(?i)(?\u003c![_[:alnum:]])(?\u003c!\\.)\\s*(end\\s*component)","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"storage.type.component.brs"},"2":{"name":"entity.name.type.component.brs"},"3":{"name":"string.quoted.double.brs"},"4":{"name":"storage.modifier.extends.brs"},"5":{"name":"entity.name.type.component.brs"},"6":{"name":"string.quoted.double.brs"}},"endCaptures":{"1":{"name":"storage.type.component.brs"}}},"end_class":{"name":"storage.type.class.brs","match":"(?i:\\s*(end\\s*class))"},"end_function":{"name":"keyword.declaration.function.brs","match":"(?i)[ \\t]*end\\s*(sub|function)"},"end_namespace":{"match":"^(?i:\\s*(end\\s*namespace)\\s*(?=['\\n]))","captures":{"1":{"name":"keyword.other.namespace.brs"}}},"end_region_comment":{"name":"keyword.preprocessor.region.brs","match":"^(i?\\s*'\\s*#endregion(\\s*.*)?$)"},"entire_language":{"patterns":[{"include":"#regex"},{"include":"#bsdoc"},{"include":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_statement"},{"include":"#alias_statement"},{"include":"#namespace_declaration"},{"include":"#enum_declaration"},{"include":"#end_namespace"},{"include":"#method"},{"include":"#field"},{"include":"#class_declaration"},{"include":"#end_class"},{"include":"#preprocessor_keywords"},{"include":"#region_comment"},{"include":"#end_region_comment"},{"include":"#global_constants"},{"include":"#keyword_logical_operator"},{"include":"#function_call"},{"include":"#numeric_literal"},{"include":"#object_properties"},{"include":"#vscode_rale_tracker_entry_comment"},{"include":"#identifiers_with_type_designators"},{"include":"#m_and_global"},{"include":"#keyword_return"},{"include":"#primitive_literal_expression"},{"include":"#function_declaration"},{"include":"#inline_function_declaration"},{"include":"#end_function"},{"include":"#interface_declaration"},{"include":"#storage_types"},{"include":"#loop_keywords"},{"include":"#program_statements"},{"include":"#try_catch"},{"include":"#non_identifier_keywords"},{"include":"#operators"},{"include":"#variables_and_params"},{"include":"#annotation"}]},"enum_declaration":{"name":"meta.enum.declaration.brs","begin":"(?i)\\b(enum)[ \\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[ \\t]*(end[ \\t]*enum)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#enum_field"}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.brs"}}},"enum_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"},{"include":"#comment"},{"include":"#annotation"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}},"field":{"match":"(?i:(public|protected|private)\\s+([a-z0-9_]+))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"variable.object.property.brs"}}},"function_call":{"match":"(?i:\\b([a-z_][a-z0-9_]*)[ \\t]*(?=\\())","captures":{"1":{"name":"entity.name.function.brs"}}},"function_declaration":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function))(?:\\s+(?:\\(|([a-z_][a-z0-9_]*))))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"global_constants":{"name":"variable.language","match":"(?i:\\b(line_num)\\b)"},"identifiers_with_type_designators":{"name":"entity.name.variable.local.brs","match":"(?i:\\b([a-z_][a-z0-9_]*)[\\$%!#\u0026])"},"if_with_paren":{"begin":"(?i:(?\u003c!\\.)(if)\\s*\\()","end":"\u0008(then)|\n","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"keyword.control.brs"}},"endCaptures":{"1":{"name":"keyword.control.brs"}}},"import_statement":{"match":"(?i:(import)\\s*(\".*\"))","captures":{"1":{"name":"keyword.control.import.brs"},"2":{"name":"string.quoted.double.brs"}}},"inline_function_declaration":{"match":"(?i)[^a-z0-9_\"](function|sub)\\s*\\(","captures":{"1":{"name":"keyword.declaration.function.brs"},"2":{"name":"keyword.declaration.function.brs"}}},"interface_declaration":{"name":"meta.interface.brs","begin":"(?i)\\b[\\s\\t]*(interface)[\\s\\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[\\s\\t]*(end[\\s\\t]*interface)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#interface_function"},{"include":"#interface_field"}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.brs"}}},"interface_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}},"interface_function":{"patterns":[{"include":"#interface_function_with_return_type"},{"include":"#interface_function_plain"}]},"interface_function_plain":{"match":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\())(\\))[\\s\\t]","captures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"interface_function_with_return_type":{"begin":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\()).*?(\\))[\\s\\t]+(as)","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"keyword_logical_operator":{"name":"keyword.operator.logical.word","match":"(?i:\\b(and|or|not)\\b)"},"keyword_return":{"match":"(?i:\\b(return)\\b)","captures":{"1":{"name":"keyword.control.flow.return.brs"}}},"loop_keywords":{"name":"keyword.control.loop.brs","match":"(?i:(?\u003c!\\.)(continue\\s+(for|while)\\b))"},"m_and_global":{"match":"(?i:(?\u003c!\\.)\\b(m|super)\\b(?:\\s*\\.\\s*(top|global)\\b)?)","captures":{"1":{"name":"keyword.other.this.brs"},"2":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function))(?:\\s+(?:\\(|([a-z_][a-z0-9_]*))))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"namespace_declaration":{"begin":"(?i:(namespace))\\s+","end":"[\\s'\\n]","patterns":[{"name":"entity.name.type.namespace.brs","match":"(?i:([a-z0-9_]+))"},{"name":"punctuation.accessor.brs","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.namespace.brs"}}},"non_identifier_keywords":{"match":"(?i:[^\\.\\w\\\"](then|stop|run|end|each|next|throw)(?!(\\s*:)|[\\d\\w_]))","captures":{"1":{"name":"keyword.control.brs"}}},"numeric_literal":{"patterns":[{"name":"constant.numeric.brs","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"}]},"object_properties":{"match":"(?i:(?\u003c=\\.)([a-z0-9_][a-z0-9_\\$%!#\u0026]*))","captures":{"1":{"name":"variable.other.object.property.brs"}}},"operators":{"name":"keyword.operator.brs","match":"=|\u003e=|\u003czz|\u003e|\u003c|\u003c\u003e|\\+|-|\\*|\\/|\\^|\u0026|\\b(?i:(And|Not|Or|Mod))\\b"},"preprocessor_keywords":{"patterns":[{"name":"keyword.preprocessor.const.brs","match":"(?i:(#[ \t]*const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#[ \t]*if))"},{"name":"keyword.preprocessor.elseif.brs","match":"(?i:(#[ \t]*else[ \t]*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#[ \t]*end[ \t]*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#[ \t]*else))"},{"name":"keyword.preprocessor.error.brs","match":"(?i:(#[ \t]*error))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"include":"#numeric_literal"},{"patterns":[{"name":"constant.language.boolean.true.brs","match":"(?i)\\b(true)\\b"},{"name":"constant.language.boolean.false.brs","match":"(?i)\\b(false)\\b"}]},{"match":"(?i:\\b(invalid)\\b)","captures":{"1":{"name":"constant.language.null.brs"}}}]},"program_statements":{"name":"keyword.control.brs","match":"(?i:(?\u003c!\\.)(if|else\\s*if|else|print|library|while|for\\s+each|for|end\\s*for|exit\\s+for|end\\s*while|exit\\s*while|end\\s*if|to|step|in|goto|rem|as)\\b)"},"regex":{"patterns":[{"name":"string.regexp.brs","begin":"(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}},{"name":"string.regexp.brs","begin":"((?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?\u003c=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"match":"\\\\[1-9]\\d*|\\\\k\u003c([a-zA-Z_$][\\w$]*)\u003e","captures":{"0":{"name":"keyword.other.back-reference.regexp"},"1":{"name":"variable.other.regexp"}}},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!)|(\\?\\|)|(\\?\u003c=)|(\\?\u003c!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"},"5":{"name":"meta.assertion.look-behind.regexp"},"6":{"name":"meta.assertion.negative-look-behind.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((?:(\\?[:\u003e])|(?:\\?\u003c([a-zA-Z_$][\\w$]*)\u003e))?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"region_comment":{"match":"(?i:^\\s*('\\s*#region)(?:(\\s+.*)?))$","captures":{"1":{"name":"keyword.preprocessor.region.brs"},"2":{"name":"string.unquoted.preprocessor.message.brs"}}},"rem_comment":{"name":"comment.line.rem.brs","match":"^\\s*?(?i:rem\\s.*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"storage_types":{"match":"(?i:\\b(boolean|integer|longinteger|float|double|string|object|function|sub|interface|dynamic|brsub|dim|const)\\b)","captures":{"1":{"name":"storage.type.brs"}}},"template_string":{"begin":"(`)","end":"(`)","patterns":[{"begin":"(\\$\\{)","end":"(\\})","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end"}}},{"name":"string.template.brs","match":"(.)"}],"beginCaptures":{"1":{"name":"string.template.brs"}},"endCaptures":{"1":{"name":"string.template.brs"}}},"try_catch":{"name":"keyword.control.trycatch.brs","match":"(?i:\\b(try|catch|(end[ \\t]*try))\\b)"},"type_expression":{"patterns":[{"match":"(?i)(boolean|integer|longinteger|float|double|string)","captures":{"1":{"name":"storage.type.brs"}}},{"match":"(?i)\\b([a-z0-9_]+)","captures":{"1":{"name":"support.type.brs entity.name.type.brs"}}}]},"variables_and_params":{"match":"(?i:(?:\\b(new)\\s)?\\b(?\u003c!\\.)([a-z_][a-z0-9_\\$%!#]*)\\b)","captures":{"1":{"name":"keyword.operator.new.brs"},"2":{"name":"entity.name.variable.local.brs"}}},"vscode_rale_tracker_entry_comment":{"name":"keyword.preprocessor.brs","match":"('\\s*vscode_rale_tracker_entry[^\\S\\r\\n]*)"}}}
1
+ {"name":"BrightScript","scopeName":"source.brs","patterns":[{"include":"#entire_language"}],"repository":{"alias_statement":{"match":"(?i:(alias)\\s+([a-z0-9_]+)\\s*(=)\\s*)","captures":{"1":{"name":"keyword.declaration.alias.brs"},"2":{"name":"entity.name.variable.brs"},"3":{"name":"keyword.operator.assignment.brs"}}},"annotation":{"patterns":[{"match":"^\\s*(@)\\s*([a-zA-Z0-9_]+)","captures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"}}},{"name":"meta.decorator.brs","begin":"(@)\\s*([a-zA-Z0-9_]+)\\s*(\\()","end":"(\\))","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"},"3":{"name":"meta.brace.round.brs"}},"endCaptures":{"1":{"name":"meta.brace.round.brs"}}}]},"apostrophe_comment":{"name":"comment.line.apostrophe.brs","match":"('[^\\r\\n]*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"bsdoc":{"patterns":[{"include":"#bsdoc_param_and_type"},{"include":"#bsdoc_return_and_type"},{"include":"#bsdoc_generic"}]},"bsdoc_generic":{"match":"(?i:\\s*(rem|'+)\\s*(@)(\\w+)(.*$))","captures":{"1":{"name":"comment.line.apostrophe.brs"},"2":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"3":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"4":{"name":"comment.block.documentation.brs"}}},"bsdoc_param_and_type":{"match":"(?i:\\s*(rem|'+)\\s*(@)(param|type)\\s+(?:(\\{)\\s*([^\\}]+)\\s*(\\}))?\\s*([a-z0-9_.]+)?(.*))","captures":{"1":{"name":"comment.line.apostrophe.brs"},"2":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"3":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"4":{"name":"punctuation.definition.bracket.curly.begin.bsdoc"},"5":{"name":" comment.block.documentation.brs entity.name.type.instance.bsdoc"},"6":{"name":"punctuation.definition.bracket.curly.end.bsdoc"},"7":{"name":"variable.other.bsdoc"},"8":{"name":"comment.block.documentation.brs"}}},"bsdoc_return_and_type":{"match":"(?i:\\s*(rem|'+)\\s*(@)(return|returns)\\s+(?:(\\{)\\s*([^\\}]+)\\s*(\\}))?\\s*([a-z0-9_.]+.*)?)","captures":{"1":{"name":"comment.line.apostrophe.brs"},"2":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"3":{"name":"punctuation.definition.block.tag.bsdoc storage.type.class.bsdoc"},"4":{"name":"punctuation.definition.bracket.curly.begin.bsdoc"},"5":{"name":" comment.block.documentation.brs entity.name.type.instance.bsdoc"},"6":{"name":"punctuation.definition.bracket.curly.end.bsdoc"},"7":{"name":"comment.block.documentation.brs"}}},"class_declaration":{"match":"(?i:(class)\\s+([a-z0-9_]+)(?:\\s+(extends)(?:\\s+([a-z0-9_]+))?)?)","captures":{"1":{"name":"keyword.other.class.brs"},"2":{"name":"entity.name.type.class.brs"},"3":{"name":"storage.modifier.brs"},"4":{"name":"entity.name.type.class.brs"}}},"class_roku_builtin":{"name":"support.class.brs","match":"(?i:(?\u003c=\")(roAppInfo|roAppManager|roAppMemoryMonitor|roAppMemoryMonitorEvent|roAppendFile|roArray|roAssetCollection|roAssetFetcher|roAssetFetcherEvent|roAssetFetcherProgressEvent|roAssetPool|roAssetPoolFiles|roAssetRealizer|roAssetRealizerEvent|roAssociativeArray|roAudioConfiguration|roAudioEvent|roAudioEventMx|roAudioGuide|roAudioMetadata|roAudioOutput|roAudioPlayer|roAudioPlayerEvent|roAudioPlayerMx|roAudioResource|roBitmap|roBlockCipher|roBoolean|roBrSub|roBrightPackage|roBtClient|roBtClientEvent|roBtClientManager|roBtClientManagerEvent|roBtManager|roByteArray|roCECStatus|roCECStatusEvent|roCanvasWidget|roCaptionRenderer|roCaptionRendererEvent|roCecInterface|roCecRxFrameEvent|roCecTxCompleteEvent|roChannelManager|roChannelStore|roChannelStoreEvent|roCharDisplay|roClockWidget|roCodeRegistrationScreen|roCodeRegistrationScreenEvent|roCompositor|roConfigurationElements|roControlDown|roControlPort|roControlUp|roCreateFile|roDataGramSocket|roDatagramEvent|roDatagramReceiver|roDatagramSender|roDatagramSocket|roDateTime|roDeviceCrypto|roDeviceCustomization|roDeviceInfo|roDeviceInfoEvent|roDiskErrorEvent|roDiskMonitor|roDouble|roDsa|roEVPCipher|roEVPDigest|roElectron|roElectronEvent|roFileSystem|roFileSystemEvent|roFloat|roFont|roFontMetrics|roFontRegistry|roFunction|roGPIOButton|roGPIOControlPort|roGlobal|roGpioButton|roGpioControlPort|roGridScreen|roGridScreenEvent|roHMAC|roHashGenerator|roHdmiHotPlugEvent|roHdmiInputChanged|roHdmiOutputChanged|roHdmiStatus|roHdmiStatusEvent|roHtmlWidget|roHtmlWidgetEvent|roHttpAgent|roHttpEvent|roHttpServer|roIRDownEvent|roIRRepeatEvent|roIRUpEvent|roIRReceiver|roIRRemote|roIRRemotePress|roIRTransmitCompleteEvent|roIRTransmitter|roImageBuffer|roImageCanvas|roImageCanvasEvent|roImageMetaData|roImageMetadata|roImagePlayer|roImageWidget|roInput|roInputEvent|roInt|roIntrinsicDouble|roInvalid|roJRE|roKeyStore|roKeyboard|roKeyboardPress|roKeyboardScreen|roKeyboardScreenEvent|roList|roListScreen|roListScreenEvent|roLocalization|roLongInteger|roMediaServer|roMediaStreamer|roMediaStreamerEvent|roMessageDialog|roMessageDialogEvent|roMessagePort|roMicrophone|roMicrophoneEvent|roMimeStream|roMimeStreamEvent|roNetworkAdvertisement|roNetworkAttached|roNetworkConfiguration|roNetworkDetached|roNetworkDiscovery|roNetworkHotplug|roNetworkStatistics|roNetworkTimeEvent|roNodeJs|roNodeJsEvent|roOneLineDialog|roOneLineDialogEvent|roOpenVpn|roParagraphScreen|roParagraphScreenEvent|roPassKey|roPath|roPinEntryDialog|roPinEntryDialogEvent|roPosterScreen|roPosterScreenEvent|roPowerEvent|roPowerManager|roProgramGuide|roPtp|roPtpEvent|roQuadravoxButton|roQuadravoxSNS5|roRSA|roRSSArticle|roRSSParser|roReadFile|roReadWriteFile|roRectangle|roRegex|roRegion|roRegistry|roRegistrySection|roRemoteInfo|roResourceManager|roRssArticle|roRssParser|roRtspStream|roRtspStreamEvent|roSGNode|roSGNodeEvent|roSGScreen|roSGScreenEvent|roScreen|roSearchHistory|roSearchScreen|roSearchScreenEvent|roSequenceMatchEvent|roSequenceMatcher|roSerialPort|roSlideShow|roSlideShowEvent|roSnmpAgent|roSnmpEvent|roSocketAddress|roSocketEvent|roSpringboardScreen|roSpringboardScreenEvent|roSprite|roSqliteDatabase|roSqliteEvent|roSqliteStatement|roStorageAttached|roStorageDetached|roStorageHotplug|roStorageInfo|roStreamByteEvent|roStreamConnectResultEvent|roStreamEndEvent|roStreamLineEvent|roStreamQueue|roStreamQueueEvent|roStreamSocket|roString|roSyncManager|roSyncManagerEvent|roSyncPool|roSyncPoolEvent|roSyncPoolFiles|roSyncPoolProgressEvent|roSyncSpec|roSystemLog|roSystemLogEvent|roSystemTime|roTCPConnectEvent|roTCPServer|roTCPStream|roTextField|roTextScreen|roTextScreenEvent|roTextToSpeech|roTextToSpeechEvent|roTextWidget|roTextWidgetEvent|roTextureManager|roTextureRequest|roTextureRequestEvent|roTimeSpan|roTimer|roTimerEvent|roTimespan|roTouchCalibrationEvent|roTouchEvent|roTouchScreen|roTuner|roTunerEvent|roUPnPActionResult|roUPnPController|roUPnPDevice|roUPnPSearchEvent|roUPnPService|roUPnPServiceEvent|roUniversalControlEvent|roUrlEvent|roUrlTransfer|roUsbFilesystem|roUsbHidEmulator|roUsbHidLedEmulatorEvent|roUsbPowerControl|roVideoEvent|roVideoInput|roVideoMode|roVideoPlayer|roVideoPlayerEvent|roVideoScreen|roVideoScreenEvent|roVirtualMemory|roWriteFile|roXMLElement|roXMLList)(?=\"))"},"comment":{"patterns":[{"include":"#rem_comment"},{"include":"#apostrophe_comment"}]},"component_statement":{"name":"meta.component.brs","begin":"(?i)^[ \t]*(component)\\s+(?:([a-z0-9_]+)|(\".*?\"))(?:\\s+(extends)(?:\\s+(?:([a-z0-9_]+)|(\".*?\")))?)?\\s*","end":"(?i)(?\u003c![_[:alnum:]])(?\u003c!\\.)\\s*(end\\s*component)","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"storage.type.component.brs"},"2":{"name":"entity.name.type.component.brs"},"3":{"name":"string.quoted.double.brs"},"4":{"name":"storage.modifier.extends.brs"},"5":{"name":"entity.name.type.component.brs"},"6":{"name":"string.quoted.double.brs"}},"endCaptures":{"1":{"name":"storage.type.component.brs"}}},"end_class":{"name":"storage.type.class.brs","match":"(?i:\\s*(end\\s*class))"},"end_function":{"name":"keyword.declaration.function.brs","match":"(?i)[ \\t]*end\\s*(sub|function)"},"end_namespace":{"match":"^(?i:\\s*(end\\s*namespace)\\s*(?=['\\n]))","captures":{"1":{"name":"keyword.other.namespace.brs"}}},"end_region_comment":{"name":"keyword.preprocessor.region.brs","match":"^(i?\\s*'\\s*#endregion(\\s*.*)?$)"},"entire_language":{"patterns":[{"include":"#regex"},{"include":"#bsdoc"},{"include":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_statement"},{"include":"#alias_statement"},{"include":"#namespace_declaration"},{"include":"#enum_declaration"},{"include":"#end_namespace"},{"include":"#method"},{"include":"#field"},{"include":"#class_declaration"},{"include":"#end_class"},{"include":"#preprocessor_keywords"},{"include":"#region_comment"},{"include":"#end_region_comment"},{"include":"#global_constants"},{"include":"#keyword_logical_operator"},{"include":"#function_call"},{"include":"#numeric_literal"},{"include":"#object_properties"},{"include":"#vscode_rale_tracker_entry_comment"},{"include":"#identifiers_with_type_designators"},{"include":"#m_and_global"},{"include":"#keyword_return"},{"include":"#primitive_literal_expression"},{"include":"#function_declaration"},{"include":"#inline_function_declaration"},{"include":"#end_function"},{"include":"#interface_declaration"},{"include":"#function_param_ish"},{"include":"#storage_types"},{"include":"#loop_keywords"},{"include":"#program_statements"},{"include":"#try_catch"},{"include":"#non_identifier_keywords"},{"include":"#operators"},{"include":"#variables_and_params"},{"include":"#annotation"}]},"enum_declaration":{"name":"meta.enum.declaration.brs","begin":"(?i)\\b(enum)[ \\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[ \\t]*(end[ \\t]*enum)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#enum_field"}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.brs"}}},"enum_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"},{"include":"#comment"},{"include":"#annotation"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}},"field":{"match":"(?i:(public|protected|private)\\s+([a-z0-9_]+))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"variable.object.property.brs"}}},"function_call":{"match":"(?i:\\b([a-z_][a-z0-9_]*)[ \\t]*(?=\\())","captures":{"1":{"name":"entity.name.function.brs"}}},"function_declaration":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function))(?:\\s+(?:\\(|([a-z_][a-z0-9_]*))))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"function_param_ish":{"match":"(?i:)(?\u003c=[\\(,])[ \\t]*\\b([a-z0-9_]+)[ \\t]+(as\\b)","captures":{"1":{"name":"variable.parameter.brs"},"2":{"name":"keyword.control.as.brs"}}},"global_constants":{"name":"variable.language","match":"(?i:\\b(line_num)\\b)"},"identifiers_with_type_designators":{"name":"entity.name.variable.local.brs","match":"(?i:\\b([a-z_][a-z0-9_]*)[\\$%!#\u0026])"},"if_with_paren":{"begin":"(?i:(?\u003c!\\.)(if)\\s*\\()","end":"\u0008(then)|\n","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"keyword.control.brs"}},"endCaptures":{"1":{"name":"keyword.control.brs"}}},"import_statement":{"match":"(?i:(import)\\s*(\".*\"))","captures":{"1":{"name":"keyword.control.import.brs"},"2":{"name":"string.quoted.double.brs"}}},"inline_function_declaration":{"match":"(?i)[^a-z0-9_\"](function|sub)\\s*\\(","captures":{"1":{"name":"keyword.declaration.function.brs"},"2":{"name":"keyword.declaration.function.brs"}}},"interface_declaration":{"name":"meta.interface.brs","begin":"(?i)^[\\s\\t]*(interface)[\\s\\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[\\s\\t]*(end[\\s\\t]*interface)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#interface_function"},{"include":"#interface_field"}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.brs"}}},"interface_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}},"interface_function":{"patterns":[{"include":"#interface_function_with_return_type"},{"include":"#interface_function_plain"}]},"interface_function_plain":{"match":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\())(\\))[\\s\\t]","captures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"interface_function_with_return_type":{"begin":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\()).*?(\\))[\\s\\t]+(as)","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"keyword_logical_operator":{"name":"keyword.operator.logical.word","match":"(?i:\\b(and|or|not)\\b)"},"keyword_return":{"match":"(?i:\\b(return)\\b)","captures":{"1":{"name":"keyword.control.flow.return.brs"}}},"loop_keywords":{"name":"keyword.control.loop.brs","match":"(?i:(?\u003c!\\.)(continue\\s+(for|while)\\b))"},"m_and_global":{"match":"(?i:(?\u003c!\\.)\\b(m|super)\\b(?:\\s*\\.\\s*(top|global)\\b)?)","captures":{"1":{"name":"keyword.other.this.brs"},"2":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function))(?:\\s+(?:\\(|([a-z_][a-z0-9_]*))))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"namespace_declaration":{"begin":"(?i:(namespace))\\s+","end":"[\\s'\\n]","patterns":[{"name":"entity.name.type.namespace.brs","match":"(?i:([a-z0-9_]+))"},{"name":"punctuation.accessor.brs","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.namespace.brs"}}},"non_identifier_keywords":{"match":"(?i:[^\\.\\w\\\"](then|stop|run|end|each|next|throw)(?!(\\s*:)|[\\d\\w_]))","captures":{"1":{"name":"keyword.control.brs"}}},"numeric_literal":{"patterns":[{"name":"constant.numeric.brs","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"}]},"object_properties":{"match":"(?i:(?\u003c=\\.)([a-z0-9_][a-z0-9_\\$%!#\u0026]*))","captures":{"1":{"name":"variable.other.object.property.brs"}}},"operators":{"name":"keyword.operator.brs","match":"=|\u003e=|\u003czz|\u003e|\u003c|\u003c\u003e|\\+|-|\\*|\\/|\\^|\u0026|\\b(?i:(And|Not|Or|Mod))\\b"},"preprocessor_keywords":{"patterns":[{"name":"keyword.preprocessor.const.brs","match":"(?i:(#[ \t]*const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#[ \t]*if))"},{"name":"keyword.preprocessor.elseif.brs","match":"(?i:(#[ \t]*else[ \t]*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#[ \t]*end[ \t]*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#[ \t]*else))"},{"name":"keyword.preprocessor.error.brs","match":"(?i:(#[ \t]*error))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"include":"#numeric_literal"},{"patterns":[{"name":"constant.language.boolean.true.brs","match":"(?i)\\b(true)\\b"},{"name":"constant.language.boolean.false.brs","match":"(?i)\\b(false)\\b"}]},{"match":"(?i:\\b(invalid)\\b)","captures":{"1":{"name":"constant.language.null.brs"}}}]},"program_statements":{"name":"keyword.control.brs","match":"(?i:(?\u003c!\\.)(if|else\\s*if|else|print|library|while|for\\s+each|for|end\\s*for|exit\\s+for|end\\s*while|exit\\s*while|end\\s*if|to|step|in|goto|rem|as)\\b)"},"regex":{"patterns":[{"name":"string.regexp.brs","begin":"(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}},{"name":"string.regexp.brs","begin":"((?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?\u003c=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"match":"\\\\[1-9]\\d*|\\\\k\u003c([a-zA-Z_$][\\w$]*)\u003e","captures":{"0":{"name":"keyword.other.back-reference.regexp"},"1":{"name":"variable.other.regexp"}}},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!)|(\\?\\|)|(\\?\u003c=)|(\\?\u003c!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"},"5":{"name":"meta.assertion.look-behind.regexp"},"6":{"name":"meta.assertion.negative-look-behind.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((?:(\\?[:\u003e])|(?:\\?\u003c([a-zA-Z_$][\\w$]*)\u003e))?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"region_comment":{"match":"(?i:^\\s*('\\s*#region)(?:(\\s+.*)?))$","captures":{"1":{"name":"keyword.preprocessor.region.brs"},"2":{"name":"string.unquoted.preprocessor.message.brs"}}},"rem_comment":{"name":"comment.line.rem.brs","match":"^\\s*?(?i:rem\\s.*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"storage_types":{"match":"(?i:\\b(boolean|integer|longinteger|float|double|string|object|function|sub|interface|dynamic|brsub|dim|const)\\b)","captures":{"1":{"name":"storage.type.brs"}}},"template_string":{"begin":"(`)","end":"(`)","patterns":[{"begin":"(\\$\\{)","end":"(\\})","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end"}}},{"name":"string.template.brs","match":"(.)"}],"beginCaptures":{"1":{"name":"string.template.brs"}},"endCaptures":{"1":{"name":"string.template.brs"}}},"try_catch":{"name":"keyword.control.trycatch.brs","match":"(?i:\\b(try|catch|(end[ \\t]*try))\\b)"},"type_expression":{"patterns":[{"match":"(?i)(boolean|integer|longinteger|float|double|string)","captures":{"1":{"name":"storage.type.brs"}}},{"match":"(?i)\\b([a-z0-9_]+)","captures":{"1":{"name":"support.type.brs entity.name.type.brs"}}}]},"variables_and_params":{"match":"(?i:(?:\\b(new)\\s)?\\b(?\u003c!\\.)([a-z_][a-z0-9_\\$%!#]*)\\b)","captures":{"1":{"name":"keyword.operator.new.brs"},"2":{"name":"entity.name.variable.local.brs"}}},"vscode_rale_tracker_entry_comment":{"name":"keyword.preprocessor.brs","match":"('\\s*vscode_rale_tracker_entry[^\\S\\r\\n]*)"}}}
@@ -0,0 +1 @@
1
+ {"name":"bruno","scopeName":"source.bru","patterns":[{"include":"#strings"},{"include":"#meta-block"},{"include":"#get-block"},{"include":"#post-block"},{"include":"#put-block"},{"include":"#delete-block"},{"include":"#options-block"},{"include":"#head-block"},{"include":"#trace-block"},{"include":"#connect-block"},{"include":"#query-block"},{"include":"#headers-block"},{"include":"#body-block"},{"include":"#body-json-block"},{"include":"#body-text-block"},{"include":"#body-xml-block"},{"include":"#body-form-urlencoded-block"},{"include":"#body-multipart-form-block"},{"include":"#body-graphql-block"},{"include":"#body-graphql-vars-block"},{"include":"#assert-block"},{"include":"#vars-block"},{"include":"#vars-req-block"},{"include":"#vars-res-block"},{"include":"#script-req-block"},{"include":"#script-res-block"},{"include":"#tests-block"},{"include":"#docs-block"}],"repository":{"assert-block":{"name":"meta.assert-block.bruno","begin":"^assert\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-block":{"name":"meta.body-block.bruno","begin":"^body\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"source.json"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-form-urlencoded-block":{"name":"meta.body-form-urlencoded-block.bruno","begin":"^body\\:form-urlencoded\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-graphql-block":{"name":"meta.body-graphql-block.bruno","begin":"^body\\:graphql\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"source.graphql"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-graphql-vars-block":{"name":"meta.body-graphql-vars-block.bruno","begin":"^body\\:graphql\\:vars\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"source.json"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-json-block":{"name":"meta.body-json-block.bruno","begin":"^body\\:json\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"source.json"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-multipart-form-block":{"name":"meta.body-multipart-form-block.bruno","begin":"^body\\:multipart-form\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-text-block":{"name":"meta.body-text-block.bruno","begin":"^body\\:text\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"text.md"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"body-xml-block":{"name":"meta.body-xml-block.bruno","begin":"^body\\:xml\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"text.xml"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"connect-block":{"name":"meta.connect-block.bruno","begin":"^connect\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"delete-block":{"name":"meta.delete-block.bruno","begin":"^delete\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"dictionary":{"patterns":[{"match":"^\\s*([^\\:]+)[\\:]\\s+([^\\n]+)\\s*$","captures":{"1":{"name":"entity.name.tag.bruno"},"2":{"name":"string.bruno"}}}]},"docs-block":{"name":"meta.docs-block.bruno","begin":"^docs\\s*\\{","end":"^\\}","patterns":[{"include":"text.md"}],"beginCaptures":{"0":{"name":"keyword.bruno"}},"endCaptures":{"0":{"name":"keyword.bruno"}}},"get-block":{"name":"meta.get-block.bruno","begin":"^get\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"head-block":{"name":"meta.head-block.bruno","begin":"^head\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"headers-block":{"name":"meta.headers-block.bruno","begin":"^headers\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"meta-block":{"name":"meta.meta-block.bruno","begin":"^meta\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"options-block":{"name":"meta.options-block.bruno","begin":"^options\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"post-block":{"name":"meta.post-block.bruno","begin":"^post\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"put-block":{"name":"meta.put-block.bruno","begin":"^put\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"query-block":{"name":"meta.query-block.bruno","begin":"^query\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"script-req-block":{"name":"meta.script-req-block.bruno","begin":"^script\\:pre-request\\s*\\{","end":"^\\}","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"script-res-block":{"name":"meta.script-res-block.bruno","begin":"^script\\:post-response\\s*\\{","end":"^\\}","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"strings":{"name":"string.quoted.double.bruno","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.bruno","match":"\\\\."}]},"tests-block":{"name":"meta.tests-block.bruno","begin":"^tests\\s*\\{","end":"^\\}","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"keyword.bruno"}},"endCaptures":{"0":{"name":"keyword.bruno"}}},"trace-block":{"name":"meta.trace-block.bruno","begin":"^trace\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"vars-block":{"name":"meta.vars-block.bruno","begin":"^vars\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"vars-req-block":{"name":"meta.vars-req-block.bruno","begin":"^vars\\:pre-request\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}},"vars-res-block":{"name":"meta.vars-res-block.bruno","begin":"^vars\\:post-response\\s*\\{","end":"^\\}\\s*","patterns":[{"include":"#dictionary"}],"beginCaptures":{"0":{"name":"keyword.bruno"}}}}}
@@ -1 +1 @@
1
- {"name":"C++","scopeName":"source.c++","patterns":[{"include":"#special_block"},{"include":"#strings"},{"match":"\\b(if)\\s+(constexpr)\\b","captures":{"1":{"name":"keyword.control.c++"},"2":{"name":"keyword.control.c++"}}},{"match":"(::)\\s*(template)\\b","captures":{"1":{"name":"punctuation.separator.scope.c++"},"2":{"name":"storage.modifier.template.c++"}}},{"include":"source.c"},{"name":"storage.modifier.$1.c++","match":"\\b(friend|explicit|virtual)\\b"},{"name":"storage.modifier.$1.c++","match":"\\b(private|protected|public):"},{"name":"keyword.control.c++","match":"\\b(catch|operator|try|throw|using)\\b"},{"name":"keyword.control.c++","match":"\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])"},{"name":"variable.other.readwrite.member.c++","match":"\\b(f|m)[A-Z]\\w*\\b"},{"name":"variable.language.c++","match":"\\b(this)\\b"},{"name":"storage.type.template.c++","match":"\\b(template|concept)\\b\\s*"},{"name":"keyword.operator.cast.c++","match":"\\b(const_cast|dynamic_cast|reinterpret_cast|static_assert|static_cast)\\b\\s*"},{"name":"keyword.operator.c++","match":"\\b(and|and_eq|bitand|bitor|co_await|co_return|co_yield|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq)\\b"},{"name":"storage.type.c++","match":"\\b(class)\\b"},{"name":"storage.modifier.c++","match":"\\b(alignas|alignof|consteval|constinit|constexpr|decltype|final|mutable|noexcept|override|requires|thread_local|typename)\\b"},{"name":"keyword.module.c++","match":"\\b(import|export|module)\\b"},{"name":"meta.function.destructor.c++","begin":"(?x)\n \t\t\t\t(?: ^ # begin-of-line\n \t\t\t\t | (?: (?\u003c!else|new|=) ) # or word + space before name\n \t\t\t\t)\n \t\t\t\t((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n \t\t\t\t \\s*(\\() # start bracket or end-of-line\n \t\t\t","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"entity.name.function.c++"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}}},{"name":"meta.function.destructor.prototype.c++","begin":"(?x)\n \t\t\t\t(?: ^ # begin-of-line\n \t\t\t\t | (?: (?\u003c!else|new|=) ) # or word + space before name\n \t\t\t\t)\n \t\t\t\t((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n \t\t\t\t \\s*(\\() # terminating semi-colon\n \t\t\t","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"entity.name.function.c++"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}}}],"repository":{"angle_brackets":{"name":"meta.angle-brackets.c++","begin":"\u003c","end":"\u003e","patterns":[{"include":"#angle_brackets"},{"include":"$base"}]},"block":{"name":"meta.block.c++","begin":"\\{","end":"\\}","patterns":[{"name":"meta.function-call.c","match":"(?x)\n \t\t\t\t(\n \t\t\t\t\t(?!while|for|do|if|else|switch|catch|return)(?: \\b[A-Za-z_][A-Za-z0-9_]*+\\b | :: )*+ # actual name\n \t\t\t\t)\n \t\t\t\t \\s*(\\()","captures":{"1":{"name":"support.function.any-method.c"},"2":{"name":"punctuation.definition.parameters.c"}}},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c"}}},"constructor":{"patterns":[{"name":"meta.function.constructor.c++","begin":"(?x)\n \t\t\t\t(?: ^\\s*) # begin-of-line\n \t\t\t\t((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n \t\t\t\t \\s*(\\() # start bracket or end-of-line\n \t\t\t","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"entity.name.function.c++"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}}},{"name":"meta.function.constructor.initializer-list.c++","begin":"(?x)\n \t\t\t\t(:) # begin-of-line\n \t\t\t\t((?=\\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \t\t\t\t \\s*(\\())) # start bracket or end-of-line\n \t\t\t","end":"(?=\\{)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.c"}}}]},"special_block":{"patterns":[{"name":"meta.namespace-block${2:+.$2}.c++","begin":"\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+","end":"(?\u003c=\\})|(?=(;|,|\\(|\\)|\u003e|\\[|\\]|=))","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.definition.scope.c++"}},"endCaptures":{"0":{"name":"punctuation.definition.scope.c++"}}},{"include":"$base"}],"captures":{"1":{"name":"keyword.control.namespace.$2"}},"beginCaptures":{"1":{"name":"storage.type.c++"},"2":{"name":"entity.name.type.c++"}}},{"name":"meta.class-struct-block.c++","begin":"\\b(class|struct)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\b\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?","end":"(?\u003c=\\})|(?=(;|\\(|\\)|\u003e|\\[|\\]|=))","patterns":[{"include":"#angle_brackets"},{"begin":"\\{","end":"(\\})(\\s*\\n)?","patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c++"}},"endCaptures":{"1":{"name":"punctuation.definition.invalid.c++"},"2":{"name":"invalid.illegal.you-forgot-semicolon.c++"}}},{"include":"$base"}],"beginCaptures":{"1":{"name":"storage.type.c++"},"2":{"name":"entity.name.type.c++"},"4":{"name":"storage.type.modifier.c++"},"5":{"name":"entity.name.type.inherited.c++"},"6":{"patterns":[{"name":"storage.type.modifier.c++","match":"\\b(public|protected|private)\\b"},{"name":"entity.name.type.inherited.c++","match":"[_A-Za-z][_A-Za-z0-9]*"}]}}},{"name":"meta.extern-block.c++","begin":"\\b(extern)(?=\\s*\")","end":"(?\u003c=\\})|(?=\\w)","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#special_block"},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c"}}},{"include":"$base"}],"beginCaptures":{"1":{"name":"storage.modifier.c++"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.c++","begin":"(u|u8|U|L)?\"","end":"\"","patterns":[{"name":"constant.character.escape.c++","match":"\\\\u[0-9A-Fa-f]{4}|\\\\U[0-9A-Fa-f]{8}"},{"name":"constant.character.escape.c++","match":"\\\\['\"?\\\\abfnrtv]"},{"name":"constant.character.escape.c++","match":"\\\\[0-7]{1,3}"},{"name":"constant.character.escape.c++","match":"\\\\x[0-9A-Fa-f]+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c++"},"1":{"name":"meta.encoding.c++"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c++"}}},{"name":"string.quoted.double.raw.c++","begin":"(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(","end":"\\)\\2(\\3)\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c++"},"1":{"name":"meta.encoding.c++"},"3":{"name":"invalid.illegal.delimiter-too-long.c++"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c++"},"1":{"name":"invalid.illegal.delimiter-too-long.c++"}}}]}}}
1
+ {"name":"C++","scopeName":"source.c++","patterns":[{"include":"#special_block"},{"include":"#strings"},{"match":"\\b(if)\\s+(constexpr)\\b","captures":{"1":{"name":"keyword.control.c++"},"2":{"name":"keyword.control.c++"}}},{"match":"(::)\\s*(template)\\b","captures":{"1":{"name":"punctuation.separator.scope.c++"},"2":{"name":"storage.modifier.template.c++"}}},{"include":"source.c"},{"name":"storage.modifier.$1.c++","match":"\\b(friend|explicit|virtual)\\b"},{"name":"storage.modifier.$1.c++","match":"\\b(private|protected|public):"},{"name":"keyword.control.c++","match":"\\b(atomic_cancel|atomic_commit|atomic_noexcept|catch|contract_assert|operator|pre|post|synchronized|transaction_safe|transaction_safe_dynamic|try|throw|using)\\b"},{"name":"keyword.control.c++","match":"\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])"},{"name":"variable.other.readwrite.member.c++","match":"\\b(f|m)[A-Z]\\w*\\b"},{"name":"constant.language.c++","match":"\\b(nullopt)\\b"},{"name":"variable.language.c++","match":"\\b(this)\\b"},{"name":"storage.type.template.c++","match":"\\b(template|concept)\\b\\s*"},{"name":"keyword.operator.cast.c++","match":"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*"},{"name":"keyword.operator.c++","match":"\\b(and|and_eq|bitand|bitor|co_await|co_return|co_yield|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq)\\b"},{"name":"storage.type.c++","match":"\\b(class)\\b"},{"name":"storage.modifier.c++","match":"\\b(alignas|alignof|consteval|constinit|decltype|final|mutable|noexcept|override|reflexpr|requires|typename)\\b"},{"name":"keyword.module.c++","match":"\\b(import|export|module)\\b"},{"name":"meta.function.destructor.c++","begin":"(?x)\n \t\t\t\t(?: ^ # begin-of-line\n \t\t\t\t | (?: (?\u003c!else|new|=) ) # or word + space before name\n \t\t\t\t)\n \t\t\t\t((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n \t\t\t\t \\s*(\\() # start bracket or end-of-line\n \t\t\t","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"entity.name.function.c++"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}}},{"name":"meta.function.destructor.prototype.c++","begin":"(?x)\n \t\t\t\t(?: ^ # begin-of-line\n \t\t\t\t | (?: (?\u003c!else|new|=) ) # or word + space before name\n \t\t\t\t)\n \t\t\t\t((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n \t\t\t\t \\s*(\\() # terminating semi-colon\n \t\t\t","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"entity.name.function.c++"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}}}],"repository":{"angle_brackets":{"name":"meta.angle-brackets.c++","begin":"\u003c","end":"\u003e","patterns":[{"include":"#angle_brackets"},{"include":"$base"}]},"block":{"name":"meta.block.c++","begin":"\\{","end":"\\}","patterns":[{"name":"meta.function-call.c","match":"(?x)\n \t\t\t\t(\n \t\t\t\t\t(?!while|for|do|if|else|switch|catch|return)(?: \\b[A-Za-z_][A-Za-z0-9_]*+\\b | :: )*+ # actual name\n \t\t\t\t)\n \t\t\t\t \\s*(\\()","captures":{"1":{"name":"support.function.any-method.c"},"2":{"name":"punctuation.definition.parameters.c"}}},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c"}}},"constructor":{"patterns":[{"name":"meta.function.constructor.c++","begin":"(?x)\n \t\t\t\t(?: ^\\s*) # begin-of-line\n \t\t\t\t((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n \t\t\t\t \\s*(\\() # start bracket or end-of-line\n \t\t\t","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"entity.name.function.c++"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}}},{"name":"meta.function.constructor.initializer-list.c++","begin":"(?x)\n \t\t\t\t(:) # begin-of-line\n \t\t\t\t((?=\\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \t\t\t\t \\s*(\\())) # start bracket or end-of-line\n \t\t\t","end":"(?=\\{)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.c"}}}]},"special_block":{"patterns":[{"name":"meta.namespace-block${2:+.$2}.c++","begin":"\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+","end":"(?\u003c=\\})|(?=(;|,|\\(|\\)|\u003e|\\[|\\]|=))","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.definition.scope.c++"}},"endCaptures":{"0":{"name":"punctuation.definition.scope.c++"}}},{"include":"$base"}],"captures":{"1":{"name":"keyword.control.namespace.$2"}},"beginCaptures":{"1":{"name":"storage.type.c++"},"2":{"name":"entity.name.type.c++"}}},{"name":"meta.class-struct-block.c++","begin":"\\b(class|struct)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\b\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?","end":"(?\u003c=\\})|(?=(;|\\(|\\)|\u003e|\\[|\\]|=))","patterns":[{"include":"#angle_brackets"},{"begin":"\\{","end":"(\\})(\\s*\\n)?","patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c++"}},"endCaptures":{"1":{"name":"punctuation.definition.invalid.c++"},"2":{"name":"invalid.illegal.you-forgot-semicolon.c++"}}},{"include":"$base"}],"beginCaptures":{"1":{"name":"storage.type.c++"},"2":{"name":"entity.name.type.c++"},"4":{"name":"storage.type.modifier.c++"},"5":{"name":"entity.name.type.inherited.c++"},"6":{"patterns":[{"name":"storage.type.modifier.c++","match":"\\b(public|protected|private)\\b"},{"name":"entity.name.type.inherited.c++","match":"[_A-Za-z][_A-Za-z0-9]*"}]}}},{"name":"meta.extern-block.c++","begin":"\\b(extern)(?=\\s*\")","end":"(?\u003c=\\})|(?=\\w)","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#special_block"},{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c"}}},{"include":"$base"}],"beginCaptures":{"1":{"name":"storage.modifier.c++"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.c++","begin":"(u|u8|U|L)?\"","end":"\"","patterns":[{"name":"constant.character.escape.c++","match":"\\\\u[0-9A-Fa-f]{4}|\\\\U[0-9A-Fa-f]{8}"},{"name":"constant.character.escape.c++","match":"\\\\['\"?\\\\abfnrtv]"},{"name":"constant.character.escape.c++","match":"\\\\[0-7]{1,3}"},{"name":"constant.character.escape.c++","match":"\\\\x[0-9A-Fa-f]+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c++"},"1":{"name":"meta.encoding.c++"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c++"}}},{"name":"string.quoted.double.raw.c++","begin":"(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(","end":"\\)\\2(\\3)\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c++"},"1":{"name":"meta.encoding.c++"},"3":{"name":"invalid.illegal.delimiter-too-long.c++"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c++"},"1":{"name":"invalid.illegal.delimiter-too-long.c++"}}}]}}}
@@ -1 +1 @@
1
- {"name":"C","scopeName":"source.c","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-other"},{"include":"#comments"},{"name":"keyword.control.c","match":"\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b"},{"name":"storage.type.c","match":"\\b(asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\b"},{"name":"storage.typealias.c","match":"\\b(?:(?:u?int|char(?:8|16|32)|wchar|float(?:16|32|64|128)|bfloat16)_t|[uif](?:8|16|32|64|128)|bf16)\\b"},{"name":"storage.modifier.c","match":"\\b(const|extern|register|restrict|static|volatile|inline)\\b"},{"name":"constant.other.variable.mac-classic.c","match":"\\bk[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.global.mac-classic.c","match":"\\bg[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.static.mac-classic.c","match":"\\bs[A-Z]\\w*\\b"},{"name":"constant.language.c","match":"\\b(NULL|nullptr|true|false|TRUE|FALSE)\\b"},{"include":"#sizeof"},{"name":"constant.numeric.c","match":"(?x)\\b\n\t\t\t( (?i:\n\t\t\t 0x ( [0-9A-Fa-f]+ ( ' [0-9A-Fa-f]+ )* )? # Hexadecimal\n\t\t\t | 0b ( [0-1]+ ( ' [0-1]+ )* )? # Binary\n\t\t\t | 0 ( [0-7]+ ( ' [0-7]+ )* ) # Octal\n\t\t\t | ( [0-9]+ ( ' [0-9]+ )* ) # Decimal\n\t\t\t )\n\t\t\t ( ([uUfF] | u?ll? | U?LL?)\\b | (?\u003cinc\u003e') | \\b )\n\t\t\t| ( [0-9]+ ( ' [0-9]+ )* )?\n\t\t\t (?i:\n\t\t\t \\. ( [0-9]+ ( ' [0-9]+ )* ) E(\\+|-)? ( [0-9]+ ( ' [0-9]+ )* )\n\t\t\t | \\. ( [0-9]+ ( ' [0-9]+ )* )\n\t\t\t | E(\\+|-)? ( [0-9]+ ( ' [0-9]+ )* )\n\t\t\t )\n\t\t\t ( (?\u003cinc\u003e') | \\b )\n\t\t\t)","captures":{"inc":{"name":"invalid.illegal.digit-separator-should-not-be-last.c++"}}},{"name":"string.quoted.double.c","begin":"\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}},{"name":"string.quoted.single.c","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}},{"name":"meta.preprocessor.macro.c","begin":"(?x)\n \t\t^\\s*\\#\\s*(define)\\s+ # define\n \t\t((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n \t\t(?: # and optionally:\n \t\t (\\() # an open parenthesis\n \t\t (\n \t\t \\s* \\g\u003cid\u003e \\s* # first argument\n \t\t ((,) \\s* \\g\u003cid\u003e \\s*)* # additional arguments\n \t\t (?:\\.\\.\\.)? # varargs ellipsis?\n \t\t )\n \t\t (\\)) # a close parenthesis\n \t\t)?\n \t","end":"(?=(?://|/\\*))|$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"},{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.control.import.define.c"},"2":{"name":"entity.name.function.preprocessor.c"},"4":{"name":"punctuation.definition.parameters.begin.c"},"5":{"name":"variable.parameter.preprocessor.c"},"7":{"name":"punctuation.separator.parameters.c"},"8":{"name":"punctuation.definition.parameters.end.c"}}},{"name":"meta.preprocessor.diagnostic.c","begin":"^\\s*#\\s*(error|warning)\\b","end":"$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"}],"captures":{"1":{"name":"keyword.control.import.error.c"}}},{"name":"meta.preprocessor.c.include","begin":"^\\s*#\\s*(embed|include|import)\\b","end":"(?=(?://|/\\*))|$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"},{"name":"string.quoted.double.include.c","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}},{"name":"string.quoted.other.lt-gt.include.c","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}}],"captures":{"1":{"name":"keyword.control.import.include.c"}}},{"include":"#pragma-mark"},{"name":"meta.preprocessor.c","begin":"^\\s*#\\s*(define|defined|elif|elifdef|elifndef|else|if|ifdef|ifndef|line|pragma|undef)\\b","end":"(?=(?://|/\\*))|$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"}],"captures":{"1":{"name":"keyword.control.import.c"}}},{"name":"support.type.posix-reserved.c","match":"\\b([a-z0-9_]+_t)\\b"},{"include":"#block"},{"name":"meta.function.c","begin":"(?x)\n \t\t(?: ^ # begin-of-line\n \t\t | \n \t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w) # or word + space before name\n \t\t | (?= \\s*[A-Za-z_] ) (?\u003c!\u0026\u0026) (?\u003c=[*\u0026\u003e]) # or type modifier before name\n \t\t )\n \t\t)\n \t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate|(?:::)?new|(?:::)?delete)\\s*\\()\n \t\t(\n \t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n \t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n \t\t)\n \t\t \\s*(?=\\()","end":"(?\u003c=\\})|(?=#)|(;)","patterns":[{"include":"#comments"},{"include":"#parens"},{"name":"storage.modifier.$1.c++","match":"\\b(const|constexpr|final|override|noexcept)\\b"},{"include":"#block"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.function.leading.c"},"3":{"name":"entity.name.function.c"},"4":{"name":"punctuation.definition.parameters.c"}}}],"repository":{"access":{"match":"(\\.|\\-\u003e)(?:\\s*(template)\\s+)?([a-zA-Z_][a-zA-Z_0-9]*)\\b(?!\\s*\\()","captures":{"1":{"name":"punctuation.separator.variable-access.c"},"2":{"name":"storage.modifier.template.c++"},"3":{"name":"variable.other.dot-access.c"}}},"block":{"patterns":[{"name":"meta.block.c","begin":"\\{","end":"\\}","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c"}}}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-other-block"},{"include":"#sizeof"},{"include":"#access"},{"include":"#c_function_call"},{"name":"meta.initialization.c","match":"(?x)\n\t\t\t (?x)\n\t\t\t(?: \n\t\t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w)\\s+ # or word + space before name\n\t\t\t )\n\t\t\t)\n\t\t\t(\n\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) )? # if it is a C++ operator\n\t\t\t)\n\t\t\t \\s*(\\()","captures":{"1":{"name":"variable.other.c"},"2":{"name":"punctuation.definition.parameters.c"}}},{"include":"#block"},{"include":"$base"}]},"c_function_call":{"name":"meta.function-call.c","match":"(?x) (?: (?= \\s ) (?:(?\u003c=else|new|return) | (?\u003c!\\w)) (\\s+))?\n\t\t\t(\\b \n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate|(?:::)?new|(?:::)?delete)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()","captures":{"1":{"name":"punctuation.whitespace.function-call.leading.c"},"2":{"name":"support.function.any-method.c"},"3":{"name":"punctuation.definition.parameters.c"}}},"comments":{"patterns":[{"name":"comment.block.c","match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.c"}}},{"name":"comment.block.c","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.c"}}},{"name":"invalid.illegal.stray-comment-end.c","match":"\\*/.*\\n"},{"name":"comment.line.banner.c++","match":"^// =(\\s*.*?)\\s*=\\s*$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.c"}}},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.c++","begin":"//","end":"\\n","patterns":[{"name":"punctuation.separator.continuation.c++","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.c++"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.c++"}}}]},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"parens":{"name":"meta.parens.c","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.c"}}},"pragma-mark":{"name":"meta.section","match":"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.pragma.c"},"3":{"name":"meta.toc-list.pragma-mark.c"}}},"preprocessor-rule-disabled":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"name":"comment.block.preprocessor.if-branch","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-disabled-block":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"name":"comment.block.preprocessor.if-branch.in-block","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-enabled":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"$base"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-enabled-block":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch.in-block","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#block_innards"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-other":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}}},"preprocessor-rule-other-block":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}}},"sizeof":{"name":"keyword.operator.sizeof.c","match":"\\b(sizeof)\\b"},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.c","match":"\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})"},{"name":"invalid.illegal.unknown-escape.c","match":"\\\\."}]},"string_placeholder":{"patterns":[{"name":"constant.other.placeholder.c","match":"(?x)%\n \t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n \t\t\t\t\t\t[#0\\- +']* # flags\n \t\t\t\t\t\t[,;:_]? # separator character (AltiVec)\n \t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n \t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n \t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n \t\t\t\t\t\t[diouxXDOUeEfFgGaACcSspn%] # conversion type\n \t\t\t\t\t"}]}}}
1
+ {"name":"C","scopeName":"source.c","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-other"},{"include":"#comments"},{"name":"keyword.control.c","match":"\\b(assert|break|case|continue|countof|_Countof|default|defined|do|else|for|goto|if|_Pragma|return|sizeof|static_assert|_Static_assert|switch|typeof|typeof_unqual|while)\\b"},{"name":"storage.type.c","match":"\\b(_Atomic|asm|__asm__|auto|_BitInt|bool|_Bool|char|complex|_Complex|_Decimal32|_Decimal64|_Decimal128|double|enum|float|fortran|__fortran__|_Generic|imaginary|_Imaginary|int|long|_Noreturn|short|signed|struct|typedef|union|unsigned|void)\\b"},{"name":"storage.typealias.c","match":"\\b(?:(?:u?int|char(?:8|16|32)|wchar|float(?:16|32|64|128)|bfloat16)_t|[uif](?:8|16|32|64|128)|bf16)\\b"},{"name":"storage.modifier.c","match":"\\b(alignas|_Alignas|alignof|_Alignof|const|constexpr|extern|register|restrict|static|thread_local|_Thread_local|volatile|inline)\\b"},{"name":"constant.other.variable.mac-classic.c","match":"\\bk[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.global.mac-classic.c","match":"\\bg[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.static.mac-classic.c","match":"\\bs[A-Z]\\w*\\b"},{"name":"constant.language.c","match":"\\b(NULL|nullptr|true|false|TRUE|FALSE)\\b"},{"include":"#sizeof"},{"name":"constant.numeric.c","match":"(?x)\\b\n\t\t\t( (?i:\n\t\t\t 0x ( [0-9A-Fa-f]+ ( ' [0-9A-Fa-f]+ )* )? # Hexadecimal\n\t\t\t | 0b ( [0-1]+ ( ' [0-1]+ )* )? # Binary\n\t\t\t | 0 ( [0-7]+ ( ' [0-7]+ )* ) # Octal\n\t\t\t | ( [0-9]+ ( ' [0-9]+ )* ) # Decimal\n\t\t\t )\n\t\t\t ( ([uUfF] | u?ll? | U?LL?)\\b | (?\u003cinc\u003e') | \\b )\n\t\t\t| ( [0-9]+ ( ' [0-9]+ )* )?\n\t\t\t (?i:\n\t\t\t \\. ( [0-9]+ ( ' [0-9]+ )* ) E(\\+|-)? ( [0-9]+ ( ' [0-9]+ )* )\n\t\t\t | \\. ( [0-9]+ ( ' [0-9]+ )* )\n\t\t\t | E(\\+|-)? ( [0-9]+ ( ' [0-9]+ )* )\n\t\t\t )\n\t\t\t ( (?\u003cinc\u003e') | \\b )\n\t\t\t)","captures":{"inc":{"name":"invalid.illegal.digit-separator-should-not-be-last.c++"}}},{"name":"string.quoted.double.c","begin":"\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}},{"name":"string.quoted.single.c","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}},{"name":"meta.preprocessor.macro.c","begin":"(?x)\n \t\t^\\s*\\#\\s*(define)\\s+ # define\n \t\t((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n \t\t(?: # and optionally:\n \t\t (\\() # an open parenthesis\n \t\t (\n \t\t \\s* \\g\u003cid\u003e \\s* # first argument\n \t\t ((,) \\s* \\g\u003cid\u003e \\s*)* # additional arguments\n \t\t (?:\\.\\.\\.)? # varargs ellipsis?\n \t\t )\n \t\t (\\)) # a close parenthesis\n \t\t)?\n \t","end":"(?=(?://|/\\*))|$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"},{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.control.import.define.c"},"2":{"name":"entity.name.function.preprocessor.c"},"4":{"name":"punctuation.definition.parameters.begin.c"},"5":{"name":"variable.parameter.preprocessor.c"},"7":{"name":"punctuation.separator.parameters.c"},"8":{"name":"punctuation.definition.parameters.end.c"}}},{"name":"meta.preprocessor.diagnostic.c","begin":"^\\s*#\\s*(error|warning)\\b","end":"$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"}],"captures":{"1":{"name":"keyword.control.import.error.c"}}},{"name":"meta.preprocessor.c.include","begin":"^\\s*#\\s*(embed|include|import)\\b","end":"(?=(?://|/\\*))|$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"},{"name":"string.quoted.double.include.c","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}},{"name":"string.quoted.other.lt-gt.include.c","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}}}],"captures":{"1":{"name":"keyword.control.import.include.c"}}},{"include":"#pragma-mark"},{"name":"meta.preprocessor.c","begin":"^\\s*#\\s*(define|defined|elif|elifdef|elifndef|else|if|ifdef|ifndef|line|pragma|undef)\\b","end":"(?=(?://|/\\*))|$","patterns":[{"name":"punctuation.separator.continuation.c","match":"(?\u003e\\\\\\s*\\n)"}],"captures":{"1":{"name":"keyword.control.import.c"}}},{"name":"support.type.posix-reserved.c","match":"\\b([a-z0-9_]+_t)\\b"},{"include":"#block"},{"name":"meta.function.c","begin":"(?x)\n \t\t(?: ^ # begin-of-line\n \t\t | \n \t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w) # or word + space before name\n \t\t | (?= \\s*[A-Za-z_] ) (?\u003c!\u0026\u0026) (?\u003c=[*\u0026\u003e]) # or type modifier before name\n \t\t )\n \t\t)\n \t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|assert|[cr]?iterate|(?:::)?new|(?:::)?delete)\\s*\\()\n \t\t(\n \t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n \t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n \t\t)\n \t\t \\s*(?=\\()","end":"(?\u003c=\\})|(?=#)|(;)","patterns":[{"include":"#comments"},{"include":"#parens"},{"name":"storage.modifier.$1.c++","match":"\\b(const|constexpr|final|override|noexcept)\\b"},{"include":"#block"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.function.leading.c"},"3":{"name":"entity.name.function.c"},"4":{"name":"punctuation.definition.parameters.c"}}}],"repository":{"access":{"match":"(\\.|\\-\u003e)(?:\\s*(template)\\s+)?([a-zA-Z_][a-zA-Z_0-9]*)\\b(?!\\s*\\()","captures":{"1":{"name":"punctuation.separator.variable-access.c"},"2":{"name":"storage.modifier.template.c++"},"3":{"name":"variable.other.dot-access.c"}}},"block":{"patterns":[{"name":"meta.block.c","begin":"\\{","end":"\\}","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c"}}}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-other-block"},{"include":"#sizeof"},{"include":"#access"},{"include":"#c_function_call"},{"name":"meta.initialization.c","match":"(?x)\n\t\t\t (?x)\n\t\t\t(?: \n\t\t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w)\\s+ # or word + space before name\n\t\t\t )\n\t\t\t)\n\t\t\t(\n\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) )? # if it is a C++ operator\n\t\t\t)\n\t\t\t \\s*(\\()","captures":{"1":{"name":"variable.other.c"},"2":{"name":"punctuation.definition.parameters.c"}}},{"include":"#block"},{"include":"$base"}]},"c_function_call":{"name":"meta.function-call.c","match":"(?x) (?: (?= \\s ) (?:(?\u003c=else|new|return) | (?\u003c!\\w)) (\\s+))?\n\t\t\t(\\b \n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|assert|[cr]?iterate|(?:::)?new|(?:::)?delete)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()","captures":{"1":{"name":"punctuation.whitespace.function-call.leading.c"},"2":{"name":"support.function.any-method.c"},"3":{"name":"punctuation.definition.parameters.c"}}},"comments":{"patterns":[{"name":"comment.block.c","match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.c"}}},{"name":"comment.block.c","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.c"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.c"}}},{"name":"invalid.illegal.stray-comment-end.c","match":"\\*/.*\\n"},{"name":"comment.line.banner.c++","match":"^// =(\\s*.*?)\\s*=\\s*$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.c"}}},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.c++","begin":"//","end":"\\n","patterns":[{"name":"punctuation.separator.continuation.c++","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.c++"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.c++"}}}]},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"parens":{"name":"meta.parens.c","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.c"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.c"}}},"pragma-mark":{"name":"meta.section","match":"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.pragma.c"},"3":{"name":"meta.toc-list.pragma-mark.c"}}},"preprocessor-rule-disabled":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"name":"comment.block.preprocessor.if-branch","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-disabled-block":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"name":"comment.block.preprocessor.if-branch.in-block","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-enabled":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"$base"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-enabled-block":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch.in-block","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#block_innards"}]}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}}},"preprocessor-rule-other":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}}},"preprocessor-rule-other-block":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}}},"sizeof":{"name":"keyword.operator.sizeof.c","match":"\\b(sizeof)\\b"},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.c","match":"\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})"},{"name":"invalid.illegal.unknown-escape.c","match":"\\\\."}]},"string_placeholder":{"patterns":[{"name":"constant.other.placeholder.c","match":"(?x)%\n \t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n \t\t\t\t\t\t[#0\\- +']* # flags\n \t\t\t\t\t\t[,;:_]? # separator character (AltiVec)\n \t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n \t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n \t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n \t\t\t\t\t\t[diouxXDOUeEfFgGaACcSspn%] # conversion type\n \t\t\t\t\t"}]}}}
@@ -1 +1 @@
1
- {"scopeName":"source.c.linker","patterns":[{"name":"support.function.ld","match":"\\b(?:S(?:E(?:ARCH_DIR|CTIONS)|IZEOF(?:_HEADERS)?|TARTUP)|IN(?:HIBIT_COMMON_ALLOCATION|CLUDE|PUT)|D(?:ATA_SEGMENT_(?:ALIGN|END)|EFINED)|O(?:UTPUT(?:_(?:FORMAT|ARCH))?|RIGIN)|C(?:REATE_OBJECT_SYMBOL|ONSTRUCTOR)S|(?:FORCE_COMMON_ALLOCATIO|HIDDE)N|E(?:X(?:CLUDE_FILE|TERN)|NTRY)|P(?:ROVIDE(?:_HIDDEN)?|HDRS)|A(?:BSOLUTE|SSERT|LIGN|DDR)|N(?:OCROSSREFS|EXT)|L(?:OADADDR|ENGTH)|M(?:EMORY|AX|IN)|sizeof_headers|l(?:en)?|o(?:rg)?|TARGET|BLOCK|GROUP)\\b"},{"match":"(BYTE|SHORT|LONG|S?QUAD)\\s*\\(([^\\)]*)\\)","captures":{"1":{"name":"storage.type.ld"},"2":{"name":"constant.numeric.ld"}}},{"match":"((?=.*[^A-Z])[^\\s\\(;\\:\\{\\}]*)\\s*\\(([^\\),\"]*)\\)","captures":{"1":{"name":"variable.other.source.ld"},"2":{"name":"constant.other.section.ld"}}},{"match":"([^\\s\\(;\\:\\{\\}]*)(\\s+[^\\(\\s\\:\\}]+|\\s*\\([^\\)]*\\))?\\s*\\:\\s*(AT\\s*\\([^\\)]*\\))?","captures":{"1":{"name":"constant.other.section.ld"},"2":{"name":"constant.numeric.address.ld"},"3":{"name":"keyword.other.at.ld"}}},{"match":"\\}\\s*\\\u003e\\s*([^\\s\\\u003e\\:]*)\\s*(AT\\s*)?(?:\\\u003e\\s*)?([^\\=\\\u003e]*)?\\=\\s*([^\\s;\\}]*)","captures":{"1":{"name":"constant.numeric.memory.ld"},"2":{"name":"keyword.other.at.ld"},"4":{"name":"constant.numeric.memory.ld"},"5":{"name":"constant.numeric.address.ld"}}},{"match":"([^\\s\\(;\\{\\}]*)\\s*\\(\\s*([RrWwXx\\!]{,4})\\s*\\)","captures":{"1":{"name":"constant.numeric.memory.ld"},"2":{"name":"support.constant.permissions.ld"}}}]}
1
+ {"name":"Linker","scopeName":"source.c.linker","patterns":[{"include":"source.c"},{"name":"support.function.ld","match":"\\b(?:S(?:E(?:ARCH_DIR|CTIONS)|IZEOF(?:_HEADERS)?|TARTUP)|IN(?:HIBIT_COMMON_ALLOCATION|CLUDE|PUT)|D(?:ATA_SEGMENT_(?:ALIGN|END)|EFINED)|O(?:UTPUT(?:_(?:FORMAT|ARCH))?|RIGIN)|C(?:REATE_OBJECT_SYMBOL|ONSTRUCTOR)S|(?:FORCE_COMMON_ALLOCATIO|HIDDE)N|E(?:X(?:CLUDE_FILE|TERN)|NTRY)|P(?:ROVIDE(?:_HIDDEN)?|HDRS)|A(?:BSOLUTE|SSERT|LIGN|DDR)|N(?:OCROSSREFS|EXT)|L(?:OADADDR|ENGTH)|M(?:EMORY|AX|IN)|sizeof_headers|l(?:en)?|o(?:rg)?|TARGET|BLOCK|GROUP)\\b"},{"match":"(BYTE|SHORT|LONG|S?QUAD)\\s*\\(([^\\)]*)\\)","captures":{"1":{"name":"storage.type.ld"},"2":{"name":"constant.numeric.ld"}}},{"match":"((?=.*[^A-Z])[^\\s\\(;\\:\\{\\}]*)\\s*\\(([^\\),\"]*)\\)","captures":{"1":{"name":"variable.other.source.ld"},"2":{"name":"constant.other.section.ld"}}},{"match":"([^\\s\\(;\\:\\{\\}]*)(\\s+[^\\(\\s\\:\\}]+|\\s*\\([^\\)]*\\))?\\s*\\:\\s*(AT\\s*\\([^\\)]*\\))?","captures":{"1":{"name":"constant.other.section.ld"},"2":{"name":"constant.numeric.address.ld"},"3":{"name":"keyword.other.at.ld"}}},{"match":"\\}\\s*\\\u003e\\s*([^\\s\\\u003e\\:]*)\\s*(AT\\s*)?(?:\\\u003e\\s*)?([^\\=\\\u003e]*)?\\=\\s*([^\\s;\\}]*)","captures":{"1":{"name":"constant.numeric.memory.ld"},"2":{"name":"keyword.other.at.ld"},"4":{"name":"constant.numeric.memory.ld"},"5":{"name":"constant.numeric.address.ld"}}},{"match":"([^\\s\\(;\\{\\}]*)\\s*\\(\\s*([RrWwXx\\!]{,4})\\s*\\)","captures":{"1":{"name":"constant.numeric.memory.ld"},"2":{"name":"support.constant.permissions.ld"}}}]}
@@ -0,0 +1 @@
1
+ {"name":"C3","scopeName":"source.c3","patterns":[{"include":"#top_level"},{"include":"#statements"}],"repository":{"assign_right_expression":{"begin":"=","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.c3"}}},"attribute":{"patterns":[{"name":"meta.annotation.c3","begin":"@(?:(?:align|allow_deprecated|benchmark|bigendian|builtin|callconv|cname|compact|const|deprecated|dynamic|export|extern|finalizer|format|if|inline|init|jump|link|littleendian|local|maydiscard|naked|noalias|nodiscard|noinit|noinline|nopadding|norecurse|noreturn|nosanitize|nostrip|obfuscate|operator|operator_r|operator_s|optional|overlap|packed|private|public|pure|reflect|safeinfer|safemacro|simd|section|structlike|tag|test|unused|used|wasm|weak|winmain)\\b|(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b))","end":"(?=[^ \\t(])|(?\u003c=\\))","patterns":[{"include":"#parens"}],"beginCaptures":{"0":{"name":"keyword.annotation.c3"}}}]},"block":{"patterns":[{"name":"meta.block.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#statements"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c3"}}}]},"block_comment":{"name":"comment.block.c3","begin":"/\\*","end":"\\*/","patterns":[{"include":"#block_comment_body"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.c3"}}},"block_comment_body":{"patterns":[{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#block_comment_body"}]}]},"brackets":{"patterns":[{"name":"meta.brackets.c3","begin":"\\[\u003c?","end":"\u003e?\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.c3"}}}]},"builtin":{"patterns":[{"match":"(\\$\\$(?:\\b_*[A-Z][_A-Z0-9]*\\b))|(\\$\\$(?:\\b_*[a-z][_a-zA-Z0-9]*\\b))","captures":{"1":{"name":"constant.language.c3"},"2":{"name":"entity.name.function.builtin.c3"}}}]},"bytes_literal":{"patterns":[{"name":"string.quoted.other.c3","begin":"(x)([\"'`])","end":"\\2","patterns":[{"name":"constant.numeric.integer.c3","match":"[\\sfA-Fa-f0-9]+"}],"beginCaptures":{"1":{"name":"keyword.other.c3"},"2":{"name":"punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c3"}}},{"name":"string.quoted.other.c3","begin":"(b64)([\"'`])","end":"\\2","patterns":[{"name":"constant.numeric.integer.c3","match":"[\\sA-Za-z0-9+/=]+"}],"beginCaptures":{"1":{"name":"keyword.other.c3"},"2":{"name":"punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c3"}}}]},"char_literal":{"name":"string.quoted.single.c3","begin":"'","end":"'","patterns":[{"include":"#escape_sequence"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c3"}}},"comments":{"patterns":[{"include":"#line_comment"},{"include":"#block_comment"},{"include":"#doc_comment"}]},"constants":{"patterns":[{"name":"constant.language.c3","match":"\\b(true|false|null)\\b"},{"begin":"(?:\\b_*[A-Z][_A-Z0-9]*\\b)","end":"(?=[^{ \\t])|(?\u003c=\\})","patterns":[{"include":"#generic_params"}],"beginCaptures":{"0":{"name":"variable.other.constant.c3"}}}]},"control_statements":{"patterns":[{"begin":"\\$for\\b","end":":","patterns":[{"include":"#statements"}],"beginCaptures":{"0":{"name":"keyword.control.ct.c3"}},"endCaptures":{"0":{"name":"punctuation.separator.c3"}}},{"begin":"\\$foreach\\b","end":"(?\u003c=:)","patterns":[{"include":"#comments"},{"name":"variable.other.c3","match":"\\$(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"},{"name":"punctuation.separator.c3","match":","},{"begin":":","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.c3"}},"endCaptures":{"0":{"name":"punctuation.separator.c3"}}}],"beginCaptures":{"0":{"name":"keyword.control.ct.c3"}}},{"begin":"\\bfor\\b","end":"(?\u003c=\\))","patterns":[{"include":"#comments"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#statements"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.c3"}}}],"beginCaptures":{"0":{"name":"keyword.control.c3"}}},{"begin":"\\$(?:switch|case|default|if)\\b","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.ct.c3"}},"endCaptures":{"0":{"name":"punctuation.separator.c3"}}},{"begin":"\\b(?:case|default)\\b","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.control.c3"}},"endCaptures":{"0":{"name":"punctuation.separator.c3"}}}]},"doc_comment":{"begin":"(?=\u003c\\*)","end":"(\\*\u003e)","patterns":[{"include":"#doc_comment_body"}],"endCaptures":{"0":{"name":"comment.block.documentation.c3"},"1":{"name":"punctuation.definition.comment.end.c3"}}},"doc_comment_body":{"patterns":[{"begin":"(\u003c\\*)\\s*(?=@)","end":"(?=\\*\u003e)","patterns":[{"match":"@param(?:\\s*\\[\u0026?(?:in|out|inout)\\])?\\s*(?:([$#]?(?:\\b_*[a-z][_a-zA-Z0-9]*\\b))|(\\$(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b))|(\\.\\.\\.))","captures":{"0":{"name":"comment.block.documentation.c3"},"1":{"name":"variable.parameter.c3"},"2":{"name":"support.type.c3"},"3":{"name":"keyword.operator.variadic.c3"}}},{"begin":"@(?:require\\b|ensure\\b|return\\?)","end":"(?=:|\\*\u003e|$)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"comment.block.documentation.c3"}}},{"name":"comment.block.documentation.c3","match":"@(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"},{"name":"comment.block.documentation.c3","match":":"},{"name":"comment.block.documentation.c3","begin":"([\"`])","end":"\\\\1"}],"beginCaptures":{"0":{"name":"comment.block.documentation.c3"},"1":{"name":"punctuation.definition.comment.begin.c3"}}},{"name":"comment.block.documentation.c3","begin":"(\u003c\\*)","end":"(?=^\\s*@|\\*\u003e)","beginCaptures":{"0":{"name":"comment.block.documentation.c3"},"1":{"name":"punctuation.definition.comment.begin.c3"}}},{"end":"(?=\\*\u003e)","patterns":[{"match":"^\\s*@param(?:\\s*\\[\u0026?(?:in|out|inout)\\])?\\s*(?:([$#]?(?:\\b_*[a-z][_a-zA-Z0-9]*\\b))|(\\$(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b))|(\\.\\.\\.))","captures":{"0":{"name":"comment.block.documentation.c3"},"1":{"name":"variable.parameter.c3"},"2":{"name":"support.type.c3"},"3":{"name":"keyword.operator.variadic.c3"}}},{"begin":"^\\s*@(?:require\\b|ensure\\b|return\\?)","end":"(?=:|\\*\u003e|$)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"comment.block.documentation.c3"}}},{"name":"comment.block.documentation.c3","match":"^\\s*@(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"},{"name":"comment.block.documentation.c3","match":":"},{"name":"comment.block.documentation.c3","begin":"([\"`])","end":"\\\\1"}]}]},"escape_sequence":{"name":"constant.character.escape.c3","match":"\\\\([0abefnrtv'\"\\\\]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})"},"expression":{"patterns":[{"include":"#comments"},{"include":"#function"},{"include":"#constants"},{"include":"#builtin"},{"include":"#literals"},{"include":"#operators"},{"include":"#keywords"},{"include":"#type"},{"include":"#path"},{"include":"#function_call"},{"include":"#variable"},{"include":"#parens"},{"include":"#brackets"},{"include":"#block"},{"include":"#punctuation"},{"include":"#leftover_at_ident"}]},"function":{"begin":"(?=\\b(fn|macro)\\b)","end":"(?=[={;])","patterns":[{"name":"meta.function.c3","begin":"\\b(fn|macro)\\b","end":"(?=\\()","patterns":[{"include":"#comments"},{"include":"#function_header"}],"beginCaptures":{"1":{"name":"keyword.declaration.function.c3"}}},{"name":"meta.function.parameters.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.c3"}}},{"contentName":"meta.function.c3","begin":"(?\u003c=\\))","end":"(?=[{=;])","patterns":[{"include":"#comments"},{"include":"#attribute"}]}]},"function_call":{"name":"meta.function_call.c3","begin":"([@#]?(?:\\b_*[a-z][_a-zA-Z0-9]*\\b))(?=\\s*(\\{.*\\})?\\s*\\()","end":"(?\u003c=\\))","patterns":[{"include":"#generic_params"},{"name":"meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"begin":"([$#]?(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)|\\$(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b))\\s*(:)(?!:)","end":"(?=\\))|([;,])","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.parameter.c3"},"2":{"name":"punctuation.separator.c3"}},"endCaptures":{"1":{"name":"punctuation.separator.c3"}}},{"begin":"(?=\\S)","end":"(?=\\))|([;,])","patterns":[{"include":"#expression"}],"endCaptures":{"1":{"name":"punctuation.separator.c3"}}},{"name":"punctuation.separator.c3","match":";"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.c3"}}}],"beginCaptures":{"1":{"name":"entity.name.function.c3"}}},"function_header":{"patterns":[{"include":"#type"},{"name":"punctuation.accessor.c3","match":"\\."},{"name":"entity.name.function.c3","match":"@?(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"}]},"generic_params":{"patterns":[{"name":"meta.generic.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.generic.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.definition.generic.end.c3"}}}]},"integer_literal":{"name":"constant.numeric.integer.c3","match":"\\b(?:0[xX][a-fA-F0-9](?:_?[a-fA-F0-9])*|0[oO][0-7](_?[0-7])*|0[bB][0-1](_?[0-1])*|[0-9](?:_?[0-9])*)(?:[UuIi](?:8|16|32|64|128)|[Uu][Ll]{0,2}|[Ll]{1,2})?"},"keywords":{"patterns":[{"name":"keyword.other.ct.c3","match":"\\$(?:alignof|assert|assignable|default|defined|echo|embed|eval|error|exec|extnameof|feature|include|is_const|kindof|nameof|offsetof|qnameof|sizeof|stringify|vacount|vaconst|vaarg|vaexpr|vasplat)\\b"},{"name":"keyword.control.ct.c3","match":"\\$(?:case|else|endfor|endforeach|endif|endswitch|for|foreach|if|switch)\\b"},{"name":"keyword.other.c3","match":"\\b(?:assert|asm|catch|inline|import|module|interface|try|var)\\b"},{"name":"keyword.control.c3","match":"\\b(?:break|case|continue|default|defer|do|else|for|foreach|foreach_r|if|nextcase|return|switch|while)\\b"}]},"leftover_at_ident":{"patterns":[{"name":"meta.annotation.c3","match":"@(?:pure|inline|noinline)","captures":{"0":{"name":"keyword.annotation.c3"}}},{"begin":"@(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=[^{ \\t])|(?\u003c=\\})","patterns":[{"include":"#generic_params"}],"beginCaptures":{"0":{"name":"entity.name.function.c3"}}}]},"line_comment":{"name":"comment.line.double-slash.c3","match":"//.*$"},"literals":{"patterns":[{"include":"#string_literal"},{"include":"#char_literal"},{"include":"#raw_string_literal"},{"include":"#real_literal"},{"include":"#integer_literal"},{"include":"#bytes_literal"}]},"modifier_keywords":{"patterns":[{"name":"storage.modifier.c3","match":"\\b(?:const|extern|static|tlocal|inline)\\b"}]},"module_path":{"patterns":[{"include":"#path"},{"name":"meta.path.c3","match":"((?:\\b_*[a-z][_a-zA-Z0-9]*\\b))","captures":{"1":{"name":"entity.name.scope-resolution.c3"}}}]},"operators":{"patterns":[{"name":"keyword.declaration.function.arrow.c3","match":"=\u003e"},{"name":"keyword.operator.assignment.augmented.c3","match":"(?:[-%\u0026*+/^|]|\u003e\u003e|\u003c\u003c|\\+\\+\\+)="},{"name":"keyword.operator.comparison.c3","match":"\u003c=|\u003e=|==|\u003c|\u003e|!="},{"name":"keyword.operator.variadic.c3","match":"\\.\\.\\."},{"name":"keyword.operator.range.c3","match":"\\.\\."},{"name":"keyword.operator.arithmetic.c3","match":"\\+\\+\\+?|--"},{"name":"keyword.operator.arithmetic.c3","match":"\u003c\u003c|\u003e\u003e|\u0026\u0026\u0026?|\\|\\|\\|?"},{"name":"keyword.operator.arithmetic.c3","match":"[-%+/^|~]"},{"name":"keyword.operator.assignment.c3","match":"="},{"name":"keyword.operator.c3","match":"\\?\\?\\??|\\?:|[!?]|[\u0026*:]"}]},"parameters":{"patterns":[{"include":"#comments"},{"begin":"\\$(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=[;,)])","patterns":[{"include":"#comments"},{"include":"#attribute"},{"begin":"=","end":"(?=[;,)])","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.c3"}}}],"beginCaptures":{"0":{"name":"support.type.c3"}}},{"include":"#type"},{"include":"#punctuation"},{"name":"keyword.operator.variadic.c3","match":"\\.\\.\\."},{"name":"keyword.operator.address.c3","match":"\u0026"},{"begin":";","end":"(?=\\))","patterns":[{"include":"#comments"},{"name":"entity.name.function.c3","match":"@(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"},{"include":"#parameters"}],"beginCaptures":{"0":{"name":"punctuation.separator.c3"}}},{"begin":"[$#]?(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=[;,)])","patterns":[{"include":"#comments"},{"include":"#attribute"},{"name":"keyword.operator.variadic.c3","match":"\\.\\.\\."},{"begin":"=","end":"(?=[;,)])","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.c3"}}}],"beginCaptures":{"0":{"name":"variable.parameter.c3"}}}]},"parens":{"patterns":[{"name":"meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.c3"}}}]},"path":{"name":"meta.path.c3","match":"((?:\\b_*[a-z][_a-zA-Z0-9]*\\b))\\s*(::)","captures":{"1":{"name":"entity.name.scope-resolution.c3"},"2":{"name":"punctuation.separator.scope-resolution.c3"}}},"punctuation":{"patterns":[{"name":"punctuation.separator.c3","match":","},{"name":"punctuation.separator.c3","match":":"},{"name":"punctuation.accessor.c3","match":"\\.(?!\\.\\.)"}]},"raw_string_literal":{"name":"string.quoted.other.c3","begin":"`","end":"`(?!`)","patterns":[{"name":"constant.character.escape.c3","match":"``"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c3"}}},"real_literal":{"patterns":[{"name":"constant.numeric.float.c3","match":"\\b[0-9](?:_?[0-9])*(?:[Ff](?:16|32|64|128)?|[Dd])"},{"name":"constant.numeric.float.c3","match":"\\b(?:[0-9](?:_?[0-9])*[Ee][+-]?[0-9]+|[0-9](?:_?[0-9])*\\.(?!\\.)(?:[0-9](?:_?[0-9])*)?(?:[Ee][+-]?[0-9]+)?)(?:[Ff](?:16|32|64|128)?|[Dd])?"},{"name":"constant.numeric.float.c3","match":"\\b0[xX][a-fA-F0-9](?:_?[a-fA-F0-9])*(?:\\.(?:[a-fA-F0-9](?:_?[a-fA-F0-9])*)?)?[Pp][+-]?[0-9]+(?:[Ff](?:16|32|64|128)?|[Dd])?"}]},"statements":{"patterns":[{"include":"#comments"},{"include":"#modifier_keywords"},{"name":"punctuation.terminator.c3","match":";"},{"include":"#control_statements"},{"include":"#attribute"},{"include":"#block"},{"include":"#expression"}]},"string_literal":{"name":"string.quoted.double.c3","begin":"\"","end":"\"","patterns":[{"include":"#escape_sequence"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.c3"}}},"structlike":{"begin":"(?=\\b(?:(struct|bitstruct)|(union))\\b)","end":"(?\u003c=\\})","patterns":[{"name":"meta.struct.c3","begin":"\\b(?:(struct|bitstruct)|(union))\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"name":"entity.name.type.struct.c3","match":"(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)"},{"name":"variable.other.member.c3","match":"(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"},{"include":"#attribute"},{"begin":":","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#type_no_generics"},{"include":"#attribute"}],"beginCaptures":{"0":{"name":"punctuation.separator.c3"}}},{"name":"meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#path"},{"include":"#type"},{"include":"#punctuation"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.c3"}}}],"beginCaptures":{"1":{"name":"keyword.declaration.struct.c3"},"2":{"name":"keyword.declaration.union.c3"}}},{"name":"meta.struct.body.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#structlike"},{"include":"#modifier_keywords"},{"include":"#type"},{"name":"variable.other.member.c3","match":"(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"},{"include":"#attribute"},{"name":"punctuation.terminator.c3","match":";"},{"begin":":","end":"(?=;)","patterns":[{"include":"#attribute"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.separator.c3"}}}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c3"}}}]},"top_level":{"patterns":[{"include":"#comments"},{"include":"#modifier_keywords"},{"begin":"\\$(?:assert|include|echo|exec)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.c3"}},"endCaptures":{"0":{"name":"punctuation.terminator.c3"}}},{"name":"meta.module.c3","begin":"\\bmodule\\b","end":";","patterns":[{"include":"#comments"},{"include":"#attribute"},{"include":"#module_path"},{"include":"#generic_params"}],"beginCaptures":{"0":{"name":"keyword.declaration.module.c3"}},"endCaptures":{"0":{"name":"punctuation.terminator.c3"}}},{"name":"meta.import.c3","begin":"\\bimport\\b","end":";","patterns":[{"include":"#comments"},{"include":"#attribute"},{"include":"#module_path"},{"name":"punctuation.separator.c3","match":","}],"beginCaptures":{"0":{"name":"keyword.declaration.import.c3"}},"endCaptures":{"0":{"name":"punctuation.terminator.c3"}}},{"include":"#function"},{"name":"meta.alias.c3","begin":"\\balias\\b","end":";","patterns":[{"include":"#comments"},{"begin":"(?=((?:\\b_*[a-z][_a-zA-Z0-9]*\\b))\\s*=\\s*module)","end":"(?=;)","patterns":[{"begin":"((?:\\b_*[a-z][_a-zA-Z0-9]*\\b))","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#attribute"},{"begin":"=","end":"(?=;)","patterns":[{"include":"#comments"},{"begin":"module","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#module_path"}],"beginCaptures":{"0":{"name":"keyword.declaration.module.c3"}}}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.c3"}}}]}]},{"begin":"(@(?:\\b_*[a-z][_a-zA-Z0-9]*\\b))|((?:\\b_*[a-z][_a-zA-Z0-9]*\\b))|((?:\\b_*[A-Z][_A-Z0-9]*\\b))","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#attribute"},{"include":"#assign_right_expression"}],"beginCaptures":{"1":{"name":"entity.name.function.c3"},"2":{"name":"variable.global.c3"},"3":{"name":"variable.other.constant.c3"}}},{"begin":"(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#attribute"},{"include":"#assign_right_expression"}],"beginCaptures":{"0":{"name":"entity.name.type.c3"}}}],"beginCaptures":{"0":{"name":"keyword.declaration.alias.c3"}},"endCaptures":{"0":{"name":"punctuation.terminator.c3"}}},{"name":"meta.typedef.c3","begin":"\\btypedef\\b","end":";","patterns":[{"include":"#comments"},{"begin":"(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#parens"},{"include":"#attribute"},{"include":"#assign_right_expression"}],"beginCaptures":{"0":{"name":"entity.name.type.c3"}}}],"beginCaptures":{"0":{"name":"keyword.declaration.typedef.c3"}},"endCaptures":{"0":{"name":"punctuation.terminator.c3"}}},{"name":"meta.faultdef.c3","begin":"\\bfaultdef\\b","end":";","patterns":[{"include":"#comments"},{"include":"#attribute"},{"name":"variable.other.constant.c3","match":"(?:\\b_*[A-Z][_A-Z0-9]*\\b)"},{"name":"punctuation.separator.c3","match":","}],"beginCaptures":{"0":{"name":"keyword.declaration.faultdef.c3"}},"endCaptures":{"0":{"name":"punctuation.terminator.c3"}}},{"name":"meta.attrdef.c3","begin":"\\battrdef\\b","end":";","patterns":[{"include":"#comments"},{"begin":"@(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#attribute"},{"name":"meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.c3"}}},{"begin":"=","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#attribute"},{"name":"punctuation.separator.c3","match":","}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.c3"}}}],"beginCaptures":{"0":{"name":"keyword.annotation.c3"}}}],"beginCaptures":{"0":{"name":"keyword.declaration.attrdef.c3"}},"endCaptures":{"0":{"name":"punctuation.terminator.c3"}}},{"include":"#structlike"},{"begin":"(?=\\benum\\b)","end":"(?\u003c=\\})","patterns":[{"name":"meta.enum.c3","begin":"\\benum\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"name":"entity.name.type.enum.c3","match":"(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)"},{"include":"#attribute"},{"begin":":","end":"(?=\\{)","patterns":[{"include":"#comments"},{"name":"storage.modifier.c3","match":"\\b(?:inline|const)\\b"},{"include":"#type_no_generics"},{"contentName":"meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"name":"storage.modifier.c3","match":"\\b(?:inline|const)\\b"},{"include":"#parameters"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.c3"}}},{"include":"#attribute"}],"beginCaptures":{"0":{"name":"punctuation.separator.c3"}}}],"beginCaptures":{"0":{"name":"keyword.declaration.enum.c3"}}},{"name":"meta.enum.body.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"begin":"=","end":"(?=,)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.c3"}}},{"include":"#attribute"},{"name":"variable.other.constant.c3","match":"(?:\\b_*[A-Z][_A-Z0-9]*\\b)"},{"name":"punctuation.separator.c3","match":","}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c3"}}}]},{"begin":"(?=\\binterface\\b)","end":"(?\u003c=\\})","patterns":[{"name":"meta.interface.c3","begin":"\\binterface\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"name":"entity.name.type.interface.c3","match":"(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)"},{"include":"#attribute"},{"begin":":","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#punctuation"},{"include":"#type_no_generics"}],"beginCaptures":{"0":{"name":"punctuation.separator.c3"}}}],"beginCaptures":{"0":{"name":"keyword.declaration.interface.c3"}}},{"name":"meta.interface.body.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"name":"punctuation.terminator.c3","match":";"},{"include":"#function"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.c3"}}}]}]},"type":{"patterns":[{"include":"#path"},{"begin":"\\b(void|bool|char|double|float|float16|bfloat|int128|ichar|int|iptr|isz|long|short|uint128|uint|ulong|uptr|ushort|usz|float128|any|fault|typeid)\\b|(\\$?\\b(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)\\b)","end":"(?=\\*\u003e|[^ \\t*\\[?{])","patterns":[{"include":"#comments"},{"include":"#generic_params"},{"include":"#type_suffix"}],"beginCaptures":{"1":{"name":"storage.type.built-in.primitive.c3"},"2":{"name":"support.type.c3"}}},{"include":"#type_expr"}]},"type_expr":{"patterns":[{"begin":"\\$(?:typeof|typefrom|evaltype)\\b","end":"(?\u003c=\\))","patterns":[{"include":"#parens"}],"beginCaptures":{"0":{"name":"storage.type.c3"}}},{"begin":"\\$vatype\\b","end":"(?\u003c=\\])","patterns":[{"include":"#brackets"}],"beginCaptures":{"0":{"name":"storage.type.c3"}}},{"include":"#type_suffix"}]},"type_no_generics":{"patterns":[{"include":"#path"},{"begin":"\\b(void|bool|char|double|float|float16|bfloat|int128|ichar|int|iptr|isz|long|short|uint128|uint|ulong|uptr|ushort|usz|float128|any|fault|typeid)\\b|(\\$?\\b(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b)\\b)","end":"(?=[^ \\t*\\[?@])","patterns":[{"include":"#comments"},{"include":"#type_suffix"}],"beginCaptures":{"1":{"name":"storage.type.built-in.primitive.c3"},"2":{"name":"support.type.c3"}}},{"include":"#type_expr"}]},"type_suffix":{"patterns":[{"include":"#brackets"},{"name":"keyword.operator.address.c3","match":"\\*"},{"name":"keyword.operator.c3","match":"\\?"}]},"variable":{"begin":"(?\u003c!#)\\$?(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=[^{ \\t])|(?\u003c=\\})","patterns":[{"include":"#generic_params"}],"beginCaptures":{"0":{"name":"variable.other.c3"}}}}}
@@ -1 +1 @@
1
- {"scopeName":"source.cadence","patterns":[{"include":"#comments"},{"include":"#expressions"},{"include":"#declarations"},{"include":"#keywords"},{"include":"#code-block"},{"include":"#composite"},{"include":"#event"}],"repository":{"code-block":{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cadence"}}},"comments":{"patterns":[{"name":"comment.line.number-sign.cadence","match":"\\A^(#!).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.cadence"}}},{"name":"comment.block.documentation.cadence","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}}},{"name":"comment.block.documentation.playground.cadence","begin":"/\\*:","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}}},{"name":"comment.block.cadence","begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}}},{"name":"invalid.illegal.unexpected-end-of-block-comment.cadence","match":"\\*/"},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.triple-slash.documentation.cadence","begin":"///","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}}},{"name":"comment.line.double-slash.documentation.cadence","begin":"//:","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}}},{"name":"comment.line.double-slash.cadence","begin":"//","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.cadence"}}}],"repository":{"nested":{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}]}}},"composite":{"name":"meta.definition.type.composite.cadence","begin":"\\b((?:(?:struct|resource|contract)(?:\\s+interface)?)|transaction|enum)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#conformance-clause"},{"name":"meta.definition.type.body.cadence","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.cadence"},"2":{"name":"entity.name.type.$1.cadence"}}},"conformance-clause":{"name":"meta.conformance-clause.cadence","begin":"(:)(?=\\s*\\{)|(:)\\s*","end":"(?!\\G)$|(?=[={}])","patterns":[{"begin":"\\G","end":"(?!\\G)$|(?=[={}])","patterns":[{"include":"#comments"},{"include":"#type"}]}],"beginCaptures":{"1":{"name":"invalid.illegal.empty-conformance-clause.cadence"},"2":{"name":"punctuation.separator.conformance-clause.cadence"}}},"declarations":{"patterns":[{"include":"#var-let-declaration"},{"include":"#function"},{"include":"#initializer"}]},"event":{"name":"meta.definition.type.event.cadence","begin":"\\b(event)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*","end":"(?\u003c=\\))|$","patterns":[{"include":"#comments"},{"include":"#parameter-clause"}],"beginCaptures":{"1":{"name":"storage.type.event.cadence"},"2":{"name":"entity.name.type.event.cadence"}}},"expression-element-list":{"patterns":[{"include":"#comments"},{"begin":"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.any-method.cadence"},"2":{"name":"punctuation.separator.argument-label.cadence"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}]}]},"expressions":{"patterns":[{"include":"#comments"},{"include":"#function-call-expression"},{"include":"#literals"},{"include":"#operators"},{"include":"#language-variables"}]},"function":{"name":"meta.definition.function.cadence","begin":"\\b(fun)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*","end":"(?\u003c=\\})|$","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"include":"#function-result"},{"name":"meta.definition.function.body.cadence","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.function.cadence"},"2":{"name":"entity.name.function.cadence"}}},"function-call-expression":{"patterns":[{"name":"meta.function-call.cadence","begin":"(?!(?:set|init))([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\\()","end":"\\)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"support.function.any-method.cadence"},"4":{"name":"punctuation.definition.arguments.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.cadence"}}}]},"function-result":{"name":"meta.function-result.cadence","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(:)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"(?!\\G)(?=\\{|;)|$","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.cadence"}}},"initializer":{"name":"meta.definition.function.initializer.cadence","begin":"(?\u003c!\\.)\\b(init)\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})|$","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"name":"meta.definition.function.body.cadence","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.function.cadence"}}},"keywords":{"patterns":[{"name":"keyword.control.branch.cadence","match":"(?\u003c!\\.)\\b(?:if|else|switch|case|default)\\b"},{"name":"keyword.control.transfer.cadence","match":"(?\u003c!\\.)\\b(?:return|continue|break)\\b"},{"name":"keyword.control.loop.cadence","match":"(?\u003c!\\.)\\b(?:while|for|in)\\b"},{"name":"keyword.other.cadence","match":"(?\u003c!\\.)\\b(?:pre|post|prepare|execute|create|destroy|emit)\\b"},{"name":"keyword.other.declaration-specifier.accessibility.cadence","match":"(?\u003c!\\.)\\b(?:private|pub(?:\\(set\\))?|access\\((?:self|contract|account|all)\\))\\b"},{"name":"storage.type.function.cadence","match":"\\b(?:init|destroy)\\b"},{"name":"keyword.control.import.cadence","match":"(?\u003c!\\.)\\b(?:import|from)\\b"}]},"language-variables":{"patterns":[{"name":"variable.language.cadence","match":"\\b(self)\\b"}]},"literals":{"patterns":[{"include":"#boolean"},{"include":"#numeric"},{"include":"#string"},{"name":"constant.language.nil.cadence","match":"\\bnil\\b"}],"repository":{"boolean":{"name":"constant.language.boolean.cadence","match":"\\b(true|false)\\b"},"numeric":{"patterns":[{"include":"#binary"},{"include":"#octal"},{"include":"#decimal"},{"include":"#hexadecimal"}],"repository":{"binary":{"name":"constant.numeric.integer.binary.cadence","match":"(\\B\\-|\\b)0b[01]([_01]*[01])?\\b"},"decimal":{"name":"constant.numeric.integer.decimal.cadence","match":"(\\B\\-|\\b)[0-9]([_0-9]*[0-9])?\\b"},"hexadecimal":{"name":"constant.numeric.integer.hexadecimal.cadence","match":"(\\B\\-|\\b)0x[0-9A-Fa-f]([_0-9A-Fa-f]*[0-9A-Fa-f])?\\b"},"octal":{"name":"constant.numeric.integer.octal.cadence","match":"(\\B\\-|\\b)0o[0-7]([_0-7]*[0-7])?\\b"}}},"string":{"patterns":[{"name":"string.quoted.double.single-line.cadence","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal.returns-not-allowed.cadence","match":"\\r|\\n"},{"include":"#string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cadence"}}}],"repository":{"string-guts":{"patterns":[{"name":"constant.character.escape.cadence","match":"\\\\[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.cadence","match":"\\\\u\\{[0-9a-fA-F]{1,8}\\}"}]}}}}},"operators":{"patterns":[{"name":"keyword.operator.arithmetic.unary.cadence","match":"\\-"},{"name":"keyword.operator.logical.not.cadence","match":"!"},{"name":"keyword.operator.assignment.cadence","match":"="},{"name":"keyword.operator.move.cadence","match":"\u003c-"},{"name":"keyword.operator.force-move.cadence","match":"\u003c-!"},{"name":"keyword.operator.arithmetic.cadence","match":"\\+|\\-|\\*|/"},{"name":"keyword.operator.arithmetic.remainder.cadence","match":"%"},{"name":"keyword.operator.comparison.cadence","match":"==|!=|\u003e|\u003c|\u003e=|\u003c="},{"name":"keyword.operator.coalescing.cadence","match":"\\?\\?"},{"name":"keyword.operator.logical.cadence","match":"\u0026\u0026|\\|\\|"},{"name":"keyword.operator.type.optional.cadence","match":"[?!]"}]},"parameter-clause":{"name":"meta.parameter-clause.cadence","begin":"(\\()","end":"(\\))","patterns":[{"include":"#parameter-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.cadence"}}},"parameter-list":{"patterns":[{"match":"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)","captures":{"1":{"name":"entity.name.function.cadence"},"2":{"name":"variable.parameter.function.cadence"}}},{"match":"(([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*))(?=\\s*:)","captures":{"1":{"name":"variable.parameter.function.cadence"},"2":{"name":"entity.name.function.cadence"}}},{"begin":":\\s*(?!\\s)","end":"(?=[,)])","patterns":[{"include":"#type"},{"name":"invalid.illegal.extra-colon-in-parameter-list.cadence","match":":"}]}]},"type":{"patterns":[{"include":"#comments"},{"name":"storage.type.cadence","match":"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)"}]},"var-let-declaration":{"begin":"\\b(var|let)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)","end":"=|\u003c-|\u003c-!|$","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"storage.type.$1.cadence"},"2":{"name":"entity.name.type.$1.cadence"}}}}}
1
+ {"scopeName":"source.cadence","patterns":[{"include":"#comments"},{"include":"#declarations"},{"include":"#keywords"},{"include":"#code-block"},{"include":"#expressions"},{"include":"#composite"},{"include":"#event"}],"repository":{"code-block":{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cadence"}}},"comments":{"patterns":[{"name":"comment.line.number-sign.cadence","match":"\\A^(#!).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.cadence"}}},{"name":"comment.block.documentation.cadence","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}}},{"name":"comment.block.documentation.playground.cadence","begin":"/\\*:","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}}},{"name":"comment.block.cadence","begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cadence"}}},{"name":"invalid.illegal.unexpected-end-of-block-comment.cadence","match":"\\*/"},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.triple-slash.documentation.cadence","begin":"///","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}}},{"name":"comment.line.double-slash.documentation.cadence","begin":"//:","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}}},{"name":"comment.line.double-slash.cadence","begin":"//","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.cadence"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.cadence"}}}],"repository":{"nested":{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}]}}},"composite":{"name":"meta.definition.type.composite.cadence","begin":"\\b((?:(?:struct|resource|contract|attachment)(?:\\s+interface)?)|enum)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)","end":"(?\u003c=\\})|(?=\\s*\\Z)","patterns":[{"include":"#comments"},{"include":"#conformance-clause"},{"name":"meta.definition.type.body.cadence","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.type.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.type.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.cadence"},"2":{"name":"entity.name.type.$1.cadence"}}},"conformance-clause":{"name":"meta.conformance-clause.cadence","begin":"(:)(?=\\s*\\{)|(:)\\s*","end":"(?!\\G)$|(?=[={}])","patterns":[{"begin":"\\G","end":"(?!\\G)$|(?=[={}])","patterns":[{"include":"#comments"},{"include":"#type"}]}],"beginCaptures":{"1":{"name":"invalid.illegal.empty-conformance-clause.cadence"},"2":{"name":"punctuation.separator.conformance-clause.cadence"}}},"declarations":{"patterns":[{"include":"#var-let-declaration"},{"include":"#function"},{"include":"#initializer"},{"include":"#prepare-execute"},{"include":"#execute-phase"},{"include":"#pre-post"},{"include":"#transaction"}]},"event":{"name":"meta.definition.type.event.cadence","begin":"\\b(event)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*","end":"(?\u003c=\\))","patterns":[{"include":"#comments"},{"include":"#parameter-clause"}],"beginCaptures":{"1":{"name":"storage.type.event.cadence"},"2":{"name":"entity.name.type.event.cadence"}}},"execute-phase":{"name":"meta.definition.transaction.phase.cadence","begin":"(?\u003c!\\.)\\b(execute)\\b\\s*(?=\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.phase.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.phase.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.modifier.phase.cadence"}}},"expression-element-list":{"patterns":[{"include":"#comments"},{"begin":"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"variable.parameter.function-call.cadence"},"2":{"name":"punctuation.separator.argument-label.cadence"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}]}]},"expressions":{"patterns":[{"include":"#comments"},{"include":"#keywords"},{"include":"#language-variables"},{"include":"#function-expression"},{"include":"#path-literals"},{"name":"meta.type.arguments.cadence","begin":"(?!\\b(?:if|while|for|return|create|destroy|emit|as)\\b)([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\u003c)(?=[\\p{Lu}_\u0026@\\[{(]|auth\\b|\\s*$)","end":"(\u003e)(?!\\s*[=\u003c\u003e])","patterns":[{"include":"#type"},{"name":"punctuation.separator.type-argument.cadence","match":","}],"beginCaptures":{"1":{"name":"entity.name.function.cadence"},"2":{"name":"punctuation.definition.type-arguments.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.type-arguments.end.cadence"}}},{"name":"meta.group.cadence","begin":"(\\()","end":"(\\))","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.arguments.end.cadence"}}},{"name":"meta.function-call.method.cadence","begin":"(?\u003c=\\.)([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\\()","end":"(\\))","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"entity.name.function.cadence"},"2":{"name":"punctuation.definition.arguments.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.arguments.end.cadence"}}},{"name":"variable.other.member.cadence","match":"(?\u003c=\\.)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*"},{"include":"#function-call-expression"},{"name":"variable.other.readwrite.cadence","match":"(?\u003c!\\.)\\b(?!(?:contract|struct|resource|event|enum|attachment|entitlement|import|fun|let|var|if|else|switch|case|default|while|for|in|break|continue|return|emit|as|create|destroy|attach|to|remove|from|pub|priv|access|all|self|view|auth|transaction|prepare|execute|pre|post|init|true|false|nil|Type|Int|UInt|Int8|Int16|Int32|Int64|Int128|Int256|UInt8|UInt16|UInt32|UInt64|UInt128|UInt256|Word8|Word16|Word32|Word64|Fix64|Fix128|UFix64|UFix128|String|Character|Bool|Address|Void|AnyStruct|AnyResource|Any|Never|mapping|include)\\b)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\b"},{"include":"#literals"},{"include":"#operators"}]},"function":{"name":"meta.definition.function.cadence","begin":"\\b(fun)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*","end":"(?\u003c=\\})|;|(?=\\}[\\s]*$)|$","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"include":"#function-result"},{"name":"meta.definition.function.body.cadence","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.function.cadence"},"2":{"name":"entity.name.function.cadence"}}},"function-call-expression":{"patterns":[{"name":"meta.function-call.cadence","begin":"(?\u003c!\\.)\\b(?!(?:set|init|transaction|prepare|execute|access|auth))([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\\()","end":"(\\))","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"entity.name.function.cadence"},"2":{"name":"punctuation.definition.arguments.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.arguments.end.cadence"}}}]},"function-expression":{"name":"meta.function.expression.cadence","begin":"(?\u003c!\\.)\\b(?:(view)\\s+)?(fun)\\b(?=\\s*\\()","end":"(?\u003c=\\})|$","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"include":"#function-result"},{"name":"meta.definition.function.body.cadence","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.modifier.view.cadence"},"2":{"name":"storage.type.function.cadence"}}},"function-result":{"name":"meta.function-result.cadence","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(:)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"(?\u003c![@\u0026\\[\u003c])(?!\\G)(?=\\s*\\{)|(?=;|(?\u003c!\\{)\\})|$","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.cadence"}}},"initializer":{"name":"meta.definition.function.initializer.cadence","begin":"(?\u003c!\\.)\\b(init)\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})|$","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"name":"meta.definition.function.body.cadence","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.function.cadence"}}},"keywords":{"patterns":[{"name":"storage.type.var.cadence","match":"(?\u003c!\\.)\\bvar\\b"},{"name":"storage.type.let.cadence","match":"(?\u003c!\\.)\\blet\\b"},{"name":"meta.definition.entitlement-mapping.cadence","begin":"(?\u003c!\\.)\\b(entitlement)\\s+(mapping)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\\{)","end":"(\\})","patterns":[{"include":"#comments"},{"name":"keyword.other.mapping.include.cadence","match":"\\binclude\\b"},{"match":"(?\u003c=\\binclude)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*)","captures":{"1":{"name":"entity.name.type.entitlement-mapping.cadence"}}},{"name":"entity.name.type.entitlement.cadence","match":"[\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*"},{"name":"punctuation.separator.mapping.cadence","match":"-\u003e"}],"beginCaptures":{"1":{"name":"keyword.declaration.entitlement.cadence"},"2":{"name":"keyword.other.mapping.cadence"},"3":{"name":"entity.name.type.entitlement-mapping.cadence"},"4":{"name":"punctuation.definition.type.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.type.end.cadence"}}},{"match":"(?\u003c!\\.)\\b(entitlement)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)","captures":{"1":{"name":"keyword.declaration.entitlement.cadence"},"2":{"name":"entity.name.type.entitlement.cadence"}}},{"name":"meta.access.modifier.cadence","begin":"(?\u003c!\\.)\\b(access)\\b\\s*(\\()","end":"(\\))","patterns":[{"include":"#comments"},{"name":"keyword.other.mapping.cadence","match":"\\bmapping\\b"},{"match":"(?\u003c=\\bmapping)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*)","captures":{"1":{"name":"entity.name.type.entitlement-mapping.cadence"}}},{"name":"constant.language.access.audience.cadence","match":"\\b(?:all|self|contract|account)\\b"},{"name":"punctuation.separator.entitlement.cadence","match":","},{"name":"punctuation.separator.entitlement.cadence","match":"\\|"},{"name":"entity.name.type.entitlement.cadence","match":"[\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*"}],"beginCaptures":{"1":{"name":"storage.modifier.access.cadence"},"2":{"name":"punctuation.section.group.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.section.group.end.cadence"}}},{"name":"keyword.control.branch.cadence","match":"(?\u003c!\\.)\\b(?:if|else|switch|case|default)\\b"},{"name":"keyword.control.transfer.cadence","match":"(?\u003c!\\.)\\b(?:return|continue|break)\\b"},{"name":"keyword.control.loop.cadence","match":"(?\u003c!\\.)\\b(?:while|for|in)\\b"},{"name":"keyword.other.cadence","match":"(?\u003c!\\.)\\b(?:create|destroy|emit|attach|to|remove|from)\\b"},{"name":"invalid.deprecated.keyword.cadence","match":"(?\u003c!\\.)\\b(pub|priv)\\b"},{"name":"storage.modifier.view.cadence","match":"(?\u003c!\\.)\\bview\\b"},{"name":"keyword.other.auth.cadence","match":"(?\u003c!\\.)\\b(auth)\\b"},{"name":"meta.import.cadence","begin":"(?\u003c!\\.)\\b(import)\\b","end":"(?=$|//|/\\*|;)","patterns":[{"name":"keyword.control.import.cadence","match":"\\bfrom\\b"},{"include":"#literals"},{"name":"variable.other.readwrite.cadence","match":"\\b[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\b"}],"beginCaptures":{"1":{"name":"keyword.control.import.cadence"}}}]},"language-variables":{"patterns":[{"name":"variable.language.cadence","match":"\\b(self)\\b"}]},"literals":{"patterns":[{"include":"#boolean"},{"include":"#numeric"},{"include":"#string"},{"name":"constant.language.nil.cadence","match":"\\bnil\\b"}],"repository":{"boolean":{"name":"constant.language.boolean.cadence","match":"\\b(true|false)\\b"},"numeric":{"patterns":[{"include":"#binary"},{"include":"#octal"},{"include":"#hexadecimal"},{"include":"#fixed-point"},{"include":"#decimal"}],"repository":{"binary":{"name":"constant.numeric.integer.binary.cadence","match":"(\\B\\-|\\b)0b[01]([_01]*[01])?\\b"},"decimal":{"name":"constant.numeric.integer.decimal.cadence","match":"(\\B\\-|\\b)[0-9]([_0-9]*[0-9])?\\b"},"fixed-point":{"name":"constant.numeric.float.cadence","match":"(\\B\\-|\\b)[0-9]([_0-9]*[0-9])?\\.[0-9]([_0-9]*[0-9])?\\b"},"hexadecimal":{"name":"constant.numeric.integer.hexadecimal.cadence","match":"(\\B\\-|\\b)0x[0-9A-Fa-f]([_0-9A-Fa-f]*[0-9A-Fa-f])?\\b"},"octal":{"name":"constant.numeric.integer.octal.cadence","match":"(\\B\\-|\\b)0o[0-7]([_0-7]*[0-7])?\\b"}}},"string":{"patterns":[{"name":"string.quoted.double.single-line.cadence","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal.returns-not-allowed.cadence","match":"\\r|\\n"},{"name":"meta.interpolation.cadence","contentName":"meta.embedded.line.cadence","begin":"\\\\\\(","end":"\\)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.cadence"}}},{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.cadence meta.embedded.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.cadence meta.embedded.cadence"}}},{"include":"#string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cadence"}}}],"repository":{"string-guts":{"patterns":[{"name":"constant.character.escape.cadence","match":"\\\\[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.cadence","match":"\\\\u\\{[0-9a-fA-F]{1,8}\\}"}]}}}}},"operators":{"patterns":[{"name":"keyword.operator.swap.cadence","match":"\u003c-\u003e"},{"name":"keyword.operator.optional.chain.cadence","match":"\\?\\."},{"name":"meta.type.cast-target.cadence","begin":"\\b(as\\?|as!|as)\\b","end":"(?=$|;|//|/\\\\*|\\\")|(?=\\)|,|\\})|(?\u003c=\\\u003e)(?=\\s*\\{(?!\\s*[\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*\\s*:))|(?\u003c=[\\p{L}\\p{N}\\}\\\u003e\\)\\]\\?])(?=\\s*\\{(?!\\s*[\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*\\s*:))|(?=\\?\\?)","patterns":[{"name":"meta.type.dictionary.cadence","begin":"\\{(?=\\s*[\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*\\s*:)","end":"(\\})","patterns":[{"include":"#comments"},{"include":"#type"},{"name":"punctuation.separator.type.dictionary.cadence","match":":"},{"name":"punctuation.separator.type.dictionary.cadence","match":","}],"beginCaptures":{"0":{"name":"punctuation.definition.type.dictionary.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.type.dictionary.end.cadence"}}},{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.cast.cadence"}}},{"name":"keyword.operator.arithmetic.unary.cadence","match":"\\-"},{"name":"keyword.operator.force-unwrap.cadence","match":"(?\u003c=\\))!"},{"name":"keyword.operator.logical.not.cadence","match":"!"},{"name":"keyword.operator.assignment.cadence","match":"="},{"name":"keyword.operator.move.cadence","match":"\u003c-"},{"name":"keyword.operator.force-move.cadence","match":"\u003c-!"},{"name":"keyword.operator.arithmetic.cadence","match":"\\+|\\-|\\*|/"},{"name":"keyword.operator.arithmetic.remainder.cadence","match":"%"},{"name":"keyword.operator.bitwise.shift.cadence","match":"\u003e\u003e"},{"name":"keyword.operator.bitwise.shift.cadence","match":"\u003c\u003c"},{"name":"keyword.operator.comparison.cadence","match":"==|!=|\u003e|\u003c|\u003e=|\u003c="},{"name":"keyword.operator.coalescing.cadence","match":"\\?\\?"},{"name":"keyword.operator.logical.cadence","match":"\u0026\u0026|\\|\\|"},{"name":"keyword.operator.type.optional.cadence","match":"[?!]"}]},"parameter-clause":{"name":"meta.parameter-clause.cadence","begin":"(\\()","end":"(\\))","patterns":[{"include":"#comments"},{"include":"#parameter-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.cadence"}}},"parameter-list":{"patterns":[{"include":"#comments"},{"match":"(_)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)","captures":{"1":{"name":"keyword.operator.unnamed-parameter.cadence"},"2":{"name":"variable.parameter.cadence"}}},{"match":"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)","captures":{"1":{"name":"entity.name.label.cadence"},"2":{"name":"variable.parameter.cadence"}}},{"match":"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)","captures":{"1":{"name":"variable.parameter.cadence"}}},{"begin":":\\s*(?!\\s)","end":"(?=[,)])","patterns":[{"include":"#type"},{"name":"invalid.illegal.extra-colon-in-parameter-list.cadence","match":":"}]}]},"path-literals":{"patterns":[{"match":"(/)((storage|public)(/[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)?)","captures":{"1":{"name":"punctuation.separator.path.cadence"},"2":{"name":"constant.other.path.cadence"}}}]},"pre-post":{"name":"meta.definition.transaction.phase.cadence","begin":"(?\u003c!\\.)\\b(pre|post)\\b\\s*(?=\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.phase.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.phase.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.modifier.phase.cadence"}}},"prepare-execute":{"name":"meta.definition.transaction.phase.cadence","begin":"(?\u003c!\\.)\\b(prepare)\\b\\s*(?=\\()","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.phase.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.phase.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.modifier.phase.cadence"}}},"transaction":{"name":"meta.definition.transaction.cadence","begin":"\\b(transaction)\\b","end":"(?\u003c=\\))|(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#parameter-clause"},{"name":"meta.definition.transaction.body.cadence","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.transaction.begin.cadence"}},"endCaptures":{"0":{"name":"punctuation.section.transaction.end.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.transaction.cadence"}}},"type":{"patterns":[{"name":"meta.type.function.cadence","begin":"(?\u003c!\\.)\\b(?:(view)\\s+)?(fun)\\b\\s*(\\()","end":"(?=,|[)\u003e}\\]]|$)","patterns":[{"include":"#comments"},{"begin":"\\G","end":"(\\))","patterns":[{"include":"#type"},{"name":"punctuation.separator.parameter.cadence","match":","}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.cadence"}}},{"name":"meta.function-result.cadence","begin":"(:)","end":"(?=,|[)\u003e}\\]]|$)","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.cadence"}}}],"beginCaptures":{"1":{"name":"storage.modifier.view.cadence"},"2":{"name":"storage.type.function.cadence"},"3":{"name":"punctuation.definition.parameters.begin.cadence"}}},{"include":"#comments"},{"name":"meta.type.arguments.cadence","begin":"(?\u003c!\\.)([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\u003c)","end":"(\u003e)","patterns":[{"include":"#type"},{"name":"punctuation.separator.type-argument.cadence","match":","}],"beginCaptures":{"1":{"name":"entity.name.type.cadence"},"2":{"name":"punctuation.definition.type-arguments.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.type-arguments.end.cadence"}}},{"name":"meta.auth.entitlements.cadence","begin":"(?\u003c!\\.)\\b(auth)\\b\\s*(\\()","end":"(\\))","patterns":[{"include":"#comments"},{"name":"keyword.other.mapping.cadence","match":"\\bmapping\\b"},{"match":"(?\u003c=\\bmapping)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*)","captures":{"1":{"name":"entity.name.type.entitlement-mapping.cadence"}}},{"name":"punctuation.separator.entitlement.cadence","match":","},{"name":"punctuation.separator.entitlement.cadence","match":"\\|"},{"name":"entity.name.type.entitlement.cadence","match":"[\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*"}],"beginCaptures":{"1":{"name":"keyword.other.auth.cadence"},"2":{"name":"punctuation.section.group.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.section.group.end.cadence"}}},{"begin":"\\{(?![^}]*:)(?!.*\\}\\s*\\()","end":"(\\})","patterns":[{"include":"#comments"},{"include":"#type"},{"name":"punctuation.separator.type.intersection.cadence","match":","}],"beginCaptures":{"0":{"name":"punctuation.definition.type.intersection.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.type.intersection.end.cadence"}}},{"name":"meta.type.dictionary.cadence","begin":"\\{(?=\\s*[\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*\\s*:)(?!.*\\}\\s*\\()","end":"(\\})","patterns":[{"include":"#comments"},{"include":"#type"},{"name":"punctuation.separator.type.dictionary.cadence","match":":"},{"name":"punctuation.separator.type.dictionary.cadence","match":","}],"beginCaptures":{"0":{"name":"punctuation.definition.type.dictionary.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.type.dictionary.end.cadence"}}},{"name":"meta.type.array.cadence","begin":"\\[","end":"(\\])","patterns":[{"include":"#comments"},{"include":"#type"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.array.begin.cadence"}},"endCaptures":{"1":{"name":"punctuation.definition.type.array.end.cadence"}}},{"match":"(\u0026|@)(?=\\s*\\{)","captures":{"1":{"name":"punctuation.definition.type.reference.cadence"}}},{"match":"(\u0026|@)\\s*([\\p{L}_][\\p{L}_\\p{N}\\p{M}.]*)","captures":{"1":{"name":"punctuation.definition.type.reference.cadence"},"2":{"name":"entity.name.type.cadence"}}},{"name":"entity.name.type.cadence","match":"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)"},{"name":"keyword.operator.type.optional.cadence","match":"[?!]"}]},"var-let-declaration":{"begin":"\\b(var|let)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)","end":"=|\u003c-|\u003c-!|;|(?=//)|$","patterns":[{"include":"#comments"},{"begin":":\\s*(?!\\s)","end":"(?=//|=|\u003c-|\u003c-!|;|$)","patterns":[{"include":"#type"},{"include":"#comments"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.cadence"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.cadence"},"2":{"name":"variable.other.declaration.cadence"}}}}}