From b56ec0d8e7500579715b1d4fb77849157eb79a23 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Thu, 11 Apr 2019 09:05:55 +0000 Subject: [PATCH] Fix CPP grammar and themes Part of #71821 --- extensions/cpp/cgmanifest.json | 4 +- extensions/cpp/syntaxes/c.tmLanguage.json | 194 +-- extensions/cpp/syntaxes/cpp.tmLanguage.json | 1111 +++++++++++++---- .../theme-defaults/themes/dark_plus.json | 7 +- .../theme-defaults/themes/hc_black.json | 7 +- .../theme-defaults/themes/light_plus.json | 7 +- .../themes/kimbie-dark-color-theme.json | 5 +- .../themes/dimmed-monokai-color-theme.json | 7 +- 8 files changed, 1028 insertions(+), 314 deletions(-) diff --git a/extensions/cpp/cgmanifest.json b/extensions/cpp/cgmanifest.json index 43485f926a8..3ab00d30368 100644 --- a/extensions/cpp/cgmanifest.json +++ b/extensions/cpp/cgmanifest.json @@ -6,11 +6,11 @@ "git": { "name": "jeff-hykin/cpp-textmate-grammar", "repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar", - "commitHash": "47f33650b7eee1cc3d5c9e72a85ac415797a08db" + "commitHash": "84a65f7cce43f15aceaf1854c5bcc779c8575fe7" } }, "license": "MIT", - "version": "1.6.7", + "version": "1.7.6", "description": "The files syntaxes/c.json and syntaxes/c++.json were derived from https://github.com/atom/language-c which was originally converted from the C TextMate bundle https://github.com/textmate/c.tmbundle." }, { diff --git a/extensions/cpp/syntaxes/c.tmLanguage.json b/extensions/cpp/syntaxes/c.tmLanguage.json index efb692081eb..b7213b949df 100644 --- a/extensions/cpp/syntaxes/c.tmLanguage.json +++ b/extensions/cpp/syntaxes/c.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/9de911d74546b9ae74c57e404515935a0405e696", + "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/d450ac8fb4bd1750389acfd88be341e1a91a02f3", "name": "C", "scopeName": "source.c", "patterns": [ @@ -27,6 +27,10 @@ { "include": "#storage_types" }, + { + "match": "typedef", + "name": "keyword.other.typedef.c" + }, { "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", "name": "storage.modifier.c" @@ -50,9 +54,6 @@ { "include": "#operators" }, - { - "include": "#operator_overload" - }, { "include": "#numbers" }, @@ -316,9 +317,9 @@ "include": "#parens" }, { - "begin": "(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|const|static|volatile|register|restrict|constexpr|extern|inline|mutable|friend|NULL|true|false|TRUE|FALSE|nullptr|class|struct|union|enum|explicit|virtual|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|atomic_cancel|atomic_commit|atomic_noexcept|concept|co_await|co_return|co_yield|export|import|module|reflexpr|requires|synchronized|thread_local|audit|axiom|transaction_safe|transaction_safe_dynamic)\\s*\\()(?=[a-zA-Z_][a-zA-Z0-9_]*\\s*\\()", - "end": "(?<=\\))", "name": "meta.function.c", + "begin": "(?\\]\\)]))\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\))))", - "captures": { - "1": { - "name": "variable.parameter.probably.defaulted.c" - }, - "2": { - "name": "variable.parameter.probably.c" - } - } + "include": "#probably_a_parameter" }, - "operator_overload": { - "begin": "((?:[a-zA-Z_][a-zA-Z0-9_]*\\s*(?:<(?:[\\s<>,\\w])*>\\s*)?::)*)(operator)((?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:new|new\\[\\]|delete|delete\\[\\])|[a-zA-Z_][a-zA-Z0-9_]*)))\\s*(\\()", - "beginCaptures": { + "member_access": { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", + "captures": { "1": { - "name": "entity.scope.c" + "name": "variable.other.object.access.c" }, "2": { - "name": "entity.name.operator.overload.c" + "name": "punctuation.separator.dot-access.c" }, "3": { - "name": "entity.name.operator.overloadee.c" + "name": "punctuation.separator.pointer-access.c" }, "4": { - "name": "punctuation.section.parameters.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.c" - } - }, - "name": "meta.function.definition.parameters.operator-overload.c", - "patterns": [ - { - "include": "#probably_a_parameter" + "patterns": [ + { + "include": "#member_access" + }, + { + "include": "#method_access" + }, + { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "name": "variable.other.object.access.c" + }, + "2": { + "name": "punctuation.separator.dot-access.c" + }, + "3": { + "name": "punctuation.separator.pointer-access.c" + } + } + } + ] }, - { - "include": "#function-innards" + "5": { + "name": "variable.other.member.c" } - ] + } }, - "access-method": { - "name": "meta.function-call.member.c", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", + "method_access": { + "contentName": "meta.function-call.member", + "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", "beginCaptures": { "1": { - "name": "variable.object.c" + "name": "variable.other.object.access.c" }, "2": { "name": "punctuation.separator.dot-access.c" @@ -424,20 +426,24 @@ "4": { "patterns": [ { - "match": "\\.", - "name": "punctuation.separator.dot-access.c" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.c" + "include": "#member_access" }, { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.object.c" + "include": "#method_access" }, { - "name": "everything.else", - "match": ".+" + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "name": "variable.other.object.access.c" + }, + "2": { + "name": "punctuation.separator.dot-access.c" + }, + "3": { + "name": "punctuation.separator.pointer-access.c" + } + } } ] }, @@ -448,9 +454,9 @@ "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" } }, - "end": "\\)", + "end": "(\\))", "endCaptures": { - "0": { + "1": { "name": "punctuation.section.arguments.end.bracket.round.function.member.c" } }, @@ -460,10 +466,10 @@ } ] }, - "access-member": { - "name": "variable.object.access.c", - "match": "(?:([a-zA-Z_][a-zA-Z0-9_]*)|(?<=\\]|\\)))\\s*(?:((?:\\.|\\.\\*))|((?:->|->\\*)))\\s*((?:[a-zA-Z_][a-zA-Z0-9_]*\\s*(?:\\.|->)\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\()", - "captures": { + "access-method": { + "name": "meta.function-call.member.c", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", + "beginCaptures": { "1": { "name": "variable.object.c" }, @@ -484,19 +490,33 @@ "name": "punctuation.separator.pointer-access.c" }, { - "match": "[a-zA-Z_][a-zA-Z0-9_]*", + "match": "[a-zA-Z_][a-zA-Z_0-9]*", "name": "variable.object.c" }, { - "match": ".+", - "name": "everything.else" + "name": "everything.else.c", + "match": ".+" } ] }, "5": { - "name": "variable.other.member.c" + "name": "entity.name.function.member.c" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" } - } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] }, "block": { "patterns": [ @@ -534,10 +554,10 @@ "include": "#preprocessor-rule-conditional-block" }, { - "include": "#access-method" + "include": "#method_access" }, { - "include": "#access-member" + "include": "#member_access" }, { "include": "#c_function_call" @@ -639,13 +659,13 @@ } }, "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.cpp" + "name": "comment.line.banner.cpp.c" }, { "begin": "(^[ \\t]+)?(?=//)", "beginCaptures": { "1": { - "name": "punctuation.whitespace.comment.leading.cpp" + "name": "punctuation.whitespace.comment.leading.cpp.c" } }, "end": "(?!\\G)", @@ -654,11 +674,11 @@ "begin": "//", "beginCaptures": { "0": { - "name": "punctuation.definition.comment.cpp" + "name": "punctuation.definition.comment.cpp.c" } }, "end": "(?=\\n)", - "name": "comment.line.double-slash.cpp", + "name": "comment.line.double-slash.cpp.c", "patterns": [ { "include": "#line_continuation_character" @@ -702,7 +722,7 @@ ] }, "parens": { - "name": "punctuation.section.parens", + "name": "punctuation.section.parens.c", "begin": "\\(", "beginCaptures": { "0": { @@ -722,7 +742,7 @@ ] }, "parens-block": { - "name": "punctuation.section.parens.block", + "name": "punctuation.section.parens.block.c", "begin": "\\(", "beginCaptures": { "0": { @@ -740,8 +760,8 @@ "include": "#block_innards" }, { - "match": "(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", "beginCaptures": { "1": { @@ -2103,10 +2123,10 @@ "include": "#storage_types" }, { - "include": "#access-method" + "include": "#method_access" }, { - "include": "#access-member" + "include": "#member_access" }, { "include": "#operators" diff --git a/extensions/cpp/syntaxes/cpp.tmLanguage.json b/extensions/cpp/syntaxes/cpp.tmLanguage.json index 74780872397..3b58f791cc4 100644 --- a/extensions/cpp/syntaxes/cpp.tmLanguage.json +++ b/extensions/cpp/syntaxes/cpp.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/47f33650b7eee1cc3d5c9e72a85ac415797a08db", + "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/84a65f7cce43f15aceaf1854c5bcc779c8575fe7", "name": "C++", "scopeName": "source.cpp", "patterns": [ @@ -124,7 +124,31 @@ "include": "#preprocessor-rule-conditional" }, { - "include": "#comments-c" + "match": "(?,\\w])*>\\s*", @@ -707,7 +790,7 @@ }, { "match": ",", - "name": "punctuation.separator.comma.template.argument.cpp" + "name": "comma.cpp punctuation.separator.template.argument.cpp" } ] } @@ -803,7 +886,7 @@ }, { "match": ",", - "name": "punctuation.separator.comma.template.argument.cpp" + "name": "comma.cpp punctuation.separator.template.argument.cpp" } ] }, @@ -854,13 +937,13 @@ "name": "storage.type.template.cpp" }, "5": { - "name": "punctuation.vararg-ellipses.template.definition.cpp" + "name": "ellipses.cpp punctuation.vararg-ellipses.template.definition.cpp" }, "6": { "name": "entity.name.type.template.cpp" }, "7": { - "name": "punctuation.separator.comma.template.argument.cpp" + "name": "comma.cpp punctuation.separator.template.argument.cpp" } } }, @@ -904,7 +987,7 @@ }, { "match": ",", - "name": "punctuation.separator.comma.template.argument.cpp" + "name": "comma.cpp punctuation.separator.template.argument.cpp" } ] }, @@ -919,16 +1002,16 @@ "begin": "((?\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", + "match": "(?:((?\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!auto[^(?-mix:\\w)]|void[^(?-mix:\\w)]|char[^(?-mix:\\w)]|short[^(?-mix:\\w)]|int[^(?-mix:\\w)]|signed[^(?-mix:\\w)]|unsigned[^(?-mix:\\w)]|long[^(?-mix:\\w)]|float[^(?-mix:\\w)]|double[^(?-mix:\\w)]|bool[^(?-mix:\\w)]|wchar_t[^(?-mix:\\w)]|u_char[^(?-mix:\\w)]|u_short[^(?-mix:\\w)]|u_int[^(?-mix:\\w)]|u_long[^(?-mix:\\w)]|ushort[^(?-mix:\\w)]|uint[^(?-mix:\\w)]|u_quad_t[^(?-mix:\\w)]|quad_t[^(?-mix:\\w)]|qaddr_t[^(?-mix:\\w)]|caddr_t[^(?-mix:\\w)]|daddr_t[^(?-mix:\\w)]|div_t[^(?-mix:\\w)]|dev_t[^(?-mix:\\w)]|fixpt_t[^(?-mix:\\w)]|blkcnt_t[^(?-mix:\\w)]|blksize_t[^(?-mix:\\w)]|gid_t[^(?-mix:\\w)]|in_addr_t[^(?-mix:\\w)]|in_port_t[^(?-mix:\\w)]|ino_t[^(?-mix:\\w)]|key_t[^(?-mix:\\w)]|mode_t[^(?-mix:\\w)]|nlink_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|pid_t[^(?-mix:\\w)]|off_t[^(?-mix:\\w)]|segsz_t[^(?-mix:\\w)]|swblk_t[^(?-mix:\\w)]|uid_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|clock_t[^(?-mix:\\w)]|size_t[^(?-mix:\\w)]|ssize_t[^(?-mix:\\w)]|time_t[^(?-mix:\\w)]|useconds_t[^(?-mix:\\w)]|suseconds_t[^(?-mix:\\w)]|pthread_attr_t[^(?-mix:\\w)]|pthread_cond_t[^(?-mix:\\w)]|pthread_condattr_t[^(?-mix:\\w)]|pthread_mutex_t[^(?-mix:\\w)]|pthread_mutexattr_t[^(?-mix:\\w)]|pthread_once_t[^(?-mix:\\w)]|pthread_rwlock_t[^(?-mix:\\w)]|pthread_rwlockattr_t[^(?-mix:\\w)]|pthread_t[^(?-mix:\\w)]|pthread_key_t[^(?-mix:\\w)]|int8_t[^(?-mix:\\w)]|int16_t[^(?-mix:\\w)]|int32_t[^(?-mix:\\w)]|int64_t[^(?-mix:\\w)]|uint8_t[^(?-mix:\\w)]|uint16_t[^(?-mix:\\w)]|uint32_t[^(?-mix:\\w)]|uint64_t[^(?-mix:\\w)]|int_least8_t[^(?-mix:\\w)]|int_least16_t[^(?-mix:\\w)]|int_least32_t[^(?-mix:\\w)]|int_least64_t[^(?-mix:\\w)]|uint_least8_t[^(?-mix:\\w)]|uint_least16_t[^(?-mix:\\w)]|uint_least32_t[^(?-mix:\\w)]|uint_least64_t[^(?-mix:\\w)]|int_fast8_t[^(?-mix:\\w)]|int_fast16_t[^(?-mix:\\w)]|int_fast32_t[^(?-mix:\\w)]|int_fast64_t[^(?-mix:\\w)]|uint_fast8_t[^(?-mix:\\w)]|uint_fast16_t[^(?-mix:\\w)]|uint_fast32_t[^(?-mix:\\w)]|uint_fast64_t[^(?-mix:\\w)]|intptr_t[^(?-mix:\\w)]|uintptr_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)])[a-zA-Z_]\\w*\\b(?!\\())", "captures": { "1": { - "name": "variable.other.object.access.cpp" + "name": "variable.language.this.cpp" }, "2": { - "name": "punctuation.separator.dot-access.cpp" + "name": "variable.other.object.access.cpp" }, "3": { - "name": "punctuation.separator.pointer-access.cpp" + "name": "punctuation.separator.dot-access.cpp" }, "4": { + "name": "punctuation.separator.pointer-access.cpp" + }, + "5": { "patterns": [ { - "include": "#member_access" - }, - { - "include": "#method_access" + "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?-mix:(?:(?:(?\\*|->))))", + "name": "variable.other.object.property.cpp" }, { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "match": "(?:((?\\*|->)))", "captures": { "1": { - "name": "variable.other.object.access.cpp" + "name": "variable.language.this.cpp" }, "2": { - "name": "punctuation.separator.dot-access.cpp" + "name": "variable.other.object.access.cpp" }, "3": { + "name": "punctuation.separator.dot-access.cpp" + }, + "4": { "name": "punctuation.separator.pointer-access.cpp" } } + }, + { + "include": "#member_access" + }, + { + "include": "#method_access" } ] }, - "5": { - "name": "variable.other.member.cpp" + "6": { + "name": "variable.other.property.cpp" } } }, "method_access": { "contentName": "meta.function-call.member", - "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", + "begin": "(?:((?\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", "beginCaptures": { "1": { - "name": "variable.other.object.access.cpp" + "name": "variable.language.this.cpp" }, "2": { - "name": "punctuation.separator.dot-access.cpp" + "name": "variable.other.object.access.cpp" }, "3": { - "name": "punctuation.separator.pointer-access.cpp" + "name": "punctuation.separator.dot-access.cpp" }, "4": { + "name": "punctuation.separator.pointer-access.cpp" + }, + "5": { "patterns": [ { - "include": "#member_access" - }, - { - "include": "#method_access" + "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?-mix:(?:(?:(?\\*|->))))", + "name": "variable.other.object.property.cpp" }, { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "match": "(?:((?\\*|->)))", "captures": { "1": { - "name": "variable.other.object.access.cpp" + "name": "variable.language.this.cpp" }, "2": { - "name": "punctuation.separator.dot-access.cpp" + "name": "variable.other.object.access.cpp" }, "3": { + "name": "punctuation.separator.dot-access.cpp" + }, + "4": { "name": "punctuation.separator.pointer-access.cpp" } } + }, + { + "include": "#member_access" + }, + { + "include": "#method_access" } ] }, - "5": { + "6": { "name": "entity.name.function.member.cpp" }, - "6": { + "7": { "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" } }, @@ -1277,7 +1380,7 @@ ] }, "lambdas": { - "begin": "((?:(?<=[^\\s]|^)(?", - "name": "meta.angle-brackets.cpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "include": "$base" - } - ] - }, "block": { "begin": "\\{", "beginCaptures": { @@ -1428,88 +1518,605 @@ "include": "#probably_a_parameter" }, { - "include": "#function-innards-c" + "include": "#function-innards-c" + } + ] + }, + { + "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.initializer-list.parameters.cpp" + } + }, + "end": "(?=\\{)", + "name": "meta.function.constructor.initializer-list.cpp", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + }, + "special_block": { + "patterns": [ + { + "include": "#attribute_cpp" + }, + { + "name": "meta.using-namespace.cpp", + "begin": "(?,\\w])*>\\s*)))?::)*\\s*))?((?,\\w])*>\\s*)))?::)*\\s*)\\s*(?:((?\\[\\]=]))", + "patterns": [ + { + "name": "meta.head.namespace.cpp", + "begin": "\\G", + "end": "((?:\\{|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" + } + } + }, + { + "name": "meta.body.namespace.cpp", + "begin": "(?<=\\{)", + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" + } + }, + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "name": "meta.tail.namespace.cpp", + "begin": "(?<=})[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + }, + { + "name": "meta.block.class.cpp", + "begin": "((((?\\[\\]=]))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "patterns": [ + { + "name": "meta.head.class.cpp", + "begin": "\\G", + "end": "((?:\\{|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.class.cpp" + } + }, + "patterns": [ + { + "match": ",", + "name": "comma.cpp punctuation.separator.delimiter.inhertance.cpp" + }, + { + "match": "(?:private|protected|public)", + "name": "storage.type.modifier.access.$0.cpp" + }, + { + "match": "(?<=private|protected|public|,|:)\\s*(?!(?:private|protected|public))((?)", + "endCaptures": { + "1": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "patterns": [ + { + "include": "#storage_types" + }, + { + "include": "#constants" + }, + { + "include": "#scope_resolution" + }, + { + "match": "(?\\[\\]=]))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "patterns": [ + { + "name": "meta.head.struct.cpp", + "begin": "\\G", + "end": "((?:\\{|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + } + }, + "patterns": [ + { + "match": ",", + "name": "comma.cpp punctuation.separator.delimiter.inhertance.cpp" + }, + { + "match": "(?:private|protected|public)", + "name": "storage.type.modifier.access.$0.cpp" + }, + { + "match": "(?<=private|protected|public|,|:)\\s*(?!(?:private|protected|public))((?)", + "endCaptures": { + "1": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "patterns": [ + { + "include": "#storage_types" + }, + { + "include": "#constants" + }, + { + "include": "#scope_resolution" + }, + { + "match": "(?,\\w])*>\\s*)))?::)*\\s*))?((?\\[\\]=]))", "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" - } - } - }, - { - "name": "meta.namespace-block.cpp", - "begin": "(?,\\w])*>\\s*)))?::)*\\s*)\\s*(?:((?|\\[|\\]|=))", "patterns": [ { - "begin": "(\\{)", - "beginCaptures": { + "name": "meta.head.union.cpp", + "begin": "\\G", + "end": "((?:\\{|(?=;)))", + "endCaptures": { "1": { - "name": "punctuation.definition.scope.cpp" + "name": "punctuation.section.block.begin.bracket.curly.union.cpp" } }, + "patterns": [ + { + "match": ",", + "name": "comma.cpp punctuation.separator.delimiter.inhertance.cpp" + }, + { + "match": "(?:private|protected|public)", + "name": "storage.type.modifier.access.$0.cpp" + }, + { + "match": "(?<=private|protected|public|,|:)\\s*(?!(?:private|protected|public))((?)", + "endCaptures": { + "1": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "patterns": [ + { + "include": "#storage_types" + }, + { + "include": "#constants" + }, + { + "include": "#scope_resolution" + }, + { + "match": "(?,\\w])*>\\s*)))?::)*\\s*)([a-zA-Z_]\\w*)\\s*(?:(<(?:[\\s<>,\\w])*>\\s*))?(::)))?\\s*((?\\[\\]=])))", + "end": "(?:(?:(?<=})\\s*(;)|(;))|(?=[;()>\\[\\]=]))", "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" } }, "patterns": [ { - "include": "#angle_brackets" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.inhertance.cpp" - }, - { - "match": "(?:private|protected|public)", - "name": "storage.type.modifier.access.$0.cpp" - }, - { - "match": "(?<=private|protected|public|,|:)\\s*(?!(?:private|protected|public))((?\\[\\]=]))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" } }, - "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)", - "name": "meta.extern-block.cpp", "patterns": [ { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.cpp" + "name": "meta.head.extern.cpp", + "begin": "\\G", + "end": "((?:\\{|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.extern.cpp" } }, - "end": "\\}|(?=\\s*#\\s*endif\\b)", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "name": "meta.body.extern.cpp", + "begin": "(?<=\\{)", + "end": "(\\})", "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.cpp" + "1": { + "name": "punctuation.section.block.end.bracket.curly.extern.cpp" } }, "patterns": [ { - "include": "#special_block" - }, + "include": "$base" + } + ] + }, + { + "name": "meta.tail.extern.cpp", + "begin": "(?<=})[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", + "patterns": [ { "include": "$base" } @@ -1832,7 +2513,7 @@ } ] }, - "comments-c": { + "comments": { "patterns": [ { "captures": { @@ -1959,7 +2640,7 @@ }, { "match": "(?-mix:(?,\\w])*>\\s*)))?)) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", "beginCaptures": { "1": { - "name": "keyword.operator.memory.new.cpp" + "name": "keyword.operator.wordlike.cpp memory.cpp keyword.operator.new.cpp" }, "2": { "patterns": [ @@ -3300,7 +3971,7 @@ }, { "match": ",", - "name": "punctuation.separator.comma.template.argument.cpp" + "name": "comma.cpp punctuation.separator.template.argument.cpp" } ] }, diff --git a/extensions/theme-defaults/themes/dark_plus.json b/extensions/theme-defaults/themes/dark_plus.json index 3e2c5ac607c..c66e666e2dc 100644 --- a/extensions/theme-defaults/themes/dark_plus.json +++ b/extensions/theme-defaults/themes/dark_plus.json @@ -68,7 +68,12 @@ }, { "name": "Control flow keywords", - "scope": "keyword.control", + "scope": [ + "keyword.control", + "keyword.operator.new.cpp", + "keyword.operator.delete.cpp", + "keyword.other.using" + ], "settings": { "foreground": "#C586C0" } diff --git a/extensions/theme-defaults/themes/hc_black.json b/extensions/theme-defaults/themes/hc_black.json index c34b0981fd6..74bf098818a 100644 --- a/extensions/theme-defaults/themes/hc_black.json +++ b/extensions/theme-defaults/themes/hc_black.json @@ -65,7 +65,12 @@ }, { "name": "Control flow keywords", - "scope": "keyword.control", + "scope": [ + "keyword.control", + "keyword.operator.new.cpp", + "keyword.operator.delete.cpp", + "keyword.other.using" + ], "settings": { "foreground": "#C586C0" } diff --git a/extensions/theme-defaults/themes/light_plus.json b/extensions/theme-defaults/themes/light_plus.json index 726cae4058d..c58e8c6f903 100644 --- a/extensions/theme-defaults/themes/light_plus.json +++ b/extensions/theme-defaults/themes/light_plus.json @@ -68,7 +68,12 @@ }, { "name": "Control flow keywords", - "scope": "keyword.control", + "scope": [ + "keyword.control", + "keyword.operator.new.cpp", + "keyword.operator.delete.cpp", + "keyword.other.using" + ], "settings": { "foreground": "#AF00DB" } diff --git a/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json b/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json index d4fbd2f7e2e..8b2110255f2 100644 --- a/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json +++ b/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json @@ -113,7 +113,10 @@ "name": "Keywords", "scope": [ "keyword", - "keyword.control" + "keyword.control", + "keyword.operator.new.cpp", + "keyword.operator.delete.cpp", + "keyword.other.using" ], "settings": { "foreground": "#98676a" diff --git a/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json b/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json index b50041d6cdd..e5088a0811e 100644 --- a/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json +++ b/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json @@ -255,7 +255,12 @@ }, { "name": "Keyword Control", - "scope": "keyword.control", + "scope": [ + "keyword.control", + "keyword.operator.new.cpp", + "keyword.operator.delete.cpp", + "keyword.other.using" + ], "settings": { "fontStyle": "", "foreground": "#9872A2" -- GitLab