fuc-new/doc/node_modules/tm-grammars/grammars/cpp-macro.json
hellcat 6adbc04d4b 1
2025-10-03 17:17:08 +08:00

9499 lines
334 KiB
JSON

{
"displayName": "C++",
"name": "cpp-macro",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#constructor_root"
},
{
"include": "#destructor_root"
},
{
"include": "#function_definition"
},
{
"include": "#operator_overload"
},
{
"include": "#using_namespace"
},
{
"include": "source.cpp#type_alias"
},
{
"include": "source.cpp#using_name"
},
{
"include": "source.cpp#namespace_alias"
},
{
"include": "#namespace_block"
},
{
"include": "#extern_block"
},
{
"include": "#typedef_class"
},
{
"include": "#typedef_struct"
},
{
"include": "#typedef_union"
},
{
"include": "source.cpp#misc_keywords"
},
{
"include": "source.cpp#standard_declares"
},
{
"include": "#class_block"
},
{
"include": "#struct_block"
},
{
"include": "#union_block"
},
{
"include": "#enum_block"
},
{
"include": "source.cpp#template_isolated_definition"
},
{
"include": "#template_definition"
},
{
"include": "source.cpp#template_explicit_instantiation"
},
{
"include": "source.cpp#access_control_keywords"
},
{
"include": "#block"
},
{
"include": "#static_assert"
},
{
"include": "#assembly"
},
{
"include": "#function_pointer"
},
{
"include": "#evaluation_context"
}
],
"repository": {
"alignas_attribute": {
"begin": "alignas\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"beginCaptures": {
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
},
{
"include": "#ever_present_context"
}
]
},
{
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
},
"match": "(using)\\s+((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))"
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#ever_present_context"
}
]
},
"alignas_operator": {
"begin": "((?<!\\w)alignas(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
}
},
"contentName": "meta.arguments.operator.alignas",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"alignof_operator": {
"begin": "((?<!\\w)alignof(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
}
},
"contentName": "meta.arguments.operator.alignof",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"assembly": {
"begin": "\\b(__asm__|asm)\\b\\s+{0,1}((?:volatile)?)",
"beginCaptures": {
"1": {
"name": "storage.type.asm.cpp"
},
"2": {
"name": "storage.modifier.cpp"
}
},
"end": "(?!\\G)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.asm.cpp",
"patterns": [
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "^((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:\\n|$)"
},
{
"include": "#comments"
},
{
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
}
},
"patterns": [
{
"begin": "(R?)(\")",
"beginCaptures": {
"1": {
"name": "meta.encoding.cpp"
},
"2": {
"name": "punctuation.definition.string.begin.assembly.cpp"
}
},
"contentName": "meta.embedded.assembly",
"end": "\"|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.assembly.cpp"
}
},
"name": "string.quoted.double.cpp",
"patterns": [
{
"include": "source.asm"
},
{
"include": "source.x86"
},
{
"include": "source.x86_64"
},
{
"include": "source.arm"
},
{
"include": "source.cpp#backslash_escapes"
},
{
"include": "#string_escaped_char"
}
]
},
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "variable.other.asm.label.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "\\[((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)]"
},
{
"match": ":",
"name": "punctuation.separator.delimiter.colon.assembly.cpp"
},
{
"include": "#comments"
}
]
}
]
},
"attributes_context": {
"patterns": [
{
"include": "#cpp_attributes"
},
{
"include": "#gcc_attributes"
},
{
"include": "#ms_attributes"
},
{
"include": "#alignas_attribute"
}
]
},
"block": {
"begin": "\\{",
"beginCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.cpp"
}
},
"end": "}|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.cpp"
}
},
"name": "meta.block.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
"block_comment": {
"begin": "\\s*+(/\\*)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.begin.cpp"
}
},
"end": "\\*/|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.comment.end.cpp"
}
},
"name": "comment.block.cpp"
},
"builtin_storage_type_initilizer": {
"begin": "\\s*+(?<!\\w)(?:(?:(?:(unsigned|wchar_t|double|signed|short|float|auto|void|long|char|bool|int)|(uint_least32_t|uint_least64_t|uint_least16_t|uint_fast64_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|uint_fast16_t|uint_fast32_t|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|int_fast8_t|suseconds_t|useconds_t|uintmax_t|in_port_t|uintmax_t|in_addr_t|blksize_t|uintptr_t|intmax_t|intptr_t|blkcnt_t|intmax_t|u_quad_t|uint16_t|uint32_t|uint64_t|ssize_t|fixpt_t|qaddr_t|u_short|int16_t|int32_t|int64_t|uint8_t|daddr_t|caddr_t|swblk_t|clock_t|segsz_t|nlink_t|time_t|u_long|ushort|quad_t|mode_t|size_t|u_char|int8_t|u_int|uid_t|off_t|pid_t|gid_t|dev_t|div_t|key_t|ino_t|id_t|uint))|(pthread_(?:rwlockattr_|mutexattr_|condattr_|rwlock_|mutex_|cond_|attr_|once_|key_|)t))|([A-Z_a-z]\\w*_t))(?!\\w)\\s*+(?<!\\w)(\\()",
"beginCaptures": {
"1": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
"2": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"3": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"4": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"5": {
"name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"case_statement": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)case(?!\\w))",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "keyword.control.case.cpp"
}
},
"end": ":|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.separator.colon.case.cpp"
}
},
"name": "meta.conditional.case.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"class_block": {
"begin": "((?<!\\w)class(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?=\\{)|(?:((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*+)?(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(:(?!:)))?)",
"beginCaptures": {
"0": {
"name": "meta.head.class.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)"
},
{
"captures": {
"1": {
"name": "entity.name.type.class.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?=[:{]|$)"
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.class.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"name": "meta.head.class.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"name": "meta.body.class.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.class.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"comments": {
"patterns": [
{
"begin": "^\\s+{1,0}(//[!/]+)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.documentation.cpp"
}
},
"end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "comment.line.double-slash.documentation.cpp",
"patterns": [
{
"include": "source.cpp#line_continuation_character"
},
{
"match": "(?<=[!*/\\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|[\"-%.<=>]|::|\\||---??)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\](?:a|em?))\\s+(\\S+)"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\]b)\\s+(\\S+)"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\][cp])\\s+(\\S+)"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:a|anchor|[bc]|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|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.cpp"
},
{
"match": "(?<=[!*/\\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(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"patterns": [
{
"match": "in|out",
"name": "keyword.other.parameter.direction.$0.cpp"
}
]
},
"3": {
"patterns": [
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "variable.parameter.cpp"
},
{
"match": ",",
"name": "punctuation.cpp"
}
]
},
"4": {
"name": "variable.parameter.cpp"
},
"5": {
"name": "punctuation.cpp"
},
"6": {
"name": "variable.parameter.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\]param)(?:\\s*\\[((?:,?\\s+{0,1}(?:in|out)\\s+{0,1})+)])?(\\s+((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(?:(,)\\s+{0,1}((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))*)"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:arg|attention|authors??|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remarks??|result|returns??|retval|sa|see|short|since|test|throws??|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "\\b[A-Z]+:|@[_a-z]+:",
"name": "storage.type.class.gtkdoc.cpp"
}
]
},
{
"captures": {
"1": {
"name": "punctuation.definition.comment.begin.documentation.cpp"
},
"2": {
"patterns": [
{
"match": "(?<=[!*/\\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|[\"-%.<=>]|::|\\||---??)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\](?:a|em?))\\s+(\\S+)"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\]b)\\s+(\\S+)"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\][cp])\\s+(\\S+)"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:a|anchor|[bc]|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|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.cpp"
},
{
"match": "(?<=[!*/\\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(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"patterns": [
{
"match": "in|out",
"name": "keyword.other.parameter.direction.$0.cpp"
}
]
},
"3": {
"patterns": [
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "variable.parameter.cpp"
},
{
"match": ",",
"name": "punctuation.cpp"
}
]
},
"4": {
"name": "variable.parameter.cpp"
},
"5": {
"name": "punctuation.cpp"
},
"6": {
"name": "variable.parameter.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\]param)(?:\\s*\\[((?:,?\\s+{0,1}(?:in|out)\\s+{0,1})+)])?(\\s+((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(?:(,)\\s+{0,1}((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))*)"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:arg|attention|authors??|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remarks??|result|returns??|retval|sa|see|short|since|test|throws??|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "\\b[A-Z]+:|@[_a-z]+:",
"name": "storage.type.class.gtkdoc.cpp"
}
]
},
"3": {
"name": "punctuation.definition.comment.end.documentation.cpp"
}
},
"match": "(/\\*[!*]+(?=\\s))(.+)([!*]*\\*/)",
"name": "comment.block.documentation.cpp"
},
{
"begin": "\\s+{1,0}/\\*[!*]+(?:(?:\\n|$)|(?=\\s))",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.begin.documentation.cpp"
}
},
"end": "[!*]*\\*/|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.comment.end.documentation.cpp"
}
},
"name": "comment.block.documentation.cpp",
"patterns": [
{
"match": "(?<=[!*/\\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|[\"-%.<=>]|::|\\||---??)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\](?:a|em?))\\s+(\\S+)"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\]b)\\s+(\\S+)"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\][cp])\\s+(\\S+)"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:a|anchor|[bc]|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|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.cpp"
},
{
"match": "(?<=[!*/\\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(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"patterns": [
{
"match": "in|out",
"name": "keyword.other.parameter.direction.$0.cpp"
}
]
},
"3": {
"patterns": [
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "variable.parameter.cpp"
},
{
"match": ",",
"name": "punctuation.cpp"
}
]
},
"4": {
"name": "variable.parameter.cpp"
},
"5": {
"name": "punctuation.cpp"
},
"6": {
"name": "variable.parameter.cpp"
}
},
"match": "((?<=[!*/\\s])[@\\\\]param)(?:\\s*\\[((?:,?\\s+{0,1}(?:in|out)\\s+{0,1})+)])?(\\s+((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(?:(,)\\s+{0,1}((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))*)"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:arg|attention|authors??|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remarks??|result|returns??|retval|sa|see|short|since|test|throws??|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[!*/\\s])[@\\\\](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "\\b[A-Z]+:|@[_a-z]+:",
"name": "storage.type.class.gtkdoc.cpp"
}
]
},
{
"include": "source.cpp#emacs_file_banner"
},
{
"include": "#block_comment"
},
{
"include": "#line_comment"
},
{
"include": "source.cpp#invalid_comment_end"
}
]
},
"constructor_inline": {
"begin": "^((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*)((?:__(?:cdec|clrcal|stdcal|fastcal|thiscal|vectorcal)l)?)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(?=\\())",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.constructor.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"10": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"11": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"15": {
"name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"patterns": [
{
"include": "source.cpp#functional_specifiers_pre_parameters"
}
]
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.function.definition.special.constructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.head.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
},
"7": {
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
}
},
"match": "(=)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(default)|(delete))"
},
{
"include": "source.cpp#functional_specifiers_pre_parameters"
},
{
"begin": ":",
"beginCaptures": {
"0": {
"name": "punctuation.separator.initializers.cpp"
}
},
"end": "(?=\\{)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"begin": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(((?<!<)<(?!<)(?:(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<3>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?(\\()",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"3": {
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(\\{)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"end": "}|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": ",",
"name": "punctuation.separator.delimiter.comma.cpp"
},
{
"include": "#comments"
}
]
},
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.constructor",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.body.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"constructor_root": {
"begin": "\\s*+((?:__(?:cdec|clrcal|stdcal|fastcal|thiscal|vectorcal)l)?)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<8>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)::((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)\\10((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=\\())",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.constructor.cpp"
},
"1": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"10": {
},
"11": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"15": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"17": {
"name": "comment.block.cpp"
},
"18": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"19": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.constructor.cpp"
},
{
"include": "#template_call_range"
}
]
},
"7": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"8": {
},
"9": {
"patterns": [
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?=:)",
"name": "entity.name.type.constructor.cpp"
},
{
"match": "(?<=:)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.function.definition.special.constructor.cpp"
},
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
}
]
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.function.definition.special.constructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.head.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
},
"7": {
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
}
},
"match": "(=)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(default)|(delete))"
},
{
"include": "source.cpp#functional_specifiers_pre_parameters"
},
{
"begin": ":",
"beginCaptures": {
"0": {
"name": "punctuation.separator.initializers.cpp"
}
},
"end": "(?=\\{)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"begin": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(((?<!<)<(?!<)(?:(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<3>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?(\\()",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"3": {
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(\\{)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"end": "}|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": ",",
"name": "punctuation.separator.delimiter.comma.cpp"
},
{
"include": "#comments"
}
]
},
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.constructor",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.body.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"cpp_attributes": {
"begin": "\\[\\[",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "]]|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"beginCaptures": {
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
},
{
"include": "#ever_present_context"
}
]
},
{
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
},
"match": "(using)\\s+((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))"
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#ever_present_context"
}
]
},
"curly_initializer": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\{)",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {
},
"14": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"18": {
},
"19": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"23": {
"name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp"
},
"3": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "}|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp"
}
},
"name": "meta.initialization.cpp",
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "source.cpp#comma"
}
]
},
"decltype": {
"begin": "((?<!\\w)decltype(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
}
},
"contentName": "meta.arguments.decltype",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"decltype_specifier": {
"begin": "((?<!\\w)decltype(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
}
},
"contentName": "meta.arguments.decltype",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"default_statement": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)default(?!\\w))",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "keyword.control.default.cpp"
}
},
"end": ":|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.separator.colon.case.default.cpp"
}
},
"name": "meta.conditional.case.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"destructor_inline": {
"begin": "^((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:__(?:cdec|clrcal|stdcal|fastcal|thiscal|vectorcal)l)?)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*)(~(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(?=\\())",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.member.destructor.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"10": {
"patterns": [
{
"include": "source.cpp#functional_specifiers_pre_parameters"
}
]
},
"11": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"15": {
"name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.function.definition.special.member.destructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.head.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
},
"7": {
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
}
},
"match": "(=)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(default)|(delete))"
},
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.member.destructor",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
},
"patterns": [
]
},
{
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.body.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"destructor_root": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:__(?:cdec|clrcal|stdcal|fastcal|thiscal|vectorcal)l)?)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<12>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)::((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)~\\14((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=\\())",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.member.destructor.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"10": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.destructor.cpp"
},
{
"include": "#template_call_range"
}
]
},
"11": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"12": {
},
"13": {
"patterns": [
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?=:)",
"name": "entity.name.type.destructor.cpp"
},
{
"match": "(?<=:)~(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.function.definition.special.member.destructor.cpp"
},
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
}
]
},
"14": {
},
"15": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"17": {
"name": "comment.block.cpp"
},
"18": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"19": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"23": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"24": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"25": {
"name": "comment.block.cpp"
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.function.definition.special.member.destructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.head.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
},
"7": {
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
}
},
"match": "(=)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(default)|(delete))"
},
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.member.destructor",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
},
"patterns": [
]
},
{
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.body.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"diagnostic": {
"begin": "^(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(#)\\s+{0,1}(error|warning))\\b\\s+{0,1}",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.diagnostic.$7.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.definition.directive.cpp"
},
"7": {
}
},
"end": "(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.preprocessor.diagnostic.$reference(directive).cpp",
"patterns": [
{
"include": "#comments"
},
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$)))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.double.cpp",
"patterns": [
{
"include": "source.cpp#line_continuation_character"
}
]
},
{
"begin": "'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$)))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.single.cpp",
"patterns": [
{
"include": "source.cpp#line_continuation_character"
}
]
},
{
"begin": "[^\"']",
"beginCaptures": {
},
"end": "(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "string.unquoted.cpp",
"patterns": [
{
"include": "source.cpp#line_continuation_character"
},
{
"include": "#comments"
}
]
}
]
},
"enum_block": {
"begin": "((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?=\\{))\\s+{0,1}((?:(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))?)(?:\\s+{0,1}(:)\\s+{0,1}(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<12>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<12>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?(::))?\\s+{0,1}((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))?",
"beginCaptures": {
"0": {
"name": "meta.head.enum.cpp"
},
"1": {
"name": "storage.type.enum.cpp"
},
"10": {
"name": "entity.name.scope-resolution.cpp"
},
"11": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"12": {
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"17": {
"name": "storage.type.integral.$17.cpp"
},
"2": {
"name": "storage.type.enum.enum-key.$2.cpp"
},
"3": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"4": {
"name": "entity.name.type.enum.cpp"
},
"5": {
"name": "punctuation.separator.colon.type-specifier.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#scope_resolution_inner_generated"
}
]
},
"7": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"8": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.enum.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
}
},
"name": "meta.head.enum.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.enum.cpp"
}
},
"name": "meta.body.enum.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "source.cpp#enumerator_list"
},
{
"include": "#comments"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#semicolon"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.enum.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"evaluation_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#method_access"
},
{
"include": "source.cpp#member_access"
},
{
"include": "source.cpp#predefined_macros"
},
{
"include": "#operators"
},
{
"include": "source.cpp#memory_operators"
},
{
"include": "source.cpp#wordlike_operators"
},
{
"include": "source.cpp#type_casting_operators"
},
{
"include": "source.cpp#control_flow_keywords"
},
{
"include": "source.cpp#exception_keywords"
},
{
"include": "source.cpp#the_this_keyword"
},
{
"include": "source.cpp#language_constants"
},
{
"include": "#builtin_storage_type_initilizer"
},
{
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
},
{
"include": "source.cpp#functional_specifiers_pre_parameters"
},
{
"include": "#storage_types"
},
{
"include": "#lambdas"
},
{
"include": "#attributes_context"
},
{
"include": "#parentheses"
},
{
"include": "#function_call"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"include": "#square_brackets"
},
{
"include": "source.cpp#semicolon"
},
{
"include": "source.cpp#comma"
}
]
},
"ever_present_context": {
"patterns": [
{
"include": "source.cpp#pragma_mark"
},
{
"include": "#pragma"
},
{
"include": "source.cpp#include"
},
{
"include": "#line"
},
{
"include": "#diagnostic"
},
{
"include": "source.cpp#undef"
},
{
"include": "#preprocessor_conditional_range"
},
{
"include": "source.cpp#single_line_macro"
},
{
"include": "#macro"
},
{
"include": "source.cpp#preprocessor_conditional_standalone"
},
{
"include": "source.cpp#macro_argument"
},
{
"include": "#comments"
},
{
"include": "source.cpp#line_continuation_character"
}
]
},
"extern_block": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(extern)(?=\\s*\")",
"beginCaptures": {
"0": {
"name": "meta.head.extern.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "storage.type.extern.cpp"
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.extern.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
}
},
"name": "meta.head.extern.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.extern.cpp"
}
},
"name": "meta.body.extern.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.extern.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"include": "$self"
}
]
},
"function_body_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#using_namespace"
},
{
"include": "source.cpp#type_alias"
},
{
"include": "source.cpp#using_name"
},
{
"include": "source.cpp#namespace_alias"
},
{
"include": "#typedef_class"
},
{
"include": "#typedef_struct"
},
{
"include": "#typedef_union"
},
{
"include": "source.cpp#misc_keywords"
},
{
"include": "source.cpp#standard_declares"
},
{
"include": "#class_block"
},
{
"include": "#struct_block"
},
{
"include": "#union_block"
},
{
"include": "#enum_block"
},
{
"include": "source.cpp#access_control_keywords"
},
{
"include": "#block"
},
{
"include": "#static_assert"
},
{
"include": "#assembly"
},
{
"include": "#function_pointer"
},
{
"include": "#switch_statement"
},
{
"include": "source.cpp#goto_statement"
},
{
"include": "#evaluation_context"
},
{
"include": "source.cpp#label"
}
]
},
"function_call": {
"begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<11>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*\\s*+)((?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)\\b(?<!(?:\\W|^)(?:reinterpret_cast|atomic_noexcept|uint_least16_t|uint_least32_t|uint_least64_t|atomic_cancel|atomic_commit|uint_least8_t|uint_fast16_t|uint_fast32_t|int_least16_t|int_least32_t|int_least64_t|uint_fast64_t|thread_local|int_fast16_t|int_fast32_t|int_fast64_t|synchronized|uint_fast8_t|dynamic_cast|int_least8_t|int_fast8_t|static_cast|suseconds_t|const_cast|useconds_t|constinit|co_return|uintmax_t|constexpr|consteval|constexpr|consteval|protected|namespace|blksize_t|co_return|in_addr_t|in_port_t|uintptr_t|template|noexcept|continue|co_await|co_yield|unsigned|u_quad_t|blkcnt_t|uint16_t|uint32_t|uint64_t|intptr_t|intmax_t|volatile|register|restrict|explicit|volatile|noexcept|operator|decltype|typename|requires|co_await|co_yield|reflexpr|swblk_t|virtual|ssize_t|concept|mutable|fixpt_t|int16_t|int32_t|int64_t|uint8_t|typedef|daddr_t|caddr_t|qaddr_t|default|nlink_t|segsz_t|u_short|wchar_t|private|__asm__|alignas|alignof|mutable|nullptr|clock_t|mode_t|public|size_t|double|quad_t|static|time_t|module|import|export|extern|inline|xor_eq|and_eq|return|friend|not_eq|signed|struct|int8_t|ushort|switch|u_long|typeid|u_char|sizeof|bitand|delete|ino_t|key_t|pid_t|off_t|uid_t|short|break|catch|compl|while|false|class|union|const|or_eq|const|throw|bitor|u_int|using|div_t|dev_t|gid_t|float|long|goto|uint|id_t|case|auto|void|enum|true|char|id_t|NULL|this|bool|else|for|new|not|xor|and|asm|int|try|do|if|or))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(((?<!<)<(?!<)(?:(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<11>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?(\\()",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#scope_resolution_function_call_inner_generated"
}
]
},
"10": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"11": {
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"15": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {
},
"5": {
"name": "entity.name.function.call.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"function_definition": {
"begin": "(?:(?:^|\\G|(?<=[;}]))|(?<=>|\\*/))\\s*+(?:((?<!\\w)template(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)|(?:thread_local|volatile|register|restrict|static|extern|const))(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*)(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<52>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<52>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:__(?:cdec|clrcal|stdcal|fastcal|thiscal|vectorcal)l)?)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<52>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*\\s*+)((?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)\\b(?<!(?:\\W|^)(?:reinterpret_cast|atomic_noexcept|uint_least16_t|uint_least32_t|uint_least64_t|atomic_cancel|atomic_commit|uint_least8_t|uint_fast16_t|uint_fast32_t|int_least16_t|int_least32_t|int_least64_t|uint_fast64_t|thread_local|int_fast16_t|int_fast32_t|int_fast64_t|synchronized|uint_fast8_t|dynamic_cast|int_least8_t|int_fast8_t|static_cast|suseconds_t|const_cast|useconds_t|constinit|co_return|uintmax_t|constexpr|consteval|constexpr|consteval|protected|namespace|blksize_t|co_return|in_addr_t|in_port_t|uintptr_t|template|noexcept|continue|co_await|co_yield|unsigned|u_quad_t|blkcnt_t|uint16_t|uint32_t|uint64_t|intptr_t|intmax_t|volatile|register|restrict|explicit|volatile|noexcept|operator|decltype|typename|requires|co_await|co_yield|reflexpr|swblk_t|virtual|ssize_t|concept|mutable|fixpt_t|int16_t|int32_t|int64_t|uint8_t|typedef|daddr_t|caddr_t|qaddr_t|default|nlink_t|segsz_t|u_short|wchar_t|private|__asm__|alignas|alignof|mutable|nullptr|clock_t|mode_t|public|size_t|double|quad_t|static|time_t|module|import|export|extern|inline|xor_eq|and_eq|return|friend|not_eq|signed|struct|int8_t|ushort|switch|u_long|typeid|u_char|sizeof|bitand|delete|ino_t|key_t|pid_t|off_t|uid_t|short|break|catch|compl|while|false|class|union|const|or_eq|const|throw|bitor|u_int|using|div_t|dev_t|gid_t|float|long|goto|uint|id_t|case|auto|void|enum|true|char|id_t|NULL|this|bool|else|for|new|not|xor|and|asm|int|try|do|if|or))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=\\()",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.cpp"
},
"1": {
"name": "storage.type.template.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"13": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"14": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"15": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"17": {
"name": "comment.block.cpp"
},
"18": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"19": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"23": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"24": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"25": {
},
"26": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"27": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"28": {
"name": "comment.block.cpp"
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"30": {
},
"31": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"32": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"33": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"34": {
"name": "comment.block.cpp"
},
"35": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"36": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"37": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"38": {
"name": "comment.block.cpp"
},
"39": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"40": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"41": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"42": {
"name": "comment.block.cpp"
},
"43": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"44": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"45": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"46": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"47": {
"name": "comment.block.cpp"
},
"48": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"49": {
"patterns": [
{
"include": "source.cpp#scope_resolution_function_definition_inner_generated"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"50": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"51": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"52": {
},
"53": {
"name": "entity.name.function.definition.cpp"
},
"54": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"55": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"56": {
"name": "comment.block.cpp"
},
"57": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"7": {
"patterns": [
{
"captures": {
"1": {
"name": "storage.modifier.$1.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?<!\\w)(?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)|(?:thread_local|volatile|register|restrict|static|extern|const))(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)"
}
]
},
"8": {
"name": "storage.modifier.$8.cpp"
},
"9": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.function.definition.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
}
},
"name": "meta.head.function.definition.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.cpp"
}
},
"contentName": "meta.function.definition.parameters",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#parameter_or_maybe_value"
},
{
"include": "source.cpp#comma"
},
{
"include": "#evaluation_context"
}
]
},
{
"captures": {
"1": {
"name": "punctuation.definition.function.return-type.cpp"
},
"10": {
"name": "comment.block.cpp"
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"12": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"17": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"18": {
},
"19": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"23": {
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"8": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
}
},
"match": "(?<=^|\\))\\s+{0,1}(->)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<23>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<23>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
}
},
"name": "meta.body.function.definition.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.function.definition.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"function_parameter_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#parameter"
},
{
"include": "source.cpp#comma"
}
]
},
"function_pointer": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()(\\*)\\s+{0,1}((?:(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)?)\\s+{0,1}(?:(\\[)(\\w*)(])\\s+{0,1})*(\\))\\s+{0,1}(\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {
},
"14": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"18": {
},
"19": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"20": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"22": {
"name": "comment.block.cpp"
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"24": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"28": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"32": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"34": {
"name": "variable.other.definition.pointer.function.cpp"
},
"35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(\\))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[\\n),;=>{])(?!\\()|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
}
]
},
"function_pointer_parameter": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()(\\*)\\s+{0,1}((?:(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)?)\\s+{0,1}(?:(\\[)(\\w*)(])\\s+{0,1})*(\\))\\s+{0,1}(\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {
},
"14": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"18": {
},
"19": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"20": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"22": {
"name": "comment.block.cpp"
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"24": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"28": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"32": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"34": {
"name": "variable.parameter.pointer.function.cpp"
},
"35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(\\))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[\\n),;=>{])(?!\\()|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
}
]
},
"gcc_attributes": {
"begin": "__attribute(?:__)?\\s*\\(\\s*\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "\\)\\s*\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"beginCaptures": {
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
},
{
"include": "#ever_present_context"
}
]
},
{
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
},
"match": "(using)\\s+((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))"
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#ever_present_context"
}
]
},
"inheritance_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"match": ",",
"name": "punctuation.separator.delimiter.comma.inheritance.cpp"
},
{
"match": "(?<!\\w)p(?:rotected|rivate|ublic)(?!\\w)",
"name": "storage.type.modifier.access.$0.cpp"
},
{
"match": "(?<!\\w)virtual(?!\\w)",
"name": "storage.type.modifier.virtual.cpp"
},
{
"captures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"11": {
"patterns": [
{
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+"
}
]
},
"12": {
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"4": {
"patterns": [
{
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+"
}
]
},
"5": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"6": {
"patterns": [
{
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+"
}
]
},
"7": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"8": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
}
},
"match": "(?<=protected|virtual|private|public|[,:])\\s+{0,1}(?!p(?:rotected|rivate|ublic)|virtual)(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?(((?:\\s*+/\\*(?:[^*]++|\\*+(?!/))*+\\*/\\s*+)+)|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))(((?:\\s*+/\\*(?:[^*]++|\\*+(?!/))*+\\*/\\s*+)+)|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<12>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)(((?:\\s*+/\\*(?:[^*]++|\\*+(?!/))*+\\*/\\s*+)+)|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<12>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))"
}
]
},
"lambdas": {
"begin": "(?:(?<=\\S|^)(?<![]\"\\&)*>\\[\\w])|(?<=(?:\\W|^)return))\\s+{0,1}(\\[(?!\\[| *+\"| *+\\d))((?:[^]\\[]|((?<!\\[)\\[(?!\\[)(?:[^]\\[]*+\\g<3>?)++]))*+)(](?!((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)[];=\\[]))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.capture.begin.lambda.cpp"
},
"2": {
"name": "meta.lambda.capture.cpp",
"patterns": [
{
"include": "source.cpp#the_this_keyword"
},
{
"captures": {
"1": {
"name": "variable.parameter.capture.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.separator.delimiter.comma.cpp"
},
"7": {
"name": "keyword.operator.assignment.cpp"
}
},
"match": "((?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?=]|\\z|$)|(,))|(=))"
},
{
"include": "#evaluation_context"
}
]
},
"3": {
},
"4": {
"name": "punctuation.definition.capture.end.lambda.cpp"
},
"5": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
"name": "comment.block.cpp"
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "(?<=[;}])|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.definition.parameters.begin.lambda.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.parameters.end.lambda.cpp"
}
},
"name": "meta.function.definition.parameters.lambda.cpp",
"patterns": [
{
"include": "#function_parameter_context"
}
]
},
{
"match": "(?<!\\w)(?:constexpr|consteval|mutable)(?!\\w)",
"name": "storage.modifier.lambda.$0.cpp"
},
{
"begin": "->",
"beginCaptures": {
"0": {
"name": "punctuation.definition.lambda.return-type.cpp"
}
},
"end": "(?=\\{)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"include": "#comments"
},
{
"match": "\\S+",
"name": "storage.type.return-type.lambda.cpp"
}
]
},
{
"begin": "\\{",
"beginCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
}
},
"end": "}|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
}
},
"name": "meta.function.definition.body.lambda.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"line": {
"begin": "^((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(#)\\s+{0,1}line\\b",
"beginCaptures": {
"0": {
"name": "keyword.control.directive.line.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "punctuation.definition.directive.cpp"
}
},
"end": "(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.preprocessor.line.cpp",
"patterns": [
{
"include": "#string_context"
},
{
"include": "#preprocessor_number_literal"
},
{
"include": "source.cpp#line_continuation_character"
}
]
},
"line_comment": {
"begin": "\\s*+(//)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.cpp"
}
},
"end": "(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "comment.line.double-slash.cpp",
"patterns": [
{
"include": "source.cpp#line_continuation_character"
}
]
},
"macro": {
"begin": "^(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(#)\\s+{0,1}define)\\b\\s+{0,1}((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.define.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.definition.directive.cpp"
},
"7": {
"name": "entity.name.function.preprocessor.cpp"
}
},
"end": "(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.preprocessor.macro.cpp",
"patterns": [
{
"captures": {
"1": {
"name": "punctuation.definition.parameters.begin.preprocessor.cpp"
},
"2": {
"name": "meta.function.preprocessor.parameters.cpp",
"patterns": [
{
"captures": {
"1": {
"name": "variable.parameter.preprocessor.cpp"
}
},
"match": "(?<=[(,])\\s+{0,1}((?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)\\s+{0,1}"
},
{
"match": ",",
"name": "punctuation.separator.parameters.cpp"
},
{
"match": "\\.\\.\\.",
"name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp"
}
]
},
"3": {
"name": "punctuation.definition.parameters.end.preprocessor.cpp"
}
},
"match": "\\G\\s+{0,1}(\\()([^(]*)(\\))"
},
{
"include": "#macro_context"
},
{
"include": "source.cpp#macro_argument"
}
]
},
"macro_context": {
"patterns": [
{
"include": "source.cpp.embedded.macro"
}
]
},
"method_access": {
"begin": "(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)this(?!\\w))|((?:(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*|(?<=[])]))\\s+{0,1}))(?:(\\.\\*?)|(->\\*?))((?:(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\s+{0,1}(?:\\.\\*?|->\\*?)\\s+{0,1})*)\\s+{0,1}(~?(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)\\s+{0,1}(\\()",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"10": {
"name": "entity.name.function.member.cpp"
},
"11": {
"name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.access.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
},
"9": {
"patterns": [
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.property.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
}
},
"match": "(?<=\\.\\*?|->\\*??)\\s+{0,1}(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)this(?!\\w))|((?:(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*|(?<=[])]))\\s+{0,1}))(?:(\\.\\*?)|(->\\*?))"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.access.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
}
},
"match": "(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)this(?!\\w))|((?:(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*|(?<=[])]))\\s+{0,1}))(?:(\\.\\*?)|(->\\*?))"
},
{
"include": "source.cpp#member_access"
},
{
"include": "#method_access"
}
]
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"ms_attributes": {
"begin": "__declspec\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"beginCaptures": {
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
},
{
"include": "#ever_present_context"
}
]
},
{
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
},
"match": "(using)\\s+((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))"
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#ever_present_context"
}
]
},
"namespace_block": {
"begin": "((?<!\\w)namespace(?!\\w))",
"beginCaptures": {
"0": {
"name": "meta.head.namespace.cpp"
},
"1": {
"name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.block.namespace.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
}
},
"name": "meta.head.namespace.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#attributes_context"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#scope_resolution_namespace_block_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {
},
"5": {
"name": "entity.name.namespace.cpp"
},
"6": {
"name": "punctuation.separator.scope-resolution.namespace.block.cpp"
},
"7": {
"name": "storage.modifier.inline.cpp"
}
},
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<4>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*\\s*+)\\s+{0,1}((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))\\s+{0,1}(?:(::)\\s+{0,1}(inline))?"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
}
},
"name": "meta.body.namespace.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.namespace.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"noexcept_operator": {
"begin": "((?<!\\w)noexcept(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
}
},
"contentName": "meta.arguments.operator.noexcept",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"operator_overload": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:__(?:cdec|clrcal|stdcal|fastcal|thiscal|vectorcal)l)?)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)(operator)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)(?:(?:(delete\\[]|delete|new\\[]|<=>|<<=|new|>>=|->\\*|/=|%=|&=|>=|\\|=|\\+\\+|--|\\(\\)|\\[]|->|\\+\\+|<<|>>|--|<=|\\^=|==|!=|&&|\\|\\||\\+=|-=|\\*=|[!%\\&*-\\-/<=>^|~])|((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:\\[])?)))|(\"\")((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[(<])",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.operator-overload.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"15": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"16": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
},
"18": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"20": {
"name": "comment.block.cpp"
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"22": {
},
"23": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"24": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"28": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"32": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"33": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"34": {
"name": "comment.block.cpp"
},
"35": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"36": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"37": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"38": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"39": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"40": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"41": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"42": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"43": {
"name": "comment.block.cpp"
},
"44": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"45": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.operator.cpp"
},
{
"include": "#template_call_range"
}
]
},
"46": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"47": {
},
"48": {
"name": "keyword.other.operator.overload.cpp"
},
"49": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"5": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"50": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"51": {
"name": "comment.block.cpp"
},
"52": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"53": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.operator-overload.cpp"
},
{
"include": "#template_call_range"
}
]
},
"54": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"55": {
},
"56": {
"name": "entity.name.operator.cpp"
},
"57": {
"name": "entity.name.operator.type.cpp"
},
"58": {
"patterns": [
{
"match": "\\*",
"name": "entity.name.operator.type.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "entity.name.operator.type.reference.cpp"
}
]
},
"59": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"60": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"61": {
"name": "comment.block.cpp"
},
"62": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"63": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"64": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"65": {
"name": "comment.block.cpp"
},
"66": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"67": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"68": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"69": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"70": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"71": {
"name": "entity.name.operator.type.array.cpp"
},
"72": {
"name": "entity.name.operator.custom-literal.cpp"
},
"73": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"74": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"75": {
"name": "comment.block.cpp"
},
"76": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"77": {
"name": "entity.name.operator.custom-literal.cpp"
},
"78": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"79": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"80": {
"name": "comment.block.cpp"
},
"81": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.function.definition.special.operator-overload.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"name": "meta.head.function.definition.special.operator-overload.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#template_call_range"
},
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.operator-overload",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
},
{
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "keyword.other.default.function.cpp"
},
"7": {
"name": "keyword.other.delete.function.cpp"
}
},
"match": "(=)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(default)|(delete))"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"name": "meta.body.function.definition.special.operator-overload.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.function.definition.special.operator-overload.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"operators": {
"patterns": [
{
"begin": "((?<!\\w)sizeof(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)alignof(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
}
},
"contentName": "meta.arguments.operator.alignof",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)alignas(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
}
},
"contentName": "meta.arguments.operator.alignas",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)typeid(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
}
},
"contentName": "meta.arguments.operator.typeid",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)noexcept(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
}
},
"contentName": "meta.arguments.operator.noexcept",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "\\b(sizeof\\.\\.\\.)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof.variadic",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "--",
"name": "keyword.operator.decrement.cpp"
},
{
"match": "\\+\\+",
"name": "keyword.operator.increment.cpp"
},
{
"match": "(?:[-%*+]|(?<!\\()/)=",
"name": "keyword.operator.assignment.compound.cpp"
},
{
"match": "(?:[\\&^]|<<|>>|\\|)=",
"name": "keyword.operator.assignment.compound.bitwise.cpp"
},
{
"match": "<<|>>",
"name": "keyword.operator.bitwise.shift.cpp"
},
{
"match": "!=|<=|>=|==|[<>]",
"name": "keyword.operator.comparison.cpp"
},
{
"match": "&&|!|\\|\\|",
"name": "keyword.operator.logical.cpp"
},
{
"match": "[\\&^|~]",
"name": "keyword.operator.bitwise.cpp"
},
{
"include": "source.cpp#assignment_operator"
},
{
"match": "[-%*+/]",
"name": "keyword.operator.arithmetic.cpp"
},
{
"include": "#ternary_operator"
}
]
},
"parameter": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=\\w)",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"name": "meta.parameter.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#string_context"
},
{
"include": "#function_pointer_parameter"
},
{
"include": "#decltype"
},
{
"include": "source.cpp#vararg_ellipses"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "#storage_types"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
"12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"15": {
"name": "entity.name.type.parameter.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"name": "storage.modifier.specifier.parameter.cpp"
},
"3": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?:(thread_local|volatile|register|restrict|static|extern|const)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:\\s*+(?<!\\w)(?:(?:(?:(unsigned|wchar_t|double|signed|short|float|auto|void|long|char|bool|int)|(uint_least32_t|uint_least64_t|uint_least16_t|uint_fast64_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|uint_fast16_t|uint_fast32_t|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|int_fast8_t|suseconds_t|useconds_t|uintmax_t|in_port_t|uintmax_t|in_addr_t|blksize_t|uintptr_t|intmax_t|intptr_t|blkcnt_t|intmax_t|u_quad_t|uint16_t|uint32_t|uint64_t|ssize_t|fixpt_t|qaddr_t|u_short|int16_t|int32_t|int64_t|uint8_t|daddr_t|caddr_t|swblk_t|clock_t|segsz_t|nlink_t|time_t|u_long|ushort|quad_t|mode_t|size_t|u_char|int8_t|u_int|uid_t|off_t|pid_t|gid_t|dev_t|div_t|key_t|ino_t|id_t|uint))|(pthread_(?:rwlockattr_|mutexattr_|condattr_|rwlock_|mutex_|cond_|attr_|once_|key_|)t))|([A-Z_a-z]\\w*_t))(?!\\w)|((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\b\\b(?<!(?:\\W|^)(?:thread_local|volatile|register|restrict|static|extern|const))))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[),=])"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#scope_resolution_parameter_inner_generated"
},
{
"match": "struct|class|union|enum",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"beginCaptures": {
},
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "=",
"name": "keyword.operator.assignment.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "variable.parameter.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?<![(,:\\s])((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[\\n),=\\[])"
},
{
"include": "#attributes_context"
},
{
"begin": "\\[",
"beginCaptures": {
"0": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
"end": "]|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
}
},
"name": "meta.bracket.square.array.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b(?<!(?:\\W|^)(?:struct|class|union|enum))",
"name": "entity.name.type.parameter.cpp"
},
{
"include": "#template_call_range"
},
{
"captures": {
"0": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
"name": "comment.block.cpp"
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*]"
},
{
"include": "#ever_present_context"
}
]
},
"parameter_or_maybe_value": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=\\w)",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"name": "meta.parameter.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#function_pointer_parameter"
},
{
"include": "source.cpp#memory_operators"
},
{
"include": "#builtin_storage_type_initilizer"
},
{
"include": "#curly_initializer"
},
{
"include": "#decltype"
},
{
"include": "source.cpp#vararg_ellipses"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "#storage_types"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
"12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"15": {
"name": "entity.name.type.parameter.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"name": "storage.modifier.specifier.parameter.cpp"
},
"3": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?:(thread_local|volatile|register|restrict|static|extern|const)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:\\s*+(?<!\\w)(?:(?:(?:(unsigned|wchar_t|double|signed|short|float|auto|void|long|char|bool|int)|(uint_least32_t|uint_least64_t|uint_least16_t|uint_fast64_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|uint_fast16_t|uint_fast32_t|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|int_fast8_t|suseconds_t|useconds_t|uintmax_t|in_port_t|uintmax_t|in_addr_t|blksize_t|uintptr_t|intmax_t|intptr_t|blkcnt_t|intmax_t|u_quad_t|uint16_t|uint32_t|uint64_t|ssize_t|fixpt_t|qaddr_t|u_short|int16_t|int32_t|int64_t|uint8_t|daddr_t|caddr_t|swblk_t|clock_t|segsz_t|nlink_t|time_t|u_long|ushort|quad_t|mode_t|size_t|u_char|int8_t|u_int|uid_t|off_t|pid_t|gid_t|dev_t|div_t|key_t|ino_t|id_t|uint))|(pthread_(?:rwlockattr_|mutexattr_|condattr_|rwlock_|mutex_|cond_|attr_|once_|key_|)t))|([A-Z_a-z]\\w*_t))(?!\\w)|((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\b\\b(?<!(?:\\W|^)(?:thread_local|volatile|register|restrict|static|extern|const))))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[),=])"
},
{
"include": "#storage_types"
},
{
"include": "#function_call"
},
{
"include": "source.cpp#scope_resolution_parameter_inner_generated"
},
{
"match": "struct|class|union|enum",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"beginCaptures": {
},
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "variable.parameter.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?<![(,:\\s])((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[),=\\[]|//|(?:\\n|$))"
},
{
"include": "#attributes_context"
},
{
"begin": "\\[",
"beginCaptures": {
"0": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
"end": "]|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
}
},
"name": "meta.bracket.square.array.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b(?<!(?:\\W|^)(?:struct|class|union|enum))",
"name": "entity.name.type.parameter.cpp"
},
{
"include": "#template_call_range"
},
{
"captures": {
"0": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
"name": "comment.block.cpp"
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*]"
},
{
"include": "#evaluation_context"
},
{
"include": "#ever_present_context"
}
]
},
"parentheses": {
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.cpp"
}
},
"name": "meta.parens.cpp",
"patterns": [
{
"include": "source.cpp#over_qualified_types"
},
{
"match": "(?<!:):(?!:)",
"name": "punctuation.separator.colon.range-based.cpp"
},
{
"include": "#evaluation_context"
}
]
},
"pragma": {
"begin": "^((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(#)\\s+{0,1}pragma\\b",
"beginCaptures": {
"0": {
"name": "keyword.control.directive.pragma.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "punctuation.definition.directive.cpp"
}
},
"end": "(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.preprocessor.pragma.cpp",
"patterns": [
{
"include": "#comments"
},
{
"include": "#string_context"
},
{
"match": "[$A-Z_a-z][-$\\w]*",
"name": "entity.other.attribute-name.pragma.preprocessor.cpp"
},
{
"include": "#preprocessor_number_literal"
},
{
"include": "source.cpp#line_continuation_character"
}
]
},
"preprocessor_conditional_context": {
"patterns": [
{
"include": "#preprocessor_conditional_defined"
},
{
"include": "#comments"
},
{
"include": "source.cpp#language_constants"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#d9bc4796b0b_preprocessor_number_literal"
},
{
"include": "#operators"
},
{
"include": "source.cpp#predefined_macros"
},
{
"include": "source.cpp#macro_name"
},
{
"include": "source.cpp#line_continuation_character"
}
]
},
"preprocessor_conditional_defined": {
"begin": "((?<!\\w)defined(?!\\w))(\\()",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.conditional.defined.cpp"
},
"2": {
"name": "punctuation.section.parens.control.defined.cpp"
}
},
"end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$)))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parens.control.defined.cpp"
}
},
"patterns": [
{
"include": "source.cpp#macro_name"
}
]
},
"preprocessor_conditional_parentheses": {
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.cpp"
}
},
"name": "meta.parens.preprocessor.conditional.cpp"
},
"preprocessor_conditional_range": {
"begin": "^((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(#)\\s+{0,1}(if(?:n?def|))",
"beginCaptures": {
"0": {
"name": "keyword.control.directive.conditional.$6.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "punctuation.definition.directive.cpp"
},
"6": {
}
},
"contentName": "meta.preprocessor.conditional",
"end": "(?<!\\\\)(?:(?=\\n)|(?<=(?:^|[^\\\\])\\n)(?=$))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"include": "#preprocessor_conditional_context"
}
]
},
"preprocessor_context": {
"patterns": [
{
"include": "source.cpp#pragma_mark"
},
{
"include": "#pragma"
},
{
"include": "source.cpp#include"
},
{
"include": "#line"
},
{
"include": "#diagnostic"
},
{
"include": "source.cpp#undef"
},
{
"include": "#preprocessor_conditional_range"
},
{
"include": "source.cpp#single_line_macro"
},
{
"include": "#macro"
},
{
"include": "source.cpp#preprocessor_conditional_standalone"
},
{
"include": "source.cpp#macro_argument"
}
]
},
"sizeof_operator": {
"begin": "((?<!\\w)sizeof(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"sizeof_variadic_operator": {
"begin": "\\b(sizeof\\.\\.\\.)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof.variadic",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"square_brackets": {
"begin": "([A-Z_a-z][0-9A-Z_a-z]*|(?<=[])]))?(\\[)(?!])",
"beginCaptures": {
"1": {
"name": "variable.other.object"
},
"2": {
"name": "punctuation.definition.begin.bracket.square"
}
},
"end": "]|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.end.bracket.square"
}
},
"name": "meta.bracket.square.access",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"static_assert": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)static_assert|_Static_assert(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"10": {
"name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp"
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "keyword.other.static_assert.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
}
},
"patterns": [
{
"begin": "(,)\\s+{0,1}(?=(?:L|u8?|U\\s+{0,1}\")?)",
"beginCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"end": "(?=\\))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.static_assert.message.cpp",
"patterns": [
{
"include": "#string_context"
}
]
},
{
"include": "#evaluation_context"
}
]
},
"storage_types": {
"patterns": [
{
"include": "source.cpp#storage_specifiers"
},
{
"include": "source.cpp#inline_builtin_storage_type"
},
{
"include": "#decltype"
},
{
"include": "source.cpp#typename"
}
]
},
"string_context": {
"patterns": [
{
"begin": "((?:u8??|[LU])?)\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"end": "(\")(?:((?:[A-Za-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)|(_(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*))?|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
},
"2": {
"name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp"
},
"3": {
"name": "keyword.other.suffix.literal.user-defined.string.cpp"
}
},
"name": "string.quoted.double.cpp",
"patterns": [
{
"match": "\\\\(?:u\\h{4}|U\\h{8})",
"name": "constant.character.escape.cpp"
},
{
"match": "\\\\[\"'?\\\\abfnrtv]",
"name": "constant.character.escape.cpp"
},
{
"match": "\\\\[0-7]{1,3}",
"name": "constant.character.escape.cpp"
},
{
"captures": {
"1": {
"name": "constant.character.escape.cpp"
},
"2": {
"name": "invalid.illegal.unknown-escape.cpp"
}
},
"match": "(\\\\x0*\\h{2}(?!\\h))|(\\\\x\\h*)"
},
{
"include": "source.cpp#string_escapes_context_c"
}
]
},
{
"begin": "(?<!\\h)((?:u8??|[LU])?)'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"end": "(')(?:((?:[A-Za-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)|(_(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*))?|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
},
"2": {
"name": "keyword.other.suffix.literal.user-defined.reserved.character.cpp"
},
"3": {
"name": "keyword.other.suffix.literal.user-defined.character.cpp"
}
},
"name": "string.quoted.single.cpp",
"patterns": [
{
"captures": {
"1": {
"name": "constant.character.escape.cpp"
},
"2": {
"name": "invalid.illegal.unknown-escape.cpp"
}
},
"match": "(\\\\x0*\\h{2}(?!\\h))|(\\\\x\\h*)"
},
{
"include": "source.cpp#string_escapes_context_c"
},
{
"include": "source.cpp#line_continuation_character"
}
]
},
{
"begin": "((?:[LUu]8?)?R)\"(?:(?:_r|re)|regex)\\(",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"end": "\\)(?:(?:_r|re)|regex)\"|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.double.raw.regex.cpp",
"patterns": [
{
"include": "source.regexp.python"
}
]
},
{
"begin": "((?:[LUu]8?)?R)\"(?:glsl|GLSL)\\(",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"end": "\\)(?:glsl|GLSL)\"|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "meta.string.quoted.double.raw.glsl.cpp",
"patterns": [
{
"include": "source.glsl"
}
]
},
{
"begin": "((?:[LUu]8?)?R)\"(?:[Pp]?(?:sql|SQL)|d[dm]l)\\(",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"end": "\\)(?:[Pp]?(?:sql|SQL)|d[dm]l)\"|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "meta.string.quoted.double.raw.sql.cpp",
"patterns": [
{
"include": "source.sql"
}
]
},
{
"begin": "((?:u8??|[LU])?R)\"(?:([^\\t ()\\\\]{0,16})|([^\\t ()\\\\]*))\\(",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin"
},
"1": {
"name": "meta.encoding"
},
"3": {
"name": "invalid.illegal.delimiter-too-long"
}
},
"end": "(\\)\\2(\\3)\")(?:((?:[A-Za-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)|(_(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*))?|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end"
},
"2": {
"name": "invalid.illegal.delimiter-too-long"
},
"3": {
"name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp"
},
"4": {
"name": "keyword.other.suffix.literal.user-defined.string.cpp"
}
},
"name": "string.quoted.double.raw"
}
]
},
"struct_block": {
"begin": "((?<!\\w)struct(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?=\\{)|(?:((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*+)?(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(:(?!:)))?)",
"beginCaptures": {
"0": {
"name": "meta.head.struct.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)"
},
{
"captures": {
"1": {
"name": "entity.name.type.struct.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?=[:{]|$)"
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.struct.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"name": "meta.head.struct.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"name": "meta.body.struct.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.struct.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"switch_conditional_parentheses": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp"
}
},
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp"
}
},
"name": "meta.conditional.switch.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"switch_statement": {
"begin": "((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)switch(?!\\w))",
"beginCaptures": {
"0": {
"name": "meta.head.switch.cpp"
},
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"5": {
"name": "keyword.control.switch.cpp"
}
},
"end": "(?:(?<=}|%>|\\?\\?>)|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.block.switch.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
}
},
"name": "meta.head.switch.cpp",
"patterns": [
{
"include": "#switch_conditional_parentheses"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.switch.cpp"
}
},
"name": "meta.body.switch.cpp",
"patterns": [
{
"include": "#default_statement"
},
{
"include": "#case_statement"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.switch.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"template_call_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#template_call_range"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#language_constants"
},
{
"include": "source.cpp#scope_resolution_template_call_inner_generated"
},
{
"include": "#operators"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma_in_template_argument"
},
{
"include": "source.cpp#qualified_type"
}
]
},
"template_call_range": {
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
"template_definition": {
"begin": "(?<!\\w)(template)\\s+{0,1}(<)",
"beginCaptures": {
"1": {
"name": "storage.type.template.cpp"
},
"2": {
"name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.definition.cpp"
}
},
"name": "meta.template.definition.cpp",
"patterns": [
{
"begin": "(?<=\\w)\\s+{0,1}<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"include": "#template_definition_context"
}
]
},
"template_definition_context": {
"patterns": [
{
"include": "source.cpp#scope_resolution_template_definition_inner_generated"
},
{
"include": "source.cpp#template_definition_argument"
},
{
"include": "source.cpp#template_argument_defaulted"
},
{
"include": "source.cpp#template_call_innards"
},
{
"include": "#evaluation_context"
}
]
},
"ternary_operator": {
"applyEndPatternLast": 1,
"begin": "\\?",
"beginCaptures": {
"0": {
"name": "keyword.operator.ternary.cpp"
}
},
"end": ":|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "keyword.operator.ternary.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#method_access"
},
{
"include": "source.cpp#member_access"
},
{
"include": "source.cpp#predefined_macros"
},
{
"include": "#operators"
},
{
"include": "source.cpp#memory_operators"
},
{
"include": "source.cpp#wordlike_operators"
},
{
"include": "source.cpp#type_casting_operators"
},
{
"include": "source.cpp#control_flow_keywords"
},
{
"include": "source.cpp#exception_keywords"
},
{
"include": "source.cpp#the_this_keyword"
},
{
"include": "source.cpp#language_constants"
},
{
"include": "#builtin_storage_type_initilizer"
},
{
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
},
{
"include": "source.cpp#functional_specifiers_pre_parameters"
},
{
"include": "#storage_types"
},
{
"include": "#lambdas"
},
{
"include": "#attributes_context"
},
{
"include": "#parentheses"
},
{
"include": "#function_call"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"include": "#square_brackets"
},
{
"include": "source.cpp#semicolon"
},
{
"include": "source.cpp#comma"
}
]
},
"typedef_class": {
"begin": "((?<!\\w)typedef(?!\\w))\\s+{0,1}(?=(?<!\\w)class(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"begin": "((?<!\\w)class(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?=\\{)|(?:((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*+)?(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(:(?!:)))?)",
"beginCaptures": {
"0": {
"name": "meta.head.class.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)"
},
{
"captures": {
"1": {
"name": "entity.name.type.class.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?=[:{]|$)"
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.class.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"name": "meta.head.class.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"name": "meta.body.class.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.class.cpp",
"patterns": [
{
"captures": {
"1": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"14": {
"name": "entity.name.type.alias.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))"
},
{
"match": ","
}
]
}
]
}
]
},
"typedef_function_pointer": {
"begin": "((?<!\\w)typedef(?!\\w))\\s+{0,1}(?=.*\\(\\*\\s*(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\s*\\))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*+)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<18>|(?:[^\"'/<>]|/[^*])++)*>)?(?![.:<\\w]))(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()(\\*)\\s+{0,1}((?:(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*)?)\\s+{0,1}(?:(\\[)(\\w*)(])\\s+{0,1})*(\\))\\s+{0,1}(\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:struct|class|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "source.cpp#number_literal"
},
{
"include": "#string_context"
},
{
"include": "source.cpp#comma"
},
{
"include": "source.cpp#scope_resolution_inner_generated"
},
{
"begin": "<",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": ">|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {
},
"14": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"18": {
},
"19": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"20": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"22": {
"name": "comment.block.cpp"
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"24": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"28": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"32": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"34": {
"name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
},
"35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(\\))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?=[\\n),;=>{])(?!\\()|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
}
]
}
]
},
"typedef_struct": {
"begin": "((?<!\\w)typedef(?!\\w))\\s+{0,1}(?=(?<!\\w)struct(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"begin": "((?<!\\w)struct(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?=\\{)|(?:((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*+)?(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(:(?!:)))?)",
"beginCaptures": {
"0": {
"name": "meta.head.struct.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)"
},
{
"captures": {
"1": {
"name": "entity.name.type.struct.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?=[:{]|$)"
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.struct.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"name": "meta.head.struct.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"name": "meta.body.struct.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.struct.cpp",
"patterns": [
{
"captures": {
"1": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"14": {
"name": "entity.name.type.alias.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))"
},
{
"match": ","
}
]
}
]
}
]
},
"typedef_union": {
"begin": "((?<!\\w)typedef(?!\\w))\\s+{0,1}(?=(?<!\\w)union(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"patterns": [
{
"begin": "((?<!\\w)union(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?=\\{)|(?:((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*+)?(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(:(?!:)))?)",
"beginCaptures": {
"0": {
"name": "meta.head.union.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)"
},
{
"captures": {
"1": {
"name": "entity.name.type.union.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?=[:{]|$)"
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.union.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"name": "meta.head.union.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"name": "meta.body.union.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.union.cpp",
"patterns": [
{
"captures": {
"1": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"captures": {
"1": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(?:&((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)){2,}&",
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "&",
"name": "storage.modifier.reference.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"14": {
"name": "entity.name.type.alias.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "(((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)?(?:[\\&*]((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*[\\&*])?((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))"
},
{
"match": ","
}
]
}
]
}
]
},
"typeid_operator": {
"begin": "((?<!\\w)typeid(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
}
},
"contentName": "meta.arguments.operator.typeid",
"end": "\\)|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"union_block": {
"begin": "((?<!\\w)union(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:(?=\\{)|(?:((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?((?:(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))*+)?(?:((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(:(?!:)))?)",
"beginCaptures": {
"0": {
"name": "meta.head.union.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"11": {
"patterns": [
{
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
}
},
"match": "((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)"
},
{
"captures": {
"1": {
"name": "entity.name.type.union.cpp"
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"match": "((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)(?:((?<!\\w)final(?!\\w))((?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?=[:{]|$)"
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"16": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"2": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "source.cpp#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "source.cpp#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
}
},
"end": "(?:(?:(?<=}|%>|\\?\\?>)\\s+{0,1}(;)|(;))|(?=[];=>\\[]))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.union.cpp",
"patterns": [
{
"begin": "\\G ?",
"beginCaptures": {
},
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"name": "meta.head.union.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"beginCaptures": {
},
"end": "}|%>|\\?\\?>|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"name": "meta.body.union.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=}|%>|\\?\\?>)\\s*",
"beginCaptures": {
},
"end": "\\s*(?=;)|(?=(?<!\\\\)\\n)",
"endCaptures": {
},
"name": "meta.tail.union.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"using_namespace": {
"begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<6>|(?:[^\"'/<>]|/[^*])++)*>)\\s*+)?::)*\\s*+)?((?<!\\w)(?:[A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[0-9A-Z_a-z]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w))(?=[\\n;])",
"beginCaptures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp"
},
"3": {
"patterns": [
{
"include": "source.cpp#scope_resolution_namespace_using_inner_generated"
}
]
},
"4": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
},
"5": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
},
"7": {
"name": "entity.name.namespace.cpp"
}
},
"end": ";|(?=(?<!\\\\)\\n)",
"endCaptures": {
"0": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.using-namespace.cpp"
}
},
"scopeName": "source.cpp.embedded.macro"
}