Skip to content

Commit d3c15bd

Browse files
authored
feat(body): surround body with message node (#4)
Ref: #3
1 parent 49763bd commit d3c15bd

File tree

10 files changed

+2166
-1967
lines changed

10 files changed

+2166
-1967
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.

corpus/body.txt

Lines changed: 40 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ this is a simple subject
2121

2222
(source
2323
(subject)
24-
(comment))
24+
(message
25+
(comment)))
2526

2627
================================================================================
2728
Empty file w/ comments
@@ -32,7 +33,8 @@ Empty file w/ comments
3233
--------------------------------------------------------------------------------
3334

3435
(source
35-
(comment))
36+
(message
37+
(comment)))
3638

3739
================================================================================
3840
Empty file w/ empty comment
@@ -43,7 +45,8 @@ Empty file w/ empty comment
4345
--------------------------------------------------------------------------------
4446

4547
(source
46-
(comment))
48+
(message
49+
(comment)))
4750

4851
================================================================================
4952
Multiline body
@@ -58,8 +61,6 @@ And a paragraph.
5861

5962
(source
6063
(subject)
61-
(message)
62-
(message)
6364
(message))
6465

6566
================================================================================
@@ -77,10 +78,6 @@ test(trailer): test
7778

7879
(source
7980
(subject)
80-
(message)
81-
(message)
82-
(message)
83-
(message)
8481
(message))
8582

8683
================================================================================
@@ -93,9 +90,10 @@ Signed-by: gbprod <contact@gb-prod.fr>
9390

9491
(source
9592
(subject)
96-
(trailer
97-
(token)
98-
(value)))
93+
(message
94+
(trailer
95+
(token)
96+
(value))))
9997

10098
================================================================================
10199
Multiple trailers
@@ -112,21 +110,22 @@ Suggested-by: Toto
112110

113111
(source
114112
(subject)
115-
(trailer
116-
(token)
117-
(value))
118-
(trailer
119-
(token)
120-
(value))
121-
(trailer
122-
(token)
123-
(value))
124-
(trailer
125-
(token)
126-
(value))
127-
(trailer
128-
(token)
129-
(value)))
113+
(message
114+
(trailer
115+
(token)
116+
(value))
117+
(trailer
118+
(token)
119+
(value))
120+
(trailer
121+
(token)
122+
(value))
123+
(trailer
124+
(token)
125+
(value))
126+
(trailer
127+
(token)
128+
(value))))
130129

131130
================================================================================
132131
Mixed
@@ -146,18 +145,16 @@ And go on
146145

147146
(source
148147
(subject)
149-
(message)
150-
(trailer
151-
(token)
152-
(value))
153-
(message)
154-
(trailer
155-
(token)
156-
(value))
157-
(trailer
158-
(token)
159-
(value))
160-
(message))
148+
(message
149+
(trailer
150+
(token)
151+
(value))
152+
(trailer
153+
(token)
154+
(value))
155+
(trailer
156+
(token)
157+
(value))))
161158

162159
================================================================================
163160
BREAKING CHANGE
@@ -170,7 +167,7 @@ BREAKING CHANGE: My message
170167
--------------------------------------------------------------------------------
171168

172169
(source
173-
(message)
174-
(breaking_change
175-
(token)
176-
(value)))
170+
(message
171+
(breaking_change
172+
(token)
173+
(value))))

corpus/comments.txt

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ This is a simple subject
99

1010
(source
1111
(subject)
12-
(comment))
12+
(message
13+
(comment)))
1314

1415
================================================================================
1516
Comment without space
@@ -22,7 +23,8 @@ This is a simple subject
2223

2324
(source
2425
(subject)
25-
(comment))
26+
(message
27+
(comment)))
2628

2729
================================================================================
2830
Empty comment
@@ -35,7 +37,8 @@ This is a simple subject
3537

3638
(source
3739
(subject)
38-
(comment))
40+
(message
41+
(comment)))
3942

4043
================================================================================
4144
Multiline comments
@@ -52,10 +55,11 @@ This is a simple subject
5255

5356
(source
5457
(subject)
55-
(comment)
56-
(comment)
57-
(comment)
58-
(comment))
58+
(message
59+
(comment)
60+
(comment)
61+
(comment)
62+
(comment)))
5963

6064
================================================================================
6165
Comment title
@@ -67,7 +71,7 @@ Comment title
6771
--------------------------------------------------------------------------------
6872

6973
(source
70-
(comment
71-
(title))
72-
(comment))
73-
74+
(message
75+
(comment
76+
(title))
77+
(comment)))

corpus/scissor.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ index 457a414..94b9036 100644
1818

1919
(source
2020
(subject)
21-
(comment)
21+
(message
22+
(comment))
2223
(scissor)
2324
(diff
2425
(generated_comment)
@@ -37,7 +38,8 @@ This is a simple subject
3738

3839
(source
3940
(subject)
40-
(comment)
41+
(message
42+
(comment))
4143
(scissor)
4244
(diff
4345
(generated_comment)

grammar.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module.exports = grammar({
2525
seq(
2626
repeat($.comment),
2727
optional(seq(seq($.subject, NEWLINE), repeat($.comment))),
28-
optional(seq(NEWLINE, repeat($._body_line))),
28+
optional(seq(NEWLINE, alias(repeat($._body_line), $.message))),
2929
optional($._generated_comments),
3030
optional($._scissor)
3131
),
@@ -45,9 +45,9 @@ module.exports = grammar({
4545
),
4646

4747
_body_line: ($) =>
48-
choice($.message, $.breaking_change, $.trailer, $.comment, NEWLINE),
48+
choice($._message, $.breaking_change, $.trailer, $.comment, NEWLINE),
4949

50-
message: () => seq(NOT_A_COMMENT, optional(ANYTHING)),
50+
_message: () => seq(NOT_A_COMMENT, optional(ANYTHING)),
5151

5252
trailer: ($) =>
5353
seq(alias(TRAILER_TOKEN, $.token), alias(ANYTHING, $.value)),

src/grammar.json

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,16 @@
5555
"value": "\\r?\\n"
5656
},
5757
{
58-
"type": "REPEAT",
58+
"type": "ALIAS",
5959
"content": {
60-
"type": "SYMBOL",
61-
"name": "_body_line"
62-
}
60+
"type": "REPEAT",
61+
"content": {
62+
"type": "SYMBOL",
63+
"name": "_body_line"
64+
}
65+
},
66+
"named": true,
67+
"value": "message"
6368
}
6469
]
6570
},
@@ -211,7 +216,7 @@
211216
"members": [
212217
{
213218
"type": "SYMBOL",
214-
"name": "message"
219+
"name": "_message"
215220
},
216221
{
217222
"type": "SYMBOL",
@@ -231,7 +236,7 @@
231236
}
232237
]
233238
},
234-
"message": {
239+
"_message": {
235240
"type": "SEQ",
236241
"members": [
237242
{

src/node-types.json

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,25 @@
103103
{
104104
"type": "message",
105105
"named": true,
106-
"fields": {}
106+
"fields": {},
107+
"children": {
108+
"multiple": true,
109+
"required": false,
110+
"types": [
111+
{
112+
"type": "breaking_change",
113+
"named": true
114+
},
115+
{
116+
"type": "comment",
117+
"named": true
118+
},
119+
{
120+
"type": "trailer",
121+
"named": true
122+
}
123+
]
124+
}
107125
},
108126
{
109127
"type": "prefix",
@@ -137,10 +155,6 @@
137155
"multiple": true,
138156
"required": false,
139157
"types": [
140-
{
141-
"type": "breaking_change",
142-
"named": true
143-
},
144158
{
145159
"type": "comment",
146160
"named": true
@@ -164,10 +178,6 @@
164178
{
165179
"type": "subject",
166180
"named": true
167-
},
168-
{
169-
"type": "trailer",
170-
"named": true
171181
}
172182
]
173183
}

0 commit comments

Comments
 (0)