github-linguist 7.24.1 → 7.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/govulncheck.json +1 -0
  3. data/grammars/liquid.injection.json +1 -1
  4. data/grammars/source.abap.json +1 -1
  5. data/grammars/source.abl.json +1 -1
  6. data/grammars/source.arr.json +1 -0
  7. data/grammars/source.astro.json +1 -1
  8. data/grammars/source.basic.json +1 -1
  9. data/grammars/source.brs.json +1 -1
  10. data/grammars/source.cds.json +1 -1
  11. data/grammars/source.chapel.json +1 -1
  12. data/grammars/source.circom.json +1 -0
  13. data/grammars/source.clar.json +1 -1
  14. data/grammars/source.cobol.json +1 -1
  15. data/grammars/source.curlrc.json +1 -1
  16. data/grammars/source.dart.json +1 -1
  17. data/grammars/source.denizenscript.json +1 -1
  18. data/grammars/source.editorconfig.json +1 -1
  19. data/grammars/source.gdscript.json +1 -1
  20. data/grammars/source.generic-config.json +1 -0
  21. data/grammars/source.gitconfig.json +1 -1
  22. data/grammars/source.gleam.json +1 -1
  23. data/grammars/source.graphql.json +1 -1
  24. data/grammars/source.hocon.json +1 -1
  25. data/grammars/source.hosts.json +1 -1
  26. data/grammars/source.j.json +1 -1
  27. data/grammars/source.jflex.json +1 -1
  28. data/grammars/source.kerboscript.json +1 -0
  29. data/grammars/source.kickstart.json +1 -0
  30. data/grammars/source.kotlin.json +1 -1
  31. data/grammars/source.m2.json +1 -1
  32. data/grammars/source.mermaid.flowchart.json +1 -1
  33. data/grammars/source.mermaid.json +1 -1
  34. data/grammars/source.mermaid.mindmap.json +1 -0
  35. data/grammars/source.mo.json +1 -1
  36. data/grammars/source.move.json +1 -1
  37. data/grammars/source.nim.json +1 -1
  38. data/grammars/source.nim_filter.json +1 -1
  39. data/grammars/source.nimcfg.json +1 -1
  40. data/grammars/source.pnlgrp.json +1 -1
  41. data/grammars/source.polar.json +1 -1
  42. data/grammars/source.postscript.json +1 -1
  43. data/grammars/source.prisma.json +1 -1
  44. data/grammars/source.rescript.json +1 -1
  45. data/grammars/source.rpgle.json +1 -1
  46. data/grammars/source.rust.json +1 -1
  47. data/grammars/source.scala.json +1 -1
  48. data/grammars/source.singularity.json +1 -1
  49. data/grammars/source.sqf.json +1 -1
  50. data/grammars/source.stan.json +1 -1
  51. data/grammars/source.svelte.json +1 -1
  52. data/grammars/source.sway.json +1 -0
  53. data/grammars/source.talon.json +1 -1
  54. data/grammars/source.ts.json +1 -1
  55. data/grammars/source.tsql.json +1 -1
  56. data/grammars/source.tsx.json +1 -1
  57. data/grammars/source.turtle.json +1 -1
  58. data/grammars/source.v.json +1 -1
  59. data/grammars/source.yara.json +1 -1
  60. data/grammars/text.adblock.json +1 -1
  61. data/grammars/text.checksums.json +1 -1
  62. data/grammars/text.html.liquid.json +1 -1
  63. data/grammars/text.restructuredtext.json +1 -1
  64. data/grammars/text.sfd.json +1 -1
  65. data/grammars/text.xml.svg.json +1 -1
  66. data/grammars/version +1 -1
  67. data/lib/linguist/VERSION +1 -1
  68. data/lib/linguist/generated.rb +8 -0
  69. data/lib/linguist/generic.yml +1 -0
  70. data/lib/linguist/heuristics.yml +38 -13
  71. data/lib/linguist/languages.json +1 -1
  72. data/lib/linguist/languages.yml +132 -16
  73. data/lib/linguist/samples.json +1 -1
  74. data/lib/linguist/vendor.yml +3 -0
  75. metadata +11 -4
  76. data/grammars/source.nim.comment.json +0 -1
@@ -1 +1 @@
1
- {"name":"BASIC","scopeName":"source.basic","patterns":[{"name":"entity.name.tag.basic","match":"^\\s*\\d+"},{"match":"\\b((?i)THEN|ELSE|GO\\s*TO|GOSUB)\\s*(\\d+)","captures":{"1":{"name":"keyword.control.basic"},"2":{"name":"entity.name.tag.basic"}}},{"name":"constant.numeric.basic","match":"\\b(?:\\d\\.|\\d+\\.\\d+|\\.\\d+|\\d+)(?:[Ee][-+]?\\d+)?\\b"},{"name":"string.quoted.double.basic","match":"\"[^\"]*\""},{"name":"comment.line.basic","match":"(?i:REM.*)"},{"name":"keyword.control.basic","match":"\\b(?i:FOR|TO|NEXT|IF|THEN|ELSE|GO\\s*TO|GOSUB|RETURN)\\b"},{"name":"entity.name.type.basic","match":"\\b(?i:\\?|\\\u0026|\\!|'|ABSOLUTE|ACCESS|AS|BASE|BEEP|BLOAD|BSAVE|CALL|CASE|CHAIN|CHDIR|CIRCLE|CLEAR|CLOSE|CLS|COLOR|COM|COMMON|CONST|DATA|DECLARE|DEF|DEFDBL|DEFINT|DEFLNG|DEFSNG|DEFSTR|DIM|DO|DRAW|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FUNCTION|GET|HOME|IF|INPUT|INPUT#|IOCTL|KEY|KILL|LET|LINE|LOCATE|LOCK|LOOP|LPRINT|LSET|MKDIR|NAME|NEW|ON|OPEN|OPTION|OUT|PAINT|PALETTE|PCLEAR0|PCLEAR1|PCOPY|PEN|PLAY|PMAP|PMODE0|POKE|PRESET|PRINT|PRINT#|PSET|PUT|RANDOMIZE|READ|REDIM|REM|RESET|RESTORE|RESUME|RMDIR|RSET|RUN|SCREEN|SEEK|SELECT|SHARED|SHELL|SLEEP|SOUND|SOUNDRND|STATIC|STOP|STRIG|SUB|SWAP|SYSTEM|TIMER|TROFF|TRON|TYPE|UNLOCK|USING|VIEW|WAIT|WEND|WHILE|WINDOW|WRITE)\\b"},{"name":"entity.name.function.basic","match":"\\b(?i:BIN|CHR|COMMAND|DATE|ENVIRON|ERDEV|HEX|INKEY|INPUT|IOCTL|LAFT|LCASES|LEFT|LTRIM|MID|MKD|MKDMBF|MKI|MKL|MKS|MKSMBF|OCT|RIGHT|RTRIM|SPACE|SPC|STR|STRING|TAB|TIME|UCASE|UPS|VARPTR)\\$"},{"name":"entity.name.function.basic","match":"\\b(?i:ABS|ASC|ATN|BRK|CDBL|CINT|CLNG|COS|CSNG|CSRLIN|CTL|CVD|CVDMBF|CVI|CVL|CVS|CVSMBF|D2R|EOF|ERDEV|ERL|ERR|EXP|FILEATTR|FIX|FRE|FREEFILE|HEIGHT|INP|INSTR|INT|ITM|LBOUND|LEN|LG|LIN|LN|LOC|LOF|LOG|LOG10|LPOS|NINT|NUM|PEEK|PEN|POINT|POS|R2D|REC|RND|SADD|SCREEN|SEEK|SETMEM|SGN|SIN|SPA|SPC|SQR|SQRT|STICK|STRIG|SYS|TAB|TAN|TIM|TIMER|TYP|UBOUND|VAL|VALPTR|VALSEG|VARPTR|VARSEG|WIDTH)\\b"},{"name":"keyword.operator.basic","match":"\\^|\\+|-|\\*\\*|\\*|/|=|\u003c\u003e|\u003c=|=\u003c|\u003e=|=\u003e|\u003c|\u003e|\\b(?i:MOD|NOT|AND|OR)\\b"}]}
1
+ {"name":"BASIC","scopeName":"source.basic","patterns":[{"name":"entity.name.tag.basic","match":"^\\s*\\d+"},{"match":"\\b((?i)THEN|ELSE|GO\\s*TO|GOSUB)\\s*(\\d+)","captures":{"1":{"name":"keyword.control.basic"},"2":{"name":"entity.name.tag.basic"}}},{"name":"constant.numeric.basic","match":"\\b(?:\\d\\.|\\d+\\.\\d+|\\.\\d+|\\d+)(?:[Ee][-+]?\\d+)?\\b"},{"name":"string.quoted.double.basic","match":"\"[^\"]*\""},{"name":"comment.line.basic","match":"(?i:\u0008REM\u0008.*|^'.*| '.*)"},{"name":"keyword.control.basic","match":"\\b(?i:FOR|TO|NEXT|IF|THEN|ELSE|GO\\s*TO|GOSUB|RETURN)\\b"},{"name":"entity.name.type.basic","match":"\\b(?i:\\?|\\\u0026|\\!|ABSOLUTE|ACCESS|AS|BASE|BEEP|BLOAD|BSAVE|CALL|CASE|CHAIN|CHDIR|CIRCLE|CLEAR|CLOSE|CLS|COLOR|COM|COMMON|CONST|DATA|DECLARE|DEF|DEFDBL|DEFINT|DEFLNG|DEFSNG|DEFSTR|DIM|DO|DRAW|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FUNCTION|GET|HOME|IF|INPUT|INPUT#|IOCTL|KEY|KILL|LET|LINE|LOCATE|LOCK|LOOP|LPRINT|LSET|MKDIR|NAME|NEW|ON|OPEN|OPTION|OUT|PAINT|PALETTE|PCLEAR0|PCLEAR1|PCOPY|PEN|PLAY|PMAP|PMODE0|POKE|PRESET|PRINT|PRINT#|PSET|PUT|RANDOMIZE|READ|REDIM|REM|RESET|RESTORE|RESUME|RMDIR|RSET|RUN|SCREEN|SEEK|SELECT|SHARED|SHELL|SLEEP|SOUND|SOUNDRND|STATIC|STOP|STRIG|SUB|SWAP|SYSTEM|TIMER|TROFF|TRON|TYPE|UNLOCK|USING|VIEW|WAIT|WEND|WHILE|WINDOW|WRITE)\\b"},{"name":"entity.name.function.basic","match":"\\b(?i:BIN|CHR|COMMAND|DATE|ENVIRON|ERDEV|HEX|INKEY|INPUT|IOCTL|LAFT|LCASES|LEFT|LTRIM|MID|MKD|MKDMBF|MKI|MKL|MKS|MKSMBF|OCT|RIGHT|RTRIM|SPACE|SPC|STR|STRING|TAB|TIME|UCASE|UPS|VARPTR)\\$"},{"name":"entity.name.function.basic","match":"\\b(?i:ABS|ASC|ATN|BRK|CDBL|CINT|CLNG|COS|CSNG|CSRLIN|CTL|CVD|CVDMBF|CVI|CVL|CVS|CVSMBF|D2R|EOF|ERDEV|ERL|ERR|EXP|FILEATTR|FIX|FRE|FREEFILE|HEIGHT|INP|INSTR|INT|ITM|LBOUND|LEN|LG|LIN|LN|LOC|LOF|LOG|LOG10|LPOS|NINT|NUM|PEEK|PEN|POINT|POS|R2D|REC|RND|SADD|SCREEN|SEEK|SETMEM|SGN|SIN|SPA|SPC|SQR|SQRT|STICK|STRIG|SYS|TAB|TAN|TIM|TIMER|TYP|UBOUND|VAL|VALPTR|VALSEG|VARPTR|VARSEG|WIDTH)\\b"},{"name":"keyword.operator.basic","match":"\\^|\\+|-|\\*\\*|\\*|/|=|\u003c\u003e|\u003c=|=\u003c|\u003e=|=\u003e|\u003c|\u003e|\\b(?i:MOD|NOT|AND|OR)\\b"}]}
@@ -1 +1 @@
1
- {"name":"BrightScript","scopeName":"source.brs","patterns":[{"include":"#entire_language"}],"repository":{"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":"(').*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.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:\\bro(R(ss(Parser|Article)|e(sourceManager|ctangle|ad(File|WriteFile)|gistry(Section)?))|G(pio(Button|ControlPort)|lobal)|XML(Element|List)|MessagePort|AppInfo|Array|AssociativeArray|AudioGuide|AudioMetadata|AudioPlayer|AudioResource|Bitmap|Boolean|ByteArray|CaptionRenderer|ChannelStore|CodeRegistrationScreen|Compositor|DataGramSocket|DateTime|DeviceInfo|Double|IntrinsicDouble|EVPCipher|EVPDigest|FileSystem|Float|Font|FontMetrics|FontRegistry|Function|GridScreen|HdmiStatus|HMAC|HttpAgent|ImageCanvas|ImageMetadata|Input|Int|Invalid|KeyboardScreen|List|ListScreen|Localization|LongInteger|MessageDialog|MessagePort|Microphone|OneLineDialog|ParagraphScreen|Path|PinEntryDialog|PosterScreen|ProgramGuide|Regex|Region|Registry|RegistrySection|RSA|Screen|SearchHistory|SearchScreen|SlideShow|SocketAddress|SpringboardScreen|Sprite|StreamSocket|String|SystemLog|TextScreen|TextToSpeech|TextureManager|TextureRequest|Timespan|Tuner|UrlTransfer|VideoPlayer|VideoScreen|XMLElement|XMLList|SGScreen|SGNode|SGNodeEvent|SGScreenEvent|AudioPlayerEvent|CaptionRendererEvent|CECStatusEvent|ChannelStoreEvent|CodeRegistrationScreenEvent|DeviceInfoEvent|FileSystemEvent|GridScreenEvent|HdmiHotPlugEvent|HdmiStatusEvent|ImageCanvasEvent|InputEvent|KeyboardScreenEvent|ListScreenEvent|MessageDialogEvent|MicrophoneEvent|OneLineDialogEvent|ParagraphScreenEvent|PinEntryDialogEvent|PosterScreenEvent|SearchScreenEvent|SlideShowEvent|SocketEvent|SpringboardScreenEvent|SystemLogEvent|TextScreenEvent|TextToSpeechEvent|TextureRequestEvent|TunerEvent|UniversalControlEvent|UrlEvent|VideoPlayerEvent|VideoScreenEvent|B(yteArray|oolean|r(Sub|ightPackage))|S(ystemTime|t(orageInfo|ring( )?)|erialPort( )?)|NetworkConfiguration|C(ontrol(Down( )?|Up|Port)|ecInterface|lockWidget|reateFile)|T(imer|ouchScreen( )?|ext(Field|Widget))|I(RRemote( )?|n(t|valid)|mage(Player|Widget))|D(eviceInfo( )?|at(eTime|agram(Receiver|Sender)))|Url(Transfer|Event)|Video(Mode|Input|Player|Event)|Keyboard(Press( )?| )?|Quadravox(Button( )?|SNS5( )?)|Float|List|A(ssociativeArray|udio(Player|Event)|ppendFile|rray))\\b)"},"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","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":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_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":"#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":"#program_statements"},{"include":"#try_catch"},{"include":"#non_identifier_keywords"},{"include":"#operators"},{"include":"#support_functions"},{"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"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.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)[^\\w])(?:\\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"},"2":{"name":"keyword.declaration.function"}}},"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"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.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"}}},"m_and_global":{"match":"(?i:(?\u003c!\\.)\\b(m|global|super)\\b)","captures":{"1":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\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"}}},"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.if.brs","match":"(?i:(#const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#if))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#else\\s*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#end\\s*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#else))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"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"},{"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).*$\\n?","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"}}},"support_builtin_functions":{"name":"support.function.brs","match":"(?i:\\b(GetLastRun(RuntimeError|CompileError)|Rnd|Box|Type|objfun|pos|eval)\\b)"},"support_component_functions":{"name":"support.function.component.brs","match":"(?i:\\b(R(ight|e(set(Index)?|ad(B(yte(IfAvailable)?|lock)|File|Line)?|move(Head|Tail|Index)))|Ge(nXML(Header)?|t(Res(ource|ponse(Headers|Code))|X|M(i(nute|llisecond)|o(nth|de(l)?)|essage)|B(yte(sPerBlock|Array)|o(o(tVersion(Number)?|lean)|dy))|S(t(orageCardInfo|a(ndards|tusByte)|ring(Count)?)|i(zeInMegabytes|gnedByte)|ource(Host|Identity|Port)|ub|ec(tionList|ond)|afe(X|Height|Y|Width))|H(o(stName|ur)|e(ight|ad))|Y(ear)?|N(extArticle|ame(dElements)?)|C(hildElements|ontrols|urrent(Standard|Con(trolValue|fig)|Input))|T(i(tle|me(Server|Zone))|o(String|File)|ext|ail)|I(n(t|dex|puts)|dentity)|ZoneDateTime|D(e(scription|vice(BootCount|Name|U(niqueId|ptime)))|a(y(OfWeek)?|ta))|U(se(dInMegabytes|rData)|tcDateTime)|Ent(ityEncode|ry)|V(ersion(Number)?|alue)|KeyList|F(ileSystemType|loat|a(ilureReason|mily)|reeInMegabytes)|W(holeState|idth)|LocalDateTime|Attributes))|M(id|D5|ap(StereoOutput(Aux)?|DigitalOutput))|Boolean|S(h(ift|ow)|canWiFi|t((Clear|Display)?|art|r(i(ng)?)?)|implify|ubtract(Milliseconds|Seconds)|e(nd(RawMessage|B(yte|lock)|Line)?|t(R(ollOverRegion|e(s(ize|olution)|c(tangle|eiveEol)))|X|M(i(n(imumTransferRate|ute)|llisecond)|o(nth|de(CaseSensitive)?)|ultiscreenBezel)|B(yteEventPort|o(olean|dy)|a(ckground(Bitmap|Color)|udRate))|S(t(andard|ring)|ub|e(ndEol|cond)|afeTextRegion)|H(o(stName|ur)|eight)|Y(ear)?|Name|C(hannelVolumes(Aux)?|ontrolValue|ursor(Bitmap|Pos(ition)?))|Time(Server|Zone)?|I(n(t|put)|P4(Gateway|Broadcast|Netmask|Address))|OutputState|D(HCP|omain|e(stination|fault(Mode|Transistion))|a(y(OfWeek)?|te(Time)?))|U(ser(Data|AndPassword)|tcDateTime|rl)|P(o(werSaveMode|rt)|assword|roxy)|E(ntry|cho|ol)|V(iewMode|olume(Aux)?)|F(o(nt|r(egroundColor|groundColor))|l(oat|ashRate))|W(holeState|i(dth|Fi(Passphrase|ESSID)))|L(ineEventPort|o(calDateTime|opMode)|auguage)|Audio(Mode(Aux)?|Stream(Aux)?|Output(Aux)?))|ek(Relative|ToEnd|Absolute)))|H(ide|ead|asAttribute)|N(ormalize|ext)|C(hr|ount|urrentPosition|l(s|ear(Region|Events)?))|T(o(Base64String|HexString|kenize|AsciiString)|estInter(netConnectivity|face)|rim)|I(s(MousePresent|N(ext|ame)|InputActive|Empty|Valid|LittleEndianCPU)|n(str|te(ger)|valid))|Object|D(ynamic|isplay(Preload|File(Ex)?)|o(uble|esExist)|elete)|U(n(shift|pack)|Case)|P(o(st(Message|From(String|File))|p(String(s)?)?)|ush(String)?|eek|lay(StaticImage|File)?|arse(String|File)?|reloadFile(Ex)?)|E(nable(R(ollover|egion)|Cursor|Input|Output)|xists)|Void|F(indIndex|unction|l(oat|ush)|rom(Base64String|HexString|AsciiString))|W(hile|aitMessage|rite(File)?)|L(ookup|e(n|ft))|A(s(ync(GetTo(String|File)|Head|PostFrom(String|File)|Flush)|c)?|tEof|dd(Re(ctangle(Region|_region)|place)|Milliseconds|BodyElement|Seconds|Head(er)?|CircleRegion|Tail|DNSServer|E(vent|lement(WithBody)?)|Attribute)|pp(end(String|File)?|ly))|ToStr)\\b)"},"support_functions":{"patterns":[{"include":"#support_builtin_functions"},{"include":"#support_global_functions"},{"include":"#support_global_string_functions"},{"include":"#support_global_math_functions"},{"include":"#support_component_functions"}]},"support_global_functions":{"name":"support.function.brs","match":"(?i:\\b(Re(adAsciiFile|bootSystem)|GetInterface|MatchFiles|Sleep|C(opyFile|reate(Directory|Object))|Delete(Directory|File)|UpTime|FormatDrive|ListDir|W(ait|riteAsciiFile))\\b)"},"support_global_math_functions":{"name":"support.function.brs","match":"(?i:\\b(S(in|qr|gn)|C(sng|dbl|os)|Tan|Int|Exp|Fix|Log|A(tn|bs))\\b)"},"support_global_string_functions":{"name":"support.function.brs","match":"(?i:\\b(Right|Mid|Str(i(ng(i)?)?)?|Chr|Instr|UCase|Val|Asc|L(Case|e(n|ft)))\\b)"},"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":{"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":"(').*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.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:\\bro(R(ss(Parser|Article)|e(sourceManager|ctangle|ad(File|WriteFile)|gistry(Section)?))|G(pio(Button|ControlPort)|lobal)|XML(Element|List)|MessagePort|AppInfo|Array|AssociativeArray|AudioGuide|AudioMetadata|AudioPlayer|AudioResource|Bitmap|Boolean|ByteArray|CaptionRenderer|ChannelStore|CodeRegistrationScreen|Compositor|DataGramSocket|DateTime|DeviceInfo|Double|IntrinsicDouble|EVPCipher|EVPDigest|FileSystem|Float|Font|FontMetrics|FontRegistry|Function|GridScreen|HdmiStatus|HMAC|HttpAgent|ImageCanvas|ImageMetadata|Input|Int|Invalid|KeyboardScreen|List|ListScreen|Localization|LongInteger|MessageDialog|MessagePort|Microphone|OneLineDialog|ParagraphScreen|Path|PinEntryDialog|PosterScreen|ProgramGuide|Regex|Region|Registry|RegistrySection|RSA|Screen|SearchHistory|SearchScreen|SlideShow|SocketAddress|SpringboardScreen|Sprite|StreamSocket|String|SystemLog|TextScreen|TextToSpeech|TextureManager|TextureRequest|Timespan|Tuner|UrlTransfer|VideoPlayer|VideoScreen|XMLElement|XMLList|SGScreen|SGNode|SGNodeEvent|SGScreenEvent|AudioPlayerEvent|CaptionRendererEvent|CECStatusEvent|ChannelStoreEvent|CodeRegistrationScreenEvent|DeviceInfoEvent|FileSystemEvent|GridScreenEvent|HdmiHotPlugEvent|HdmiStatusEvent|ImageCanvasEvent|InputEvent|KeyboardScreenEvent|ListScreenEvent|MessageDialogEvent|MicrophoneEvent|OneLineDialogEvent|ParagraphScreenEvent|PinEntryDialogEvent|PosterScreenEvent|SearchScreenEvent|SlideShowEvent|SocketEvent|SpringboardScreenEvent|SystemLogEvent|TextScreenEvent|TextToSpeechEvent|TextureRequestEvent|TunerEvent|UniversalControlEvent|UrlEvent|VideoPlayerEvent|VideoScreenEvent|B(yteArray|oolean|r(Sub|ightPackage))|S(ystemTime|t(orageInfo|ring( )?)|erialPort( )?)|NetworkConfiguration|C(ontrol(Down( )?|Up|Port)|ecInterface|lockWidget|reateFile)|T(imer|ouchScreen( )?|ext(Field|Widget))|I(RRemote( )?|n(t|valid)|mage(Player|Widget))|D(eviceInfo( )?|at(eTime|agram(Receiver|Sender)))|Url(Transfer|Event)|Video(Mode|Input|Player|Event)|Keyboard(Press( )?| )?|Quadravox(Button( )?|SNS5( )?)|Float|List|A(ssociativeArray|udio(Player|Event)|ppendFile|rray))\\b)"},"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","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":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_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":"#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":"#support_functions"},{"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"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.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)[^\\w])(?:\\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"},"2":{"name":"keyword.declaration.function"}}},"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"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.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|global|super)\\b)","captures":{"1":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\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"}}},"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.if.brs","match":"(?i:(#const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#if))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#else\\s*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#end\\s*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#else))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"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"},{"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).*$\\n?","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"}}},"support_builtin_functions":{"name":"support.function.brs","match":"(?i:\\b(GetLastRun(RuntimeError|CompileError)|Rnd|Box|Type|objfun|pos|eval)\\b)"},"support_component_functions":{"name":"support.function.component.brs","match":"(?i:\\b(R(ight|e(set(Index)?|ad(B(yte(IfAvailable)?|lock)|File|Line)?|move(Head|Tail|Index)))|Ge(nXML(Header)?|t(Res(ource|ponse(Headers|Code))|X|M(i(nute|llisecond)|o(nth|de(l)?)|essage)|B(yte(sPerBlock|Array)|o(o(tVersion(Number)?|lean)|dy))|S(t(orageCardInfo|a(ndards|tusByte)|ring(Count)?)|i(zeInMegabytes|gnedByte)|ource(Host|Identity|Port)|ub|ec(tionList|ond)|afe(X|Height|Y|Width))|H(o(stName|ur)|e(ight|ad))|Y(ear)?|N(extArticle|ame(dElements)?)|C(hildElements|ontrols|urrent(Standard|Con(trolValue|fig)|Input))|T(i(tle|me(Server|Zone))|o(String|File)|ext|ail)|I(n(t|dex|puts)|dentity)|ZoneDateTime|D(e(scription|vice(BootCount|Name|U(niqueId|ptime)))|a(y(OfWeek)?|ta))|U(se(dInMegabytes|rData)|tcDateTime)|Ent(ityEncode|ry)|V(ersion(Number)?|alue)|KeyList|F(ileSystemType|loat|a(ilureReason|mily)|reeInMegabytes)|W(holeState|idth)|LocalDateTime|Attributes))|M(id|D5|ap(StereoOutput(Aux)?|DigitalOutput))|Boolean|S(h(ift|ow)|canWiFi|t((Clear|Display)?|art|r(i(ng)?)?)|implify|ubtract(Milliseconds|Seconds)|e(nd(RawMessage|B(yte|lock)|Line)?|t(R(ollOverRegion|e(s(ize|olution)|c(tangle|eiveEol)))|X|M(i(n(imumTransferRate|ute)|llisecond)|o(nth|de(CaseSensitive)?)|ultiscreenBezel)|B(yteEventPort|o(olean|dy)|a(ckground(Bitmap|Color)|udRate))|S(t(andard|ring)|ub|e(ndEol|cond)|afeTextRegion)|H(o(stName|ur)|eight)|Y(ear)?|Name|C(hannelVolumes(Aux)?|ontrolValue|ursor(Bitmap|Pos(ition)?))|Time(Server|Zone)?|I(n(t|put)|P4(Gateway|Broadcast|Netmask|Address))|OutputState|D(HCP|omain|e(stination|fault(Mode|Transistion))|a(y(OfWeek)?|te(Time)?))|U(ser(Data|AndPassword)|tcDateTime|rl)|P(o(werSaveMode|rt)|assword|roxy)|E(ntry|cho|ol)|V(iewMode|olume(Aux)?)|F(o(nt|r(egroundColor|groundColor))|l(oat|ashRate))|W(holeState|i(dth|Fi(Passphrase|ESSID)))|L(ineEventPort|o(calDateTime|opMode)|auguage)|Audio(Mode(Aux)?|Stream(Aux)?|Output(Aux)?))|ek(Relative|ToEnd|Absolute)))|H(ide|ead|asAttribute)|N(ormalize|ext)|C(hr|ount|urrentPosition|l(s|ear(Region|Events)?))|T(o(Base64String|HexString|kenize|AsciiString)|estInter(netConnectivity|face)|rim)|I(s(MousePresent|N(ext|ame)|InputActive|Empty|Valid|LittleEndianCPU)|n(str|te(ger)|valid))|Object|D(ynamic|isplay(Preload|File(Ex)?)|o(uble|esExist)|elete)|U(n(shift|pack)|Case)|P(o(st(Message|From(String|File))|p(String(s)?)?)|ush(String)?|eek|lay(StaticImage|File)?|arse(String|File)?|reloadFile(Ex)?)|E(nable(R(ollover|egion)|Cursor|Input|Output)|xists)|Void|F(indIndex|unction|l(oat|ush)|rom(Base64String|HexString|AsciiString))|W(hile|aitMessage|rite(File)?)|L(ookup|e(n|ft))|A(s(ync(GetTo(String|File)|Head|PostFrom(String|File)|Flush)|c)?|tEof|dd(Re(ctangle(Region|_region)|place)|Milliseconds|BodyElement|Seconds|Head(er)?|CircleRegion|Tail|DNSServer|E(vent|lement(WithBody)?)|Attribute)|pp(end(String|File)?|ly))|ToStr)\\b)"},"support_functions":{"patterns":[{"include":"#support_builtin_functions"},{"include":"#support_global_functions"},{"include":"#support_global_string_functions"},{"include":"#support_global_math_functions"},{"include":"#support_component_functions"}]},"support_global_functions":{"name":"support.function.brs","match":"(?i:\\b(Re(adAsciiFile|bootSystem)|GetInterface|MatchFiles|Sleep|C(opyFile|reate(Directory|Object))|Delete(Directory|File)|UpTime|FormatDrive|ListDir|W(ait|riteAsciiFile))\\b)"},"support_global_math_functions":{"name":"support.function.brs","match":"(?i:\\b(S(in|qr|gn)|C(sng|dbl|os)|Tan|Int|Exp|Fix|Log|A(tn|bs))\\b)"},"support_global_string_functions":{"name":"support.function.brs","match":"(?i:\\b(Right|Mid|Str(i(ng(i)?)?)?|Chr|Instr|UCase|Val|Asc|L(Case|e(n|ft)))\\b)"},"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":"CDS","scopeName":"source.cds","patterns":[{"name":"identifier.cds","match":"\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\]"},{"match":"(?\u003c!\\.)\\b(annotate)\\b\\s*[\\w.]+\\b\\s*\\b(with)?\\b","captures":{"1":{"name":"keyword.strong.control.import.cds"},"2":{"name":"keyword.strong.control.import.cds"}}},{"name":"meta.import.cds","begin":"(?\u003c!\\.)\\b(import|using)(?!\\s*:)\\b","end":"(;)|\\n","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"match":"(?x)\n (?: \\b(default)\\b | \\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\n \\s*\n (\\b as \\b)\n \\s*\n (?: (\\b default \\b | \\*) | \\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"variable.language.default.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.strong.cds"},"4":{"name":"invalid.illegal.cds"},"5":{"name":"variable.other.module-alias.cds"}}},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"match":"(?x) (?:\n (\\*) |\n (?=\\D)(\\b[\\$\\.\\w]+\\b)\n)\n\\s* (\\b as \\b) \\s*\n(?=\\D)(\\b[\\$\\.\\w]+\\b)\n","captures":{"1":{"name":"variable.language.import-all.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.strong.control.cds"},"4":{"name":"variable.other.module-alias.cds"}}},{"name":"variable.language.import-all.cds","match":"\\*"},{"name":"variable.language.default.cds","match":"\\b(default)\\b"},{"include":"#strings"},{"include":"#comments"},{"name":"keyword.strong.control.cds","match":"(?i)\\b(from)\\b"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b(?=.*\\bfrom\\b)"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"1":{"name":"keyword.strong.control.import.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"}}},{"name":"meta.export.cds","match":"(?x) \\b(export)\\b \\s* \\b(default)\\b (?:\\s*) \\b((?!\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b)[$_a-zA-Z][$_a-zA-Z0-9]*)?\\b","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"variable.language.default.cds"},"3":{"name":"variable.other.module.cds"}}},{"name":"meta.export.cds","begin":"(?\u003c!\\.)\\b(export)(?!\\s*:)\\b","end":"(?=;|\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b|$)","patterns":[{"include":"#numbers"},{"begin":"\\{(?=.*\\bfrom\\b)","end":"\\}","patterns":[{"match":"(?x)\n (?: \\b(default)\\b | \\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\n \\s*\n (\\b as \\b)\n \\s*\n (?: \\b(default)\\b | (\\*) | \\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\n ","captures":{"1":{"name":"variable.language.default.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.control.cds"},"4":{"name":"variable.language.default.cds"},"5":{"name":"invalid.illegal.cds"},"6":{"name":"variable.other.module-alias.cds"}}},{"name":"meta.delimiter.object.comma.cds","match":","},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"begin":"(?![\\p{L}$_])\\{","end":"\\}","patterns":[{"match":"(?x)\n (?: \\b(default)\\b | \\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\n \\s*\n (\\b as \\b)\n \\s*\n (?: \\b(default)\\b | (\\*) | \\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\n ","captures":{"1":{"name":"invalid.illegal.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.control.cds"},"4":{"name":"variable.language.default.cds"},"5":{"name":"invalid.illegal.cds"},"6":{"name":"variable.other.module-alias.cds"}}},{"name":"meta.delimiter.object.comma.cds","match":","},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"name":"variable.language.import-all.cds","match":"\\*(?=.*\\bfrom\\b)"},{"name":"variable.language.default.cds","match":"\\b(default)\\b"},{"include":"#strings"},{"include":"#comments"},{"name":"keyword.control.cds","match":"(?i)\\b(from)\\b"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"},{"name":"meta.delimiter.object.comma.cds","match":","},{"include":"#operators"}],"beginCaptures":{"1":{"name":"keyword.control.export.cds"}}},{"name":"meta.method.cds","begin":"(?x)\n \\b\n (?: (static) \\s+ )? # Optional static keyword\n (?! # Dont match known keywords\n (?:break|case|catch|continue|do|else|finally|for|if|\n export|import|using|package|return|switch|throw|try|while|with)\n [\\s\\(]\n )\n ([$_a-zA-Z][$_a-zA-Z0-9]*)\n \\s*\n (\\()\n (?=(?:[^\\(\\)]*)?\\)\\s*\\{)\n ","end":"\\)","patterns":[{"include":"#function-params"}],"beginCaptures":{"1":{"name":"storage.modifier.static.cds"},"2":{"name":"entity.name.function.cds"},"3":{"name":"punctuation.definition.parameters.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.begin.cds"}}},{"name":"meta.class.cds","match":"(?x)\n \\b(class)\n (?:\n \\s+\n ([$_a-zA-Z][$_a-zA-Z0-9]*)\n )?\n (?:\n \\s+\n (extends)\n \\s+\n ([$_a-zA-Z][$_a-zA-Z0-9]*)\n )?\n \\s*($|(?=\\{))\n ","captures":{"1":{"name":"storage.type.class.cds"},"2":{"name":"entity.name.type.class.cds"},"3":{"name":"storage.modifier.cds"},"4":{"name":"entity.other.inherited-class.cds"}}},{"name":"entity.name.type.attribute-name.cds","match":"(?\u003c!\\w|entity\\s|aspect\\s|projection\\son\\s)[$_a-zA-Z][$_a-zA-Z0-9]*(\\s*:\\s*[$_a-zA-Z][$_a-zA-Z0-9]*)?(?=\\s*([:{]|as\\b))"},{"include":"#numbers"},{"include":"#strings"},{"include":"#comments"},{"include":"#operators"},{"name":"storage.type.arrow.cds","match":"=\u003e"},{"name":"storage.type.var.cds","match":"(?\u003c!\\.|\\$)\\b(let|var)\\b(?!\\$)"},{"name":"storage.modifier.cds","match":"(?\u003c!\\.|\\$)\\b(get|set|const)\\b(?!\\$)"},{"name":"meta.control.yield.cds","match":"(?\u003c!\\.)\\b(yield)(?!\\s*:)\\b(?:\\s*(\\*))?","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"storage.modifier.cds"}}},{"name":"support.class.cds","match":"(?\u003c!\\.|\\$)\\b(Association\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?to\\s*(?:(many|one)\\s*)?|Composition\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?of\\s*(?:(many|one)\\s*)?|(Boolean|Date|Time|DateTime|Timestamp|Number|Integer|Decimal|String)\\s*(\\([^()]*\\))?)(?!\\$)"},{"name":"invalid.illegal.cds","match":"(?\u003c!\\.|\\$)\\b(await)\\b(?!\\$)"},{"name":"invalid.deprecated.cds","match":"(?\u003c!\\.|\\$)\\b(implements|interface|package|private|protected|public)\\b(?!\\$)"},{"name":"invalid.illegal.cds","match":"(?\u003c!\\.|\\$)\\b(class|static|extends)\\b(?!\\$)"},{"name":"constant.language.cds","match":"\\b(false|Infinity|NaN|null|true|undefined)\\b"},{"name":"variable.language.cds","match":"(?\u003c!\\.)\\b(super|this)(?!\\s*:)\\b"},{"name":"punctuation.terminator.statement.cds","match":"\\;"},{"match":"(\\[)(\\])","captures":{"1":{"name":"punctuation.section.scope.begin.cds"},"2":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"name":"meta.brace.square.cds","match":"\\[|\\]"},{"name":"support.class.cds","match":"(?\u003c=new )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c= instanceof )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c!\\w)([$_a-zA-Z][$_a-zA-Z0-9]*)(?=\\.prototype\\b)"},{"name":"keyword.other.cds","match":"(?i)(?\u003c=\\.)(prototype)\\b"},{"name":"meta.function-call.cds","match":"(?\u003c!\\w)([$_a-zA-Z][$_a-zA-Z0-9]*)(?=\\()"},{"name":"keyword.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(all|and|any|asc|between|by|case|cast|cross|desc|distinct|element|escape|except|excluding|exists|first|from|full|group|group by|having|in|inner|intersect|into|is|join|last|left|like|limit|many|minus|mixin|not null|not|null|nulls|offset|one|or|order by|outer|redirected to|select|some|top|type of|union|where|with)\\b(?!\\$)"},{"name":"keyword.strong.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(as|key|on|type)\\b(?!\\$)"},{"name":"keyword.cds","match":"(?\u003c!\\.|\\$)\\b(after|always|analysis|array of|async|asynchronous|auto|both|cache|column|columns|configuration|current|cycle|day|default|depends|detection|disabled|documents|else|enabled|end|every|existing|export|extended|extract|fast|flush|fulltext|fuzzy|generated|getnumservers|hana|hash|hour|identity|import|increment|index|keeping|language|layout|leading|masked|maxvalue|merge|migration|mime|mining|minute|minutes|minvalue|mode|month|name|new|no|off|only|others|overlay|parameters|partition|partitioning|partitions|phrase|preprocess|priority|projection|projection on|queue|range|ratio|reset|returns|right|roundrobin|row|search|second|separators|start|storage|store|subtype|sync|synchronous|table|technical|temporary|text|then|token|trailing|trim|unique|unload|value|values|virtual|when|with parameters|year)\\b(?!\\$)"},{"name":"keyword.strong.cds","match":"(?\u003c!\\.|\\$)\\b(abstract|action|actions|annotation|aspect|context|define|entity|enum|event|expose|extend|facet|function|namespace|service|view)\\b(?!\\$)"},{"name":"identifier.cds","match":"[$_a-zA-Z][$_a-zA-Z0-9]*"}],"repository":{"comments":{"patterns":[{"name":"entity.other.attribute-name","match":"@\\(?[\\w.]+\\b"},{"name":"comment.block.documentation.cds","begin":"/\\*\\*(?!/)","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"name":"comment.block.cds","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.cds","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.cds"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.cds"}}}]},"escapes":{"name":"constant.character.escape.cds","match":"\\\\([xu$]\\{?[0-9a-fA-F]+\\}?|.|$)"},"function-params":{"patterns":[{"begin":"(?=[\\p{L}$_])","end":"(?=[,)/])","patterns":[{"name":"variable.parameter.function.cds","match":"\\G[$_a-zA-Z][$_a-zA-Z0-9]*"}]},{"include":"#comments"}]},"interpolation":{"name":"meta.embedded.line.cds","contentName":"source.cds","begin":"\\$\\{","end":"(\\})","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"meta.brace.curly.cds"}},"endCaptures":{"0":{"name":"meta.brace.curly.cds"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.cds"},"1":{"name":"source.cds"}}},"numbers":{"patterns":[{"name":"constant.numeric.hex.cds","match":"(?\u003c!\\w|\\$)0[xX][[:xdigit:]]+\\b"},{"name":"constant.numeric.binary.cds","match":"(?\u003c!\\w|\\$)0[bB][01]+\\b"},{"name":"constant.numeric.octal.cds","match":"(?\u003c!\\w|\\$)0[oO][0-7]+\\b"},{"name":"constant.numeric.cds","match":"(?x)\n (?\u003c!\\w|\\$)\t\t\t\t\t\t\t # Ensure word boundry\n [+-]? # Optional sign\n (?\u003e;\n (\n (0|[1-9][0-9]*)(\\.[0-9]*)?\t # 0 or 1 or 1. or 1.0\n | \\.[0-9]+\t\t\t\t\t\t # .1\n )\n ([eE][+-]?[0-9]+)?\t\t\t\t\t # Exponent\n )\n (?!\\w)\t\t\t\t\t\t\t\t\t # Ensure word boundry\n"}]},"operators":{"patterns":[{"name":"keyword.operator.assignment.compound.cds","match":"%=|\\+=|\\-=|\\*=|(?\u003c!\\()/="},{"name":"keyword.operator.assignment.compound.bitwise.cds","match":"\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\\|="},{"name":"keyword.operator.comparison.cds","match":"!==|!=|\u003c=|\u003e=|===|==|\u003c|\u003e"},{"name":"keyword.operator.logical.cds","match":"\u0026\u0026|!|\\|\\|"},{"name":"keyword.operator.bitwise.cds","match":"\u0026|\\||\\^|~"},{"name":"keyword.cds","match":"\\:\\s*(localized)\\s+"},{"name":"keyword.operator.cds","match":"\\:"},{"name":"keyword.operator.logical.cds","match":"!"},{"name":"keyword.operator.assignment.cds","match":"=|\\:"},{"name":"keyword.operator.decrement.cds","match":"\\-\\-"},{"name":"keyword.operator.increment.cds","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.cds","match":"%|\\*|/|\\-|\\+"}]},"strings":{"patterns":[{"name":"string.quoted.single.cds","begin":"'","end":"'(?!')","patterns":[{"name":"meta.single-quote.doubled.cds","match":"''"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}},{"name":"string.quoted.other.template.cds","begin":"`","end":"`","patterns":[{"include":"#interpolation"},{"include":"#escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}}]}}}
1
+ {"name":"CDS","scopeName":"source.cds","patterns":[{"begin":"\\b(aspect|(abstract\\s+)?entity)\\b","end":"(?\u003c=})(;)?|(;)","patterns":[{"begin":":","end":"(?={|;)","patterns":[{"include":"#identifiers"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"0":{"name":"keyword.operator.cds"}}},{"include":"#bracedElementDef"},{"include":"#keywords"},{"include":"#identifiers"}],"beginCaptures":{"1":{"name":"keyword.strong.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},{"begin":"(?i)\\b(extend)\\s+((context|service|aspect|entity|projection|type)\\s+)?(\\S+)(\\s+(with)(\\s+(actions|definitions|columns|elements|enum))?|(?=\\s*{))","end":"(?\u003c=})(;)?|(;)","patterns":[{"include":"#bracedElementDef"},{"include":"#keywords"},{"include":"#identifiers"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"1":{"name":"keyword.strong.cds"},"3":{"name":"keyword.cds"},"4":{"name":"identifier.cds"},"6":{"name":"keyword.cds"},"8":{"name":"keyword.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},{"match":"(?\u003c!\\.)\\b(annotate)\\b\\s*[\\w.]+\\b\\s*\\b(with)?\\b","captures":{"1":{"name":"keyword.strong.control.import.cds"},"2":{"name":"keyword.strong.control.import.cds"}}},{"name":"meta.import.cds","begin":"(?\u003c!\\.)\\b(import|using)(?!\\s*:)\\b","end":"(;)|\\n","patterns":[{"begin":"{","end":"}","patterns":[{"match":"(?:\\b(default)\\b|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\\s*(\\bas\\b)\\s*(?:(\\bdefault\\b|\\*)|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"variable.language.default.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.strong.cds"},"4":{"name":"invalid.illegal.cds"},"5":{"name":"variable.other.module-alias.cds"}}},{"name":"punctuation.separator.object.cds","match":","},{"include":"#comments"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"match":"(?:(\\*)|(?=\\D)(\\b[\\$\\.\\w]+\\b))\\s*(\\bas\\b)\\s*(?=\\D)(\\b[\\$\\.\\w]+\\b)","captures":{"1":{"name":"variable.language.import-all.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.strong.control.cds"},"4":{"name":"variable.other.module-alias.cds"}}},{"name":"variable.language.import-all.cds","match":"\\*"},{"name":"variable.language.default.cds","match":"\\b(default)\\b"},{"include":"#strings"},{"include":"#comments"},{"name":"keyword.strong.control.cds","match":"(?i)\\b(from)\\b"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b(?=.*\\bfrom\\b)"},{"name":"punctuation.separator.object.cds","match":","}],"beginCaptures":{"1":{"name":"keyword.strong.control.import.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"}}},{"name":"meta.export.cds","match":"\\b(export)\\b\\s*\\b(default)\\b(?:\\s*)\\b((?!\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b)[$_a-zA-Z][$_a-zA-Z0-9]*)?\\b","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"variable.language.default.cds"},"3":{"name":"variable.other.module.cds"}}},{"name":"meta.export.cds","begin":"(?\u003c!\\.)\\b(export)(?!\\s*:)\\b","end":"(?=;|\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b|$)","patterns":[{"include":"#numbers"},{"begin":"{(?=.*\\bfrom\\b)","end":"}","patterns":[{"match":"(?:\\b(default)\\b|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\\s*(\\bas\\b)\\s*(?:\\b(default)\\b|(\\*)|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"variable.language.default.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.control.cds"},"4":{"name":"variable.language.default.cds"},"5":{"name":"invalid.illegal.cds"},"6":{"name":"variable.other.module-alias.cds"}}},{"name":"meta.delimiter.object.comma.cds","match":","},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"begin":"(?![\\p{L}$_]){","end":"}","patterns":[{"match":"(?:\\b(default)\\b|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)\\s*(\\bas\\b)\\s*(?:\\b(default)\\b|(\\*)|\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b)","captures":{"1":{"name":"invalid.illegal.cds"},"2":{"name":"variable.other.module.cds"},"3":{"name":"keyword.control.cds"},"4":{"name":"variable.language.default.cds"},"5":{"name":"invalid.illegal.cds"},"6":{"name":"variable.other.module-alias.cds"}}},{"name":"meta.delimiter.object.comma.cds","match":","},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.modules.end.cds"}}},{"name":"variable.language.import-all.cds","match":"\\*(?=.*\\bfrom\\b)"},{"name":"variable.language.default.cds","match":"\\b(default)\\b"},{"include":"#strings"},{"include":"#comments"},{"name":"keyword.control.cds","match":"(?i)\\b(from)\\b"},{"name":"variable.other.module.cds","match":"\\b([$_a-zA-Z][$_a-zA-Z0-9]*)\\b"},{"name":"meta.delimiter.object.comma.cds","match":","},{"include":"#operators"}],"beginCaptures":{"1":{"name":"keyword.control.export.cds"}}},{"name":"meta.method.cds","begin":"\\b(?:(static)\\s+)?(?!(?:break|case|catch|continue|do|else|finally|for|if|export|import|using|package|return|switch|throw|try|while|with)[\\s\\(])([$_a-zA-Z][$_a-zA-Z0-9]*)\\s*(\\()(?=(?:[^\\(\\)]*)?\\)\\s*{)","end":"\\)","patterns":[{"include":"#function-params"}],"beginCaptures":{"1":{"name":"storage.modifier.static.cds"},"2":{"name":"entity.name.function.cds"},"3":{"name":"punctuation.definition.parameters.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.begin.cds"}}},{"name":"meta.class.cds","match":"\\b(class)(?:\\s+([$_a-zA-Z][$_a-zA-Z0-9]*))?(?:\\s+(extends)\\s+([$_a-zA-Z][$_a-zA-Z0-9]*))?\\s*($|(?={))","captures":{"1":{"name":"storage.type.class.cds"},"2":{"name":"entity.name.type.class.cds"},"3":{"name":"storage.modifier.cds"},"4":{"name":"entity.other.inherited-class.cds"}}},{"name":"storage.type.arrow.cds","match":"=\u003e"},{"name":"storage.type.var.cds","match":"(?\u003c!\\.|\\$)\\b(let|var)\\b(?!\\$)"},{"name":"storage.modifier.cds","match":"(?\u003c!\\.|\\$)\\b(get|set|const)\\b(?!\\$)"},{"name":"meta.control.yield.cds","match":"(?\u003c!\\.)\\b(yield)(?!\\s*:)\\b(?:\\s*(\\*))?","captures":{"1":{"name":"keyword.control.cds"},"2":{"name":"storage.modifier.cds"}}},{"name":"constant.language.cds","match":"\\b(false|Infinity|NaN|null|true|undefined)\\b"},{"name":"variable.language.cds","match":"(?\u003c!\\.)\\b(super|this)(?!\\s*:)\\b"},{"name":"punctuation.terminator.statement.cds","match":"\\;"},{"match":"(\\[)(\\])","captures":{"1":{"name":"punctuation.section.scope.begin.cds"},"2":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"name":"meta.brace.square.cds","match":"\\[|\\]"},{"name":"support.class.cds","match":"(?\u003c=new )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c= instanceof )([$_a-zA-Z][$_a-zA-Z0-9]*)(?!\\w)"},{"name":"support.class.cds","match":"(?\u003c!\\w)([$_a-zA-Z][$_a-zA-Z0-9]*)(?=\\.prototype\\b)"},{"name":"keyword.other.cds","match":"(?i)(?\u003c=\\.)(prototype)\\b"},{"name":"meta.function-call.cds","match":"(?\u003c!\\w)([$_a-zA-Z][$_a-zA-Z0-9]*)(?=\\()"},{"include":"#keywords"},{"include":"#numbers"},{"include":"#strings"},{"include":"#comments"},{"include":"#operators"},{"include":"#identifiers"}],"repository":{"bracedElementDef":{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#extendElement"},{"include":"#elementDef"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},"comments":{"patterns":[{"name":"entity.other.attribute-name","match":"@\\(?[\\w.]+\\b"},{"name":"comment.block.documentation.cds","begin":"/\\*\\*(?!/)","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"name":"comment.block.cds","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cds"}}},{"name":"comment.line.double-slash.cds","match":"//.*"}]},"elementDef":{"begin":"\\b(virtual(?:\\s+))?(key(?:\\s+))?(masked(?:\\s+))?(element(?:\\s+))?","end":"(?=})|(;)","patterns":[{"include":"#bracedElementDef"},{"include":"#strings"},{"include":"#comments"},{"include":"#keywords"},{"name":"keyword.operator.cds","match":":"},{"begin":"([$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\])(?=\\s*[:{,])","end":"(,)|(?=\\s*[:{])","beginCaptures":{"1":{"name":"entity.name.type.attribute-name.cds"}},"endCaptures":{"1":{"name":"punctuation.separator.object.cds"}}},{"include":"#identifiers"},{"include":"#operators"},{"include":"#numbers"},{}],"beginCaptures":{"1":{"name":"keyword.cds"},"2":{"name":"keyword.strong.cds"},"3":{"name":"keyword.cds"},"4":{"name":"keyword.cds"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"}}},"escapes":{"name":"constant.character.escape.cds","match":"\\\\([xu$]\\{?[0-9a-fA-F]+}?|.|$)"},"extendElement":{"begin":"\\b(?=extend\\b.*\\bwith\\b)","end":"(?\u003c=})(;)?|(;)","patterns":[{"begin":"\\bextend\\b","end":"\\bwith\\b","patterns":[{"name":"keyword.cds","match":"element(?!(?:\\s*/\\*.*\\*/\\s*|\\s+)?with\\b)"},{"name":"entity.name.type.attribute-name.cds","match":"[$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\]"},{"include":"#comments"}],"beginCaptures":{"0":{"name":"keyword.strong.cds"}},"endCaptures":{"0":{"name":"keyword.cds"}}},{"begin":"{","end":"}","patterns":[{"include":"#extendElement"},{"include":"#elementDef"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.cds"}}},{"include":"#comments"},{"include":"#keywords"},{"include":"#identifiers"},{"include":"#operators"},{"name":"punctuation.section.scope.begin.cds","match":"\\("},{"name":"punctuation.section.scope.end.cds","match":"\\)"},{"include":"#numbers"}],"endCaptures":{"1":{"name":"punctuation.terminator.statement.cds"},"2":{"name":"punctuation.terminator.statement.cds"}}},"function-params":{"patterns":[{"begin":"(?=[\\p{L}$_])","end":"(?=[,)/])","patterns":[{"name":"variable.parameter.function.cds","match":"\\G[$_a-zA-Z][$_a-zA-Z0-9]*"}]},{"include":"#comments"}]},"identifiers":{"patterns":[{"name":"identifier.cds","match":"[$_a-zA-Z][$_a-zA-Z0-9]*|\"[^\"]*(\"\"[^\"]*)*\"|!\\[[^\\]]*(\\]\\][^\\]]*)*\\]"}]},"interpolation":{"name":"meta.embedded.line.cds","contentName":"source.cds","begin":"\\${","end":"(})","patterns":[{"begin":"{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"meta.brace.curly.cds"}},"endCaptures":{"0":{"name":"meta.brace.curly.cds"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.cds"},"1":{"name":"source.cds"}}},"keywords":{"patterns":[{"name":"support.class.cds","match":"(?\u003c!\\.|\\$)\\b(Association\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?to\\s*(?:(many|one)\\s*)?|Composition\\s*(?:\\[[0-9.eE+, *-]*\\]\\s*)?of\\s*(?:(many|one)\\s*)?|(Binary|Boolean|Date|DateTime|Decimal|DecimalFloat|Double|Int(16|32|64)|Integer|Integer64|LargeBinary|LargeString|Number|String|Time|Timestamp|UInt8|UUID)\\s*(\\([^()]*\\))?)(?!\\$|\\s*:)"},{"name":"invalid.illegal.cds","match":"(?\u003c!\\.|\\$)\\b(await)\\b(?!\\$|\\s*:)"},{"name":"invalid.deprecated.cds","match":"(?\u003c!\\.|\\$)\\b(implements|interface|package|private|protected|public)\\b(?!\\$|\\s*:)"},{"name":"invalid.illegal.cds","match":"(?\u003c!\\.|\\$)\\b(class|static|extends)\\b(?!\\$|\\s*:)"},{"name":"keyword.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(all|and|any|asc|between|by|case|cast|cross|desc|distinct|element|elements|escape|except|excluding|exists|first|from|full|group|group by|having|in|inner|intersect|into|is|join|last|left|like|limit|many|minus|mixin|not null|not|null|nulls|offset|one|or|order by|outer|redirected to|select|some|top|type of|union|where|with)\\b(?!\\$|\\s*:)"},{"name":"keyword.strong.cds","match":"(?i)(?\u003c!\\.|\\$)\\b(as|key|on|type)\\b(?!\\$|\\s*:)"},{"name":"keyword.cds","match":"(?\u003c!\\.|\\$)\\b(after|always|analysis|array of|async|asynchronous|auto|both|cache|column|columns|configuration|current|cycle|day|default|depends|detection|disabled|documents|else|enabled|end|every|existing|export|extended|extract|fast|flush|fulltext|fuzzy|generated|getnumservers|hana|hash|hour|identity|import|increment|index|keeping|language|layout|leading|masked|maxvalue|merge|migration|mime|mining|minute|minutes|minvalue|mode|month|name|new|no|off|only|others|overlay|parameters|partition|partitioning|partitions|phrase|preprocess|priority|projection|projection on|queue|range|ratio|reset|returns|right|roundrobin|row|search|second|separators|start|storage|store|subtype|sync|synchronous|table|technical|temporary|text|then|token|trailing|trim|unique|unload|value|values|virtual|when|with parameters|year)\\b(?!\\$|\\s*:)"},{"name":"keyword.strong.cds","match":"(?\u003c!\\.|\\$)\\b(abstract|action|actions|annotation|aspect|context|define|entity|enum|event|expose|extend|facet|function|namespace|service|view)\\b(?!\\$|\\s*:)"}]},"numbers":{"patterns":[{"name":"constant.numeric.hex.cds","match":"(?\u003c!\\w|\\$)0[xX][[:xdigit:]]+\\b"},{"name":"constant.numeric.binary.cds","match":"(?\u003c!\\w|\\$)0[bB][01]+\\b"},{"name":"constant.numeric.octal.cds","match":"(?\u003c!\\w|\\$)0[oO][0-7]+\\b"},{"name":"constant.numeric.cds","match":"(?\u003c!\\w|\\$)[+-]?[0-9]+('.'[0-9]+)?([eE][+-]?[0-9]+)?(?!\\w)"}]},"operators":{"patterns":[{"name":"keyword.operator.assignment.compound.cds","match":"%=|\\+=|\\-=|\\*=|(?\u003c!\\()/="},{"name":"keyword.operator.assignment.compound.bitwise.cds","match":"\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\\|="},{"name":"keyword.operator.comparison.cds","match":"!==|!=|\u003c=|\u003e=|===|==|\u003c|\u003e"},{"name":"keyword.operator.logical.cds","match":"\u0026\u0026|!|\\|\\|"},{"name":"keyword.operator.bitwise.cds","match":"\u0026|\\||\\^|~"},{"name":"keyword.cds","match":"\\:\\s*(localized)\\s+"},{"name":"keyword.operator.cds","match":"\\:"},{"name":"keyword.operator.logical.cds","match":"!"},{"name":"keyword.operator.assignment.cds","match":"=|\\:"},{"name":"keyword.operator.decrement.cds","match":"\\-\\-"},{"name":"keyword.operator.increment.cds","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.cds","match":"%|\\*|/|\\-|\\+"}]},"strings":{"patterns":[{"name":"string.quoted.single.cds","begin":"'","end":"'(?!')","patterns":[{"name":"meta.single-quote.doubled.cds","match":"''"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}},{"name":"string.quoted.other.template.cds","begin":"`","end":"`","patterns":[{"include":"#interpolation"},{"include":"#escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cds"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cds"}}}]}}}
@@ -1 +1 @@
1
- {"name":"Chapel","scopeName":"source.chapel","patterns":[{"include":"#comments"},{"name":"keyword.control.chapel","match":"\\b(align|as|atomic|begin|borrowed|break|by|catch|class|cobegin|coforall|continue|delete|dmapped|do|else|enum|except|export|extern|for|forall|if|import|index|inline|in|inout|iter|label|lambda|let|lifetime|local|module|new|noinit|on|only|otherwise|out|override|owned|pragma|private|proc|prototype|public|record|reduce|require|return|scan|select|serial|shared|sync|then|throw|throws|try|union|unmanaged|use|when|where|while|with|yield|zip)\\b"},{"name":"storage.type.chapel","match":"\\b(bool|bytes|complex|dmap|domain|imag|int|nothing|opaque|range|real|string|subdomain|tuple|uint|void)\\b"},{"name":"storage.modifier.chapel","match":"\\b(borrowed|config|const|enum|owned|param|private|public|ref|single|shared|sparse|sync|type|unmanaged|var)\\b"},{"name":"constant.language.chapel","match":"\\b(true|false|nil)\\b"},{"name":"constant.numeric.chapel","match":"\\b((0(b|B)[0-1]([0-1]|_)*)|(0(o|O)[0-7]([0-7]|_)*)|(0(x|X)((([0-9a-fA-F]([0-9a-fA-F]|_)*\\.?([0-9a-fA-F]([0-9a-fA-F]|_)*)?)|(\\.[0-9a-fA-F]([0-9a-fA-F]|_)*))((p|P)(\\+|-)?[0-9]([0-9]|_)*)?))|(0(x|X)[0-9a-fA-F]([0-9a-fA-F]|_)*)|((([0-9]([0-9]|_)*\\.?([0-9]([0-9]|_)*)?)|(\\.[0-9]([0-9]|_)*))((e|E)(\\+|-)?[0-9]([0-9]|_)*)?))\\b"},{"name":"variable.language.chapel","match":"\\b(FileAccessMode|here|LocaleSpace|Locales|locale|numLocales|super|these|this)\\b"},{"name":"string.quoted.double.chapel","begin":"\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.chapel"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.chapel"}}},{"name":"string.quoted.single.chapel","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.chapel"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.chapel"}}},{"name":"keyword.operator.comparison.chapel","match":"\u003c\\=|\u003e\\=|\\=\\=|\u003c|\u003e|\\!\\="},{"name":"keyword.operator.assignment.augmented.chapel","match":"\\+\\=|-\\=|\\*\\=|/\\=|//\\=|%\\=|\u0026\\=|\\|\\=|\\^\\=|\u003e\u003e\\=|\u003c\u003c\\=|\\*\\*\\="},{"name":"keyword.operator.arithmetic.chapel","match":"\\+|\\-|\\*|\\*\\*|/|//|%|\u003c\u003c|\u003e\u003e|\u0026|\\||\\^|~|\u003c\\=\u003e\\\\.\\.\\."},{"name":"keyword.operator.assignment.chapel","match":"\\="},{"name":"keyword.operator.others.chapel","match":":"},{"name":"keyword.operator.domain.chapel","match":"\\[|\\]"},{"name":"meta.function.chapel","begin":"^\\s*(proc)\\s+(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(\\()|\\s*($\\n?|#.*$\\n?)","patterns":[{"contentName":"entity.name.function.chapel","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])"},{"contentName":"keyword.control.chapel","match":"proc"},{"contentName":"meta.function.parameters.chapel","begin":"(\\()","end":"(?=\\)).*\\{","patterns":[{"match":"\\b([a-zA-Z_][a-zA-Z_0-9]*)","captures":{"1":{"name":"variable.parameter.function.chapel"}}}]}],"beginCaptures":{"1":{"name":"keyword.control.chapel"}}},{"name":"meta.function-call.chapel","begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()","end":"(\\))","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()","end":"(?=\\s*\\()","patterns":[{"include":"#builtin_functions"}]},{"contentName":"meta.function-call.arguments.chapel","begin":"(\\()","end":"(?=\\))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.chapel"}}}]}],"repository":{"builtin_functions":{"name":"support.function.builtin.chapel","match":"(?x)\\b(\n \t abs | close | exit| max | min | open | read | readln | sqrt | write | writeln\n\t\t\t\n\t\t\t)\\b"},"comments":{"patterns":[{"name":"comment.block.chapel","match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.c"}}},{"name":"comment.block.chapel","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.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"}}},{"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"}}}]},"entity_name_function":{"patterns":[{"include":"#illegal_names"},{"include":"#generic_names"}]},"generic_names":{"match":"[A-Za-z_][A-Za-z0-9_]*"},"illegal_names":{"name":"invalid.illegal.name.chapel","match":"\\b(align|as|atomic|begin|borrowed|break|by|bytes|catch|class|cobegin|coforall|continue|delete|dmapped|do|else|enum|except|export|extern|for|forall|if|import|index|inline|in|inout|iter|label|lambda|let|lifetime|local|module|new|noinit|nothing|on|only|otherwise|out|override|owned|pragma|private|proc|public|record|reduce|ref|require|return|scan|select|serial|shared|single|sync|then|throw|throws|try|union|unmanaged|use|var|void|when|where|while|with|yield|zip)\\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":"Chapel","scopeName":"source.chapel","patterns":[{"include":"#comments"},{"name":"keyword.control.chapel","match":"\\b(align|as|atomic|begin|borrowed|break|by|catch|class|cobegin|coforall|continue|defer|delete|dmapped|do|else|enum|except|export|extern|for|forall|foreach|forwarding|if|import|in|index|inline|inout|iter|label|lambda|let|lifetime|local|manage|module|new|noinit|on|only|operator|otherwise|out|override|owned|pragma|private|proc|prototype|public|record|reduce|require|return|scan|select|serial|shared|sync|then|throw|throws|try|union|unmanaged|use|when|where|while|with|yield|zip)\\b"},{"name":"storage.type.chapel","match":"\\b(bool|bytes|complex|dmap|domain|imag|int|nothing|opaque|range|real|string|subdomain|tuple|uint|void)\\b"},{"name":"storage.modifier.chapel","match":"\\b(borrowed|config|const|enum|owned|param|private|public|ref|single|shared|sparse|sync|type|unmanaged|var)\\b"},{"name":"constant.language.chapel","match":"\\b(true|false|nil)\\b"},{"name":"constant.numeric.chapel","match":"\\b((0(b|B)[0-1]([0-1]|_)*)|(0(o|O)[0-7]([0-7]|_)*)|(0(x|X)((([0-9a-fA-F]([0-9a-fA-F]|_)*\\.?([0-9a-fA-F]([0-9a-fA-F]|_)*)?)|(\\.[0-9a-fA-F]([0-9a-fA-F]|_)*))((p|P)(\\+|-)?[0-9]([0-9]|_)*)?))|(0(x|X)[0-9a-fA-F]([0-9a-fA-F]|_)*)|((([0-9]([0-9]|_)*\\.?([0-9]([0-9]|_)*)?)|(\\.[0-9]([0-9]|_)*))((e|E)(\\+|-)?[0-9]([0-9]|_)*)?))\\b"},{"name":"variable.language.chapel","match":"\\b(FileAccessMode|here|LocaleSpace|Locales|locale|numLocales|super|these|this)\\b"},{"name":"string.quoted.double.chapel","begin":"\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.chapel"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.chapel"}}},{"name":"string.quoted.single.chapel","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.chapel"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.chapel"}}},{"name":"keyword.operator.comparison.chapel","match":"\u003c\\=|\u003e\\=|\\=\\=|\u003c|\u003e|\\!\\="},{"name":"keyword.operator.assignment.augmented.chapel","match":"\\+\\=|-\\=|\\*\\=|/\\=|//\\=|%\\=|\u0026\\=|\\|\\=|\\^\\=|\u003e\u003e\\=|\u003c\u003c\\=|\\*\\*\\="},{"name":"keyword.operator.arithmetic.chapel","match":"\\+|\\-|\\*|\\*\\*|/|//|%|\u003c\u003c|\u003e\u003e|\u0026|\\||\\^|~|\u003c\\=\u003e\\\\.\\.\\."},{"name":"keyword.operator.assignment.chapel","match":"\\="},{"name":"keyword.operator.others.chapel","match":":"},{"name":"keyword.operator.domain.chapel","match":"\\[|\\]"},{"name":"meta.function.chapel","begin":"^\\s*(proc)\\s+(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(\\()|\\s*($\\n?|#.*$\\n?)","patterns":[{"contentName":"entity.name.function.chapel","begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])"},{"contentName":"keyword.control.chapel","match":"proc"},{"contentName":"meta.function.parameters.chapel","begin":"(\\()","end":"(?=\\)).*\\{","patterns":[{"match":"\\b([a-zA-Z_][a-zA-Z_0-9]*)","captures":{"1":{"name":"variable.parameter.function.chapel"}}}]}],"beginCaptures":{"1":{"name":"keyword.control.chapel"}}},{"name":"meta.function-call.chapel","begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()","end":"(\\))","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()","end":"(?=\\s*\\()","patterns":[{"include":"#builtin_functions"}]},{"contentName":"meta.function-call.arguments.chapel","begin":"(\\()","end":"(?=\\))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.chapel"}}}]}],"repository":{"builtin_functions":{"name":"support.function.builtin.chapel","match":"(?x)\\b(\n \t abs | close | exit| max | min | open | read | readln | sqrt | write | writeln\n\t\t\t\n\t\t\t)\\b"},"comments":{"patterns":[{"name":"comment.block.chapel","match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.c"}}},{"name":"comment.block.chapel","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.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"}}},{"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"}}}]},"entity_name_function":{"patterns":[{"include":"#illegal_names"},{"include":"#generic_names"}]},"generic_names":{"match":"[A-Za-z_][A-Za-z0-9_]*"},"illegal_names":{"name":"invalid.illegal.name.chapel","match":"\\b(align|as|atomic|begin|borrowed|break|by|bytes|catch|class|cobegin|coforall|continue|defer|delete|dmapped|do|else|enum|except|export|extern|for|forall|foreach|forwarding|if|import|in|index|inline|inout|iter|label|lambda|let|lifetime|local|manage|module|new|noinit|nothing|on|only|operator|otherwise|out|override|owned|pragma|private|proc|public|record|reduce|ref|require|return|scan|select|serial|shared|single|sync|then|throw|throws|try|union|unmanaged|use|var|void|when|where|while|with|yield|zip)\\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"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"JavaScript","scopeName":"source.circom","patterns":[{"name":"comment.line.js","match":"^#!/usr/bin/env node"},{"name":"meta.class.js","match":"([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\s*(=)\\s*","captures":{"1":{"name":"support.class.js"},"2":{"name":"support.constant.js"},"3":{"name":"keyword.operator.js"}}},{"name":"meta.function.prototype.js","match":"([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(template)?\\s*(\\()(.*?)(\\))","captures":{"1":{"name":"support.class.js"},"2":{"name":"support.constant.js"},"3":{"name":"entity.name.function.js"},"4":{"name":"keyword.operator.js"},"5":{"name":"storage.type.function.js"},"6":{"name":"punctuation.definition.parameters.begin.js"},"7":{"name":"variable.parameter.function.js"},"8":{"name":"punctuation.definition.parameters.end.js"}}},{"name":"meta.function.js","match":"([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*","captures":{"1":{"name":"support.class.js"},"2":{"name":"support.constant.js"},"3":{"name":"entity.name.function.js"},"4":{"name":"keyword.operator.js"}}},{"name":"meta.function.js","match":"([a-zA-Z_?.$][\\w?.$]*)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(function)\\s*(\\()(.*?)(\\))","captures":{"1":{"name":"support.class.js"},"2":{"name":"entity.name.function.js"},"3":{"name":"keyword.operator.js"},"4":{"name":"storage.type.function.js"},"5":{"name":"punctuation.definition.parameters.begin.js"},"6":{"name":"variable.parameter.function.js"},"7":{"name":"punctuation.definition.parameters.end.js"}}},{"name":"meta.function.js","match":"([a-zA-Z_?$][\\w?$]*)\\s*(=)\\s*(tenplate)\\s*(\\()(.*?)(\\))","captures":{"1":{"name":"entity.name.function.js"},"2":{"name":"keyword.operator.js"},"3":{"name":"storage.type.function.js"},"4":{"name":"punctuation.definition.parameters.begin.js"},"5":{"name":"variable.parameter.function.js"},"6":{"name":"punctuation.definition.parameters.end.js"}}},{"name":"meta.function.js","match":"\\b(template)\\s+([a-zA-Z_$]\\w*)?\\s*(\\()(.*?)(\\))","captures":{"1":{"name":"storage.type.function.js"},"2":{"name":"entity.name.function.js"},"3":{"name":"punctuation.definition.parameters.begin.js"},"4":{"name":"variable.parameter.function.js"},"5":{"name":"punctuation.definition.parameters.end.js"}}},{"name":"meta.function.json.js","match":"\\b([a-zA-Z_?.$][\\w?.$]*)\\s*:\\s*\\b(template)?\\s*(\\()(.*?)(\\))","captures":{"1":{"name":"entity.name.function.js"},"2":{"name":"storage.type.function.js"},"3":{"name":"punctuation.definition.parameters.begin.js"},"4":{"name":"variable.parameter.function.js"},"5":{"name":"punctuation.definition.parameters.end.js"}}},{"name":"meta.function.json.js","match":"(?:((')([^']*)('))|((\")([^\"]*)(\")))\\s*:\\s*\\b(template)?\\s*(\\()([^)]*)(\\))","captures":{"1":{"name":"string.quoted.single.js"},"10":{"name":"punctuation.definition.parameters.begin.js"},"11":{"name":"variable.parameter.function.js"},"12":{"name":"punctuation.definition.parameters.end.js"},"2":{"name":"punctuation.definition.string.begin.js"},"3":{"name":"entity.name.function.js"},"4":{"name":"punctuation.definition.string.end.js"},"5":{"name":"string.quoted.double.js"},"6":{"name":"punctuation.definition.string.begin.js"},"7":{"name":"entity.name.function.js"},"8":{"name":"punctuation.definition.string.end.js"},"9":{"name":"entity.name.function.js"}}},{"name":"meta.class.instance.constructor","match":"(new)\\s+(\\w+(?:\\.\\w*)?)","captures":{"1":{"name":"keyword.operator.new.js"},"2":{"name":"entity.name.type.instance.js"}}},{"name":"entity.name.type.object.js.firebug","match":"\\b(console)\\b"},{"name":"support.function.js.firebug","match":"\\.(warn|info|log|error|time|timeEnd|assert)\\b"},{"name":"constant.numeric.js","match":"\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b"},{"name":"string.quoted.single.js","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.js","match":"\\\\(x[[:xdigit:]]{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}}},{"name":"string.quoted.double.js","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.js","match":"\\\\(x[[:xdigit:]]{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}}},{"name":"comment.block.documentation.js","begin":"/\\*\\*(?!/)","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.block.js","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.line.double-slash.js","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.line.double-slash.js","match":"^(#!\\/).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.js"}}},{"name":"comment.block.html.js","match":"(\u003c!--|--\u003e)","captures":{"0":{"name":"punctuation.definition.comment.html.js"},"2":{"name":"punctuation.definition.comment.html.js"}}},{"name":"storage.type.js","match":"\\b(boolean|byte|char|class|double|enum|float|function|template|int|interface|long|short|var|void)\\b"},{"name":"storage.modifier.js","match":"\\b(const|export|extends|final|implements|native|private|protected|public|static|synchronized|throws|transient|volatile)\\b"},{"name":"keyword.control.js","match":"\\b(break|case|catch|continue|default|do|else|finally|for|goto|if|import|package|return|switch|throw|try|while|include)\\b"},{"name":"keyword.operator.js","match":"\\b(delete|in|instanceof|new|typeof|with)\\b"},{"name":"constant.language.boolean.true.js","match":"\\btrue\\b"},{"name":"constant.language.boolean.false.js","match":"\\bfalse\\b"},{"name":"constant.language.null.js","match":"\\bnull\\b"},{"name":"variable.language.js","match":"\\b(super|this)\\b"},{"name":"keyword.other.js","match":"\\b(debugger)\\b"},{"name":"support.class.js","match":"\\b(Anchor|Applet|Area|Array|Boolean|Button|Checkbox|Date|document|event|FileUpload|Form|Frame|Function|Hidden|History|Image|JavaArray|JavaClass|JavaObject|JavaPackage|java|Layer|Link|Location|Math|MimeType|Number|navigator|netscape|Object|Option|Packages|Password|Plugin|Promise|Radio|RegExp|Reset|Select|String|Style|Submit|screen|sun|Text|Textarea|window|XMLHttpRequest)\\b"},{"name":"support.function.js","match":"\\b(s(h(ift|ow(Mod(elessDialog|alDialog)|Help))|croll(X|By(Pages|Lines)?|Y|To)?|t(op|rike)|i(n|zeToContent|debar|gnText)|ort|u(p|b(str(ing)?)?)|pli(ce|t)|e(nd|t(Re(sizable|questHeader)|M(i(nutes|lliseconds)|onth)|Seconds|Ho(tKeys|urs)|Year|Cursor|Time(out)?|Interval|ZOptions|Date|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(ome|andleEvent)|navigate|c(har(CodeAt|At)|o(s|n(cat|textual|firm)|mpile)|eil|lear(Timeout|Interval)?|a(ptureEvents|ll)|reate(StyleSheet|Popup|EventObject))|t(o(GMTString|S(tring|ource)|U(TCString|pperCase)|Lo(caleString|werCase))|est|a(n|int(Enabled)?))|i(s(NaN|Finite)|ndexOf|talics)|d(isableExternalCapture|ump|etachEvent)|u(n(shift|taint|escape|watch)|pdateCommands)|j(oin|avaEnabled)|p(o(p|w)|ush|lugins.refresh|a(ddings|rse(Int|Float)?)|r(int|ompt|eference))|e(scape|nableExternalCapture|val|lementFromPoint|x(p|ec(Script|Command)?))|valueOf|UTC|queryCommand(State|Indeterm|Enabled|Value)|f(i(nd|le(ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(nt(size|color)|rward)|loor|romCharCode)|watch|l(ink|o(ad|g)|astIndexOf)|a(sin|nchor|cos|t(tachEvent|ob|an(2)?)|pply|lert|b(s|ort))|r(ou(nd|teEvents)|e(size(By|To)|calc|turnValue|place|verse|l(oad|ease(Capture|Events)))|andom)|g(o|et(ResponseHeader|M(i(nutes|lliseconds)|onth)|Se(conds|lection)|Hours|Year|Time(zoneOffset)?|Da(y|te)|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Da(y|te)|FullYear)|FullYear|A(ttention|llResponseHeaders)))|m(in|ove(B(y|elow)|To(Absolute)?|Above)|ergeAttributes|a(tch|rgins|x))|b(toa|ig|o(ld|rderWidths)|link|ack|ind))\\b(?=\\()"},{"name":"support.function.dom.js","match":"\\b(s(ub(stringData|mit)|plitText|e(t(NamedItem|Attribute(Node)?)|lect))|has(ChildNodes|Feature)|namedItem|c(l(ick|o(se|neNode))|reate(C(omment|DATASection|aption)|T(Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(ntityReference|lement)|Attribute))|tabIndex|i(nsert(Row|Before|Cell|Data)|tem)|open|delete(Row|C(ell|aption)|T(Head|Foot)|Data)|focus|write(ln)?|a(dd|ppend(Child|Data))|re(set|place(Child|Data)|move(NamedItem|Child|Attribute(Node)?)?)|get(NamedItem|Element(sBy(Name|TagName)|ById)|Attribute(Node)?)|blur)\\b(?=\\()"},{"name":"support.constant.js","match":"(?\u003c=\\.)(s(ystemLanguage|cr(ipts|ollbars|een(X|Y|Top|Left))|t(yle(Sheets)?|atus(Text|bar)?)|ibling(Below|Above)|ource|uffixes|e(curity(Policy)?|l(ection|f)))|h(istory|ost(name)?|as(h|Focus))|y|X(MLDocument|SLDocument)|n(ext|ame(space(s|URI)|Prop))|M(IN_VALUE|AX_VALUE)|c(haracterSet|o(n(structor|trollers)|okieEnabled|lorDepth|mp(onents|lete))|urrent|puClass|l(i(p(boardData)?|entInformation)|osed|asses)|alle(e|r)|rypto)|t(o(olbar|p)|ext(Transform|Indent|Decoration|Align)|ags)|SQRT(1_2|2)|i(n(ner(Height|Width)|put)|ds|gnoreCase)|zIndex|o(scpu|n(readystatechange|Line)|uter(Height|Width)|p(sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(i(splay|alog(Height|Top|Width|Left|Arguments)|rectories)|e(scription|fault(Status|Ch(ecked|arset)|View)))|u(ser(Profile|Language|Agent)|n(iqueID|defined)|pdateInterval)|_content|p(ixelDepth|ort|ersonalbar|kcs11|l(ugins|atform)|a(thname|dding(Right|Bottom|Top|Left)|rent(Window|Layer)?|ge(X(Offset)?|Y(Offset)?))|r(o(to(col|type)|duct(Sub)?|mpter)|e(vious|fix)))|e(n(coding|abledPlugin)|x(ternal|pando)|mbeds)|v(isibility|endor(Sub)?|Linkcolor)|URLUnencoded|P(I|OSITIVE_INFINITY)|f(ilename|o(nt(Size|Family|Weight)|rmName)|rame(s|Element)|gColor)|E|whiteSpace|l(i(stStyleType|n(eHeight|kColor))|o(ca(tion(bar)?|lName)|wsrc)|e(ngth|ft(Context)?)|a(st(M(odified|atch)|Index|Paren)|yer(s|X)|nguage))|a(pp(MinorVersion|Name|Co(deName|re)|Version)|vail(Height|Top|Width|Left)|ll|r(ity|guments)|Linkcolor|bove)|r(ight(Context)?|e(sponse(XML|Text)|adyState))|global|x|m(imeTypes|ultiline|enubar|argin(Right|Bottom|Top|Left))|L(N(10|2)|OG(10E|2E))|b(o(ttom|rder(Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(Color|Image)))\\b"},{"name":"support.constant.dom.js","match":"(?\u003c=\\.)(s(hape|ystemId|c(heme|ope|rolling)|ta(ndby|rt)|ize|ummary|pecified|e(ctionRowIndex|lected(Index)?)|rc)|h(space|t(tpEquiv|mlFor)|e(ight|aders)|ref(lang)?)|n(o(Resize|tation(s|Name)|Shade|Href|de(Name|Type|Value)|Wrap)|extSibling|ame)|c(h(ildNodes|Off|ecked|arset)?|ite|o(ntent|o(kie|rds)|de(Base|Type)?|l(s|Span|or)|mpact)|ell(s|Spacing|Padding)|l(ear|assName)|aption)|t(ype|Bodies|itle|Head|ext|a(rget|gName)|Foot)|i(sMap|ndex|d|m(plementation|ages))|o(ptions|wnerDocument|bject)|d(i(sabled|r)|o(c(type|umentElement)|main)|e(clare|f(er|ault(Selected|Checked|Value)))|at(eTime|a))|useMap|p(ublicId|arentNode|r(o(file|mpt)|eviousSibling))|e(n(ctype|tities)|vent|lements)|v(space|ersion|alue(Type)?|Link|Align)|URL|f(irstChild|orm(s)?|ace|rame(Border)?)|width|l(ink(s)?|o(ngDesc|wSrc)|a(stChild|ng|bel))|a(nchors|c(ce(ssKey|pt(Charset)?)|tion)|ttributes|pplets|l(t|ign)|r(chive|eas)|xis|Link|bbr)|r(ow(s|Span|Index)|ules|e(v|ferrer|l|adOnly))|m(ultiple|e(thod|dia)|a(rgin(Height|Width)|xLength))|b(o(dy|rder)|ackground|gColor))\\b"},{"name":"support.constant.dom.js","match":"\\b(ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR|WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR)\\b"},{"name":"support.function.event-handler.js","match":"\\bon(R(ow(s(inserted|delete)|e(nter|xit))|e(s(ize(start|end)?|et)|adystatechange))|Mouse(o(ut|ver)|down|up|move)|B(efore(cut|deactivate|u(nload|pdate)|p(aste|rint)|editfocus|activate)|lur)|S(croll|top|ubmit|elect(start|ionchange)?)|H(over|elp)|C(hange|ont(extmenu|rolselect)|ut|ellchange|l(ick|ose))|D(eactivate|ata(setc(hanged|omplete)|available)|r(op|ag(start|over|drop|en(ter|d)|leave)?)|blclick)|Unload|P(aste|ropertychange)|Error(update)?|Key(down|up|press)|Focus|Load|A(ctivate|fter(update|print)|bort))\\b"},{"name":"keyword.operator.js","match":"!|%|\u0026|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|!==|\u003c=|\u003e=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\u003c\u003e|\u003c|\u003e|!|\u0026\u0026|\\|\\||\\?\\:|\\*=|(?\u003c!\\()/=|%=|\\+=|\\-=|\u0026=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b"},{"name":"constant.language.js","match":"\\b(Infinity|NaN|undefined)\\b"},{"name":"string.regexp.js","begin":"(?\u003c=[=(:]|^|return|\u0026\u0026|\\|\\||!)\\s*(/)(?![/*+{}?])","end":"(/)[igm]*","patterns":[{"name":"constant.character.escape.js","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.js"}}},{"name":"punctuation.terminator.statement.js","match":"\\;"},{"name":"meta.delimiter.object.comma.js","match":",[ |\\t]*"},{"name":"meta.delimiter.method.period.js","match":"\\."},{"name":"meta.brace.curly.js","match":"\\{|\\}"},{"name":"meta.brace.round.js","match":"\\(|\\)"},{"name":"meta.brace.square.js","match":"\\[|\\]"},{"name":"storage.type.js","match":"\\b(output|signal|input|component|template)\\b"},{"name":"support.function.js","match":"include"},{"name":"support.class.js","match":" === | \u003c-- | --\u003e | \u003c== | ==\u003e "}]}
@@ -1 +1 @@
1
- {"name":"clarity","scopeName":"source.clar","patterns":[{"include":"#comment"},{"include":"#datatype"},{"include":"#keyword"},{"include":"#number"},{"include":"#string"},{"include":"#define"},{"include":"#lang-func"},{"include":"#tuple-key"}],"repository":{"args":{"begin":"(?x)\n (?\u003c=^|[(]) \\s*\n ([a-z][a-zA-Z0-9_-]+) \\s*\n","end":"\\)","patterns":[{"include":"#datatype"},{"include":"#tuple-key"},{"include":"#number"}],"beginCaptures":{"0":{"name":"variable.parameter.clarity"}},"endCaptures":{"0":{"name":"punctuation.section.end.clarity"}}},"comment":{"name":"comment.line.semicolon.clarity","match":"(?x) (?\u003c=^|[()\\[\\]{}\",'`;\\s]) (;) .* $"},"datatype":{"name":"storage.type.clarity","match":"(?x)\n(?\u003c=^|[\\s:(){},])\n(tuple|list|response|optional|buff|string-ascii|string-utf8|principal|bool|int|uint)\n(?=[\\s(){},])"},"define":{"patterns":[{"include":"#define-func"},{"include":"#define-var"},{"include":"#set-func"}]},"define-func":{"begin":"(?x)\n (?\u003c=^|[(]) \\s*\n (define-(?:public|private|read-only)) \\s+\n (\\() \\s*\n ([a-z][a-zA-Z0-9_-]+) \\s*\n","end":"\\)","patterns":[{"include":"#args"}],"beginCaptures":{"1":{"name":"storage.type.clarity"},"2":{"name":"punctuation.section.begin.clarity"},"3":{"name":"entity.name.function.clarity"}},"endCaptures":{"0":{"name":"punctuation.section.end.clarity"}}},"define-var":{"match":"(?x)\n (?\u003c=^[(]) \\s*\n (define-(?:constant|data-var|map|fungible-token|non-fungible-token|trait)) \\s+\n ([a-zA-Z][a-zA-Z0-9_-]+)\n","captures":{"1":{"name":"storage.type.clarity"},"2":{"name":"variable.other.clarity"}}},"escape-char":{"name":"constant.character.escape.clarity","match":"\\\\."},"keyword":{"name":"constant.language.clarity","match":"(?x)\n (?\u003c=^|[\\s:(){},]) \n (?:block-height|burn-block-height|contract-caller|false|is-in-regtest|none|stx-liquid-supply|true|tx-sender)\n (?=[\\s(){},])\n"},"lang-func":{"name":"keyword.control.clarity","match":"(?x)\n (?\u003c=^|[(]) \\s*\n (\n and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|concat|contract-call\\?|contract-of|\n default-to|element-at|err|filter|fold|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|\n get|get-block-info\\?|hash160|if|impl-trait|index-of|is-eq|is-err|is-none|is-ok|is-some|keccak256|\n len|let|list|log2|map|map-delete|map-get\\?|map-insert|map-set|match|merge|mod|nft-burn\\?|nft-get-owner\\?|\n nft-mint\\?|nft-transfer\\?|not|ok|or|pow|principal-of\\?|print|secp256k1-recover\\?|secp256k1-verify|sha256|\n sha512|sha512/256|some|sqrti|stx-burn\\?|stx-get-balance|stx-transfer\\?|to-int|to-uint|try!|unwrap-err-panic|\n unwrap-err!|unwrap-panic|unwrap!|var-get|var-set|xor\n ) \\s+\n"},"number":{"name":"constant.numeric.clarity","match":"(?x)\n (?\u003c=^|[\\s:(){},])\n \\'[0-9A-Z]{28,41}(:?\\.[a-zA-Z][a-zA-Z0-9\\-]+){0,2}|\n 0x[0-9a-f]{2,}|\n u[0-9]+|\n [0-9]+\n (?=[\\s(){},]|$)\n"},"set-func":{"begin":"(?x)\n (?\u003c=^|[(]) \\s*\n (var-get|var-set|map-get\\?|map-set|map-insert|get) \\s+\n ([a-z][a-zA-Z0-9_-]+) \\s*\n","end":"\\)","patterns":[{"include":"#lang-func"},{"include":"#tuple-key"},{"include":"#number"}],"beginCaptures":{"1":{"name":"keyword.control.clarity"},"2":{"name":"variable.other.clarity"}},"endCaptures":{"0":{"name":"punctuation.section.end.clarity"}}},"string":{"name":"string.quoted.double.clarity","begin":"\"","end":"\"","patterns":[{"include":"#escape-char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.clarity"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.clarity"}}},"tuple-key":{"name":"entity.name.type.clarity","match":"(?x)\n ([a-z][a-zA-Z0-9_-]+)(?=:)\n"}}}
1
+ {"name":"clarity","scopeName":"source.clar","patterns":[{"include":"#expression"},{"include":"#define-constant"},{"include":"#define-data-var"},{"include":"#define-map"},{"include":"#define-function"},{"include":"#define-fungible-token"},{"include":"#define-non-fungible-token"},{"include":"#define-trait"},{"include":"#use-trait"}],"repository":{"built-in-func":{"name":"meta.built-in-function","begin":"(?x) (\\() \\s* (\\-|\\+|\u003c\\=|\u003e\\=|\u003c|\u003e|\\*|/|and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\?|contract-of|default-to|element-at|element-at\\?|filter|fold|from-consensus-buff\\?|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|get-block-info\\?|get-burn-block-info\\?|hash160|if|impl-trait|index-of|index-of\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\?|nft-get-owner\\?|nft-mint\\?|nft-transfer\\?|not|or|pow|principal-construct\\?|principal-destruct\\?|principal-of\\?|print|replace-at\\?|secp256k1-recover\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\?|sqrti|string-to-int\\?|string-to-uint\\?|stx-account|stx-burn\\?|stx-get-balance|stx-transfer-memo\\?|stx-transfer\\?|to-consensus-buff\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor) \\s+","end":"(\\))","patterns":[{"include":"#expression"},{"include":"#user-func"}],"beginCaptures":{"1":{"name":"punctuation.built-in-function.start.clarity"},"2":{"name":"keyword.declaration.built-in-function.clarity"}},"endCaptures":{"1":{"name":"punctuation.built-in-function.end.clarity"}}},"comment":{"name":"comment.line.semicolon.clarity","match":"(?x) (?\u003c=^|[()\\[\\]{}\",'`;\\s]) (;) .* $"},"data-type":{"patterns":[{"include":"#comment"},{"name":"entity.name.type.numeric.clarity","match":"\\b(uint|int)\\b"},{"name":"entity.name.type.principal.clarity","match":"\\b(principal)\\b"},{"name":"entity.name.type.bool.clarity","match":"\\b(bool)\\b"},{"match":"(?x) (\\() \\s* (?:(string-ascii|string-utf8)\\s+(\\d+)) \\s* (\\))","captures":{"1":{"name":"punctuation.string-def.start.clarity"},"2":{"name":"entity.name.type.string.clarity"},"3":{"name":"constant.numeric.string-len.clarity"},"4":{"name":"punctuation.string-def.end.clarity"}}},{"match":"(?x) (\\() \\s* (buff)\\s+(\\d+)\\s* (\\))","captures":{"1":{"name":"punctuation.buff-def.start.clarity"},"2":{"name":"entity.name.type.buff.clarity"},"3":{"name":"constant.numeric.buf-len.clarity"},"4":{"name":"punctuation.buff-def.end.clarity"}}},{"name":"meta.optional-def","begin":"(?x) (\\() \\s* (optional)\\s+","end":"(\\))","patterns":[{"include":"#data-type"}],"beginCaptures":{"1":{"name":"punctuation.optional-def.start.clarity"},"2":{"name":"storage.type.modifier"}},"endCaptures":{"1":{"name":"punctuation.optional-def.end.clarity"}}},{"name":"meta.response-def","begin":"(?x) (\\() \\s* (response)\\s+","end":"(\\))","patterns":[{"include":"#data-type"}],"beginCaptures":{"1":{"name":"punctuation.response-def.start.clarity"},"2":{"name":"storage.type.modifier"}},"endCaptures":{"1":{"name":"punctuation.response-def.end.clarity"}}},{"name":"meta.list-def","begin":"(?x) (\\() \\s* (list) \\s+ (\\d+) \\s+","end":"(\\))","patterns":[{"include":"#data-type"}],"beginCaptures":{"1":{"name":"punctuation.list-def.start.clarity"},"2":{"name":"entity.name.type.list.clarity"},"3":{"name":"constant.numeric.list-len.clarity"}},"endCaptures":{"1":{"name":"punctuation.list-def.end.clarity"}}},{"name":"meta.tuple-def","begin":"(\\{)","end":"(\\})","patterns":[{"name":"entity.name.tag.tuple-data-type-key.clarity","match":"([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*)(?=:)"},{"include":"#data-type"}],"beginCaptures":{"1":{"name":"punctuation.tuple-def.start.clarity"}},"endCaptures":{"1":{"name":"punctuation.tuple-def.end.clarity"}}}]},"define-constant":{"name":"meta.define-constant","begin":"(?x) (\\() \\s* (define-constant) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.define-constant.start.clarity"},"2":{"name":"keyword.declaration.define-constant.clarity"},"3":{"name":"entity.name.constant-name.clarity variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.define-constant.end.clarity"}}},"define-data-var":{"name":"meta.define-data-var","begin":"(?x) (\\() \\s* (define-data-var) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"include":"#data-type"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.define-data-var.start.clarity"},"2":{"name":"keyword.declaration.define-data-var.clarity"},"3":{"name":"entity.name.data-var-name.clarity variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.define-data-var.end.clarity"}}},"define-function":{"name":"meta.define-function","begin":"(?x) (\\() \\s* (define-(?:public|private|read-only)) \\s+","end":"(\\))","patterns":[{"include":"#expression"},{"include":"#user-func"},{"name":"meta.define-function-signature","begin":"(?x) (\\() \\s* ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s*","end":"(\\))","patterns":[{"name":"meta.function-argument","begin":"(?x) (\\() \\s* ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"include":"#data-type"}],"beginCaptures":{"1":{"name":"punctuation.function-argument.start.clarity"},"2":{"name":"variable.parameter.clarity"}},"endCaptures":{"1":{"name":"punctuation.function-argument.end.clarity"}}}],"beginCaptures":{"1":{"name":"punctuation.function-signature.start.clarity"},"2":{"name":"entity.name.function.clarity"}},"endCaptures":{"1":{"name":"punctuation.function-signature.end.clarity"}}}],"beginCaptures":{"1":{"name":"punctuation.define-function.start.clarity"},"2":{"name":"keyword.declaration.define-function.clarity"}},"endCaptures":{"1":{"name":"punctuation.define-function.end.clarity"}}},"define-fungible-token":{"match":"(?x) (\\() \\s* (define-fungible-token) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) (?:\\s+(u\\d+))?","captures":{"1":{"name":"punctuation.define-fungible-token.start.clarity"},"2":{"name":"keyword.declaration.define-fungible-token.clarity"},"3":{"name":"entity.name.fungible-token-name.clarity variable.other.clarity"},"4":{"name":"constant.numeric.fungible-token-total-supply.clarity"},"5":{"name":"punctuation.define-fungible-token.end.clarity"}}},"define-map":{"name":"meta.define-map","begin":"(?x) (\\() \\s* (define-map) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"include":"#data-type"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.define-map.start.clarity"},"2":{"name":"keyword.declaration.define-map.clarity"},"3":{"name":"entity.name.map-name.clarity variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.define-map.end.clarity"}}},"define-non-fungible-token":{"name":"meta.define-non-fungible-token","begin":"(?x) (\\() \\s* (define-non-fungible-token) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"include":"#data-type"}],"beginCaptures":{"1":{"name":"punctuation.define-non-fungible-token.start.clarity"},"2":{"name":"keyword.declaration.define-non-fungible-token.clarity"},"3":{"name":"entity.name.non-fungible-token-name.clarity variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.define-non-fungible-token.end.clarity"}}},"define-trait":{"name":"meta.define-trait","begin":"(?x) (\\() \\s* (define-trait) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"name":"meta.define-trait-body","begin":"(?x) (\\() \\s*","end":"(\\))","patterns":[{"include":"#expression"},{"name":"meta.trait-function","begin":"(?x) (\\() \\s* ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]+\\??) \\s+","end":"(\\))","patterns":[{"include":"#data-type"},{"name":"meta.trait-function-args","begin":"(?x) (\\() \\s*","end":"(\\))","patterns":[{"include":"#data-type"}],"beginCaptures":{"1":{"name":"punctuation.trait-function-args.start.clarity"}},"endCaptures":{"1":{"name":"punctuation.trait-function-args.end.clarity"}}}],"beginCaptures":{"1":{"name":"punctuation.trait-function.start.clarity"},"2":{"name":"entity.name.trait-function-name.clarity variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.trait-function.end.clarity"}}}],"beginCaptures":{"1":{"name":"punctuation.define-trait-body.start.clarity"}},"endCaptures":{"1":{"name":"punctuation.define-trait-body.end.clarity"}}}],"beginCaptures":{"1":{"name":"punctuation.define-trait.start.clarity"},"2":{"name":"keyword.declaration.define-trait.clarity"},"3":{"name":"entity.name.trait-name.clarity variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.define-trait.end.clarity"}}},"expression":{"patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#literal"},{"include":"#let-func"},{"include":"#built-in-func"},{"include":"#get-set-func"}]},"get-set-func":{"name":"meta.get-set-func","begin":"(?x) (\\() \\s* (var-get|var-set|map-get\\?|map-set|map-insert|map-delete|get) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s*","end":"(\\))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.get-set-func.start.clarity"},"2":{"name":"keyword.control.clarity"},"3":{"name":"variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.get-set-func.end.clarity"}}},"keyword":{"name":"constant.language.clarity","match":"\\b(?:block-height|burn-block-height|chain-id|contract-caller|is-in-regtest|stx-liquid-supply|tx-sender|tx-sponsor?)\\b"},"let-func":{"name":"meta.let-function","begin":"(?x) (\\() \\s* (let) \\s*","end":"(\\))","patterns":[{"include":"#expression"},{"include":"#user-func"},{"name":"meta.let-var","begin":"(?x) (\\() \\s*","end":"(\\))","patterns":[{"name":"meta.let-local-var","begin":"(?x) (\\() ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"include":"#expression"},{"include":"#user-func"}],"beginCaptures":{"1":{"name":"punctuation.let-local-var.start.clarity"},"2":{"name":"entity.name.let-local-var-name.clarity variable.parameter.clarity"}},"endCaptures":{"1":{"name":"punctuation.let-local-var.end.clarity"}}},{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.let-var.start.clarity"}},"endCaptures":{"1":{"name":"punctuation.let-var.end.clarity"}}}],"beginCaptures":{"1":{"name":"punctuation.let-function.start.clarity"},"2":{"name":"keyword.declaration.let-function.clarity"}},"endCaptures":{"1":{"name":"punctuation.let-function.end.clarity"}}},"literal":{"patterns":[{"include":"#number-literal"},{"include":"#bool-literal"},{"include":"#string-literal"},{"include":"#tuple-literal"},{"include":"#principal-literal"},{"include":"#list-literal"},{"include":"#optional-literal"},{"include":"#response-literal"}],"repository":{"bool-literal":{"name":"constant.language.bool.clarity","match":"\\b(true|false)\\b"},"list-literal":{"name":"meta.list","begin":"(?x) (\\() \\s* (list) \\s+","end":"(\\))","patterns":[{"include":"#expression"},{"include":"#user-func"}],"beginCaptures":{"1":{"name":"punctuation.list.start.clarity"},"2":{"name":"entity.name.type.list.clarity"}},"endCaptures":{"1":{}}},"number-literal":{"patterns":[{"name":"constant.numeric.uint.clarity","match":"\\bu\\d+\\b"},{"name":"constant.numeric.int.clarity","match":"\\b\\d+\\b"},{"name":"constant.numeric.hex.clarity","match":"\\b0x[0-9a-f]*\\b"}]},"optional-literal":{"patterns":[{"name":"constant.language.none.clarity","match":"\\b(none)\\b"},{"name":"meta.some","begin":"(?x) (\\() \\s* (some) \\s+","end":"(\\))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.some.start.clarity"},"2":{"name":"constant.language.some.clarity"}},"endCaptures":{"1":{"name":"punctuation.some.end.clarity"}}}]},"principal-literal":{"name":"constant.other.principal.clarity","match":"(?x) \\'[0-9A-Z]{28,41}(:?\\.[a-zA-Z][a-zA-Z0-9\\-]+){0,2} | (\\.[a-zA-Z][a-zA-Z0-9\\-]*){1,2} (?=[\\s(){},]|$)"},"response-literal":{"name":"meta.response","begin":"(?x) (\\() \\s* (ok|err) \\s+","end":"(\\))","patterns":[{"include":"#expression"},{"include":"#user-func"}],"beginCaptures":{"1":{"name":"punctuation.response.start.clarity"},"2":{"name":"constant.language.ok-err.clarity"}},"endCaptures":{"1":{"name":"punctuation.response.end.clarity"}}},"string-literal":{"patterns":[{"name":"string.quoted.double.clarity","begin":"(u?)(\")","end":"\"","patterns":[{"name":"constant.character.escape.quote","match":"\\\\."}],"beginCaptures":{"1":{"name":"string.quoted.utf8.clarity"},"2":{"name":"punctuation.definition.string.begin.clarity"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.clarity"}}}]},"tuple-literal":{"name":"meta.tuple","begin":"(\\{)","end":"(\\})","patterns":[{"name":"entity.name.tag.tuple-key.clarity","match":"([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*)(?=:)"},{"include":"#expression"},{"include":"#user-func"}],"beginCaptures":{"1":{"name":"punctuation.tuple.start.clarity"}},"endCaptures":{"1":{"name":"punctuation.tuple.end.clarity"}}}}},"use-trait":{"name":"meta.use-trait","begin":"(?x) (\\() \\s* (use-trait) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+","end":"(\\))","patterns":[{"include":"#literal"}],"beginCaptures":{"1":{"name":"punctuation.use-trait.start.clarity"},"2":{"name":"keyword.declaration.use-trait.clarity"},"3":{"name":"entity.name.trait-alias.clarity variable.other.clarity"}},"endCaptures":{"1":{"name":"punctuation.use-trait.end.clarity"}}},"user-func":{"name":"meta.user-function","begin":"(?x) (\\() \\s* (([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*)) \\s*","end":"(\\))","patterns":[{"include":"#expression"},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.user-function.start.clarity"},"2":{"name":"entity.name.function.clarity"}},"endCaptures":{"1":{"name":"punctuation.user-function.end.clarity"}}}}}