Skip to content

Commit 17761d1

Browse files
committed
Allow abstract class expression
Fixes #728
1 parent 06d49b5 commit 17761d1

File tree

5 files changed

+48
-4
lines changed

5 files changed

+48
-4
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -880,9 +880,10 @@ repository:
880880
class-expression:
881881
name: meta.class.ts
882882
# allows anonymous class
883-
begin: '{{startOfIdentifier}}(class)\b(?=\s+|[<{]|\/[\/*])'
883+
begin: '{{startOfIdentifier}}(?:(abstract)\s+)?(class)\b(?=\s+|[<{]|\/[\/*])'
884884
beginCaptures:
885-
'1': { name: storage.type.class.ts }
885+
'1': { name: storage.modifier.ts }
886+
'2': { name: storage.type.class.ts }
886887
end: (?<=\})
887888
patterns:
888889
- include: '#class-declaration-or-expression-patterns'

TypeScript.tmLanguage

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2824,10 +2824,15 @@
28242824
<key>name</key>
28252825
<string>meta.class.ts</string>
28262826
<key>begin</key>
2827-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(class)\b(?=\s+|[&lt;{]|\/[\/*])</string>
2827+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(abstract)\s+)?(class)\b(?=\s+|[&lt;{]|\/[\/*])</string>
28282828
<key>beginCaptures</key>
28292829
<dict>
28302830
<key>1</key>
2831+
<dict>
2832+
<key>name</key>
2833+
<string>storage.modifier.ts</string>
2834+
</dict>
2835+
<key>2</key>
28312836
<dict>
28322837
<key>name</key>
28332838
<string>storage.type.class.ts</string>

TypeScriptReact.tmLanguage

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2828,10 +2828,15 @@
28282828
<key>name</key>
28292829
<string>meta.class.tsx</string>
28302830
<key>begin</key>
2831-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(class)\b(?=\s+|[&lt;{]|\/[\/*])</string>
2831+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(abstract)\s+)?(class)\b(?=\s+|[&lt;{]|\/[\/*])</string>
28322832
<key>beginCaptures</key>
28332833
<dict>
28342834
<key>1</key>
2835+
<dict>
2836+
<key>name</key>
2837+
<string>storage.modifier.tsx</string>
2838+
</dict>
2839+
<key>2</key>
28352840
<dict>
28362841
<key>name</key>
28372842
<string>storage.type.class.tsx</string>

tests/baselines/Issue728.baseline.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
original file
2+
-----------------------------------
3+
export default abstract class AbstractClass {}
4+
-----------------------------------
5+
6+
Grammar: TypeScript.tmLanguage
7+
-----------------------------------
8+
>export default abstract class AbstractClass {}
9+
^^^^^^
10+
source.ts meta.export.default.ts keyword.control.export.ts
11+
^
12+
source.ts meta.export.default.ts
13+
^^^^^^^
14+
source.ts meta.export.default.ts keyword.control.default.ts
15+
^
16+
source.ts meta.export.default.ts
17+
^^^^^^^^
18+
source.ts meta.export.default.ts meta.class.ts storage.modifier.ts
19+
^
20+
source.ts meta.export.default.ts meta.class.ts
21+
^^^^^
22+
source.ts meta.export.default.ts meta.class.ts storage.type.class.ts
23+
^
24+
source.ts meta.export.default.ts meta.class.ts
25+
^^^^^^^^^^^^^
26+
source.ts meta.export.default.ts meta.class.ts entity.name.type.class.ts
27+
^
28+
source.ts meta.export.default.ts meta.class.ts
29+
^
30+
source.ts meta.export.default.ts meta.class.ts punctuation.definition.block.ts
31+
^
32+
source.ts meta.export.default.ts meta.class.ts punctuation.definition.block.ts

tests/cases/Issue728.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default abstract class AbstractClass {}

0 commit comments

Comments
 (0)