|  | 
| 1125 | 1125 |       "end": "(?!\\G)(?=\\{|\\bwhere\\b|[;=])|$", | 
| 1126 | 1126 |       "name": "meta.function-result.swift", | 
| 1127 | 1127 |       "patterns": [ | 
|  | 1128 | +        { | 
|  | 1129 | +          "match": "\\bsending\\b", | 
|  | 1130 | +          "name": "storage.modifier.swift" | 
|  | 1131 | +        }, | 
| 1128 | 1132 |         { | 
| 1129 | 1133 |           "include": "#declarations-available-types" | 
| 1130 | 1134 |         } | 
|  | 
| 1195 | 1199 |       }, | 
| 1196 | 1200 |       "name": "meta.generic-argument-clause.swift", | 
| 1197 | 1201 |       "patterns": [ | 
|  | 1202 | +        { | 
|  | 1203 | +          "include": "#literals-numeric" | 
|  | 1204 | +        }, | 
| 1198 | 1205 |         { | 
| 1199 | 1206 |           "include": "#declarations-available-types" | 
| 1200 | 1207 |         } | 
|  | 
| 1221 | 1228 |         { | 
| 1222 | 1229 |           "include": "#declarations-generic-where-clause" | 
| 1223 | 1230 |         }, | 
|  | 1231 | +        { | 
|  | 1232 | +          "match": "\\blet\\b", | 
|  | 1233 | +          "name": "keyword.other.declaration-specifier.swift" | 
|  | 1234 | +        }, | 
| 1224 | 1235 |         { | 
| 1225 | 1236 |           "match": "\\beach\\b", | 
| 1226 | 1237 |           "name": "keyword.control.loop.swift" | 
|  | 
| 1435 | 1446 |           "begin": "\\G", | 
| 1436 | 1447 |           "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", | 
| 1437 | 1448 |           "patterns": [ | 
|  | 1449 | +            { | 
|  | 1450 | +              "include": "#attributes" | 
|  | 1451 | +            }, | 
| 1438 | 1452 |             { | 
| 1439 | 1453 |               "include": "#comments" | 
| 1440 | 1454 |             }, | 
|  | 
| 1466 | 1480 |       "end": "(?!\\G)(?!/[*/])|(?=[,={}]|(?!\\G)\\bwhere\\b)", | 
| 1467 | 1481 |       "name": "meta.inheritance-list.more-types", | 
| 1468 | 1482 |       "patterns": [ | 
|  | 1483 | +        { | 
|  | 1484 | +          "include": "#attributes" | 
|  | 1485 | +        }, | 
| 1469 | 1486 |         { | 
| 1470 | 1487 |           "include": "#comments" | 
| 1471 | 1488 |         }, | 
|  | 
| 1698 | 1715 |           "begin": ":\\s*(?!\\s)", | 
| 1699 | 1716 |           "end": "(?=[),])", | 
| 1700 | 1717 |           "patterns": [ | 
|  | 1718 | +            { | 
|  | 1719 | +              "match": "\\bsending\\b", | 
|  | 1720 | +              "name": "storage.modifier.swift" | 
|  | 1721 | +            }, | 
| 1701 | 1722 |             { | 
| 1702 | 1723 |               "include": "#declarations-available-types" | 
| 1703 | 1724 |             }, | 
|  | 
| 2748 | 2769 |           "name": "keyword.control.branch.swift" | 
| 2749 | 2770 |         }, | 
| 2750 | 2771 |         { | 
| 2751 |  | -          "match": "(?<!\\.)\\b(?:continue|break|fallthrough|return)\\b", | 
|  | 2772 | +          "match": "(?<!\\.)\\b(?:continue|break|fallthrough|return|yield)\\b", | 
| 2752 | 2773 |           "name": "keyword.control.transfer.swift" | 
| 2753 | 2774 |         }, | 
| 2754 | 2775 |         { | 
|  | 
| 2828 | 2849 |           "name": "storage.modifier.swift" | 
| 2829 | 2850 |         }, | 
| 2830 | 2851 |         { | 
| 2831 |  | -          "match": "\\binit[!?]|\\binit\\b|(?<!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b", | 
|  | 2852 | +          "match": "\\binit[!?]|\\binit\\b|(?<!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet|yielding\\s+borrow|yielding\\s+mutate)\\b", | 
| 2832 | 2853 |           "name": "storage.type.function.swift" | 
| 2833 | 2854 |         }, | 
| 2834 | 2855 |         { | 
|  | 
| 3014 | 3035 |             "1": { | 
| 3015 | 3036 |               "name": "punctuation.definition.string.begin.regexp.swift" | 
| 3016 | 3037 |             }, | 
| 3017 |  | -            "8": { | 
|  | 3038 | +            "3": { | 
|  | 3039 | +              "name": "punctuation.definition.string.end.regexp.swift" | 
|  | 3040 | +            } | 
|  | 3041 | +          }, | 
|  | 3042 | +          "match": "(/)(?!\\s)(?!/)(?:\\\\\\s(?=/)|(?<guts>(?>(?:\\\\Q(?:(?!\\\\E)(?!/).)*+(?:\\\\E|(?=/))|\\\\.|\\(\\?#[^)]*\\)|\\(\\?(?>\\{(?:[^{].*?|\\{[^{].*?}|\\{\\{[^{].*?}}|\\{\\{\\{[^{].*?}}}|\\{\\{\\{\\{[^{].*?}}}}|\\{\\{\\{\\{\\{.+?}}}}})})(?:\\[(?!\\d)\\w+])?[<>X]?\\)|\\[(?:\\\\.|[^]\\[\\\\]|\\[(?:\\\\.|[^]\\[\\\\]|\\[(?:\\\\.|[^]\\[\\\\]|\\[(?:\\\\.|[^]\\[\\\\])+])+])+])+]|\\(\\g<guts>?+\\)|(?:(?!/)[^()\\[\\\\])+)+))?+(?<!\\s))(/)", | 
|  | 3043 | +          "name": "string.regexp.line.swift" | 
|  | 3044 | +        }, | 
|  | 3045 | +        { | 
|  | 3046 | +          "captures": { | 
|  | 3047 | +            "0": { | 
|  | 3048 | +              "patterns": [ | 
|  | 3049 | +                { | 
|  | 3050 | +                  "include": "#literals-regular-expression-literal-regex-guts" | 
|  | 3051 | +                } | 
|  | 3052 | +              ] | 
|  | 3053 | +            }, | 
|  | 3054 | +            "1": { | 
|  | 3055 | +              "name": "punctuation.definition.string.begin.regexp.swift" | 
|  | 3056 | +            }, | 
|  | 3057 | +            "4": { | 
| 3018 | 3058 |               "name": "punctuation.definition.string.end.regexp.swift" | 
| 3019 | 3059 |             }, | 
| 3020 |  | -            "9": { | 
|  | 3060 | +            "5": { | 
| 3021 | 3061 |               "name": "invalid.illegal.returns-not-allowed.regexp" | 
| 3022 | 3062 |             } | 
| 3023 | 3063 |           }, | 
| 3024 |  | -          "match": "(?x)\n(?!/\\s)         # non-extended regex literals may not start with a space or tab\n(?!//)          # disambiguation with line comments (redundant since comment rules occur earlier)\n(((\\#+)?)/)     # (1) for captures, (2) for matching end, (3) for conditionals\n(\\\\\\s)? # (4) may start with an escaped space or tab\n(?<guts>\n  (?>   # no backtracking, avoids issues with negative lookbehind at end\n    (?:\n      \\\\Q\n        (?:(?!\\\\E)(?!/\\2).)*+\n        (?:\\\\E\n          # A quoted sequence may not have a closing E, in which case it extends to the end of the regex\n          | (?(3)|(?<!\\s))(?=/\\2)\n        )\n      | \\\\.\n      | \\(\\?\\#[^)]*\\)\n      | \\(\\?\n          # InterpolatedCallout\n          (?>(\\{(?:\\g<-1>|(?!{).*?)\\}))\n          (?:\\[(?!\\d)\\w+\\])?\n          [X<>]?\n        \\)\n      | (?<class>\\[ (?:\\\\. | [^\\[\\]] | \\g<class>)+ \\])\n      | \\(\\g<guts>?+\\)\n      | (?:(?!/\\2)[^()\\[\\\\])+  # any character (until end)\n    )+\n  )\n)?+\n# may end with a space only if it is an extended literal or contains only a single escaped space\n(?(3)|(?(5)(?<!\\s)))\n(/\\2)     # (12)\n| \\#+/.+(\\n)", | 
| 3025 |  | -          "name": "string.regexp.line.swift" | 
|  | 3064 | +          "match": "((#+)/)(?<guts>(?>(?:\\\\Q(?:(?!\\\\E)(?!/\\2).)*+(?:\\\\E|(?=/\\2))|\\\\.|\\(\\?#[^)]*\\)|\\(\\?(?>\\{(?:[^{].*?|\\{[^{].*?}|\\{\\{[^{].*?}}|\\{\\{\\{[^{].*?}}}|\\{\\{\\{\\{[^{].*?}}}}|\\{\\{\\{\\{\\{.+?}}}}})})(?:\\[(?!\\d)\\w+])?[<>X]?\\)|\\[(?:\\\\.|[^]\\[\\\\]|\\[(?:\\\\.|[^]\\[\\\\]|\\[(?:\\\\.|[^]\\[\\\\]|\\[(?:\\\\.|[^]\\[\\\\])+])+])+])+]|\\(\\g<guts>?+\\)|(?:(?!/\\2)[^()\\[\\\\])+)+))?+(/\\2)|#+/.+(\\n)", | 
|  | 3065 | +          "name": "string.regexp.line.extended.swift" | 
| 3026 | 3066 |         } | 
| 3027 | 3067 |       ] | 
| 3028 | 3068 |     }, | 
|  | 
0 commit comments