Skip to content

Commit c8dbfcf

Browse files
committed
Add support for method declaration as object member
1 parent f0633d8 commit c8dbfcf

File tree

8 files changed

+200
-22
lines changed

8 files changed

+200
-22
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -888,11 +888,14 @@ repository:
888888
- include: '#comment'
889889

890890
object-member:
891-
name: meta.object.member.ts
892-
begin: '[a-zA-Z_$][\w$]*\s*:'
893-
end: (?=,|\})
894891
patterns:
895-
- include: '#expression'
892+
- include: '#comment'
893+
- include: '#method-declaration'
894+
- name: meta.object.member.ts
895+
begin: '[a-zA-Z_$][\w$]*\s*:'
896+
end: (?=,|\})
897+
patterns:
898+
- include: '#expression'
896899

897900
expression-operator:
898901
patterns:

TypeScript.tmLanguage

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2228,17 +2228,30 @@
22282228
</dict>
22292229
<key>object-member</key>
22302230
<dict>
2231-
<key>begin</key>
2232-
<string>[a-zA-Z_$][\w$]*\s*:</string>
2233-
<key>end</key>
2234-
<string>(?=,|\})</string>
2235-
<key>name</key>
2236-
<string>meta.object.member.ts</string>
22372231
<key>patterns</key>
22382232
<array>
22392233
<dict>
22402234
<key>include</key>
2241-
<string>#expression</string>
2235+
<string>#comment</string>
2236+
</dict>
2237+
<dict>
2238+
<key>include</key>
2239+
<string>#method-declaration</string>
2240+
</dict>
2241+
<dict>
2242+
<key>begin</key>
2243+
<string>[a-zA-Z_$][\w$]*\s*:</string>
2244+
<key>end</key>
2245+
<string>(?=,|\})</string>
2246+
<key>name</key>
2247+
<string>meta.object.member.ts</string>
2248+
<key>patterns</key>
2249+
<array>
2250+
<dict>
2251+
<key>include</key>
2252+
<string>#expression</string>
2253+
</dict>
2254+
</array>
22422255
</dict>
22432256
</array>
22442257
</dict>

TypeScriptReact.YAML-tmLanguage

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -878,11 +878,14 @@ repository:
878878
- include: '#comment'
879879

880880
object-member:
881-
name: meta.object.member.tsx
882-
begin: '[a-zA-Z_$][\w$]*\s*:'
883-
end: (?=,|\})
884881
patterns:
885-
- include: '#expression'
882+
- include: '#comment'
883+
- include: '#method-declaration'
884+
- name: meta.object.member.tsx
885+
begin: '[a-zA-Z_$][\w$]*\s*:'
886+
end: (?=,|\})
887+
patterns:
888+
- include: '#expression'
886889

887890
expression-operator:
888891
patterns:

TypeScriptReact.tmLanguage

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2625,17 +2625,30 @@
26252625
</dict>
26262626
<key>object-member</key>
26272627
<dict>
2628-
<key>begin</key>
2629-
<string>[a-zA-Z_$][\w$]*\s*:</string>
2630-
<key>end</key>
2631-
<string>(?=,|\})</string>
2632-
<key>name</key>
2633-
<string>meta.object.member.tsx</string>
26342628
<key>patterns</key>
26352629
<array>
26362630
<dict>
26372631
<key>include</key>
2638-
<string>#expression</string>
2632+
<string>#comment</string>
2633+
</dict>
2634+
<dict>
2635+
<key>include</key>
2636+
<string>#method-declaration</string>
2637+
</dict>
2638+
<dict>
2639+
<key>begin</key>
2640+
<string>[a-zA-Z_$][\w$]*\s*:</string>
2641+
<key>end</key>
2642+
<string>(?=,|\})</string>
2643+
<key>name</key>
2644+
<string>meta.object.member.tsx</string>
2645+
<key>patterns</key>
2646+
<array>
2647+
<dict>
2648+
<key>include</key>
2649+
<string>#expression</string>
2650+
</dict>
2651+
</array>
26392652
</dict>
26402653
</array>
26412654
</dict>

tests/baselines/Issue163.baseline.txt

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
original file
2+
-----------------------------------
3+
const o = {
4+
async f() {
5+
6+
}
7+
};
8+
-----------------------------------
9+
10+
>const o = {
11+
^^^^^
12+
source.ts meta.var.expr.ts storage.type.ts
13+
^
14+
source.ts meta.var.expr.ts
15+
^
16+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts variable.other.readwrite.ts
17+
^
18+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
19+
^
20+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts keyword.operator.assignment.ts
21+
^
22+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
23+
^
24+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts punctuation.definition.block.ts
25+
^^
26+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts
27+
> async f() {
28+
^^^^
29+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts
30+
^^^^^
31+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts storage.modifier.async.ts
32+
^
33+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts
34+
^
35+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts entity.name.function.ts
36+
^
37+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts meta.function.type.parameter.ts punctuation.definition.parameters.begin.ts
38+
^
39+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts meta.function.type.parameter.ts punctuation.definition.parameters.end.ts
40+
^
41+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts
42+
^
43+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts
44+
^^
45+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts meta.block.ts
46+
>
47+
^^
48+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts meta.block.ts
49+
> }
50+
^^^^
51+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts meta.block.ts
52+
^
53+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts
54+
^^
55+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts
56+
>};
57+
^
58+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.object-literal.ts punctuation.definition.block.ts
59+
^^
60+
source.ts

tests/baselines/Issue36.baseline.txt

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

tests/cases/Issue163.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const o = {
2+
async f() {
3+
4+
}
5+
};

tests/cases/Issue36.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
let x = {
2+
hello() {
3+
let hello = "world";
4+
}
5+
};

0 commit comments

Comments
 (0)