github-linguist 9.3.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 (117) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/dart.inline.edgeql.json +1 -0
  3. data/grammars/go.inline.edgeql.json +1 -0
  4. data/grammars/inline.surrealql-js-literal.json +1 -0
  5. data/grammars/js.inline.edgeql.json +1 -0
  6. data/grammars/markdown.move.codeblock.json +1 -1
  7. data/grammars/markdown.surrealql.codeblock.json +1 -0
  8. data/grammars/markdown.vue.codeblock.json +1 -1
  9. data/grammars/markdown.wesl.codeblock.json +1 -0
  10. data/grammars/markdown.wgsl.codeblock.json +1 -0
  11. data/grammars/mdx.vue.codeblock.json +1 -1
  12. data/grammars/res.inline.edgeql.json +1 -0
  13. data/grammars/source.abl.json +1 -1
  14. data/grammars/source.agda.json +1 -1
  15. data/grammars/source.al.json +1 -1
  16. data/grammars/source.algol60.json +1 -0
  17. data/grammars/source.apex.json +1 -1
  18. data/grammars/source.b.json +1 -0
  19. data/grammars/source.bicep.json +1 -1
  20. data/grammars/source.brs.json +1 -1
  21. data/grammars/source.bru.json +1 -1
  22. data/grammars/source.c++.json +1 -1
  23. data/grammars/source.c.json +1 -1
  24. data/grammars/source.c3.json +1 -1
  25. data/grammars/source.cadence.json +1 -1
  26. data/grammars/source.cj.json +1 -0
  27. data/grammars/source.clar.json +1 -1
  28. data/grammars/source.clean.json +1 -1
  29. data/grammars/source.comment-string.wesl.json +1 -0
  30. data/grammars/source.comment-string.wgsl.json +1 -0
  31. data/grammars/source.cql.json +1 -0
  32. data/grammars/source.cs.json +1 -1
  33. data/grammars/source.csv.json +1 -0
  34. data/grammars/source.data-weave.json +1 -1
  35. data/grammars/source.dsv.json +1 -0
  36. data/grammars/source.erlang.json +1 -1
  37. data/grammars/source.fsharp.json +1 -1
  38. data/grammars/source.gfm.blade.json +1 -1
  39. data/grammars/source.go-template.json +1 -0
  40. data/grammars/source.go.injection.double.go-template.json +1 -0
  41. data/grammars/source.go.injection.raw.go-template.json +1 -0
  42. data/grammars/source.hack.json +1 -1
  43. data/grammars/source.hurl.json +1 -0
  44. data/grammars/source.isabelle.theory.json +1 -1
  45. data/grammars/source.jac.json +1 -0
  46. data/grammars/source.jai.json +1 -1
  47. data/grammars/source.just.json +1 -1
  48. data/grammars/source.kcl.json +1 -0
  49. data/grammars/source.langium.json +1 -0
  50. data/grammars/source.lean.markdown.json +1 -1
  51. data/grammars/source.lean4.json +1 -1
  52. data/grammars/source.lean4.markdown.json +1 -1
  53. data/grammars/source.lp.json +1 -0
  54. data/grammars/source.lua.json +1 -1
  55. data/grammars/source.luau.json +1 -1
  56. data/grammars/source.m2.json +1 -1
  57. data/grammars/source.mask.json +1 -1
  58. data/grammars/source.mdx.json +1 -1
  59. data/grammars/source.mermaid.zenuml.json +1 -1
  60. data/grammars/source.mo.json +1 -1
  61. data/grammars/source.mojo.json +1 -1
  62. data/grammars/source.moonbit.json +1 -1
  63. data/grammars/source.move.json +1 -1
  64. data/grammars/source.ned.json +1 -1
  65. data/grammars/source.nr.json +1 -1
  66. data/grammars/source.nushell.json +1 -1
  67. data/grammars/source.proto.json +1 -1
  68. data/grammars/source.pyjade.json +1 -1
  69. data/grammars/source.quakec.json +1 -1
  70. data/grammars/source.rascal.json +1 -1
  71. data/grammars/source.rascript.json +1 -0
  72. data/grammars/source.rego.json +1 -1
  73. data/grammars/source.roc.json +1 -1
  74. data/grammars/source.rpgle.json +1 -1
  75. data/grammars/source.shell.json +1 -1
  76. data/grammars/source.singularity.json +1 -1
  77. data/grammars/source.soql.json +1 -1
  78. data/grammars/source.sqf.json +1 -1
  79. data/grammars/source.surrealql.json +1 -0
  80. data/grammars/source.teal.json +1 -0
  81. data/grammars/source.tmdl.json +1 -0
  82. data/grammars/source.tsp.json +1 -1
  83. data/grammars/source.tsv.json +1 -0
  84. data/grammars/source.vb6.json +1 -0
  85. data/grammars/source.vba.json +1 -1
  86. data/grammars/source.vento.json +1 -1
  87. data/grammars/source.vscode.c3.json +1 -0
  88. data/grammars/source.wdl.json +1 -1
  89. data/grammars/source.wgsl.json +1 -1
  90. data/grammars/source.wwb.json +1 -1
  91. data/grammars/text.git-commit.json +1 -0
  92. data/grammars/text.haml.json +1 -1
  93. data/grammars/text.html.markdown.d2.json +1 -1
  94. data/grammars/text.html.vue.json +1 -0
  95. data/grammars/text.injection.go-template.json +1 -0
  96. data/grammars/text.k.json +1 -0
  97. data/grammars/text.markdown.go-template.codeblock.json +1 -0
  98. data/grammars/text.marko.json +1 -1
  99. data/grammars/text.md.json +1 -1
  100. data/grammars/text.slim.json +1 -1
  101. data/grammars/text.source.mps.json +1 -0
  102. data/grammars/text.valve-cfg.json +1 -1
  103. data/grammars/v.mod.json +1 -0
  104. data/grammars/version +1 -1
  105. data/grammars/vue.directives.json +1 -1
  106. data/grammars/vue.interpolations.json +1 -1
  107. data/grammars/vue.sfc.script.leading-operator-fix.json +1 -0
  108. data/lib/linguist/VERSION +1 -1
  109. data/lib/linguist/generated.rb +24 -0
  110. data/lib/linguist/generic.yml +1 -0
  111. data/lib/linguist/heuristics.yml +62 -6
  112. data/lib/linguist/languages.json +1 -1
  113. data/lib/linguist/languages.yml +222 -26
  114. data/lib/linguist/samples.json +1 -1
  115. metadata +40 -3
  116. data/grammars/inline.edgeql.json +0 -1
  117. 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]*)"}}}
@@ -1 +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":"source.gfm"}],"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":"source.gfm"}],"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
+ {"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|contract_assert|operator|pre|post|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|replaceable_if_eligible|requires|trivially_relocatable_if_eligible|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(assert|break|case|continue|default|defined|do|else|for|goto|if|_Pragma|return|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|[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
- {"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|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|safemacro|section|structlike|tag|test|unused|used|wasm|weak|winmain)\\b|(?:\\b_*[A-Z][_A-Z0-9]*[a-z][_a-zA-Z0-9]*\\b))","end":"(?=[^\\s(])|(?\u003c=\\))","patterns":[{"include":"#parens"}],"beginCaptures":{"0":{"name":"keyword.annotation.c3"}}}]},"block":{"patterns":[{"contentName":"meta.block.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#statements"}],"beginCaptures":{"0":{"name":"meta.block.c3 punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"meta.block.c3 punctuation.section.block.end.c3"}}}]},"block_comment":{"contentName":"comment.block.c3","begin":"/\\*","end":"\\*/","patterns":[{"include":"#block_comment_body"}],"beginCaptures":{"0":{"name":"comment.block.c3 punctuation.definition.comment.begin.c3"}},"endCaptures":{"0":{"name":"comment.block.c3 punctuation.definition.comment.end.c3"}}},"block_comment_body":{"patterns":[{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#block_comment_body"}]}]},"brackets":{"patterns":[{"contentName":"meta.brackets.c3","begin":"\\[\u003c?","end":"\u003e?\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brackets.c3 punctuation.section.brackets.begin.c3"}},"endCaptures":{"0":{"name":"meta.brackets.c3 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":[{"contentName":"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":"string.quoted.other.c3 punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"string.quoted.other.c3 punctuation.definition.string.end.c3"}}},{"contentName":"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":"string.quoted.other.c3 punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"string.quoted.other.c3 punctuation.definition.string.end.c3"}}}]},"char_literal":{"contentName":"string.quoted.single.c3","begin":"'","end":"'","patterns":[{"include":"#escape_sequence"}],"beginCaptures":{"0":{"name":"string.quoted.single.c3 punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"string.quoted.single.c3 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":"(?=[^{\\s])|(?\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":{"contentName":"comment.block.documentation.c3","begin":"\u003c\\*","end":"\\*\u003e","patterns":[{"include":"#doc_comment_body"}],"beginCaptures":{"0":{"name":"comment.block.documentation.c3 punctuation.definition.comment.begin.c3"}},"endCaptures":{"0":{"name":"comment.block.documentation.c3 punctuation.definition.comment.end.c3"}}},"doc_comment_body":{"patterns":[{"include":"#line_comment"},{"include":"#block_comment"},{"name":"markup.bold","match":"@(param(\\s*\\[\u0026?(in|out|inout)\\])?|return\\??|require|deprecated|ensure|pure)\\s"}]},"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":[{"contentName":"meta.function.c3","begin":"\\b(fn|macro)\\b","end":"(?=\\()","patterns":[{"include":"#comments"},{"include":"#function_header"}],"beginCaptures":{"1":{"name":"meta.function.c3 keyword.declaration.function.c3"}}},{"contentName":"meta.function.parameters.c3 meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"0":{"name":"meta.function.parameters.c3 meta.group.c3 punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"meta.function.parameters.c3 meta.group.c3 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":"\\)","patterns":[{"include":"#generic_params"},{"contentName":"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":"meta.group.c3 punctuation.section.group.begin.c3"}}}],"beginCaptures":{"1":{"name":"entity.name.function.c3"}},"endCaptures":{"0":{"name":"meta.group.c3 punctuation.section.group.end.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":[{"contentName":"meta.generic.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.generic.c3 punctuation.definition.generic.begin.c3"}},"endCaptures":{"0":{"name":"meta.generic.c3 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|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 keyword.annotation.c3","match":"@(?:pure|inline|noinline)"},{"begin":"@(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)","end":"(?=[^{\\s])|(?\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 entity.name.scope-resolution.c3","match":"(?:\\b_*[a-z][_a-zA-Z0-9]*\\b)"}]},"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 entity.name.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":[{"contentName":"meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.group.c3 punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"meta.group.c3 punctuation.section.group.end.c3"}}}]},"path":{"match":"((?:\\b_*[a-z][_a-zA-Z0-9]*\\b))\\s*(::)","captures":{"1":{"name":"meta.path.c3 entity.name.scope-resolution.c3"},"2":{"name":"meta.path.c3 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":{"contentName":"string.quoted.other.c3","begin":"`","end":"`(?!`)","patterns":[{"name":"constant.character.escape.c3","match":"``"}],"beginCaptures":{"0":{"name":"string.quoted.other.c3 punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"string.quoted.other.c3 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":{"contentName":"string.quoted.double.c3","begin":"\"","end":"\"","patterns":[{"include":"#escape_sequence"}],"beginCaptures":{"0":{"name":"string.quoted.double.c3 punctuation.definition.string.begin.c3"}},"endCaptures":{"0":{"name":"string.quoted.double.c3 punctuation.definition.string.end.c3"}}},"structlike":{"begin":"(?=\\b(?:(struct|bitstruct)|(union))\\b)","end":"(?\u003c=\\})","patterns":[{"contentName":"meta.struct.c3","begin":"\\b(?:(struct|bitstruct)|(union))\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"name":"support.type.c3 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"}}},{"contentName":"meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#path"},{"include":"#type"},{"include":"#punctuation"}],"beginCaptures":{"0":{"name":"meta.group.c3 punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"meta.group.c3 punctuation.section.group.end.c3"}}}],"beginCaptures":{"1":{"name":"meta.struct.c3 keyword.declaration.struct.c3"},"2":{"name":"meta.struct.c3 keyword.declaration.union.c3"}}},{"contentName":"meta.struct.body.c3 meta.block.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":"meta.struct.body.c3 meta.block.c3 punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"meta.struct.body.c3 meta.block.c3 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":"support.type.c3 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":"support.type.c3 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"},{"contentName":"meta.attrdef.parameters.c3 meta.group.c3","begin":"\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"0":{"name":"meta.attrdef.parameters.c3 meta.group.c3 punctuation.section.group.begin.c3"}},"endCaptures":{"0":{"name":"meta.attrdef.parameters.c3 meta.group.c3 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":[{"contentName":"meta.enum.c3","begin":"\\benum\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"name":"support.type.c3 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":"meta.enum.c3 keyword.declaration.enum.c3"}}},{"contentName":"meta.enum.body.c3 meta.block.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"begin":"=","end":"(?=,)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.c3"}}},{"include":"#attribute"},{"name":"variable.other.enummember.c3","match":"(?:\\b_*[A-Z][_A-Z0-9]*\\b)"},{"name":"punctuation.separator.c3","match":","}],"beginCaptures":{"0":{"name":"meta.enum.body.c3 meta.block.c3 punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"meta.enum.body.c3 meta.block.c3 punctuation.section.block.end.c3"}}}]},{"begin":"(?=\\binterface\\b)","end":"(?\u003c=\\})","patterns":[{"contentName":"meta.interface.c3","begin":"\\binterface\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"name":"support.type.c3 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":"meta.interface.c3 keyword.declaration.interface.c3"}}},{"contentName":"meta.interface.body.c3 meta.block.c3","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"name":"punctuation.terminator.c3","match":";"},{"include":"#function"}],"beginCaptures":{"0":{"name":"meta.interface.body.c3 meta.block.c3 punctuation.section.block.begin.c3"}},"endCaptures":{"0":{"name":"meta.interface.body.c3 meta.block.c3 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":"(?=[^\\s*\\[?{])","patterns":[{"include":"#comments"},{"include":"#generic_params"},{"include":"#type_suffix"}],"beginCaptures":{"1":{"name":"storage.type.built-in.primitive.c3"},"2":{"name":"support.type.c3 entity.name.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":"(?=[^\\s*\\[?])","patterns":[{"include":"#comments"},{"include":"#type_suffix"}],"beginCaptures":{"1":{"name":"storage.type.built-in.primitive.c3"},"2":{"name":"support.type.c3 entity.name.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":"(?=[^{\\s])|(?\u003c=\\})","patterns":[{"include":"#generic_params"}],"beginCaptures":{"1":{"name":"variable.other.c3"}}}}}
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"}}}}}