|
558 | 558 | }
|
559 | 559 | ]
|
560 | 560 | },
|
| 561 | + "templateLiteral": { |
| 562 | + "patterns": [ |
| 563 | + { |
| 564 | + "include": "#templateLiteralCall" |
| 565 | + }, |
| 566 | + { |
| 567 | + "contentName": "string.template.ts", |
| 568 | + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", |
| 569 | + "beginCaptures": { |
| 570 | + "1": { |
| 571 | + "name": "entity.name.function.tagged-template.ts" |
| 572 | + }, |
| 573 | + "2": { |
| 574 | + "name": "string.template.ts punctuation.definition.string.template.begin.ts" |
| 575 | + } |
| 576 | + }, |
| 577 | + "end": "`", |
| 578 | + "endCaptures": { |
| 579 | + "0": { |
| 580 | + "name": "string.template.ts punctuation.definition.string.template.end.ts" |
| 581 | + } |
| 582 | + }, |
| 583 | + "patterns": [ |
| 584 | + { |
| 585 | + "include": "#templateLiteralSubstitutionElement" |
| 586 | + }, |
| 587 | + { |
| 588 | + "include": "#stringCharacterEscape" |
| 589 | + } |
| 590 | + ] |
| 591 | + } |
| 592 | + ] |
| 593 | + }, |
| 594 | + "templateLiteralCall": { |
| 595 | + "patterns": [ |
| 596 | + { |
| 597 | + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", |
| 598 | + "end": "(?=`)", |
| 599 | + "patterns": [ |
| 600 | + { |
| 601 | + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", |
| 602 | + "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", |
| 603 | + "patterns": [ |
| 604 | + { |
| 605 | + "include": "#support-function-call-identifiers" |
| 606 | + }, |
| 607 | + { |
| 608 | + "name": "entity.name.function.tagged-template.ts", |
| 609 | + "match": "([_$[:alpha:]][_$[:alnum:]]*)" |
| 610 | + } |
| 611 | + ] |
| 612 | + }, |
| 613 | + { |
| 614 | + "include": "#typeArguments" |
| 615 | + } |
| 616 | + ] |
| 617 | + }, |
| 618 | + { |
| 619 | + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", |
| 620 | + "beginCaptures": { |
| 621 | + "1": { |
| 622 | + "name": "entity.name.function.tagged-template.ts" |
| 623 | + } |
| 624 | + }, |
| 625 | + "end": "(?=`)", |
| 626 | + "patterns": [ |
| 627 | + { |
| 628 | + "include": "#typeArguments" |
| 629 | + } |
| 630 | + ] |
| 631 | + } |
| 632 | + ] |
| 633 | + }, |
| 634 | + "templateLiteralSubstitutionElement": { |
| 635 | + "name": "meta.template.expression.ts", |
| 636 | + "begin": "\\${", |
| 637 | + "beginCaptures": { |
| 638 | + "0": { |
| 639 | + "name": "punctuation.definition.template-expression.begin.ts" |
| 640 | + } |
| 641 | + }, |
| 642 | + "end": "}", |
| 643 | + "endCaptures": { |
| 644 | + "0": { |
| 645 | + "name": "punctuation.definition.template-expression.end.ts" |
| 646 | + } |
| 647 | + }, |
| 648 | + "patterns": [ |
| 649 | + { |
| 650 | + "include": "#ngExpression" |
| 651 | + } |
| 652 | + ], |
| 653 | + "contentName": "meta.embedded.line.ts" |
| 654 | + }, |
| 655 | + "typeArguments": { |
| 656 | + "name": "meta.type.parameters.ts", |
| 657 | + "begin": "<", |
| 658 | + "beginCaptures": { |
| 659 | + "0": { |
| 660 | + "name": "punctuation.definition.typeparameters.begin.ts" |
| 661 | + } |
| 662 | + }, |
| 663 | + "end": ">", |
| 664 | + "endCaptures": { |
| 665 | + "0": { |
| 666 | + "name": "punctuation.definition.typeparameters.end.ts" |
| 667 | + } |
| 668 | + }, |
| 669 | + "patterns": [ |
| 670 | + { |
| 671 | + "include": "#typeArgumentsBody" |
| 672 | + } |
| 673 | + ] |
| 674 | + }, |
561 | 675 | "stringCharacterEscape": {
|
562 | 676 | "name": "constant.character.escape.ts",
|
563 | 677 | "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"
|
|
592 | 706 | },
|
593 | 707 | {
|
594 | 708 | "include": "#qstringDouble"
|
| 709 | + }, |
| 710 | + { |
| 711 | + "include": "#templateLiteral" |
595 | 712 | }
|
596 | 713 | ]
|
597 | 714 | },
|
|
776 | 893 | }
|
777 | 894 | ]
|
778 | 895 | },
|
| 896 | + "typeArgumentsBody": { |
| 897 | + "patterns": [ |
| 898 | + { |
| 899 | + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", |
| 900 | + "captures": { |
| 901 | + "0": { |
| 902 | + "name": "keyword.operator.type.ts" |
| 903 | + } |
| 904 | + } |
| 905 | + }, |
| 906 | + { |
| 907 | + "include": "#type" |
| 908 | + }, |
| 909 | + { |
| 910 | + "include": "#punctuationComma" |
| 911 | + } |
| 912 | + ] |
| 913 | + }, |
779 | 914 | "type": {
|
780 | 915 | "name": "meta.type.ts",
|
781 | 916 | "patterns": [
|
|
0 commit comments