Skip to content

Commit 6a7e5db

Browse files
committed
Update C++ grammar
Get the fix for traling spaces. Fixes microsoft#75069
1 parent c56224d commit 6a7e5db

5 files changed

Lines changed: 1732 additions & 329 deletions

File tree

extensions/cpp/cgmanifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
"git": {
77
"name": "jeff-hykin/cpp-textmate-grammar",
88
"repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar",
9-
"commitHash": "85ef67461698ec3c0b64411a53705daa0b68fc13"
9+
"commitHash": "ccdbfcae7454d7f00e9a6ebe0c3df3ab4e19e33b"
1010
}
1111
},
1212
"license": "MIT",
13-
"version": "1.11.3",
13+
"version": "1.11.7",
1414
"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."
1515
},
1616
{

extensions/cpp/syntaxes/c.tmLanguage.json

Lines changed: 119 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
55
"Once accepted there, we are happy to receive an update request."
66
],
7-
"version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/f88ac364a66b447bc16b966a66af52ae8b31795c",
7+
"version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/5a701cf1028d9c517fa2ee5210628935e0d7b19a",
88
"name": "C",
99
"scopeName": "source.c",
1010
"patterns": [
@@ -847,8 +847,102 @@
847847
"name": "storage.type.built-in.c"
848848
},
849849
{
850-
"match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",
850+
"match": "(?-mix:\\b(enum|struct|union)\\b)",
851851
"name": "storage.type.$1.c"
852+
},
853+
{
854+
"name": "meta.asm.c",
855+
"begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)\\s*(\\()",
856+
"beginCaptures": {
857+
"1": {
858+
"name": "storage.type.asm.c"
859+
},
860+
"2": {
861+
"name": "storage.modifier.c"
862+
},
863+
"3": {
864+
"name": "punctuation.section.parens.begin.bracket.round.assembly.c"
865+
}
866+
},
867+
"end": "(\\))",
868+
"endCaptures": {
869+
"1": {
870+
"name": "punctuation.section.parens.end.bracket.round.assembly.c"
871+
}
872+
},
873+
"patterns": [
874+
{
875+
"name": "string.quoted.double.c",
876+
"contentName": "meta.embedded.assembly.c",
877+
"begin": "(R?)(\")",
878+
"beginCaptures": {
879+
"1": {
880+
"name": "meta.encoding.c"
881+
},
882+
"2": {
883+
"name": "punctuation.definition.string.begin.assembly.c"
884+
}
885+
},
886+
"end": "(\")",
887+
"endCaptures": {
888+
"1": {
889+
"name": "punctuation.definition.string.end.assembly.c"
890+
}
891+
},
892+
"patterns": [
893+
{
894+
"include": "source.asm"
895+
},
896+
{
897+
"include": "source.x86"
898+
},
899+
{
900+
"include": "source.x86_64"
901+
},
902+
{
903+
"include": "source.arm"
904+
},
905+
{
906+
"include": "#backslash_escapes"
907+
},
908+
{
909+
"include": "#string_escaped_char"
910+
},
911+
{
912+
"match": "(?=not)possible"
913+
}
914+
]
915+
},
916+
{
917+
"begin": "(\\()",
918+
"beginCaptures": {
919+
"1": {
920+
"name": "punctuation.section.parens.begin.bracket.round.assembly.inner.c"
921+
}
922+
},
923+
"end": "(\\))",
924+
"endCaptures": {
925+
"1": {
926+
"name": "punctuation.section.parens.end.bracket.round.assembly.inner.c"
927+
}
928+
},
929+
"patterns": [
930+
{
931+
"include": "#evaluation_context"
932+
}
933+
]
934+
},
935+
{
936+
"match": ":",
937+
"name": "punctuation.separator.delimiter.colon.assembly.c"
938+
},
939+
{
940+
"include": "#comments_context"
941+
},
942+
{
943+
"include": "#comments"
944+
}
945+
]
852946
}
853947
]
854948
},
@@ -2239,6 +2333,10 @@
22392333
}
22402334
]
22412335
},
2336+
"backslash_escapes": {
2337+
"match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
2338+
"name": "constant.character.escape.c"
2339+
},
22422340
"conditional_context": {
22432341
"patterns": [
22442342
{
@@ -2249,8 +2347,18 @@
22492347
}
22502348
]
22512349
},
2350+
"evalutation_context": {
2351+
"patterns": [
2352+
{
2353+
"include": "#function-call-innards"
2354+
},
2355+
{
2356+
"include": "$base"
2357+
}
2358+
]
2359+
},
22522360
"member_access": {
2253-
"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(?!\\())",
2361+
"match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\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(?!\\())",
22542362
"captures": {
22552363
"1": {
22562364
"name": "variable.other.object.access.c"
@@ -2292,7 +2400,7 @@
22922400
},
22932401
"method_access": {
22942402
"contentName": "meta.function-call.member.c",
2295-
"begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
2403+
"begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
22962404
"beginCaptures": {
22972405
"1": {
22982406
"name": "variable.other.object.access.c"
@@ -3371,7 +3479,7 @@
33713479
"end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
33723480
"patterns": [
33733481
{
3374-
"match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3482+
"match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
33753483
"captures": {
33763484
"1": {
33773485
"name": "keyword.other.unit.hexadecimal.c"
@@ -3427,7 +3535,7 @@
34273535
}
34283536
},
34293537
{
3430-
"match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3538+
"match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
34313539
"captures": {
34323540
"2": {
34333541
"name": "constant.numeric.decimal.c",
@@ -3480,7 +3588,7 @@
34803588
}
34813589
},
34823590
{
3483-
"match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3591+
"match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
34843592
"captures": {
34853593
"1": {
34863594
"name": "keyword.other.unit.binary.c"
@@ -3503,7 +3611,7 @@
35033611
}
35043612
},
35053613
{
3506-
"match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3614+
"match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
35073615
"captures": {
35083616
"1": {
35093617
"name": "keyword.other.unit.octal.c"
@@ -3526,7 +3634,7 @@
35263634
}
35273635
},
35283636
{
3529-
"match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3637+
"match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
35303638
"captures": {
35313639
"1": {
35323640
"name": "keyword.other.unit.hexadecimal.c"
@@ -3567,7 +3675,7 @@
35673675
}
35683676
},
35693677
{
3570-
"match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3678+
"match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
35713679
"captures": {
35723680
"2": {
35733681
"name": "constant.numeric.decimal.c",
@@ -3605,7 +3713,7 @@
36053713
}
36063714
},
36073715
{
3608-
"match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",
3716+
"match": "(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-])+",
36093717
"name": "invalid.illegal.constant.numeric"
36103718
}
36113719
]

0 commit comments

Comments
 (0)