github-linguist 8.0.1 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/grammars/go.mod.json +1 -1
- data/grammars/liquid.injection.json +1 -1
- data/grammars/markdown.vue.codeblock.json +1 -0
- data/grammars/mdx.vue.codeblock.json +1 -0
- data/grammars/source.QB64.json +1 -0
- data/grammars/source.abap.json +1 -1
- data/grammars/source.abl.json +1 -1
- data/grammars/source.angelscript.json +1 -1
- data/grammars/source.answersetprogramming.json +1 -0
- data/grammars/source.apacheconf.json +1 -0
- data/grammars/source.assembly.json +1 -1
- data/grammars/source.ats.json +1 -1
- data/grammars/source.basic.json +1 -1
- data/grammars/source.bb.json +1 -1
- data/grammars/source.brs.json +1 -1
- data/grammars/source.bsl.json +1 -1
- data/grammars/source.bst.json +1 -0
- data/grammars/source.c.linker.json +1 -0
- data/grammars/source.cairo0.json +1 -1
- data/grammars/source.cmake.json +1 -1
- data/grammars/source.cmakecache.json +1 -0
- data/grammars/source.cobol.json +1 -1
- data/grammars/source.cs.json +1 -1
- data/grammars/source.curry.json +1 -1
- data/grammars/source.dart.json +1 -1
- data/grammars/source.dds.dspf.json +1 -1
- data/grammars/source.erlang.json +1 -1
- data/grammars/source.fsharp.json +1 -1
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.git-revlist.json +1 -1
- data/grammars/source.gleam.json +1 -1
- data/grammars/source.graphql.json +1 -1
- data/grammars/source.hack.json +1 -1
- data/grammars/source.hcl.json +1 -1
- data/grammars/source.hcl.terraform.json +1 -1
- data/grammars/source.ice.json +1 -1
- data/grammars/source.ispc.json +1 -0
- data/grammars/source.jai.json +1 -0
- data/grammars/source.json.comments.json +1 -0
- data/grammars/source.julia.json +1 -1
- data/grammars/source.just.json +1 -1
- data/grammars/source.kdl.json +1 -0
- data/grammars/source.lean.markdown.json +1 -1
- data/grammars/source.lean4.markdown.json +1 -1
- data/grammars/source.luau.json +1 -1
- data/grammars/source.matlab.json +1 -1
- data/grammars/source.mdx.astro.json +1 -0
- data/grammars/source.mdx.json +1 -1
- data/grammars/source.mo.json +1 -1
- data/grammars/source.moonbit.json +1 -0
- data/grammars/source.msg.json +1 -0
- data/grammars/source.mzn.json +1 -0
- data/grammars/source.ned.json +1 -0
- data/grammars/source.nr.json +1 -1
- data/grammars/source.nushell.json +1 -1
- data/grammars/source.odin.json +1 -1
- data/grammars/source.openesql.json +1 -0
- data/grammars/source.overpassql.json +1 -0
- data/grammars/source.p4.json +1 -1
- data/grammars/source.polar.json +1 -1
- data/grammars/source.powerbuilder.json +1 -1
- data/grammars/source.prisma.json +1 -1
- data/grammars/source.purescript.json +1 -1
- data/grammars/source.ql.json +1 -1
- data/grammars/source.qsharp.json +1 -1
- data/grammars/source.rascal.json +1 -1
- data/grammars/source.rescript.json +1 -1
- data/grammars/source.rpgle.json +1 -1
- data/grammars/source.scala.json +1 -1
- data/grammars/source.scm.json +1 -0
- data/grammars/source.sdbl.json +1 -1
- data/grammars/source.slang.json +1 -0
- data/grammars/source.slice.json +1 -1
- data/grammars/source.sourcepawn.json +1 -1
- data/grammars/source.stan.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.tact.json +1 -0
- data/grammars/source.talon.json +1 -1
- data/grammars/source.templ.json +1 -1
- data/grammars/source.textgrid.json +1 -1
- data/grammars/source.toc.json +1 -1
- data/grammars/source.ts.json +1 -1
- data/grammars/source.ts.prismaClientRawSQL.json +1 -1
- data/grammars/source.tsp.json +1 -0
- data/grammars/source.tsx.json +1 -1
- data/grammars/source.typst.json +1 -1
- data/grammars/source.vba.json +1 -1
- data/grammars/source.vue.json +1 -0
- data/grammars/source.wdl.json +1 -1
- data/grammars/source.xmake.json +1 -0
- data/grammars/text.adblock.json +1 -1
- data/grammars/text.html.liquid.json +1 -1
- data/grammars/text.html.markdown.d2.json +1 -1
- data/grammars/text.md.json +1 -1
- data/grammars/text.rtf.json +1 -1
- data/grammars/version +1 -1
- data/grammars/vue.directives.json +1 -0
- data/grammars/vue.interpolations.json +1 -0
- data/grammars/vue.sfc.style.variable.injection.json +1 -0
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/generated.rb +32 -1
- data/lib/linguist/generic.yml +1 -0
- data/lib/linguist/heuristics.yml +109 -25
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +232 -10
- data/lib/linguist/lazy_blob.rb +15 -7
- data/lib/linguist/repository.rb +18 -13
- data/lib/linguist/samples.json +1 -1
- data/lib/linguist/shebang.rb +1 -1
- data/lib/linguist/source/diff.rb +72 -0
- data/lib/linguist/source/repository.rb +64 -0
- data/lib/linguist/source/rugged.rb +95 -0
- metadata +34 -9
- data/grammars/source.apache-config.json +0 -1
- data/grammars/source.apache-config.mod_perl.json +0 -1
- data/grammars/source.cache.cmake.json +0 -1
- data/grammars/text.html.erlang.yaws.json +0 -1
- data/grammars/text.html.vue.json +0 -1
- data/grammars/text.mdx.astro.codeblock.json +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"name":"Slang","scopeName":"source.slang","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-conditional"},{"include":"#predefined_macros"},{"include":"#comments"},{"include":"#switch_statement"},{"name":"keyword.control.slang","match":"\\b(break|continue|do|else|for|goto|if|return|while|try|throw|catch|defer|discard)\\b"},{"include":"#storage_types"},{"name":"keyword.other.typedef.slang","match":"typedef"},{"name":"keyword.other.additional.slang","match":"\\b(throws|using|__generic|func|associatedtype|public|internal|private|import|module|implementing|__include|export|__exported|groupshared|let|var|property|extension|in|out|inout|ref|namespace|this|cbuffer|tbuffer|(dynamic_)?uniform|typealias|new|__extern_cpp|__(target|stage)_intrinsic|__intrinsic_asm|spirv_asm|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each|where|typename)\\b"},{"name":"storage.modifier.slang","match":"\\b(const|extern|register|restrict|static|volatile|inline|nointerpolation|precise|row_major|column_major|snorm|unorm|globallycoherent|layout)\\b"},{"name":"constant.other.variable.mac-classic.slang","match":"\\bk[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.global.mac-classic.slang","match":"\\bg[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.static.mac-classic.slang","match":"\\bs[A-Z]\\w*\\b"},{"name":"constant.language.slang","match":"\\b(nullptr|none|true|false)\\b"},{"include":"#operators"},{"include":"#numbers"},{"include":"#strings"},{"name":"meta.preprocessor.macro.slang","begin":"((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))(?:(\\()([^()\\\\]+)(\\)))?","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.definition.parameters.end.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.directive.define.slang"},"6":{"name":"punctuation.definition.directive.slang"},"7":{"name":"entity.name.function.preprocessor.slang"},"8":{"name":"punctuation.definition.parameters.begin.slang"},"9":{"patterns":[{"match":"(?\u003c=[(,])\\s*((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))\\s*","captures":{"1":{"name":"variable.parameter.preprocessor.slang"}}},{"name":"punctuation.separator.parameters.slang","match":","},{"name":"ellipses.slang punctuation.vararg-ellipses.variable.parameter.preprocessor.slang","match":"\\.\\.\\."}]}}},{"name":"meta.preprocessor.diagnostic.slang","begin":"^\\s*((#)\\s*(error|warning))\\b\\s*","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.unquoted.single.slang","begin":"[^'\"]","end":"(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"},{"include":"#comments"}]}],"beginCaptures":{"1":{"name":"keyword.control.directive.diagnostic.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.include.slang","begin":"^\\s*((#)\\s*(include(?:_next)?|import|module|implementing|__include))\\b\\s*","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"string.quoted.double.include.slang","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.other.lt-gt.include.slang","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#pragma-mark"},{"include":"#preprocessor-version"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*line)\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.line.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.slang","begin":"^\\s*(?:((#)\\s*undef))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.undef.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.pragma.slang","begin":"^\\s*(?:((#)\\s*pragma))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"name":"entity.other.attribute-name.pragma.preprocessor.slang","match":"[a-zA-Z_$][\\w\\-$]*"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.pragma.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"support.type.stdint.slang","match":"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|intptr_t|uintptr_t)\n\\b"},{"name":"support.type.string.slang","match":"(?x) \\b(string)\\b"},{"name":"support.type.ptr.slang","match":"(?x) \\b(Ptr)\\b"},{"name":"support.type.hlsl.slang","match":"(?x) \\b((RW)?StructuredBuffer|(RW)?Buffer|(RW)?ByteAddressBuffer|ConstantBuffer|ParameterBlock|(RW)?Texture([1-3]D|Cube)(MS)?(Array)?|Sampler(Comparison)?State|RaytracingAccelerationStructure)\\b"},{"name":"support.type.vector.slang","match":"(?x) \\b(bool|char|half|float|int|double|uint)[1-4](x[1-4])?\\b"},{"include":"#block"},{"include":"#parens"},{"include":"#line_continuation_character"},{"name":"meta.bracket.square.access.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))?(\\[)(?!\\])","end":"\\]","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.definition.begin.bracket.square.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.slang"}}},{"name":"storage.modifier.array.bracket.square.slang","match":"\\[\\s*\\]"},{"name":"punctuation.terminator.statement.slang","match":";"},{"name":"punctuation.separator.delimiter.slang","match":","}],"repository":{"access-method":{"name":"meta.function-call.member.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))\\s*(?:(\\.)|(-\u003e))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:-\u003e)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"name":"punctuation.separator.dot-access.slang","match":"\\."},{"name":"punctuation.separator.pointer-access.slang","match":"-\u003e"},{"name":"variable.object.slang","match":"[a-zA-Z_][a-zA-Z_0-9]*"},{"name":"everything.else.slang","match":".+"}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"backslash_escapes":{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},"block":{"patterns":[{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-conditional-block"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#c_function_call"},{"name":"meta.initialization.slang","begin":"(?x)\n(?:\n (?:\n\t(?=\\s)(?\u003c!else|new|return)\n\t(?\u003c=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?\u003c=operator) (?:[-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.slang"},"2":{"name":"punctuation.section.parens.begin.bracket.round.initialization.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.initialization.slang"}}},{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#parens-block"},{"include":"$base"}]},"c_conditional_context":{"patterns":[{"include":"$self"},{"include":"#block_innards"}]},"c_function_call":{"name":"meta.function-call.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|__target_intrinsic|__intrinsic_asm|spirv_asm|expand|each)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)","patterns":[{"include":"#function-call-innards"}]},"case_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)case(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.case.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.slang"}}},"comments":{"patterns":[{"name":"comment.line.double-slash.documentation.slang","begin":"(?:^)(?\u003e\\s*)(\\/\\/[!\\/]+)","end":"(?\u003c=\\n)(?\u003c!\\\\\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out|ref"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.documentation.slang"}}},{"name":"comment.block.documentation.slang","match":"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)","captures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"},"2":{"patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}]},"3":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.documentation.slang","begin":"((?\u003e\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))","end":"([!*]*\\*\\/)","patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.banner.slang","match":"^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.slang"}}},{"name":"comment.block.slang","begin":"(\\/\\*)","end":"(\\*\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.slang"}}},{"name":"comment.line.banner.slang","match":"^\\/\\/ =(\\s*.*?)\\s*=$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.slang"}}},{"begin":"((?:^[ \\t]+)?)(?=\\/\\/)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.slang","begin":"(\\/\\/)","end":"(?=\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.slang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.slang"}}}]},"default_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)default(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.default.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.default.slang"}}},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"evaluation_context":{"patterns":[{"include":"#function-call-innards"},{"include":"$base"}]},"function-call-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#block_innards"}]},"function-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#operators"},{"include":"#vararg_ellipses"},{"name":"meta.function.definition.parameters.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.parameters.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"$base"}]},"inline_comment":{"match":"(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/))","captures":{"1":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"2":{"name":"comment.block.slang"},"3":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.slang"}}}]},"member_access":{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"variable.other.member.slang"}}},"method_access":{"contentName":"meta.function-call.member.slang","begin":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()","end":"(\\))","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"numbers":{"match":"(?\u003c!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])*","captures":{"0":{"patterns":[{"begin":"(?=.)","end":"$","patterns":[{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"10":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"11":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.hexadecimal.slang"},"5":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"9":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"10":{"name":"keyword.operator.minus.exponent.decimal.slang"},"11":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.decimal.point.slang"},"5":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.decimal.slang"},"9":{"name":"keyword.operator.plus.exponent.decimal.slang"}}},{"match":"(\\G0[bB])([01](?:[01]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.binary.slang"},"2":{"name":"constant.numeric.binary.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0)((?:[0-7]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?|[uU]?z|z[uU])|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.octal.slang"},"2":{"name":"constant.numeric.octal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"6":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"},"7":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"8":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?|[uU]?z|z[uU])|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.decimal.slang"},"6":{"name":"keyword.operator.plus.exponent.decimal.slang"},"7":{"name":"keyword.operator.minus.exponent.decimal.slang"},"8":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"name":"invalid.illegal.constant.numeric","match":"(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])+"}]}]}}},"operators":{"patterns":[{"name":"keyword.operator.sizeof.slang","match":"(?\u003c![\\w$])(sizeof|countof)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(as)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(is)(?![\\w$])"},{"name":"keyword.operator.decrement.slang","match":"--"},{"name":"keyword.operator.increment.slang","match":"\\+\\+"},{"name":"keyword.operator.assignment.compound.slang","match":"%=|\\+=|-=|\\*=|(?\u003c!\\()/="},{"name":"keyword.operator.assignment.compound.bitwise.slang","match":"\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.slang","match":"\u003c\u003c|\u003e\u003e"},{"name":"keyword.operator.comparison.slang","match":"!=|\u003c=|\u003e=|==|\u003c|\u003e"},{"name":"keyword.operator.logical.slang","match":"\u0026\u0026|!|\\|\\|"},{"name":"keyword.operator.slang","match":"\u0026|\\||\\^|~"},{"name":"keyword.operator.assignment.slang","match":"="},{"name":"keyword.operator.slang","match":"%|\\*|/|-|\\+"},{"begin":"(\\?)","end":"(:)","patterns":[{"include":"#function-call-innards"},{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.slang"}}}]},"parens":{"name":"meta.parens.slang","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"parens-block":{"name":"meta.parens.block.slang","begin":"\\(","end":"\\)","patterns":[{"include":"#block_innards"},{"name":"punctuation.range-based.slang","match":"(?-mix:(?\u003c!:):(?!:))"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"pragma-mark":{"name":"meta.section.slang","match":"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))","captures":{"1":{"name":"meta.preprocessor.pragma.slang"},"2":{"name":"keyword.control.directive.pragma.pragma-mark.slang"},"3":{"name":"punctuation.definition.directive.slang"},"4":{"name":"entity.name.tag.pragma-mark.slang"}}},"predefined_macros":{"patterns":[{"match":"\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b","captures":{"1":{"name":"entity.name.other.preprocessor.macro.predefined.$1.slang"}}},{"name":"entity.name.other.preprocessor.macro.predefined.probably.$1.slang","match":"\\b__([A-Z_]+)__\\b"}]},"preprocessor-rule-conditional":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-block":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-line":{"patterns":[{"name":"keyword.control.directive.conditional.slang","match":"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|\u0026\u0026|\\|\\||\\\\\\s*\\n)))"},{"name":"invalid.illegal.macro-name.slang","match":"\\bdefined\\b"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"begin":"\\?","end":":","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"0":{"name":"keyword.operator.ternary.slang"}}},{"include":"#operators"},{"name":"constant.language.slang","match":"\\b(NULL|true|false|TRUE|FALSE)\\b"},{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"},{"begin":"\\(","end":"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}}]},"preprocessor-rule-define-line-blocks":{"patterns":[{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"},{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{"patterns":[{"include":"#vararg_ellipses"},{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"name":"punctuation.section.parens.begin.bracket.round.slang","match":"\\("},{"name":"punctuation.section.parens.end.bracket.round.slang","match":"\\)"},{"name":"meta.function.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}]},{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"include":"#method_access"},{"include":"#member_access"},{"include":"$base"}]},"preprocessor-rule-define-line-functions":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#vararg_ellipses"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"},"3":{"name":"constant.numeric.preprocessor.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.in-block.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-elif-block":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.in-block.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else-block":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-version":{"name":"meta.section.slang","match":"^\\s*((#\\s*version)\\s+(.*))","captures":{"2":{"name":"keyword.control.directive.version.slang"},"3":{"name":"constant.numeric.decimal.slang"}}},"probably_a_parameter":{"match":"(?\u003c=[a-zA-Z_0-9] |[\u0026*\u003e\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))","captures":{"1":{"name":"variable.parameter.probably.slang"}}},"static_assert":{"begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)static_assert|_Static_assert(?!\\w))((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"name":"meta.static_assert.message.slang","begin":"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)","end":"(?=\\))","patterns":[{"include":"#string_context"}],"beginCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.slang"}}},{"include":"#evaluation_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.section.arguments.begin.bracket.round.static_assert.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.other.static_assert.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.static_assert.slang"}}},"storage_types":{"patterns":[{"name":"storage.type.built-in.primitive.slang","match":"(?-mix:(?\u003c!\\w)(?:unsigned|signed|double|_Bool|short|float|half|long|void|char|bool|int|uint)(?!\\w))"},{"match":"\\b(namespace|enum|enum\\s+class|struct|class|interface)\\s+([A-Za-z0-9_]+)((\\.|::)([A-Za-z0-9_]+))*","captures":{"1":{"name":"keyword.$1.slang"},"2":{"name":"support.type.$1.slang"},"4":{"name":"punctuation.separator.dot-access.slang"},"5":{"name":"support.type.$1.slang"}}},{"name":"meta.asm.slang","begin":"(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)","end":"(?!\\G)","patterns":[{"match":"(?:^)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"include":"#comments"},{"begin":"(((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\()","end":"(\\))","patterns":[{"name":"string.quoted.double.slang","contentName":"meta.embedded.assembly.slang","begin":"(R?)(\")","end":"(\")","patterns":[{"include":"#backslash_escapes"},{"include":"#string_escaped_char"}],"beginCaptures":{"1":{"name":"meta.encoding.slang"},"2":{"name":"punctuation.definition.string.begin.assembly.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.assembly.slang"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.inner.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.inner.slang"}}},{"match":"\\[((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\]","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"variable.other.asm.label.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"name":"punctuation.separator.delimiter.colon.assembly.slang","match":":"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.slang"}}}],"beginCaptures":{"1":{"name":"storage.type.asm.slang"},"2":{"name":"storage.modifier.slang"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},{"name":"invalid.illegal.unknown-escape.slang","match":"\\\\."}]},"string_placeholder":{"patterns":[{"name":"constant.other.placeholder.slang","match":"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type"},{"match":"(%)(?!\"\\s*(PRI|SCN))","captures":{"1":{"name":"invalid.illegal.placeholder.slang"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.raw","begin":"((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(","end":"\\)\\2(\\3)\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin"},"1":{"name":"meta.encoding"},"3":{"name":"invalid.illegal.delimiter-too-long"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end"},"1":{"name":"invalid.illegal.delimiter-too-long"}}},{"name":"string.quoted.double.slang","begin":"((?:u|u8|U|L)?)?\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}]},"switch_conditional_parentheses":{"name":"meta.conditional.switch.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"punctuation.section.parens.begin.bracket.round.conditional.switch.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.conditional.switch.slang"}}},"switch_statement":{"name":"meta.block.switch.slang","begin":"(((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)switch|__(target|stage)_switch(?!\\w)))","end":"(?:(?\u003c=\\}|%\u003e|\\?\\?\u003e)|(?=[;\u003e\\[\\]=]))","patterns":[{"name":"meta.head.switch.slang","begin":"\\G ?","end":"((?:\\{|\u003c%|\\?\\?\u003c|(?=;)))","patterns":[{"include":"#switch_conditional_parentheses"},{"include":"$self"}],"endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.switch.slang"}}},{"name":"meta.body.switch.slang","begin":"(?\u003c=\\{|\u003c%|\\?\\?\u003c)","end":"(\\}|%\u003e|\\?\\?\u003e)","patterns":[{"include":"#default_statement"},{"include":"#case_statement"},{"include":"$self"},{"include":"#block_innards"}],"endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.switch.slang"}}},{"name":"meta.tail.switch.slang","begin":"(?\u003c=\\}|%\u003e|\\?\\?\u003e)[\\s\\n]*","end":"[\\s\\n]*(?=;)","patterns":[{"include":"$self"}]}],"beginCaptures":{"1":{"name":"meta.head.switch.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"6":{"name":"keyword.control.switch.slang"}}},"vararg_ellipses":{"name":"punctuation.vararg-ellipses.slang","match":"(?\u003c!\\.)\\.\\.\\.(?!\\.)"}}}
|
data/grammars/source.slice.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Slice","scopeName":"source.slice","patterns":[{"include":"#slice"}],"repository":{"attribute":{"patterns":[{"include":"#attribute.file"},{"include":"#attribute.local"}]},"attribute.directive":{"begin":"[\\w]+(?:(::)\\w+)*","end":"(?=\\])|$","patterns":[{"include":"#comment"},{"name":"meta.attribute.arguments.slice","begin":"\\(","end":"(?=\\])|$","patterns":[{"include":"#comment"},{"include":"#string-literal"},{"name":"variable.other.constant.attribute.slice","match":"\\b\\w+\\b"},{"name":"punctuation.separator.comma.slice","match":","},{"begin":"\\)","end":"(?=\\])|$","patterns":[{"include":"#comment"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.close.attribute.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.attribute.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"entity.name.function.attribute.slice"},"1":{"name":"punctuation.separator.double-colon.slice"}}},"attribute.file":{"name":"meta.attribute.file.slice","begin":"\\[\\[","end":"(\\]\\])|$","patterns":[{"include":"#comment"},{"include":"#attribute.directive"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.double-bracket.open.attribute.slice"}},"endCaptures":{"1":{"name":"punctuation.double-bracket.close.attribute.slice"}}},"attribute.local":{"name":"meta.attribute.local.slice","begin":"\\[","end":"(\\]|$)","patterns":[{"include":"#comment"},{"include":"#attribute.directive"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.bracket.open.attribute.slice"}},"endCaptures":{"1":{"name":"punctuation.bracket.close.attribute.slice"}}},"class":{"name":"meta.class.slice","begin":"(?\u003c!\\\\)\\bclass\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#id-value"},{"include":"#field-container-inheritance"},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.class.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"comment":{"patterns":[{"include":"#doc-comment.line"},{"include":"#comment.line"},{"include":"#comment.block"}]},"comment.block":{"name":"comment.block.slice","contentName":"text.slice","begin":"\\/\\*","end":"\\*\\/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.slice"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.slice"}}},"comment.line":{"name":"comment.line.double-slash.slice","contentName":"text.slice","begin":"\\/\\/","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.line.double-slash.begin.slice"}}},"compilation-mode":{"name":"meta.mode.slice","begin":"(?\u003c!\\\\)\\bmode\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"=","end":"$","patterns":[{"include":"#standard"},{"begin":"\\\\?(\\w+)","end":"$","patterns":[{"include":"#standard"}],"beginCaptures":{"1":{"patterns":[{"name":"variable.other.constant.mode.slice","match":"Slice1|Slice2"},{"include":"#error"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.mode.slice"}}},"custom-type":{"name":"meta.custom.slice","begin":"(?\u003c!\\\\)\\bcustom\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"$","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.custom.slice"}}},"doc-comment.line":{"name":"comment.line.documentation.slice","begin":"\\/\\/\\/","end":"$","patterns":[{"include":"#documentation.param-tag"},{"include":"#documentation.returns-tag"},{"include":"#documentation.throws-tag"},{"include":"#documentation.see-tag"},{"include":"#documentation.text"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.line.documentation.begin.slice"}}},"documentation.identifier":{"patterns":[{"name":"variable.link.slice","match":"(?:\\b|(::))(?:[a-zA-Z_]\\w*(::)?)+\\b","captures":{"1":{"name":"punctuation.separator.double-colon.slice"},"2":{"name":"punctuation.separator.double-colon.slice"}}},{"include":"#error"}]},"documentation.identifier-with-section":{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#documentation.section"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},"documentation.inline-tags":{"begin":"{(?=\\s*@)","end":"}","patterns":[{"include":"#documentation.link-tag"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.documentation.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.documentation.slice"}}},"documentation.link-tag":{"name":"meta.documentation.link.slice","begin":"(@)link\\b","end":"(?=})","patterns":[{"begin":"(?:\\b|::)(?:\\w+(?:::)?)+\\b","end":"(?=})","patterns":[{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.link.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.param-tag":{"name":"meta.documentation.param.slice","begin":"(@)param\\b","end":"$","patterns":[{"include":"#documentation.identifier-with-section"},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.param.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.returns-tag":{"name":"meta.documentation.returns.slice","begin":"(@)returns\\b","end":"$","patterns":[{"include":"#documentation.identifier-with-section"},{"include":"#documentation.section"},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.returns.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.section":{"begin":":","end":"$","patterns":[{"include":"#documentation.text"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.documentation.slice"}}},"documentation.see-tag":{"name":"meta.documentation.see.slice","begin":"(@)see\\b","end":"$","patterns":[{"begin":"(?:\\b|::)(?:\\w+(?:::)?)+\\b","end":"$","patterns":[{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.see.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.text":{"begin":"(?=\\S)","end":"$","patterns":[{"include":"#documentation.inline-tags"},{"name":"text.slice","match":"."}]},"documentation.throws-tag":{"name":"meta.documentation.throws.slice","begin":"(@)throws\\b","end":"$","patterns":[{"begin":"(?:\\b|::)(?:\\w+(?:::)?)+\\b","end":"$","patterns":[{"include":"#documentation.section"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.throws.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"enum":{"name":"meta.enum.slice","begin":"(?\u003c!\\\\)\\benum\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":":","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#enumerator-container"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#enumerator-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#enumerator-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.enum.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"enumerator":{"name":"meta.enumerator.slice","begin":"\\\\?\\w+","end":"(?=[,}])|$","patterns":[{"include":"#standard"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#tag"},{"include":"#field"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},{"include":"#enumerator-value"}],"beginCaptures":{"0":{"name":"variable.other.constant.enum.slice","patterns":[{"include":"#field.identifier"}]}}},"enumerator-container":{"begin":"{","end":"(?=})","patterns":[{"include":"#enumerator"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.slice"}}},"enumerator-value":{"begin":"=","end":"(?=[,}])|$","patterns":[{"include":"#standard"},{"begin":"(?=-|\\b)[\\w-]+\\b","end":"(?=[,}])|$","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#integer-literal"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.slice"}}},"error":{"name":"invalid","match":"\\S"},"exception":{"name":"meta.exception.slice","begin":"(?\u003c!\\\\)\\bexception\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#field-container-inheritance"},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.exception.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"field":{"name":"meta.field.slice","begin":"\\\\?\\w+","end":"(?=[,}\\)])|$","patterns":[{"include":"#standard"},{"begin":":","end":"(?=[,}\\)])|$","patterns":[{"include":"#standard"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"entity.name.variable.slice","patterns":[{"include":"#field.identifier"}]}}},"field-container":{"begin":"{","end":"(?=})","patterns":[{"include":"#tag"},{"include":"#field"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.slice"}}},"field-container-inheritance":{"begin":":","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#field-container"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},"field.identifier":{"patterns":[{"match":"(\\\\?)\\b([a-zA-Z_]\\w*)\\b","captures":{"1":{"name":"punctuation.definition.identifier.escape.slice"},"2":{"patterns":[{"include":"#reserved-identifiers"}]}}},{"include":"#error"}]},"id-value":{"begin":"\\(","end":"\\)","patterns":[{"include":"#standard"},{"begin":"[^\\s\\)]+","end":"(?=\\))","patterns":[{"include":"#standard"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#integer-literal"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},"integer-literal":{"patterns":[{"name":"constant.numeric.bin.slice","match":"(-)?\\b(0b)(?:[0-1_]+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.negative.slice"},"2":{"name":"punctuation.definition.numeric.bin.slice"}}},{"name":"constant.numeric.dec.slice","match":"(-)?\\b(?:[\\d_]+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.negative.slice"}}},{"name":"constant.numeric.hex.slice","match":"(-)?\\b(0x)(?:[\\da-fA-F_]+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.negative.slice"},"2":{"name":"punctuation.definition.numeric.hex.slice"}}},{"include":"#error"}]},"interface":{"name":"meta.interface.slice","begin":"(?\u003c!\\\\)\\binterface\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":":","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#operation-container"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#operation-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#operation-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.interface.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"modifier-keywords":{"match":"(?\u003c!\\\\)\\b(?:(compact)|(idempotent)|(stream)|(tag\\([-\\w]+\\))|(throws)|(unchecked))(\\b|(?\u003c=\\W))","captures":{"1":{"name":"storage.modifier.compact.slice"},"2":{"name":"storage.modifier.idempotent.slice"},"3":{"name":"storage.modifier.stream.slice"},"4":{"name":"meta.tag.slice","patterns":[{"include":"#tag"}]},"5":{"name":"storage.modifier.throws.slice"},"6":{"name":"storage.modifier.unchecked.slice"}}},"module-declaration":{"name":"meta.module.slice","begin":"(?\u003c!\\\\)\\bmodule\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"(?=\\b|\\\\)[\\\\\\w:]+(?\u003c=\\b|\\W)","end":"$","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.module.slice"}}},"operation-container":{"begin":"{","end":"(?=})","patterns":[{"include":"#tag"},{"name":"storage.modifier.stream.slice","match":"\\bstream\\b"},{"contentName":"meta.exception-list.slice","begin":"\\b(throws)\\b\\s*(\\()","end":"\\)","patterns":[{"include":"#standard"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#storage.identifier"},{"include":"#slice"}],"beginCaptures":{"1":{"name":"storage.modifier.throws.slice"},"2":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},{"name":"storage.modifier.throws.slice","match":"\\bthrows\\b"},{"name":"punctuation.definition.returns.slice","match":"-\u003e"},{"name":"punctuation.separator.comma.slice","match":","},{"name":"meta.parameter-list.slice","begin":"\\(","end":"\\)","patterns":[{"include":"#tag"},{"include":"#parameter"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},{"match":"\\\\?\\w+(?=\\s*\\()","captures":{"0":{"name":"entity.name.function.slice","patterns":[{"include":"#field.identifier"}]}}},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.slice"}}},"parameter":{"name":"meta.parameter.slice","begin":"\\\\?\\w+","end":"(?=[,\\)])|$","patterns":[{"include":"#standard"},{"begin":":","end":"(?=[,\\)])|$","patterns":[{"include":"#standard"},{"name":"storage.modifier.stream.slice","match":"\\bstream\\b"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"entity.name.variable.slice","patterns":[{"include":"#field.identifier"}]}}},"preprocessor":{"patterns":[{"include":"#preprocessor.define"},{"include":"#preprocessor.undef"},{"include":"#preprocessor.if"},{"include":"#preprocessor.elif"},{"include":"#preprocessor.else"},{"include":"#preprocessor.endif"},{"include":"#preprocessor.unknown"},{"include":"#preprocessor.unknown"}]},"preprocessor.define":{"name":"meta.preprocessor.define.slice","begin":"^\\s*((#)\\s*define)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#preprocessor.single-identifier"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.undef.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.elif":{"name":"meta.preprocessor.elif.slice","begin":"^\\s*((#)\\s*elif)\\b","end":"$","patterns":[{"include":"#preprocessor.expression"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.elif.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.else":{"name":"meta.preprocessor.else.slice","begin":"^\\s*((#)\\s*else)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.else.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.endif":{"name":"meta.preprocessor.endif.slice","begin":"^\\s*((#)\\s*endif)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.endif.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.expression":{"patterns":[{"include":"#comment.line"},{"match":"(!)|(\u0026\u0026)|(\\|\\|)|(\\()|(\\))","captures":{"1":{"name":"keyword.operator.logical.not.slice"},"2":{"name":"keyword.operator.logical.and.slice"},"3":{"name":"keyword.operator.logical.or.slice"},"4":{"name":"punctuation.parenthesis.open.slice"},"5":{"name":"punctuation.parenthesis.close.slice"}}},{"include":"#preprocessor.identifier"},{"include":"#error"}]},"preprocessor.identifier":{"patterns":[{"name":"constant.other.symbol.preprocessor.slice","match":"\\b[a-zA-Z_]\\w*\\b"},{"include":"#error"}]},"preprocessor.if":{"name":"meta.preprocessor.if.slice","begin":"^\\s*((#)\\s*if)\\b","end":"$","patterns":[{"include":"#preprocessor.expression"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.if.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.single-identifier":{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}},"preprocessor.undef":{"name":"meta.preprocessor.undef.slice","begin":"^\\s*((#)\\s*undef)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#preprocessor.single-identifier"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.undef.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.unknown":{"name":"meta.preprocessor.unknown.slice","begin":"^\\s*((#)\\s*\\w*)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"1":{"name":"invalid.illegal.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"reserved-identifiers":{"name":"invalid.illegal.identifier.slice","match":"(?\u003c!\\\\)\\b(?:module|struct|exception|class|interface|enum|custom|typealias|Sequence|Dictionary|Result|bool|int8|uint8|int16|uint16|int32|uint32|varint32|varuint32|int64|uint64|varint62|varuint62|float32|float64|string|AnyClass|compact|idempotent|mode|stream|tag|throws|unchecked)\\b"},"slice":{"patterns":[{"include":"#standard"},{"include":"#compilation-mode"},{"include":"#module-declaration"},{"include":"#struct"},{"include":"#class"},{"include":"#exception"},{"include":"#enum"},{"include":"#interface"},{"include":"#custom-type"},{"include":"#type-alias"},{"include":"#modifier-keywords"},{"include":"#type.identifier"}]},"standard":{"patterns":[{"include":"#comment"},{"include":"#preprocessor"},{"include":"#attribute"}]},"storage.identifier":{"patterns":[{"name":"entity.name.class.slice","match":"(?:\\b|(::)|(?=\\\\))(?:(\\\\?)([a-zA-Z_]\\w*)(::)?)+\\b","captures":{"1":{"name":"punctuation.separator.double-colon.slice"},"2":{"name":"punctuation.definition.identifier.escape.slice"},"3":{"patterns":[{"include":"#reserved-identifiers"}]},"4":{"name":"punctuation.separator.double-colon.slice"}}},{"include":"#error"}]},"string-literal":{"name":"string.quoted.double.slice","begin":"\"","end":"(\")|$","patterns":[{"name":"constant.character.escape.slice","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.slice"}}},"struct":{"name":"meta.struct.slice","begin":"(?\u003c!\\\\)\\bstruct\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.struct.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"tag":{"begin":"\\b(tag)\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#id-value"}],"beginCaptures":{"1":{"name":"storage.modifier.tag.slice"}}},"type-alias":{"name":"meta.typealias.slice","begin":"(?\u003c!\\\\)\\btypealias\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"=","end":"$","patterns":[{"include":"#standard"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.alias.slice"}}},"type-keywords":{"match":"(?\u003c!\\\\)\\b(?:(bool)|(int8)|(uint8)|(int16)|(uint16)|(int32)|(uint32)|(varint32)|(varuint32)|(int64)|(uint64)|(varint62)|(varuint62)|(float32)|(float64)|(string)|(AnyClass)|(Sequence)|(Dictionary)|(Result))\\b","captures":{"1":{"name":"storage.type.bool.slice"},"10":{"name":"storage.type.int64.slice"},"11":{"name":"storage.type.uint64.slice"},"12":{"name":"storage.type.varint62.slice"},"13":{"name":"storage.type.varuint62.slice"},"14":{"name":"storage.type.float32.slice"},"15":{"name":"storage.type.float64.slice"},"16":{"name":"storage.type.string.slice"},"17":{"name":"storage.type.AnyClass.slice"},"18":{"name":"storage.type.sequence.slice"},"19":{"name":"storage.type.dictionary.slice"},"2":{"name":"storage.type.int8.slice"},"20":{"name":"storage.type.result.slice"},"3":{"name":"storage.type.uint8.slice"},"4":{"name":"storage.type.int16.slice"},"5":{"name":"storage.type.uint16.slice"},"6":{"name":"storage.type.int32.slice"},"7":{"name":"storage.type.uint32.slice"},"8":{"name":"storage.type.varint32.slice"},"9":{"name":"storage.type.varuint32.slice"}}},"type-name":{"patterns":[{"include":"#type-keywords"},{"include":"#storage.identifier"}]},"type.identifier":{"patterns":[{"name":"meta.generic.parameters.slice","begin":"(?=\\b|\\W)([\\\\\\w:]+)\\s*(\\\u003c)","end":"(\\\u003e)\\s*(\\?)?","patterns":[{"include":"#standard"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"1":{"patterns":[{"include":"#type-name"}]},"2":{"name":"punctuation.angle.open.slice"}},"endCaptures":{"1":{"name":"punctuation.angle.close.slice"},"2":{"name":"punctuation.definition.optional.slice"}}},{"match":"(?=\\b|\\W)([\\\\\\w:]+)\\s*(\\?)?(?\u003c=\\b|\\W)","captures":{"1":{"patterns":[{"include":"#type-name"}]},"2":{"name":"punctuation.definition.optional.slice"}}}]}}}
|
1
|
+
{"name":"Slice","scopeName":"source.slice","patterns":[{"include":"#slice"}],"repository":{"attribute":{"patterns":[{"include":"#attribute.file"},{"include":"#attribute.local"}]},"attribute.directive":{"begin":"[\\w]+(?:(::)\\w+)*","end":"(?=\\])|$","patterns":[{"include":"#comment"},{"name":"meta.attribute.arguments.slice","begin":"\\(","end":"(?=\\])|$","patterns":[{"include":"#comment"},{"include":"#string-literal"},{"name":"variable.other.constant.attribute.slice","match":"\\b\\w+\\b"},{"name":"punctuation.separator.comma.slice","match":","},{"begin":"\\)","end":"(?=\\])|$","patterns":[{"include":"#comment"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.close.attribute.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.attribute.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"entity.name.function.attribute.slice"},"1":{"name":"punctuation.separator.double-colon.slice"}}},"attribute.file":{"name":"meta.attribute.file.slice","begin":"\\[\\[","end":"(\\]\\])|$","patterns":[{"include":"#comment"},{"include":"#attribute.directive"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.double-bracket.open.attribute.slice"}},"endCaptures":{"1":{"name":"punctuation.double-bracket.close.attribute.slice"}}},"attribute.local":{"name":"meta.attribute.local.slice","begin":"\\[","end":"(\\]|$)","patterns":[{"include":"#comment"},{"include":"#attribute.directive"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.bracket.open.attribute.slice"}},"endCaptures":{"1":{"name":"punctuation.bracket.close.attribute.slice"}}},"class":{"name":"meta.class.slice","begin":"(?\u003c!\\\\)\\bclass\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#id-value"},{"include":"#field-container-inheritance"},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.class.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"comment":{"patterns":[{"include":"#doc-comment.line"},{"include":"#comment.line"},{"include":"#comment.block"}]},"comment.block":{"name":"comment.block.slice","contentName":"text.slice","begin":"\\/\\*","end":"\\*\\/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.slice"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.slice"}}},"comment.line":{"name":"comment.line.double-slash.slice","contentName":"text.slice","begin":"\\/\\/","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.line.double-slash.begin.slice"}}},"compilation-mode":{"name":"meta.mode.slice","begin":"(?\u003c!\\\\)\\bmode\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"=","end":"$","patterns":[{"include":"#standard"},{"begin":"\\\\?(\\w+)","end":"$","patterns":[{"include":"#standard"}],"beginCaptures":{"1":{"patterns":[{"name":"variable.other.constant.mode.slice","match":"Slice1|Slice2"},{"include":"#error"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.mode.slice"}}},"custom-type":{"name":"meta.custom.slice","begin":"(?\u003c!\\\\)\\bcustom\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"$","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.custom.slice"}}},"doc-comment.line":{"name":"comment.line.documentation.slice","begin":"\\/\\/\\/","end":"$","patterns":[{"include":"#documentation.param-tag"},{"include":"#documentation.returns-tag"},{"include":"#documentation.throws-tag"},{"include":"#documentation.see-tag"},{"include":"#documentation.text"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.line.documentation.begin.slice"}}},"documentation.identifier":{"patterns":[{"name":"variable.link.slice","match":"(?:\\b|(::))(?:[a-zA-Z_]\\w*(::)?)+\\b","captures":{"1":{"name":"punctuation.separator.double-colon.slice"},"2":{"name":"punctuation.separator.double-colon.slice"}}},{"include":"#error"}]},"documentation.identifier-with-section":{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#documentation.section"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},"documentation.inline-tags":{"begin":"{(?=\\s*@)","end":"}","patterns":[{"include":"#documentation.link-tag"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.documentation.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.documentation.slice"}}},"documentation.link-tag":{"name":"meta.documentation.link.slice","begin":"(@)link\\b","end":"(?=})","patterns":[{"begin":"(?:\\b|::)(?:\\w+(?:::)?)+\\b","end":"(?=})","patterns":[{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.link.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.param-tag":{"name":"meta.documentation.param.slice","begin":"(@)param\\b","end":"$","patterns":[{"include":"#documentation.identifier-with-section"},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.param.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.returns-tag":{"name":"meta.documentation.returns.slice","begin":"(@)returns\\b","end":"$","patterns":[{"include":"#documentation.identifier-with-section"},{"include":"#documentation.section"},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.returns.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.section":{"begin":":","end":"$","patterns":[{"include":"#documentation.text"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.documentation.slice"}}},"documentation.see-tag":{"name":"meta.documentation.see.slice","begin":"(@)see\\b","end":"$","patterns":[{"begin":"(?:\\b|::)(?:\\w+(?:::)?)+\\b","end":"$","patterns":[{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.see.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"documentation.text":{"begin":"(?=\\S)","end":"$","patterns":[{"include":"#documentation.inline-tags"},{"name":"text.slice","match":"."}]},"documentation.throws-tag":{"name":"meta.documentation.throws.slice","begin":"(@)throws\\b","end":"$","patterns":[{"begin":"(?:\\b|::)(?:\\w+(?:::)?)+\\b","end":"$","patterns":[{"include":"#documentation.section"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#documentation.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.documentation.throws.slice"},"1":{"name":"punctuation.definition.annotation.documentation.slice"}}},"enum":{"name":"meta.enum.slice","begin":"(?\u003c!\\\\)\\benum\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":":","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#enumerator-container"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#enumerator-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#enumerator-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.enum.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"enumerator":{"name":"meta.enumerator.slice","begin":"\\\\?\\w+","end":"(?=[,}])|$","patterns":[{"include":"#standard"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#tag"},{"include":"#field"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},{"include":"#enumerator-value"}],"beginCaptures":{"0":{"name":"variable.other.constant.enum.slice","patterns":[{"include":"#field.identifier"}]}}},"enumerator-container":{"begin":"{","end":"(?=})","patterns":[{"include":"#enumerator"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.slice"}}},"enumerator-value":{"begin":"=","end":"(?=[,}])|$","patterns":[{"include":"#standard"},{"begin":"(?=-|\\b)[\\w-]+\\b","end":"(?=[,}])|$","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#integer-literal"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.slice"}}},"error":{"name":"invalid","match":"\\S"},"exception":{"name":"meta.exception.slice","begin":"(?\u003c!\\\\)\\bexception\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#field-container-inheritance"},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.exception.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"field":{"name":"meta.field.slice","begin":"\\\\?\\w+","end":"(?=[,}\\)])|$","patterns":[{"include":"#standard"},{"begin":":","end":"(?=[,}\\)])|$","patterns":[{"include":"#standard"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"entity.name.variable.slice","patterns":[{"include":"#field.identifier"}]}}},"field-container":{"begin":"{","end":"(?=})","patterns":[{"include":"#tag"},{"include":"#field"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.slice"}}},"field-container-inheritance":{"begin":":","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#field-container"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},"field.identifier":{"patterns":[{"match":"(\\\\?)\\b([a-zA-Z_]\\w*)\\b","captures":{"1":{"name":"punctuation.definition.identifier.escape.slice"},"2":{"patterns":[{"include":"#reserved-identifiers"}]}}},{"include":"#error"}]},"id-value":{"begin":"\\(","end":"\\)","patterns":[{"include":"#standard"},{"begin":"[^\\s\\)]+","end":"(?=\\))","patterns":[{"include":"#standard"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#integer-literal"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},"integer-literal":{"patterns":[{"name":"constant.numeric.bin.slice","match":"(-)?\\b(0b)(?:[0-1_]+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.negative.slice"},"2":{"name":"punctuation.definition.numeric.bin.slice"}}},{"name":"constant.numeric.dec.slice","match":"(-)?\\b(?:[\\d_]+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.negative.slice"}}},{"name":"constant.numeric.hex.slice","match":"(-)?\\b(0x)(?:[\\da-fA-F_]+)\\b","captures":{"1":{"name":"punctuation.definition.numeric.negative.slice"},"2":{"name":"punctuation.definition.numeric.hex.slice"}}},{"include":"#error"}]},"interface":{"name":"meta.interface.slice","begin":"(?\u003c!\\\\)\\binterface\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"begin":":","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#operation-container"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#operation-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#operation-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.interface.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"modifier-keywords":{"match":"(?\u003c!\\\\)\\b(?:(compact)|(idempotent)|(stream)|(tag\\([-\\w]+\\))|(throws)|(unchecked))(\\b|(?\u003c=\\W))","captures":{"1":{"name":"storage.modifier.compact.slice"},"2":{"name":"storage.modifier.idempotent.slice"},"3":{"name":"storage.modifier.stream.slice"},"4":{"name":"meta.tag.slice","patterns":[{"include":"#tag"}]},"5":{"name":"storage.modifier.throws.slice"},"6":{"name":"storage.modifier.unchecked.slice"}}},"module-declaration":{"name":"meta.module.slice","begin":"(?\u003c!\\\\)\\bmodule\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"(?=\\b|\\\\)[\\\\\\w:]+(?\u003c=\\b|\\W)","end":"$","patterns":[{"include":"#standard"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.other.module.slice"}}},"operation":{"patterns":[{"include":"#tag"},{"name":"storage.modifier.stream.slice","match":"\\bstream\\b"},{"contentName":"meta.exception-list.slice","begin":"\\b(throws)\\b\\s*(\\()","end":"\\)","patterns":[{"include":"#standard"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#storage.identifier"},{"include":"#slice"}],"beginCaptures":{"1":{"name":"storage.modifier.throws.slice"},"2":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},{"name":"storage.modifier.throws.slice","match":"\\bthrows\\b"},{"name":"punctuation.definition.returns.slice","match":"-\u003e"},{"name":"punctuation.separator.comma.slice","match":","},{"name":"meta.parameter-list.slice","begin":"\\(","end":"\\)","patterns":[{"include":"#tag"},{"include":"#parameter"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.slice"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.slice"}}},{"match":"\\\\?\\w+(?=\\s*\\()","captures":{"0":{"name":"entity.name.function.slice","patterns":[{"include":"#field.identifier"}]}}}]},"operation-container":{"begin":"{","end":"(?=})","patterns":[{"include":"#slice"}],"beginCaptures":{"0":{"name":"punctuation.brace.open.slice"}}},"parameter":{"name":"meta.parameter.slice","begin":"\\\\?\\w+","end":"(?=[,\\)])|$","patterns":[{"include":"#standard"},{"begin":":","end":"(?=[,\\)])|$","patterns":[{"include":"#standard"},{"name":"storage.modifier.stream.slice","match":"\\bstream\\b"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"punctuation.separator.colon.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"entity.name.variable.slice","patterns":[{"include":"#field.identifier"}]}}},"preprocessor":{"patterns":[{"include":"#preprocessor.define"},{"include":"#preprocessor.undef"},{"include":"#preprocessor.if"},{"include":"#preprocessor.elif"},{"include":"#preprocessor.else"},{"include":"#preprocessor.endif"},{"include":"#preprocessor.unknown"},{"include":"#preprocessor.unknown"}]},"preprocessor.define":{"name":"meta.preprocessor.define.slice","begin":"^\\s*((#)\\s*define)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#preprocessor.single-identifier"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.undef.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.elif":{"name":"meta.preprocessor.elif.slice","begin":"^\\s*((#)\\s*elif)\\b","end":"$","patterns":[{"include":"#preprocessor.expression"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.elif.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.else":{"name":"meta.preprocessor.else.slice","begin":"^\\s*((#)\\s*else)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.else.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.endif":{"name":"meta.preprocessor.endif.slice","begin":"^\\s*((#)\\s*endif)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.endif.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.expression":{"patterns":[{"include":"#comment.line"},{"match":"(!)|(\u0026\u0026)|(\\|\\|)|(\\()|(\\))","captures":{"1":{"name":"keyword.operator.logical.not.slice"},"2":{"name":"keyword.operator.logical.and.slice"},"3":{"name":"keyword.operator.logical.or.slice"},"4":{"name":"punctuation.parenthesis.open.slice"},"5":{"name":"punctuation.parenthesis.close.slice"}}},{"include":"#preprocessor.identifier"},{"include":"#error"}]},"preprocessor.identifier":{"patterns":[{"name":"constant.other.symbol.preprocessor.slice","match":"\\b[a-zA-Z_]\\w*\\b"},{"include":"#error"}]},"preprocessor.if":{"name":"meta.preprocessor.if.slice","begin":"^\\s*((#)\\s*if)\\b","end":"$","patterns":[{"include":"#preprocessor.expression"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.if.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.single-identifier":{"begin":"\\b\\w+\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#preprocessor.identifier"}]}}},"preprocessor.undef":{"name":"meta.preprocessor.undef.slice","begin":"^\\s*((#)\\s*undef)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#preprocessor.single-identifier"},{"include":"#error"}],"beginCaptures":{"1":{"name":"keyword.control.preprocessor.undef.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"preprocessor.unknown":{"name":"meta.preprocessor.unknown.slice","begin":"^\\s*((#)\\s*\\w*)\\b","end":"$","patterns":[{"include":"#comment.line"},{"include":"#error"}],"beginCaptures":{"1":{"name":"invalid.illegal.slice"},"2":{"name":"punctuation.definition.preprocessor.slice"}}},"reserved-identifiers":{"name":"invalid.illegal.identifier.slice","match":"(?\u003c!\\\\)\\b(?:module|struct|exception|class|interface|enum|custom|typealias|Sequence|Dictionary|Result|bool|int8|uint8|int16|uint16|int32|uint32|varint32|varuint32|int64|uint64|varint62|varuint62|float32|float64|string|AnyClass|compact|idempotent|mode|stream|tag|throws|unchecked)\\b"},"slice":{"patterns":[{"include":"#standard"},{"include":"#string-literal"},{"include":"#compilation-mode"},{"include":"#module-declaration"},{"include":"#struct"},{"include":"#class"},{"include":"#exception"},{"include":"#enum"},{"include":"#interface"},{"include":"#custom-type"},{"include":"#type-alias"},{"include":"#modifier-keywords"},{"include":"#operation"},{"include":"#type.identifier"}]},"standard":{"patterns":[{"include":"#comment"},{"include":"#preprocessor"},{"include":"#attribute"}]},"storage.identifier":{"patterns":[{"name":"entity.name.class.slice","match":"(?:\\b|(::)|(?=\\\\))(?:(\\\\?)([a-zA-Z_]\\w*)(::)?)+\\b","captures":{"1":{"name":"punctuation.separator.double-colon.slice"},"2":{"name":"punctuation.definition.identifier.escape.slice"},"3":{"patterns":[{"include":"#reserved-identifiers"}]},"4":{"name":"punctuation.separator.double-colon.slice"}}},{"include":"#error"}]},"string-literal":{"name":"string.quoted.double.slice","begin":"\"","end":"(\")|$","patterns":[{"name":"constant.character.escape.slice","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slice"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.slice"}}},"struct":{"name":"meta.struct.slice","begin":"(?\u003c!\\\\)\\bstruct\\b","end":"}","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"(?=})","patterns":[{"include":"#standard"},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#field-container"},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.struct.slice"}},"endCaptures":{"0":{"name":"punctuation.brace.close.slice"}}},"tag":{"begin":"\\b(tag)\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#id-value"}],"beginCaptures":{"1":{"name":"storage.modifier.tag.slice"}}},"type-alias":{"name":"meta.typealias.slice","begin":"(?\u003c!\\\\)\\btypealias\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"\\\\?\\b\\w+\\b","end":"$","patterns":[{"include":"#standard"},{"begin":"=","end":"$","patterns":[{"include":"#standard"},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.slice"}}},{"include":"#error"}],"beginCaptures":{"0":{"patterns":[{"include":"#storage.identifier"}]}}},{"include":"#error"}],"beginCaptures":{"0":{"name":"storage.type.alias.slice"}}},"type-keywords":{"match":"(?\u003c!\\\\)\\b(?:(bool)|(int8)|(uint8)|(int16)|(uint16)|(int32)|(uint32)|(varint32)|(varuint32)|(int64)|(uint64)|(varint62)|(varuint62)|(float32)|(float64)|(string)|(AnyClass)|(Sequence)|(Dictionary)|(Result))\\b","captures":{"1":{"name":"storage.type.bool.slice"},"10":{"name":"storage.type.int64.slice"},"11":{"name":"storage.type.uint64.slice"},"12":{"name":"storage.type.varint62.slice"},"13":{"name":"storage.type.varuint62.slice"},"14":{"name":"storage.type.float32.slice"},"15":{"name":"storage.type.float64.slice"},"16":{"name":"storage.type.string.slice"},"17":{"name":"storage.type.AnyClass.slice"},"18":{"name":"storage.type.sequence.slice"},"19":{"name":"storage.type.dictionary.slice"},"2":{"name":"storage.type.int8.slice"},"20":{"name":"storage.type.result.slice"},"3":{"name":"storage.type.uint8.slice"},"4":{"name":"storage.type.int16.slice"},"5":{"name":"storage.type.uint16.slice"},"6":{"name":"storage.type.int32.slice"},"7":{"name":"storage.type.uint32.slice"},"8":{"name":"storage.type.varint32.slice"},"9":{"name":"storage.type.varuint32.slice"}}},"type-name":{"patterns":[{"include":"#type-keywords"},{"include":"#storage.identifier"}]},"type.identifier":{"patterns":[{"name":"meta.generic.parameters.slice","begin":"(?=\\b|\\W)([\\\\\\w:]+)\\s*(\\\u003c)","end":"(\\\u003e)\\s*(\\?)?","patterns":[{"include":"#standard"},{"name":"punctuation.separator.comma.slice","match":","},{"include":"#type.identifier"},{"include":"#error"}],"beginCaptures":{"1":{"patterns":[{"include":"#type-name"}]},"2":{"name":"punctuation.angle.open.slice"}},"endCaptures":{"1":{"name":"punctuation.angle.close.slice"},"2":{"name":"punctuation.definition.optional.slice"}}},{"match":"(?=\\b|\\W)([\\\\\\w:]+)\\s*(\\?)?(?\u003c=\\b|\\W)","captures":{"1":{"patterns":[{"include":"#type-name"}]},"2":{"name":"punctuation.definition.optional.slice"}}}]}}}
|
@@ -1 +1 @@
|
|
1
|
-
{"name":"SourcePawn","scopeName":"source.sourcepawn","patterns":[{"include":"#line_continuation_character"},{"include":"#literals"},{"include":"#comments"},{"include":"#operators"},{"include":"#preproc"},{"match":"(new)\\s+(\\w+)\\s*\\(","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]}}},{"match":"(view_as)\\s*\u003c\\s*(\\w+)\\s*\u003e","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"},{"include":"#old-type"}]}}},{"match":"(\\w+)\\:\\s*(\\w+)","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#literals"},{"include":"#variable_name"}]}}},{"match":"(\\w+)\\:\\:(\\w*)","captures":{"1":{"patterns":[{"include":"#type_name"}]},"2":{"patterns":[{"include":"#variable_name"}]}}},{"name":"keyword.control.statement.sourcepawn","match":"\\b(?:if|else|for|while|do|switch|case|default|return|break|continue)\\b"},{"include":"#other-keywords"},{"include":"#methodmap"},{"include":"#typedef"},{"include":"#typeset"},{"include":"#functag"},{"include":"#funcenum"},{"include":"#enum_struct"},{"include":"#enum"},{"include":"#struct"},{"include":"#old-function-declaration"},{"include":"#function-declaration"},{"include":"#old-variable-declaration"},{"include":"#variable-declaration"},{"include":"#function-call"},{"name":"variable.language.sourcepawn","match":"\\bthis\\b"},{"match":"\\b(\\w+)\\b","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"repository":{"array-indexed-access":{"patterns":[{"match":"\\[([^\\]]+)\\]","captures":{"1":{"patterns":[{"include":"#literals"},{"include":"#other-keywords"},{"include":"#function-call"},{"include":"#variable_name"}]}}}]},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.sourcepawn","match":"\\b(?:true|false)\\b"}]},"comments":{"patterns":[{"match":"(\\/\\/)\\s*(@param)\\s+([\\w\\.]+)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"storage.type.class.single-line.spdoc"},"3":{"name":"support.variable.single-line.spdoc"},"4":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@return|@noreturn)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"keyword.control.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@error)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"string.regexp.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@(?:note|deprecated))\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"support.function.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"name":"comment.sourcepawn","match":"\\/\\/.*"},{"name":"comment.block.sourcepawn","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"comment.sourcepawn"}}}]},"enum":{"begin":"(enum)\\s+(?:(\\w+(?:\\:)?)?(?:\\s*(\\([^\\(]*\\)))?)?","end":"(?\u003c=\\})","patterns":[{"include":"#literals"},{"include":"#comments"},{"include":"#preproc"},{"match":"(\\w+)","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#literals"}]}}},"enum_struct":{"match":"(enum\\s+struct\\s+)(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"funcenum":{"begin":"(funcenum)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(?:(\\w+)\\:)?\\s*(public)\\s*\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#keywords"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"name":"support.type.core.funcenum.sourcepawn"}}},"functag":{"begin":"(functag)\\s+(\\w+)\\s+(?:([a-zA-Z_]\\w*)\\:\\s*)?(?:(public|stock)\\s*)?\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#preproc"},{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"patterns":[{"include":"#keywords"}]}}},"function-call":{"match":"\\b([A-Za-z_][A-Za-z0-9_]*)\\s*\\(","captures":{"1":{"name":"entity.name.function.function_call.sourcepawn"}}},"function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)\\s+([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"name":"entity.name.function.sourcepawn"}}}]},"keywords":{"patterns":[{"name":"keyword.visibility.sourcepawn","match":"\\b(public|stock)\\b"},{"name":"keyword.storage_class.sourcepawn","match":"\\b(const|static)\\b"},{"name":"keyword.type_declarator.sourcepawn","match":"\\b(typeset|typedef|funcenum|functag)\\b"},{"name":"keyword.view_as.sourcepawn","match":"\\b(view_as)\\b"},{"name":"keyword.variable_declarator.sourcepawn","match":"\\b(new|decl)\\b"},{"name":"keyword.function.sourcepawn","match":"\\b(function)\\b"},{"name":"keyword.enum.sourcepawn","match":"\\b(enum)\\b"},{"name":"keyword.struct.sourcepawn","match":"\\b(struct)\\b"},{"name":"keyword.methodmap.sourcepawn","match":"\\b(methodmap)\\b"}]},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.sourcepawn"}}}]},"literals":{"patterns":[{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#numeric-literal"},{"include":"#string-literal"}]},"methodmap":{"match":"(methodmap)\\s+([a-zA-Z_]\\w*)\\s*(?:(?:\\\u003c\\s*([a-zA-Z_]\\w*)|(__nullable__)))?","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"3":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"4":{"name":"keyword.__nullable__.sourcepawn"}}},"null-literal":{"patterns":[{"name":"constant.language.sourcepawn","match":"\\bnull\\b"}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.float.sourcepawn","match":"[0-9]+\\.[0-9]+"},{"name":"constant.numeric.sourcepawn","match":"\\b0b[0-1]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b0o[0-7]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b(0x(?:(?:(?:[0-9a-fA-F]{2}_?)+)|(?:[0-9a-fA-F]+)))\\b"},{"name":"constant.numeric.integer.sourcepawn","match":"\\b((?:\\d|_)+)\\b"},{"name":"invalid.illegal.constant.sourcepawn","match":"\\b\\d+\\w+\\b"}]},"old-function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)\\:\\s*([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"name":"entity.name.function.sourcepawn"}}}]},"old-parameter-declaration":{"patterns":[{"match":"(?:(\\w+)\\:\\s*)?(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)+)?","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"old-type":{"patterns":[{"match":"(bool|any|String|Float)|(\\w+)","captures":{"1":{"name":"storage.type.old.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"old-variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(new|decl)\\s+(?:(\\w+)\\:\\s*)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#old-type"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"operators":{"patterns":[{"name":"keyword.operator.sourcepawn","match":"%|\u0026|\\*|/(?!\\*|/)|\\+|\\-|~|=|\u003c|\u003e|!|\\||\\?|:|\\^"}]},"other-keywords":{"name":"keyword.sourcepawn","match":"\\b(?:decl|delete|forward|native|public|const|stock|this|sizeof|static|property)\\b"},"parameter-declaration":{"patterns":[{"match":"(\\w+)(?:\\s+|(?:\\s*(?:\u0026|(?:\\[\\s*\\])+)\\s*))(\\w+)(?:\\s*((?:\\[[^\\]]*\\]\\s*)+))?","captures":{"1":{"patterns":[{"include":"#type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"parameters":{"patterns":[{"include":"#keywords"},{"include":"#literals"},{"include":"#parameter-declaration"},{"include":"#old-parameter-declaration"}]},"preproc":{"patterns":[{"name":"meta.include.sourcepawn","match":"(\\#include|\\#tryinclude)\\s*((?:\\\u003c|\").+(?:\\\u003e|\"))","captures":{"1":{"name":"keyword.control.sourcepawn"},"2":{"name":"string.sourcepawn"}}},{"name":"meta.pragma.line-comment.sourcepawn","match":"(\\#pragma)\\s+(.+?(?=//))","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.pragma.deprecated.sourcepawn","match":"(\\#pragma)\\s+(deprecated)(.*)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"},"3":{"name":"string.deprecated.sourcepawn"}}},{"name":"meta.pragma.block-comment.sourcepawn","match":"(\\#pragma)\\s+([A-Za-z _0-9]+)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.define.sourcepawn","match":"(\\#define)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.define.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(\\#undef)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.undef.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.+?)(?=/(?:/|\\*))","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.*)","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"keyword.control.misc.sourcepawn","match":"#\\b(if|else|endif|emit|deprecated|undef|endinput|endscript|assert|define|file)\\b\\s*"},{"match":"(defined)\\s+([A-Za-z_]\\w*)","captures":{"1":{"name":"meta.preprocessor.conditional.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}}]},"string-literal":{"patterns":[{"name":"string.quoted.double.sourcepawn","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}},{"name":"string.quoted.single.c","begin":"'","end":"(\\')|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.sourcepawn","match":"\\\\(?:[abefnrt'\"\\\\]|(?:x[a-zA-Z0-9]{0,2}|\\d+);?)"},{"name":"invalid.illegal.unknown-escape.sourcepawn","match":"\\\\."}]},"string_format_char":{"name":"constant.character.format.sourcepawn","match":"%(?:a|A|b|B|c|C|d|D|e|F|g|G|h|H|I|j|m|M|n|i|p|r|R|S|t|T|u|U|V|u|w|W|x|X|y|Y|z|Z|f|L|N|s|T|t|%|(?:\\d+)?\\.?\\d*(?:b|d|i|u|f|s|X|x))"},"string_placeholder":{"name":"constant.character.sp-translations","match":"\\{(\\w+)\\}","captures":{"1":{"name":"constant.character.escape.sp-translations"}}},"struct":{"match":"(struct)\\s+(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"type":{"patterns":[{"match":"(bool|float|int|char|any|void)|(\\w+)","captures":{"1":{"name":"storage.type.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"type_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"support.type.core.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"typedef":{"begin":"(typedef)\\s+(\\w+)\\s*\\=\\s*(function)\\s*(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#type"}]},"5":{"patterns":[{"include":"#array-indexed-access"}]}}},"typeset":{"begin":"(typeset)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(function)\\s+(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)(?:(?:\\s*\u0026\\s*)|\\s+)(\\w+)\\s*(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"variable_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"variable.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"variable.sourcepawn"}}}]}}}
|
1
|
+
{"name":"SourcePawn","scopeName":"source.sourcepawn","patterns":[{"include":"#line_continuation_character"},{"include":"#literals"},{"include":"#comments"},{"include":"#operators"},{"include":"#preproc"},{"name":"keyword.control.statement.sourcepawn","match":"\\b(?:if|else|for|while|do|switch|case|default|return|break|continue)\\b"},{"match":"(new)\\s+(\\w+)\\s*\\(","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]}}},{"match":"(view_as)\\s*\u003c\\s*(\\w+)\\s*\u003e","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"},{"include":"#old-type"}]}}},{"match":"(\\w+)\\:\\s*(\\w+)","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#literals"},{"include":"#variable_name"}]}}},{"match":"(\\w+)\\:\\:(\\w*)","captures":{"1":{"patterns":[{"include":"#type_name"}]},"2":{"patterns":[{"include":"#variable_name"}]}}},{"include":"#other-keywords"},{"include":"#methodmap"},{"include":"#typedef"},{"include":"#typeset"},{"include":"#functag"},{"include":"#funcenum"},{"include":"#enum_struct"},{"include":"#enum"},{"include":"#struct"},{"include":"#old-function-declaration"},{"include":"#function-declaration"},{"include":"#old-variable-declaration"},{"include":"#variable-declaration"},{"include":"#function-call"},{"name":"variable.language.sourcepawn","match":"\\bthis\\b"},{"match":"\\b(\\w+)\\b","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"repository":{"array-indexed-access":{"patterns":[{"match":"\\[([^\\]]+)\\]","captures":{"1":{"patterns":[{"include":"#literals"},{"include":"#other-keywords"},{"include":"#function-call"},{"include":"#variable_name"}]}}}]},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.sourcepawn","match":"\\b(?:true|false)\\b"}]},"comments":{"patterns":[{"match":"(\\/\\/)\\s*(@param)\\s+([\\w\\.]+)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"storage.type.class.single-line.spdoc"},"3":{"name":"support.variable.single-line.spdoc"},"4":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@return|@noreturn)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"keyword.control.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@error)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"string.regexp.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@(?:note|deprecated))\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"support.function.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"name":"comment.sourcepawn","match":"\\/\\/.*"},{"name":"comment.block.sourcepawn","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"comment.sourcepawn"}}}]},"enum":{"begin":"(enum)\\s+(?:(\\w+(?:\\:)?)?(?:\\s*(\\([^\\(]*\\)))?)?","end":"(?\u003c=\\})","patterns":[{"include":"#literals"},{"include":"#comments"},{"include":"#preproc"},{"match":"(\\w+)","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#literals"}]}}},"enum_struct":{"match":"(enum\\s+struct\\s+)(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"funcenum":{"begin":"(funcenum)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(?:(\\w+)\\:)?\\s*(public)\\s*\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#keywords"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"name":"support.type.core.funcenum.sourcepawn"}}},"functag":{"begin":"(functag)\\s+(\\w+)\\s+(?:([a-zA-Z_]\\w*)\\:\\s*)?(?:(public|stock)\\s*)?\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#preproc"},{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"patterns":[{"include":"#keywords"}]}}},"function-call":{"match":"\\b([A-Za-z_][A-Za-z0-9_]*)\\s*\\(","captures":{"1":{"name":"entity.name.function.function_call.sourcepawn"}}},"function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)\\s+([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"name":"entity.name.function.sourcepawn"}}}]},"keywords":{"patterns":[{"name":"keyword.visibility.sourcepawn","match":"\\b(public|stock)\\b"},{"name":"keyword.storage_class.sourcepawn","match":"\\b(const|static)\\b"},{"name":"keyword.type_declarator.sourcepawn","match":"\\b(typeset|typedef|funcenum|functag)\\b"},{"name":"keyword.view_as.sourcepawn","match":"\\b(view_as)\\b"},{"name":"keyword.variable_declarator.sourcepawn","match":"\\b(new|decl)\\b"},{"name":"keyword.function.sourcepawn","match":"\\b(function)\\b"},{"name":"keyword.enum.sourcepawn","match":"\\b(enum)\\b"},{"name":"keyword.struct.sourcepawn","match":"\\b(struct)\\b"},{"name":"keyword.methodmap.sourcepawn","match":"\\b(methodmap)\\b"}]},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.sourcepawn"}}}]},"literals":{"patterns":[{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#numeric-literal"},{"include":"#string-literal"}]},"methodmap":{"match":"(methodmap)\\s+([a-zA-Z_]\\w*)\\s*(?:(?:\\\u003c\\s*([a-zA-Z_]\\w*)|(__nullable__)))?","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"3":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"4":{"name":"keyword.__nullable__.sourcepawn"}}},"null-literal":{"patterns":[{"name":"constant.language.sourcepawn","match":"\\bnull\\b"}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.float.sourcepawn","match":"[0-9]+\\.[0-9]+"},{"name":"constant.numeric.sourcepawn","match":"\\b0b[0-1]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b0o[0-7]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b(0x(?:(?:(?:[0-9a-fA-F]{2}_?)+)|(?:[0-9a-fA-F]+)))\\b"},{"name":"constant.numeric.integer.sourcepawn","match":"\\b((?:\\d|_)+)\\b"},{"name":"invalid.illegal.constant.sourcepawn","match":"\\b\\d+\\w+\\b"}]},"old-function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)\\:\\s*([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"name":"entity.name.function.sourcepawn"}}}]},"old-parameter-declaration":{"patterns":[{"match":"(?:(\\w+)\\:\\s*)?(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)+)?","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"old-type":{"patterns":[{"match":"(bool|any|String|Float)|(\\w+)","captures":{"1":{"name":"storage.type.old.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"old-variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(new|decl)\\s+(?:(\\w+)\\:\\s*)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#old-type"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"operators":{"patterns":[{"name":"keyword.operator.sourcepawn","match":"%|\u0026|\\*|/(?!\\*|/)|\\+|\\-|~|=|\u003c|\u003e|!|\\||\\?|:|\\^"}]},"other-keywords":{"name":"keyword.sourcepawn","match":"\\b(?:decl|delete|forward|native|public|const|stock|this|sizeof|static|property)\\b"},"parameter-declaration":{"patterns":[{"match":"(\\w+)(?:\\s+|(?:\\s*(?:\u0026|(?:\\[\\s*\\])+)\\s*))(\\w+)(?:\\s*((?:\\[[^\\]]*\\]\\s*)+))?","captures":{"1":{"patterns":[{"include":"#type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"parameters":{"patterns":[{"include":"#keywords"},{"include":"#literals"},{"include":"#parameter-declaration"},{"include":"#old-parameter-declaration"}]},"preproc":{"patterns":[{"name":"meta.include.sourcepawn","match":"(\\#include|\\#tryinclude)\\s*((?:\\\u003c|\").+(?:\\\u003e|\"))","captures":{"1":{"name":"keyword.control.sourcepawn"},"2":{"name":"string.sourcepawn"}}},{"name":"meta.pragma.line-comment.sourcepawn","match":"(\\#pragma)\\s+(.+?(?=//))","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.pragma.deprecated.sourcepawn","match":"(\\#pragma)\\s+(deprecated)(.*)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"},"3":{"name":"string.deprecated.sourcepawn"}}},{"name":"meta.pragma.block-comment.sourcepawn","match":"(\\#pragma)\\s+([A-Za-z _0-9]+)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.define.sourcepawn","match":"(\\#define)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.define.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(\\#undef)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.undef.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.+?)(?=/(?:/|\\*))","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.*)","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"keyword.control.misc.sourcepawn","match":"#\\b(if|else|endif|emit|deprecated|undef|endinput|endscript|assert|define|file)\\b\\s*"},{"match":"(defined)\\s+([A-Za-z_]\\w*)","captures":{"1":{"name":"meta.preprocessor.conditional.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}}]},"string-literal":{"patterns":[{"name":"string.quoted.double.sourcepawn","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}},{"name":"string.quoted.single.c","begin":"'","end":"(\\')|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.sourcepawn","match":"\\\\(?:[abefnrt'\"\\\\]|(?:x[a-zA-Z0-9]{0,2}|\\d+);?)"},{"name":"invalid.illegal.unknown-escape.sourcepawn","match":"\\\\."}]},"string_format_char":{"name":"constant.character.format.sourcepawn","match":"%(?:a|A|b|B|c|C|d|D|e|F|g|G|h|H|I|j|m|M|n|i|p|r|R|S|t|T|u|U|V|u|w|W|x|X|y|Y|z|Z|f|L|N|s|T|t|%|(?:\\d+)?\\.?\\d*(?:b|d|i|u|f|s|X|x))"},"string_placeholder":{"name":"constant.character.sp-translations","match":"\\{(\\w+)\\}","captures":{"1":{"name":"constant.character.escape.sp-translations"}}},"struct":{"match":"(struct)\\s+(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"type":{"patterns":[{"match":"(bool|float|int|char|any|void)|(\\w+)","captures":{"1":{"name":"storage.type.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"type_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"support.type.core.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"typedef":{"begin":"(typedef)\\s+(\\w+)\\s*\\=\\s*(function)\\s*(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#type"}]},"5":{"patterns":[{"include":"#array-indexed-access"}]}}},"typeset":{"begin":"(typeset)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(function)\\s+(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)\\s+(\\w+)\\s*(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"variable_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"variable.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"variable.sourcepawn"}}}]}}}
|