Skip to content

Commit 5f46117

Browse files
Merge pull request #13 from mogstad/push-npwupmwyrwkk
Expose template content as `raw_text`
2 parents 7e8ea8c + 5c83d20 commit 5f46117

File tree

5 files changed

+13161
-13135
lines changed

5 files changed

+13161
-13135
lines changed

grammar.js

+4-11
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ noJSX(JavaScript);
4747
*/
4848
module.exports = grammar(JavaScript, {
4949
name: "glimmer_javascript",
50+
51+
externals: ($, previous) => previous.concat([$.raw_text]),
52+
5053
rules: {
5154
/**
5255
* TODO: add support for attributes
@@ -59,23 +62,13 @@ module.exports = grammar(JavaScript, {
5962
* https://github.com/emberjs/rfcs/
6063
*/
6164
glimmer_template: ($) =>
62-
choice(
6365
seq(
6466
field("open_tag", $.glimmer_opening_tag),
65-
// field("content", $.glimmer_template_content),
66-
field("content", repeat($._glimmer_template_content)),
67+
optional(alias(repeat($._glimmer_template_content), $.raw_text)),
6768
field("close_tag", $.glimmer_closing_tag),
6869
),
69-
// empty template has no content
70-
// <template></template>
71-
seq(
72-
field("open_tag", $.glimmer_opening_tag),
73-
field("close_tag", $.glimmer_closing_tag),
74-
),
75-
),
7670

7771
_glimmer_template_content: (_) => /.{1,}/,
78-
// glimmer_template_content: ($) => repeat1($._glimmer_template_content),
7972
glimmer_opening_tag: (_) => "<template>",
8073
glimmer_closing_tag: (_) => "</template>",
8174

src/grammar.json

+25-38
Original file line numberDiff line numberDiff line change
@@ -2395,60 +2395,43 @@
23952395
]
23962396
},
23972397
"glimmer_template": {
2398-
"type": "CHOICE",
2398+
"type": "SEQ",
23992399
"members": [
24002400
{
2401-
"type": "SEQ",
2401+
"type": "FIELD",
2402+
"name": "open_tag",
2403+
"content": {
2404+
"type": "SYMBOL",
2405+
"name": "glimmer_opening_tag"
2406+
}
2407+
},
2408+
{
2409+
"type": "CHOICE",
24022410
"members": [
24032411
{
2404-
"type": "FIELD",
2405-
"name": "open_tag",
2406-
"content": {
2407-
"type": "SYMBOL",
2408-
"name": "glimmer_opening_tag"
2409-
}
2410-
},
2411-
{
2412-
"type": "FIELD",
2413-
"name": "content",
2412+
"type": "ALIAS",
24142413
"content": {
24152414
"type": "REPEAT",
24162415
"content": {
24172416
"type": "SYMBOL",
24182417
"name": "_glimmer_template_content"
24192418
}
2420-
}
2419+
},
2420+
"named": true,
2421+
"value": "raw_text"
24212422
},
24222423
{
2423-
"type": "FIELD",
2424-
"name": "close_tag",
2425-
"content": {
2426-
"type": "SYMBOL",
2427-
"name": "glimmer_closing_tag"
2428-
}
2424+
"type": "BLANK"
24292425
}
24302426
]
24312427
},
24322428
{
2433-
"type": "SEQ",
2434-
"members": [
2435-
{
2436-
"type": "FIELD",
2437-
"name": "open_tag",
2438-
"content": {
2439-
"type": "SYMBOL",
2440-
"name": "glimmer_opening_tag"
2441-
}
2442-
},
2443-
{
2444-
"type": "FIELD",
2445-
"name": "close_tag",
2446-
"content": {
2447-
"type": "SYMBOL",
2448-
"name": "glimmer_closing_tag"
2449-
}
2450-
}
2451-
]
2429+
"type": "FIELD",
2430+
"name": "close_tag",
2431+
"content": {
2432+
"type": "SYMBOL",
2433+
"name": "glimmer_closing_tag"
2434+
}
24522435
}
24532436
]
24542437
},
@@ -6533,6 +6516,10 @@
65336516
{
65346517
"type": "SYMBOL",
65356518
"name": "jsx_text"
6519+
},
6520+
{
6521+
"type": "SYMBOL",
6522+
"name": "raw_text"
65366523
}
65376524
],
65386525
"inline": [

src/node-types.json

+15
Original file line numberDiff line numberDiff line change
@@ -1640,6 +1640,16 @@
16401640
}
16411641
]
16421642
}
1643+
},
1644+
"children": {
1645+
"multiple": false,
1646+
"required": false,
1647+
"types": [
1648+
{
1649+
"type": "raw_text",
1650+
"named": true
1651+
}
1652+
]
16431653
}
16441654
},
16451655
{
@@ -2242,6 +2252,11 @@
22422252
]
22432253
}
22442254
},
2255+
{
2256+
"type": "raw_text",
2257+
"named": true,
2258+
"fields": {}
2259+
},
22452260
{
22462261
"type": "regex",
22472262
"named": true,

0 commit comments

Comments
 (0)