Skip to content

Commit e8b504c

Browse files
committed
Make sure the typeparameters arent predicted when it is expression of type < number
Fixes #518
1 parent d7576f2 commit e8b504c

File tree

5 files changed

+168
-30
lines changed

5 files changed

+168
-30
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ repository:
5959
((async\s*)?(
6060
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
6161
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
62-
((<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
62+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
6363
))
6464
)) |
6565
(:\s*(
@@ -577,7 +577,7 @@ repository:
577577
((async\s*)?(
578578
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
579579
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
580-
((<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
580+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
581581
))
582582
)) |
583583
(:\s*(
@@ -784,7 +784,7 @@ repository:
784784
((async\s*)?(
785785
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
786786
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
787-
((<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
787+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
788788
))
789789
)) |
790790
(:\s*(
@@ -1344,7 +1344,7 @@ repository:
13441344
|siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary
13451345
|systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead
13461346
|title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile
1347-
|vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\b(?!\$|\s*(<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\()
1347+
|vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\b(?!\$|\s*(<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\()
13481348
captures:
13491349
'1': { name: punctuation.accessor.ts }
13501350
'2': { name: support.constant.dom.ts }
@@ -1457,12 +1457,12 @@ repository:
14571457
'4': { name: support.function.dom.ts }
14581458
14591459
function-call:
1460-
begin: (?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\()
1461-
end: (?<=\))(?!(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\()
1460+
begin: (?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\()
1461+
end: (?<=\))(?!(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\()
14621462
patterns:
14631463
- name: meta.function-call.ts
14641464
begin: (?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*))
1465-
end: (?=\s*(<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\()
1465+
end: (?=\s*(<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\()
14661466
patterns:
14671467
- include: '#literal'
14681468
- include: '#support-objects'
@@ -1499,7 +1499,7 @@ repository:
14991499
((async\s*)?(
15001500
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
15011501
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
1502-
((<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
1502+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
15031503
))
15041504
))
15051505
captures:
@@ -1617,7 +1617,7 @@ repository:
16171617
((async\s*)?(
16181618
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
16191619
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
1620-
((<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
1620+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
16211621
))
16221622
)))
16231623
captures:
@@ -1747,7 +1747,7 @@ repository:
17471747
) |
17481748
# arrow function possible to detect only with => on same line
17491749
(
1750-
(<([^<>=]|=[^<]|\<([^=<>]|=[^<])+\>)+>\s*)? # typeparameters
1750+
(<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)? # typeparameters
17511751
\(([^()]|\([^()]*\))*\) # parameteres
17521752
(\s*:\s*(.)*)? # return type
17531753
\s*=> # arrow operator

TypeScript.tmLanguage

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
((async\s*)?(
153153
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
154154
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
155-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
155+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
156156
))
157157
)) |
158158
(:\s*(
@@ -1787,7 +1787,7 @@
17871787
((async\s*)?(
17881788
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
17891789
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
1790-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
1790+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
17911791
))
17921792
)) |
17931793
(:\s*(
@@ -2414,7 +2414,7 @@
24142414
((async\s*)?(
24152415
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
24162416
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
2417-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
2417+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
24182418
))
24192419
)) |
24202420
(:\s*(
@@ -3820,7 +3820,7 @@
38203820
|siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary
38213821
|systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead
38223822
|title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile
3823-
|vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\b(?!\$|\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
3823+
|vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\b(?!\$|\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
38243824
<key>captures</key>
38253825
<dict>
38263826
<key>1</key>
@@ -4017,9 +4017,9 @@
40174017
<key>function-call</key>
40184018
<dict>
40194019
<key>begin</key>
4020-
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
4020+
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
40214021
<key>end</key>
4022-
<string>(?&lt;=\))(?!(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
4022+
<string>(?&lt;=\))(?!(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
40234023
<key>patterns</key>
40244024
<array>
40254025
<dict>
@@ -4028,7 +4028,7 @@
40284028
<key>begin</key>
40294029
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*))</string>
40304030
<key>end</key>
4031-
<string>(?=\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
4031+
<string>(?=\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
40324032
<key>patterns</key>
40334033
<array>
40344034
<dict>
@@ -4125,7 +4125,7 @@
41254125
((async\s*)?(
41264126
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
41274127
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4128-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
4128+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
41294129
))
41304130
))</string>
41314131
<key>captures</key>
@@ -4421,7 +4421,7 @@
44214421
((async\s*)?(
44224422
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
44234423
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4424-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
4424+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
44254425
))
44264426
)))</string>
44274427
<key>captures</key>
@@ -4765,7 +4765,7 @@
47654765
) |
47664766
# arrow function possible to detect only with =&gt; on same line
47674767
(
4768-
(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
4768+
(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
47694769
\(([^()]|\([^()]*\))*\) # parameteres
47704770
(\s*:\s*(.)*)? # return type
47714771
\s*=&gt; # arrow operator

TypeScriptReact.tmLanguage

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
((async\s*)?(
153153
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
154154
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
155-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
155+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
156156
))
157157
)) |
158158
(:\s*(
@@ -1791,7 +1791,7 @@
17911791
((async\s*)?(
17921792
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
17931793
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
1794-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
1794+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
17951795
))
17961796
)) |
17971797
(:\s*(
@@ -2418,7 +2418,7 @@
24182418
((async\s*)?(
24192419
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
24202420
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
2421-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
2421+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
24222422
))
24232423
)) |
24242424
(:\s*(
@@ -3824,7 +3824,7 @@
38243824
|siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary
38253825
|systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead
38263826
|title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile
3827-
|vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\b(?!\$|\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
3827+
|vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\b(?!\$|\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
38283828
<key>captures</key>
38293829
<dict>
38303830
<key>1</key>
@@ -4021,9 +4021,9 @@
40214021
<key>function-call</key>
40224022
<dict>
40234023
<key>begin</key>
4024-
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
4024+
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
40254025
<key>end</key>
4026-
<string>(?&lt;=\))(?!(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
4026+
<string>(?&lt;=\))(?!(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
40274027
<key>patterns</key>
40284028
<array>
40294029
<dict>
@@ -4032,7 +4032,7 @@
40324032
<key>begin</key>
40334033
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\.\s*)*|(\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*))</string>
40344034
<key>end</key>
4035-
<string>(?=\s*(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
4035+
<string>(?=\s*(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\()</string>
40364036
<key>patterns</key>
40374037
<array>
40384038
<dict>
@@ -4129,7 +4129,7 @@
41294129
((async\s*)?(
41304130
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
41314131
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4132-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
4132+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
41334133
))
41344134
))</string>
41354135
<key>captures</key>
@@ -4367,7 +4367,7 @@
43674367
((async\s*)?(
43684368
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
43694369
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4370-
((&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
4370+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)
43714371
))
43724372
)))</string>
43734373
<key>captures</key>
@@ -4711,7 +4711,7 @@
47114711
) |
47124712
# arrow function possible to detect only with =&gt; on same line
47134713
(
4714-
(&lt;([^&lt;&gt;=]|=[^&lt;]|\&lt;([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
4714+
(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
47154715
\(([^()]|\([^()]*\))*\) # parameteres
47164716
(\s*:\s*(.)*)? # return type
47174717
\s*=&gt; # arrow operator

0 commit comments

Comments
 (0)