|  | 
| 225 | 225 |         { | 
| 226 | 226 |           "include": "#attributes-keyvalue" | 
| 227 | 227 |         }, | 
|  | 228 | +        { | 
|  | 229 | +          "include": "#attributes-attach" | 
|  | 230 | +        }, | 
| 228 | 231 |         { | 
| 229 | 232 |           "include": "#attributes-interpolated" | 
| 230 | 233 |         } | 
| 231 | 234 |       ] | 
| 232 | 235 |     }, | 
|  | 236 | +    "attributes-attach": { | 
|  | 237 | +      "begin": "(?<![:=])\\s*(\\{@attach\\s)", | 
|  | 238 | +      "captures": { | 
|  | 239 | +        "1": { | 
|  | 240 | +          "name": "entity.other.attribute-name.svelte" | 
|  | 241 | +        } | 
|  | 242 | +      }, | 
|  | 243 | +      "contentName": "meta.embedded.expression.svelte source.ts", | 
|  | 244 | +      "end": "(})", | 
|  | 245 | +      "patterns": [ | 
|  | 246 | +        { | 
|  | 247 | +          "include": "source.ts" | 
|  | 248 | +        } | 
|  | 249 | +      ] | 
|  | 250 | +    }, | 
| 233 | 251 |     "attributes-directives": { | 
| 234 | 252 |       "begin": "(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[$_[:alpha:]][-$_[:alnum:]]*(?=\\s*=))|((?:--)?[$_[:alpha:]][-$_[:alnum:]]*))((\\|\\w+)*)", | 
| 235 | 253 |       "beginCaptures": { | 
|  | 
| 738 | 756 |     "special-tags-modes": { | 
| 739 | 757 |       "patterns": [ | 
| 740 | 758 |         { | 
| 741 |  | -          "begin": "(?<=(if|key|then|catch|snippet|html|render).*?)\\G", | 
|  | 759 | +          "begin": "(?<=(if|key|then|catch|html|render).*?)\\G", | 
| 742 | 760 |           "end": "(?=})", | 
| 743 | 761 |           "name": "meta.embedded.expression.svelte source.ts", | 
| 744 | 762 |           "patterns": [ | 
|  | 
| 747 | 765 |             } | 
| 748 | 766 |           ] | 
| 749 | 767 |         }, | 
|  | 768 | +        { | 
|  | 769 | +          "begin": "(?<=snippet.*?)\\G", | 
|  | 770 | +          "end": "(?=})", | 
|  | 771 | +          "name": "meta.embedded.expression.svelte source.ts", | 
|  | 772 | +          "patterns": [ | 
|  | 773 | +            { | 
|  | 774 | +              "captures": { | 
|  | 775 | +                "1": { | 
|  | 776 | +                  "name": "entity.name.function.ts" | 
|  | 777 | +                } | 
|  | 778 | +              }, | 
|  | 779 | +              "match": "\\G\\s*([$_[:alpha:]][$_[:alnum:]]*)\\s*(?=<)" | 
|  | 780 | +            }, | 
|  | 781 | +            { | 
|  | 782 | +              "begin": "(?<=<)", | 
|  | 783 | +              "contentName": "meta.type.parameters.ts", | 
|  | 784 | +              "end": "(?=>)", | 
|  | 785 | +              "patterns": [ | 
|  | 786 | +                { | 
|  | 787 | +                  "include": "source.ts" | 
|  | 788 | +                } | 
|  | 789 | +              ] | 
|  | 790 | +            }, | 
|  | 791 | +            { | 
|  | 792 | +              "begin": "(?<=>\\s*\\()", | 
|  | 793 | +              "end": "(?=})", | 
|  | 794 | +              "name": "meta.embedded.expression.svelte source.ts", | 
|  | 795 | +              "patterns": [ | 
|  | 796 | +                { | 
|  | 797 | +                  "include": "source.ts" | 
|  | 798 | +                } | 
|  | 799 | +              ] | 
|  | 800 | +            }, | 
|  | 801 | +            { | 
|  | 802 | +              "begin": "\\G", | 
|  | 803 | +              "end": "(?=})", | 
|  | 804 | +              "name": "meta.embedded.expression.svelte source.ts", | 
|  | 805 | +              "patterns": [ | 
|  | 806 | +                { | 
|  | 807 | +                  "include": "source.ts" | 
|  | 808 | +                } | 
|  | 809 | +              ] | 
|  | 810 | +            } | 
|  | 811 | +          ] | 
|  | 812 | +        }, | 
| 750 | 813 |         { | 
| 751 | 814 |           "begin": "(?<=const.*?)\\G", | 
| 752 | 815 |           "end": "(?=})", | 
|  | 
0 commit comments