Skip to content

Commit 41478e6

Browse files
committed
constructor and new keyword do start the constructor/new signature independent of presence of (
Fixes #171
1 parent c7d3c02 commit 41478e6

File tree

5 files changed

+449
-88
lines changed

5 files changed

+449
-88
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -481,12 +481,15 @@ repository:
481481

482482
method-declaration:
483483
name: meta.method.declaration.ts
484-
begin: (?<!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|((?:(\*)\s*)?((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
484+
begin: (?<!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[[^\]]*\]))\s*(\??))?\s*[\(\<]))
485485
beginCaptures:
486486
'1': { name: storage.modifier.ts } # captures keyword (abstract)
487487
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)
488488
'3': { name: storage.modifier.async.ts } # captures keyword (async)
489489
'4': { name: storage.type.property.ts } # captures keyword (get|set)
490+
'5': { name: keyword.operator.new.ts } # captures keyword (new)
491+
'6': { name: storage.type.ts } # captures keyword (constructor)
492+
'7': { name: keyword.generator.asterisk.ts } # captures keyword (*)
490493
end: '(?=\}|;|,)|(?<=\})'
491494
patterns:
492495
- include: '#method-declaration-name'
@@ -499,12 +502,15 @@ repository:
499502

500503
method-overload-declaration:
501504
name: meta.method.overload.declaration.ts
502-
begin: (?<!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|((?:(\*)\s*)?((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
505+
begin: (?<!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[[^\]]*\]))\s*(\??))?\s*[\(\<]))
503506
beginCaptures:
504507
'1': { name: storage.modifier.ts } # captures keyword (abstract)
505508
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)
506-
'3': { name: storage.modifier.ts } # captures keyword (async)
509+
'3': { name: storage.modifier.async.ts } # captures keyword (async)
507510
'4': { name: storage.type.property.ts } # captures keyword (get|set)
511+
'5': { name: keyword.operator.new.ts } # captures keyword (new)
512+
'6': { name: storage.type.ts } # captures keyword (constructor)
513+
'7': { name: keyword.generator.asterisk.ts } # captures keyword (*)
508514
end: (?=\(|\<)
509515
patterns:
510516
- include: '#method-declaration-name'
@@ -513,15 +519,8 @@ repository:
513519
begin: \G(?!\(|\<)
514520
end: (?=\(|\<)
515521
patterns:
516-
- match: (\*)\s*
517-
captures:
518-
'1': { name: keyword.generator.asterisk.ts }
519522
- include: '#string'
520523
- include: '#array-literal'
521-
- name: keyword.operator.new.ts
522-
match: \bnew(?=\s*[\(\<])
523-
- name: storage.type.ts
524-
match: \bconstructor\b(?=\s*[\(\<])
525524
- name: entity.name.function.ts
526525
match: '[_$[:alpha:]][_$[:alnum:]]*'
527526
- name: keyword.operator.optional.ts
@@ -1613,15 +1612,13 @@ repository:
16131612
- begin: (^[ \t]+)?(?=//)
16141613
beginCaptures:
16151614
'1': {name: punctuation.whitespace.comment.leading.ts}
1616-
end: \n
1617-
endCaptures:
1618-
'0': { name: comment.line.double-slash.ts }
1615+
end: (?=$)
16191616
patterns:
16201617
- name: comment.line.double-slash.ts
16211618
begin: //
16221619
beginCaptures:
16231620
'0': {name: punctuation.definition.comment.ts}
1624-
end: (?=\n)
1621+
end: (?=$)
16251622

16261623
docblock:
16271624
patterns:

TypeScript.tmLanguage

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1569,7 +1569,7 @@
15691569
<key>name</key>
15701570
<string>meta.method.declaration.ts</string>
15711571
<key>begin</key>
1572-
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|((?:(\*)\s*)?((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\&lt;])</string>
1572+
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[[^\]]*\]))\s*(\??))?\s*[\(\&lt;]))</string>
15731573
<key>beginCaptures</key>
15741574
<dict>
15751575
<key>1</key>
@@ -1592,6 +1592,21 @@
15921592
<key>name</key>
15931593
<string>storage.type.property.ts</string>
15941594
</dict>
1595+
<key>5</key>
1596+
<dict>
1597+
<key>name</key>
1598+
<string>keyword.operator.new.ts</string>
1599+
</dict>
1600+
<key>6</key>
1601+
<dict>
1602+
<key>name</key>
1603+
<string>storage.type.ts</string>
1604+
</dict>
1605+
<key>7</key>
1606+
<dict>
1607+
<key>name</key>
1608+
<string>keyword.generator.asterisk.ts</string>
1609+
</dict>
15951610
</dict>
15961611
<key>end</key>
15971612
<string>(?=\}|;|,)|(?&lt;=\})</string>
@@ -1632,7 +1647,7 @@
16321647
<key>name</key>
16331648
<string>meta.method.overload.declaration.ts</string>
16341649
<key>begin</key>
1635-
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|((?:(\*)\s*)?((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\&lt;])</string>
1650+
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[[^\]]*\]))\s*(\??))?\s*[\(\&lt;]))</string>
16361651
<key>beginCaptures</key>
16371652
<dict>
16381653
<key>1</key>
@@ -1648,13 +1663,28 @@
16481663
<key>3</key>
16491664
<dict>
16501665
<key>name</key>
1651-
<string>storage.modifier.ts</string>
1666+
<string>storage.modifier.async.ts</string>
16521667
</dict>
16531668
<key>4</key>
16541669
<dict>
16551670
<key>name</key>
16561671
<string>storage.type.property.ts</string>
16571672
</dict>
1673+
<key>5</key>
1674+
<dict>
1675+
<key>name</key>
1676+
<string>keyword.operator.new.ts</string>
1677+
</dict>
1678+
<key>6</key>
1679+
<dict>
1680+
<key>name</key>
1681+
<string>storage.type.ts</string>
1682+
</dict>
1683+
<key>7</key>
1684+
<dict>
1685+
<key>name</key>
1686+
<string>keyword.generator.asterisk.ts</string>
1687+
</dict>
16581688
</dict>
16591689
<key>end</key>
16601690
<string>(?=\(|\&lt;)</string>
@@ -1674,18 +1704,6 @@
16741704
<string>(?=\(|\&lt;)</string>
16751705
<key>patterns</key>
16761706
<array>
1677-
<dict>
1678-
<key>match</key>
1679-
<string>(\*)\s*</string>
1680-
<key>captures</key>
1681-
<dict>
1682-
<key>1</key>
1683-
<dict>
1684-
<key>name</key>
1685-
<string>keyword.generator.asterisk.ts</string>
1686-
</dict>
1687-
</dict>
1688-
</dict>
16891707
<dict>
16901708
<key>include</key>
16911709
<string>#string</string>
@@ -1694,18 +1712,6 @@
16941712
<key>include</key>
16951713
<string>#array-literal</string>
16961714
</dict>
1697-
<dict>
1698-
<key>name</key>
1699-
<string>keyword.operator.new.ts</string>
1700-
<key>match</key>
1701-
<string>\bnew(?=\s*[\(\&lt;])</string>
1702-
</dict>
1703-
<dict>
1704-
<key>name</key>
1705-
<string>storage.type.ts</string>
1706-
<key>match</key>
1707-
<string>\bconstructor\b(?=\s*[\(\&lt;])</string>
1708-
</dict>
17091715
<dict>
17101716
<key>name</key>
17111717
<string>entity.name.function.ts</string>
@@ -4546,15 +4552,7 @@
45464552
</dict>
45474553
</dict>
45484554
<key>end</key>
4549-
<string>\n</string>
4550-
<key>endCaptures</key>
4551-
<dict>
4552-
<key>0</key>
4553-
<dict>
4554-
<key>name</key>
4555-
<string>comment.line.double-slash.ts</string>
4556-
</dict>
4557-
</dict>
4555+
<string>(?=$)</string>
45584556
<key>patterns</key>
45594557
<array>
45604558
<dict>
@@ -4571,7 +4569,7 @@
45714569
</dict>
45724570
</dict>
45734571
<key>end</key>
4574-
<string>(?=\n)</string>
4572+
<string>(?=$)</string>
45754573
</dict>
45764574
</array>
45774575
</dict>

TypeScriptReact.tmLanguage

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,7 @@
15731573
<key>name</key>
15741574
<string>meta.method.declaration.tsx</string>
15751575
<key>begin</key>
1576-
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|((?:(\*)\s*)?((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\&lt;])</string>
1576+
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[[^\]]*\]))\s*(\??))?\s*[\(\&lt;]))</string>
15771577
<key>beginCaptures</key>
15781578
<dict>
15791579
<key>1</key>
@@ -1596,6 +1596,21 @@
15961596
<key>name</key>
15971597
<string>storage.type.property.tsx</string>
15981598
</dict>
1599+
<key>5</key>
1600+
<dict>
1601+
<key>name</key>
1602+
<string>keyword.operator.new.tsx</string>
1603+
</dict>
1604+
<key>6</key>
1605+
<dict>
1606+
<key>name</key>
1607+
<string>storage.type.tsx</string>
1608+
</dict>
1609+
<key>7</key>
1610+
<dict>
1611+
<key>name</key>
1612+
<string>keyword.generator.asterisk.tsx</string>
1613+
</dict>
15991614
</dict>
16001615
<key>end</key>
16011616
<string>(?=\}|;|,)|(?&lt;=\})</string>
@@ -1636,7 +1651,7 @@
16361651
<key>name</key>
16371652
<string>meta.method.overload.declaration.tsx</string>
16381653
<key>begin</key>
1639-
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|((?:(\*)\s*)?((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\&lt;])</string>
1654+
<string>(?&lt;!\.|\$)(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[[^\]]*\]))\s*(\??))?\s*[\(\&lt;]))</string>
16401655
<key>beginCaptures</key>
16411656
<dict>
16421657
<key>1</key>
@@ -1652,13 +1667,28 @@
16521667
<key>3</key>
16531668
<dict>
16541669
<key>name</key>
1655-
<string>storage.modifier.tsx</string>
1670+
<string>storage.modifier.async.tsx</string>
16561671
</dict>
16571672
<key>4</key>
16581673
<dict>
16591674
<key>name</key>
16601675
<string>storage.type.property.tsx</string>
16611676
</dict>
1677+
<key>5</key>
1678+
<dict>
1679+
<key>name</key>
1680+
<string>keyword.operator.new.tsx</string>
1681+
</dict>
1682+
<key>6</key>
1683+
<dict>
1684+
<key>name</key>
1685+
<string>storage.type.tsx</string>
1686+
</dict>
1687+
<key>7</key>
1688+
<dict>
1689+
<key>name</key>
1690+
<string>keyword.generator.asterisk.tsx</string>
1691+
</dict>
16621692
</dict>
16631693
<key>end</key>
16641694
<string>(?=\(|\&lt;)</string>
@@ -1678,18 +1708,6 @@
16781708
<string>(?=\(|\&lt;)</string>
16791709
<key>patterns</key>
16801710
<array>
1681-
<dict>
1682-
<key>match</key>
1683-
<string>(\*)\s*</string>
1684-
<key>captures</key>
1685-
<dict>
1686-
<key>1</key>
1687-
<dict>
1688-
<key>name</key>
1689-
<string>keyword.generator.asterisk.tsx</string>
1690-
</dict>
1691-
</dict>
1692-
</dict>
16931711
<dict>
16941712
<key>include</key>
16951713
<string>#string</string>
@@ -1698,18 +1716,6 @@
16981716
<key>include</key>
16991717
<string>#array-literal</string>
17001718
</dict>
1701-
<dict>
1702-
<key>name</key>
1703-
<string>keyword.operator.new.tsx</string>
1704-
<key>match</key>
1705-
<string>\bnew(?=\s*[\(\&lt;])</string>
1706-
</dict>
1707-
<dict>
1708-
<key>name</key>
1709-
<string>storage.type.tsx</string>
1710-
<key>match</key>
1711-
<string>\bconstructor\b(?=\s*[\(\&lt;])</string>
1712-
</dict>
17131719
<dict>
17141720
<key>name</key>
17151721
<string>entity.name.function.tsx</string>
@@ -4528,15 +4534,7 @@
45284534
</dict>
45294535
</dict>
45304536
<key>end</key>
4531-
<string>\n</string>
4532-
<key>endCaptures</key>
4533-
<dict>
4534-
<key>0</key>
4535-
<dict>
4536-
<key>name</key>
4537-
<string>comment.line.double-slash.tsx</string>
4538-
</dict>
4539-
</dict>
4537+
<string>(?=$)</string>
45404538
<key>patterns</key>
45414539
<array>
45424540
<dict>
@@ -4553,7 +4551,7 @@
45534551
</dict>
45544552
</dict>
45554553
<key>end</key>
4556-
<string>(?=\n)</string>
4554+
<string>(?=$)</string>
45574555
</dict>
45584556
</array>
45594557
</dict>

0 commit comments

Comments
 (0)