Skip to content

Commit b049c19

Browse files
committed
Use more stricter return type matching for single line arrow detection
Fixes #525
1 parent 2dea76a commit b049c19

File tree

5 files changed

+120
-36
lines changed

5 files changed

+120
-36
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ repository:
6868
((async\s*)?(
6969
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
7070
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
71-
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=>)
71+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^<>\(\)]|\<[^<>]+\>|\([^\(\)]+\))+)?\s*=>)
7272
))
7373
)) |
7474
(:\s*(
@@ -586,7 +586,7 @@ repository:
586586
((async\s*)?(
587587
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
588588
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
589-
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=>)
589+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^<>\(\)]|\<[^<>]+\>|\([^\(\)]+\))+)?\s*=>)
590590
))
591591
)) |
592592
(:\s*(
@@ -793,7 +793,7 @@ repository:
793793
((async\s*)?(
794794
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
795795
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
796-
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=>)
796+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^<>\(\)]|\<[^<>]+\>|\([^\(\)]+\))+)?\s*=>)
797797
))
798798
)) |
799799
(:\s*(
@@ -1508,7 +1508,7 @@ repository:
15081508
((async\s*)?(
15091509
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
15101510
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
1511-
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=>)
1511+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^<>\(\)]|\<[^<>]+\>|\([^\(\)]+\))+)?\s*=>)
15121512
))
15131513
))
15141514
captures:
@@ -1626,7 +1626,7 @@ repository:
16261626
((async\s*)?(
16271627
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
16281628
([<]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=>])|(\s*[,]))) |
1629-
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=>)
1629+
((<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^<>\(\)]|\<[^<>]+\>|\([^\(\)]+\))+)?\s*=>)
16301630
))
16311631
)))
16321632
captures:
@@ -1746,19 +1746,19 @@ repository:
17461746
(
17471747
[(]\s*
17481748
(
1749-
([)]\s*:) | # ():
1750-
((\.\.\.\s*)?[_$[:alpha:]][_$[:alnum:]]*\s*:) # [(]param: | [(]...param:
1749+
([)]\s*:) | # ():
1750+
((\.\.\.\s*)?[_$[:alpha:]][_$[:alnum:]]*\s*:) # [(]param: | [(]...param:
17511751
)
17521752
) |
17531753
(
1754-
[<]\s*[_$[:alpha:]][_$[:alnum:]]*\s+extends\s*[^=>] # < typeparam extends
1754+
[<]\s*[_$[:alpha:]][_$[:alnum:]]*\s+extends\s*[^=>] # < typeparam extends
17551755
) |
17561756
# arrow function possible to detect only with => on same line
17571757
(
1758-
(<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)? # typeparameters
1759-
\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\) # parameteres
1760-
(\s*:\s*(.)*)? # return type
1761-
\s*=> # arrow operator
1758+
(<\s*[_$[:alpha:]\{\(]([^<>=]|=[^<]|\<\s*[_$[:alpha:]\{\(]([^=<>]|=[^<])+\>)+>\s*)? # typeparameters
1759+
\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\) # parameteres
1760+
(\s*:\s*([^<>\(\)]|\<[^<>]+\>|\([^\(\)]+\))+)? # return type
1761+
\s*=> # arrow operator
17621762
)
17631763
)
17641764
)

TypeScript.tmLanguage

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@
185185
((async\s*)?(
186186
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
187187
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
188-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
188+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
189189
))
190190
)) |
191191
(:\s*(
@@ -1820,7 +1820,7 @@
18201820
((async\s*)?(
18211821
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
18221822
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
1823-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
1823+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
18241824
))
18251825
)) |
18261826
(:\s*(
@@ -2447,7 +2447,7 @@
24472447
((async\s*)?(
24482448
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
24492449
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
2450-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
2450+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
24512451
))
24522452
)) |
24532453
(:\s*(
@@ -4158,7 +4158,7 @@
41584158
((async\s*)?(
41594159
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
41604160
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4161-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
4161+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
41624162
))
41634163
))</string>
41644164
<key>captures</key>
@@ -4454,7 +4454,7 @@
44544454
((async\s*)?(
44554455
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
44564456
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4457-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
4457+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
44584458
))
44594459
)))</string>
44604460
<key>captures</key>
@@ -4787,19 +4787,19 @@
47874787
(
47884788
[(]\s*
47894789
(
4790-
([)]\s*:) | # ():
4791-
((\.\.\.\s*)?[_$[:alpha:]][_$[:alnum:]]*\s*:) # [(]param: | [(]...param:
4790+
([)]\s*:) | # ():
4791+
((\.\.\.\s*)?[_$[:alpha:]][_$[:alnum:]]*\s*:) # [(]param: | [(]...param:
47924792
)
47934793
) |
47944794
(
4795-
[&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*\s+extends\s*[^=&gt;] # &lt; typeparam extends
4795+
[&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*\s+extends\s*[^=&gt;] # &lt; typeparam extends
47964796
) |
47974797
# arrow function possible to detect only with =&gt; on same line
47984798
(
4799-
(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
4800-
\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\) # parameteres
4801-
(\s*:\s*(.)*)? # return type
4802-
\s*=&gt; # arrow operator
4799+
(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
4800+
\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\) # parameteres
4801+
(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)? # return type
4802+
\s*=&gt; # arrow operator
48034803
)
48044804
)
48054805
)</string>

TypeScriptReact.tmLanguage

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@
185185
((async\s*)?(
186186
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
187187
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
188-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
188+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
189189
))
190190
)) |
191191
(:\s*(
@@ -1824,7 +1824,7 @@
18241824
((async\s*)?(
18251825
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
18261826
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
1827-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
1827+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
18281828
))
18291829
)) |
18301830
(:\s*(
@@ -2451,7 +2451,7 @@
24512451
((async\s*)?(
24522452
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
24532453
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
2454-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
2454+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
24552455
))
24562456
)) |
24572457
(:\s*(
@@ -4162,7 +4162,7 @@
41624162
((async\s*)?(
41634163
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
41644164
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4165-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
4165+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
41664166
))
41674167
))</string>
41684168
<key>captures</key>
@@ -4400,7 +4400,7 @@
44004400
((async\s*)?(
44014401
([(]\s*(([)]\s*:)|([_$[:alpha:]][_$[:alnum:]]*\s*:)|(\.\.\.) )) |
44024402
([&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s*[^=&gt;])|(\s*[,]))) |
4403-
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*(.)*)?\s*=&gt;)
4403+
((&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)?\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\)(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)?\s*=&gt;)
44044404
))
44054405
)))</string>
44064406
<key>captures</key>
@@ -4733,19 +4733,19 @@
47334733
(
47344734
[(]\s*
47354735
(
4736-
([)]\s*:) | # ():
4737-
((\.\.\.\s*)?[_$[:alpha:]][_$[:alnum:]]*\s*:) # [(]param: | [(]...param:
4736+
([)]\s*:) | # ():
4737+
((\.\.\.\s*)?[_$[:alpha:]][_$[:alnum:]]*\s*:) # [(]param: | [(]...param:
47384738
)
47394739
) |
47404740
(
4741-
[&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*\s+extends\s*[^=&gt;] # &lt; typeparam extends
4741+
[&lt;]\s*[_$[:alpha:]][_$[:alnum:]]*\s+extends\s*[^=&gt;] # &lt; typeparam extends
47424742
) |
47434743
# arrow function possible to detect only with =&gt; on same line
47444744
(
4745-
(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
4746-
\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\) # parameteres
4747-
(\s*:\s*(.)*)? # return type
4748-
\s*=&gt; # arrow operator
4745+
(&lt;\s*[_$[:alpha:]\{\(]([^&lt;&gt;=]|=[^&lt;]|\&lt;\s*[_$[:alpha:]\{\(]([^=&lt;&gt;]|=[^&lt;])+\&gt;)+&gt;\s*)? # typeparameters
4746+
\((\s*[_$[:alpha:]\{\(]([^()]|\((\s*[_$[:alpha:]\{\(]\{\(][^()]*)?\))*)?\) # parameteres
4747+
(\s*:\s*([^&lt;&gt;\(\)]|\&lt;[^&lt;&gt;]+\&gt;|\([^\(\)]+\))+)? # return type
4748+
\s*=&gt; # arrow operator
47494749
)
47504750
)
47514751
)</string>

tests/baselines/Issue525.baseline.txt

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
original file
2+
-----------------------------------
3+
map(result.success ? (a) : 1).map(c => c.name)
4+
const a = 1;
5+
-----------------------------------
6+
7+
Grammar: TypeScript.tmLanguage
8+
-----------------------------------
9+
>map(result.success ? (a) : 1).map(c => c.name)
10+
^^^
11+
source.ts meta.function-call.ts entity.name.function.ts
12+
^
13+
source.ts meta.brace.round.ts
14+
^^^^^^
15+
source.ts variable.other.object.ts
16+
^
17+
source.ts punctuation.accessor.ts
18+
^^^^^^^
19+
source.ts variable.other.property.ts
20+
^
21+
source.ts
22+
^
23+
source.ts keyword.operator.ternary.ts
24+
^
25+
source.ts
26+
^
27+
source.ts meta.brace.round.ts
28+
^
29+
source.ts variable.other.readwrite.ts
30+
^
31+
source.ts meta.brace.round.ts
32+
^
33+
source.ts
34+
^
35+
source.ts keyword.operator.ternary.ts
36+
^
37+
source.ts
38+
^
39+
source.ts constant.numeric.decimal.ts
40+
^
41+
source.ts meta.brace.round.ts
42+
^
43+
source.ts meta.function-call.ts punctuation.accessor.ts
44+
^^^
45+
source.ts meta.function-call.ts entity.name.function.ts
46+
^
47+
source.ts meta.brace.round.ts
48+
^
49+
source.ts meta.arrow.ts variable.parameter.ts
50+
^
51+
source.ts meta.arrow.ts
52+
^^
53+
source.ts meta.arrow.ts storage.type.function.arrow.ts
54+
^
55+
source.ts meta.arrow.ts
56+
^
57+
source.ts variable.other.object.ts
58+
^
59+
source.ts punctuation.accessor.ts
60+
^^^^
61+
source.ts support.variable.property.dom.ts
62+
^
63+
source.ts meta.brace.round.ts
64+
^^
65+
source.ts
66+
>const a = 1;
67+
^^^^^
68+
source.ts meta.var.expr.ts storage.type.ts
69+
^
70+
source.ts meta.var.expr.ts
71+
^
72+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
73+
^
74+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
75+
^
76+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
77+
^
78+
source.ts meta.var.expr.ts
79+
^
80+
source.ts meta.var.expr.ts constant.numeric.decimal.ts
81+
^
82+
source.ts punctuation.terminator.statement.ts

tests/cases/Issue525.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
map(result.success ? (a) : 1).map(c => c.name)
2+
const a = 1;

0 commit comments

Comments
 (0)