@@ -1597,42 +1597,6 @@ repository:
1597
1597
patterns :
1598
1598
- include : ' #expression'
1599
1599
1600
- comment :
1601
- patterns :
1602
- - name : comment.block.documentation.ts
1603
- begin : /\*\*(?!/)
1604
- end : \*/
1605
- captures :
1606
- ' 0 ' : {name: punctuation.definition.comment.ts}
1607
- patterns :
1608
- - include : ' #docblock'
1609
- - name : comment.block.ts
1610
- begin : /\*
1611
- end : \*/
1612
- captures :
1613
- ' 0 ' : {name: punctuation.definition.comment.ts}
1614
- - begin : (^[ \t]+)?(?=//)
1615
- beginCaptures :
1616
- ' 1 ' : {name: punctuation.whitespace.comment.leading.ts}
1617
- end : (?=$)
1618
- patterns :
1619
- - name : comment.line.double-slash.ts
1620
- begin : //
1621
- beginCaptures :
1622
- ' 0 ' : {name: punctuation.definition.comment.ts}
1623
- end : (?=$)
1624
-
1625
- docblock :
1626
- patterns :
1627
- - name : storage.type.class.jsdoc
1628
- match : (?<!\w)@(abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbes|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exports?|extends|extension|extension_for|extensionfor|external|file|fileoverview|final|fires|for|function|global|host|ignore|implements|inherit[Dd]oc|inner|instance|interface|kind|lends|license|listens|main|member|memberof|method|mixex|mixins?|module|name|namespace|nocollapse|nosideeffects|override|overview|package|param|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce)\b
1629
- - match : ({\b(?:[_$[:alpha:]][_$[:alnum:]]*)\b})\s+\b([_$[:alpha:]][_$[:alnum:]]*)\b\s*((?:(?!\*\/).)*)
1630
- captures :
1631
- ' 0 ' : {name: other.meta.jsdoc}
1632
- ' 1 ' : {name: entity.name.type.instance.jsdoc}
1633
- ' 2 ' : {name: variable.other.jsdoc}
1634
- ' 3 ' : {name: other.description.jsdoc}
1635
-
1636
1600
literal :
1637
1601
name : literal.ts
1638
1602
patterns :
@@ -1728,4 +1692,179 @@ repository:
1728
1692
name : storage.type.property.ts
1729
1693
match : (?<!\.|\$)\b(get|set)\b(?!\$)
1730
1694
1695
+ comment :
1696
+ patterns :
1697
+ - name : comment.block.documentation.ts
1698
+ begin : /\*\*(?!/)
1699
+ end : \*/
1700
+ captures :
1701
+ ' 0 ' : {name: punctuation.definition.comment.ts}
1702
+ patterns :
1703
+ - include : ' #docblock'
1704
+ - name : comment.block.ts
1705
+ begin : /\*
1706
+ end : \*/
1707
+ captures :
1708
+ ' 0 ' : {name: punctuation.definition.comment.ts}
1709
+ - begin : (^[ \t]+)?(?=//)
1710
+ beginCaptures :
1711
+ ' 1 ' : {name: punctuation.whitespace.comment.leading.ts}
1712
+ end : (?=$)
1713
+ patterns :
1714
+ - name : comment.line.double-slash.ts
1715
+ begin : //
1716
+ beginCaptures :
1717
+ ' 0 ' : {name: punctuation.definition.comment.ts}
1718
+ end : (?=$)
1719
+
1720
+ docblock :
1721
+ patterns :
1722
+ - name : storage.type.class.jsdoc
1723
+ match : (?<!\w)@(abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbes|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exports?|extends|extension|extension_for|extensionfor|external|file|fileoverview|final|fires|for|function|global|host|ignore|implements|inherit[Dd]oc|inner|instance|interface|kind|lends|license|listens|main|member|memberof|method|mixex|mixins?|module|name|namespace|nocollapse|nosideeffects|override|overview|package|param|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce)\b
1724
+ - match : |-
1725
+ (?x)
1726
+ (?:(?<=@param)|(?<=@type))
1727
+ \s+
1728
+ ({(?:
1729
+ \* | # {*} any type
1730
+ \? | # {?} unknown type
1731
+
1732
+ (?: # Check for a prefix
1733
+ \? | # {?string} nullable type
1734
+ ! | # {!string} non-nullable type
1735
+ \.{3} # {...string} variable number of parameters
1736
+ )?
1737
+
1738
+ (?:
1739
+ \( # Opening bracket of multiple types with parenthesis {(string|number)}
1740
+ [a-zA-Z_$]+
1741
+ (?:
1742
+ (?:
1743
+ [\w$]*
1744
+ (?:\[\])? # {(string[]|number)} type application, an array of strings or a number
1745
+ ) |
1746
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1747
+ )
1748
+ (?:
1749
+ [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback
1750
+ [a-zA-Z_$]+
1751
+ (?:
1752
+ (?:
1753
+ [\w$]*
1754
+ (?:\[\])? # {(string|number[])} type application, a string or an array of numbers
1755
+ ) |
1756
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1757
+ )
1758
+ )*
1759
+ \) |
1760
+ [a-zA-Z_$]+
1761
+ (?:
1762
+ (?:
1763
+ [\w$]*
1764
+ (?:\[\])? # {string[]|number} type application, an array of strings or a number
1765
+ ) |
1766
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1767
+ )
1768
+ (?:
1769
+ [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback
1770
+ [a-zA-Z_$]+
1771
+ (?:
1772
+ [\w$]* |
1773
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1774
+ )
1775
+ )*
1776
+ )
1777
+ # Check for suffix
1778
+ (?:\[\])? # {string[]} type application, an array of strings
1779
+ =? # {string=} optional parameter
1780
+ )})
1781
+ \s+
1782
+ (
1783
+ \[ # [foo] optional parameter
1784
+ \s*
1785
+ (?:
1786
+ [a-zA-Z_$][\w$]*
1787
+ (?:
1788
+ (?:\[\])? # Foo[].bar properties within an array
1789
+ \. # Foo.Bar namespaced parameter
1790
+ [a-zA-Z_$][\w$]*
1791
+ )*
1792
+ (?:
1793
+ \s*
1794
+ = # [foo=bar] Default parameter value
1795
+ \s*
1796
+ [\w$\s]*
1797
+ )?
1798
+ )
1799
+ \s*
1800
+ \] |
1801
+ (?:
1802
+ [a-zA-Z_$][\w$]*
1803
+ (?:
1804
+ (?:\[\])? # Foo[].bar properties within an array
1805
+ \. # Foo.Bar namespaced parameter
1806
+ [a-zA-Z_$][\w$]*
1807
+ )*
1808
+ )?
1809
+ )
1810
+ \s+
1811
+ ((?:(?!\*\/).)*) # The type description
1812
+ captures:
1813
+ '0': { name: other.meta.jsdoc }
1814
+ '1': { name: entity.name.type.instance.jsdoc }
1815
+ '2': { name: variable.other.jsdoc }
1816
+ '3': { name: other.description.jsdoc }
1817
+ - match : |-
1818
+ (?x)
1819
+ ({(?:
1820
+ \* | # {*} any type
1821
+ \? | # {?} unknown type
1822
+
1823
+ (?: # Check for a prefix
1824
+ \? | # {?string} nullable type
1825
+ ! | # {!string} non-nullable type
1826
+ \.{3} # {...string} variable number of parameters
1827
+ )?
1828
+
1829
+ (?:
1830
+ \( # Opening bracket of multiple types with parenthesis {(string|number)}
1831
+ [a-zA-Z_$]+
1832
+ (?:
1833
+ [\w$]* |
1834
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1835
+ )
1836
+ (?:
1837
+ [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback
1838
+ [a-zA-Z_$]+
1839
+ (?:
1840
+ [\w$]* |
1841
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1842
+ )
1843
+ )*
1844
+ \) |
1845
+ [a-zA-Z_$]+
1846
+ (?:
1847
+ [\w$]* |
1848
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1849
+ )
1850
+ (?:
1851
+ [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback
1852
+ [a-zA-Z_$]+
1853
+ (?:
1854
+ [\w$]* |
1855
+ <[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application
1856
+ )
1857
+ )*
1858
+ )
1859
+ # Check for suffix
1860
+ (?:\[\])? # {string[]} type application, an array of strings
1861
+ =? # {string=} optional parameter
1862
+ )})
1863
+ \s+
1864
+ ((?:(?!\*\/).)*) # The type description
1865
+ captures:
1866
+ '0': { name: other.meta.jsdoc }
1867
+ '1': { name: entity.name.type.instance.jsdoc }
1868
+ '2': { name: other.description.jsdoc }
1869
+
1731
1870
...
0 commit comments