Skip to content

Commit 5433f90

Browse files
committed
new/constructor followed by ':' are not methods
Fixes #285
1 parent 01aab15 commit 5433f90

File tree

5 files changed

+91
-6
lines changed

5 files changed

+91
-6
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ repository:
482482

483483
method-declaration:
484484
name: meta.method.declaration.ts
485-
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*[\(\<]))
485+
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*[\(\<]))
486486
beginCaptures:
487487
'1': { name: storage.modifier.ts } # captures keyword (abstract)
488488
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)
@@ -503,7 +503,7 @@ repository:
503503

504504
method-overload-declaration:
505505
name: meta.method.overload.declaration.ts
506-
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*[\(\<]))
506+
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*[\(\<]))
507507
beginCaptures:
508508
'1': { name: storage.modifier.ts } # captures keyword (abstract)
509509
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)

TypeScript.tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,7 @@
15731573
<key>name</key>
15741574
<string>meta.method.declaration.ts</string>
15751575
<key>begin</key>
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>
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>
@@ -1651,7 +1651,7 @@
16511651
<key>name</key>
16521652
<string>meta.method.overload.declaration.ts</string>
16531653
<key>begin</key>
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>
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>
16551655
<key>beginCaptures</key>
16561656
<dict>
16571657
<key>1</key>

TypeScriptReact.tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1577,7 +1577,7 @@
15771577
<key>name</key>
15781578
<string>meta.method.declaration.tsx</string>
15791579
<key>begin</key>
1580-
<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>
1580+
<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>
15811581
<key>beginCaptures</key>
15821582
<dict>
15831583
<key>1</key>
@@ -1655,7 +1655,7 @@
16551655
<key>name</key>
16561656
<string>meta.method.overload.declaration.tsx</string>
16571657
<key>begin</key>
1658-
<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>
1658+
<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>
16591659
<key>beginCaptures</key>
16601660
<dict>
16611661
<key>1</key>

tests/baselines/Issue285.baseline.txt

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
original file
2+
-----------------------------------
3+
let model = {
4+
links: {
5+
new: "sample"
6+
},
7+
};
8+
9+
-----------------------------------
10+
11+
Grammar: TypeScript.tmLanguage
12+
-----------------------------------
13+
>let model = {
14+
^^^
15+
source.ts meta.var.expr.ts storage.type.ts
16+
^
17+
source.ts meta.var.expr.ts
18+
^^^^^
19+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts variable.other.readwrite.ts
20+
^
21+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
22+
^
23+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts keyword.operator.assignment.ts
24+
^
25+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
26+
^
27+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts punctuation.definition.block.ts
28+
^^
29+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts
30+
> links: {
31+
^^^^^^^^^^^^
32+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts
33+
^^^^^
34+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts
35+
^
36+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts
37+
^
38+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts
39+
^
40+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts punctuation.definition.block.ts
41+
^^
42+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts
43+
> new: "sample"
44+
^^^^^^^^^^^^^^^^
45+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts
46+
^^^
47+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts
48+
^
49+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts
50+
^
51+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts
52+
^
53+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts
54+
^^^^^^
55+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts string.quoted.double.ts
56+
^
57+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts
58+
^^
59+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts
60+
> },
61+
^^^^^^^^^^^^
62+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts meta.object.member.ts
63+
^
64+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.ts punctuation.definition.block.ts
65+
^
66+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts punctuation.separator.comma.ts
67+
^^
68+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts
69+
> };
70+
^^^^^^^^
71+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts
72+
^
73+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts punctuation.definition.block.ts
74+
^
75+
source.ts punctuation.terminator.statement.ts
76+
^^
77+
source.ts
78+
>
79+
^
80+
source.ts

tests/cases/Issue285.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
let model = {
2+
links: {
3+
new: "sample"
4+
},
5+
};

0 commit comments

Comments
 (0)