Skip to content

Commit 2aabaa4

Browse files
committed
Handle namespace declaration blocks
Fixes #433
1 parent 7428198 commit 2aabaa4

11 files changed

+285
-225
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,13 +306,14 @@ repository:
306306
beginCaptures:
307307
'1': { name: keyword.control.export.ts }
308308
'2': { name: storage.type.namespace.ts }
309-
end: (?=$|\{)
309+
end: (?<=\})
310310
patterns:
311311
- include: '#comment'
312312
- include: '#string'
313313
- name: entity.name.type.module.ts
314314
match: ([_$[:alpha:]][_$[:alnum:]]*)
315-
- include: '#punctuation-accessor'
315+
- include: '#punctuation-accessor'
316+
- include: '#decl-block'
316317

317318
import-equals-declaration:
318319
patterns:

TypeScript.tmLanguage

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,7 @@
925925
</dict>
926926
</dict>
927927
<key>end</key>
928-
<string>(?=$|\{)</string>
928+
<string>(?&lt;=\})</string>
929929
<key>patterns</key>
930930
<array>
931931
<dict>
@@ -946,6 +946,10 @@
946946
<key>include</key>
947947
<string>#punctuation-accessor</string>
948948
</dict>
949+
<dict>
950+
<key>include</key>
951+
<string>#decl-block</string>
952+
</dict>
949953
</array>
950954
</dict>
951955
<key>import-equals-declaration</key>

TypeScriptReact.tmLanguage

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,7 @@
929929
</dict>
930930
</dict>
931931
<key>end</key>
932-
<string>(?=$|\{)</string>
932+
<string>(?&lt;=\})</string>
933933
<key>patterns</key>
934934
<array>
935935
<dict>
@@ -950,6 +950,10 @@
950950
<key>include</key>
951951
<string>#punctuation-accessor</string>
952952
</dict>
953+
<dict>
954+
<key>include</key>
955+
<string>#decl-block</string>
956+
</dict>
953957
</array>
954958
</dict>
955959
<key>import-equals-declaration</key>

tests/baselines/Issue200.baseline.txt

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -34,63 +34,63 @@ Grammar: TypeScript.tmLanguage
3434
^
3535
source.ts meta.namespace.declaration.ts
3636
^
37-
source.ts meta.block.ts punctuation.definition.block.ts
37+
source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts
3838
^^
39-
source.ts meta.block.ts
39+
source.ts meta.namespace.declaration.ts meta.block.ts
4040
> import alias = lool.clutz.goog.i18n.NumberFormatSymbols_en_TT;
4141
^^
42-
source.ts meta.block.ts
42+
source.ts meta.namespace.declaration.ts meta.block.ts
4343
^^^^^^
44-
source.ts meta.block.ts meta.import-equals.internal.ts keyword.control.import.ts
44+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts keyword.control.import.ts
4545
^
46-
source.ts meta.block.ts meta.import-equals.internal.ts
46+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts
4747
^^^^^
48-
source.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.alias.ts
48+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.alias.ts
4949
^
50-
source.ts meta.block.ts meta.import-equals.internal.ts
50+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts
5151
^
52-
source.ts meta.block.ts meta.import-equals.internal.ts keyword.operator.assignment.ts
52+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts keyword.operator.assignment.ts
5353
^
54-
source.ts meta.block.ts meta.import-equals.internal.ts
54+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts
5555
^^^^
56-
source.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
56+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
5757
^
58-
source.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
58+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
5959
^^^^^
60-
source.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
60+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
6161
^
62-
source.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
62+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
6363
^^^^
64-
source.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
64+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
6565
^
66-
source.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
66+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
6767
^^^^
68-
source.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
68+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
6969
^
70-
source.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
70+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts
7171
^^^^^^^^^^^^^^^^^^^^^^^^^
72-
source.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.ts
72+
source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.ts
7373
^
74-
source.ts meta.block.ts punctuation.terminator.statement.ts
74+
source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts
7575
^^
76-
source.ts meta.block.ts
76+
source.ts meta.namespace.declaration.ts meta.block.ts
7777
> export default alias;
7878
^^
79-
source.ts meta.block.ts
79+
source.ts meta.namespace.declaration.ts meta.block.ts
8080
^^^^^^
81-
source.ts meta.block.ts meta.export.default.ts keyword.control.export.ts
81+
source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts keyword.control.export.ts
8282
^
83-
source.ts meta.block.ts meta.export.default.ts
83+
source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts
8484
^^^^^^^
85-
source.ts meta.block.ts meta.export.default.ts keyword.control.default.ts
85+
source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts keyword.control.default.ts
8686
^
87-
source.ts meta.block.ts meta.export.default.ts
87+
source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts
8888
^^^^^
89-
source.ts meta.block.ts meta.export.default.ts variable.other.readwrite.ts
89+
source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts variable.other.readwrite.ts
9090
^
91-
source.ts meta.block.ts punctuation.terminator.statement.ts
91+
source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts
9292
^^
93-
source.ts meta.block.ts
93+
source.ts meta.namespace.declaration.ts meta.block.ts
9494
>}
9595
^
96-
source.ts meta.block.ts punctuation.definition.block.ts
96+
source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts

tests/baselines/Issue200.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@ Grammar: TypeScript.tmLanguage
2323
[3, 16]: source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts
2424
> import alias = lool.clutz.goog.i18n.NumberFormatSymbols_en_TT;
2525
^^^^^^
26-
[4, 3]: source.ts meta.block.ts meta.import-equals.internal.ts keyword.control.import.ts
26+
[4, 3]: source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts keyword.control.import.ts
2727
^^^^^
28-
[4, 10]: source.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.alias.ts
28+
[4, 10]: source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.alias.ts
2929
^^^^
30-
[4, 18]: source.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
30+
[4, 18]: source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts
3131
> export default alias;
3232
^^^^^^
33-
[5, 3]: source.ts meta.block.ts meta.export.default.ts keyword.control.export.ts
33+
[5, 3]: source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts keyword.control.export.ts
3434
^^^^^^^
35-
[5, 10]: source.ts meta.block.ts meta.export.default.ts keyword.control.default.ts
35+
[5, 10]: source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts keyword.control.default.ts
3636
^^^^^
37-
[5, 18]: source.ts meta.block.ts meta.export.default.ts variable.other.readwrite.ts
37+
[5, 18]: source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts variable.other.readwrite.ts
3838
>}
3939
^
40-
[6, 1]: source.ts meta.block.ts punctuation.definition.block.ts
40+
[6, 1]: source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts

0 commit comments

Comments
 (0)