1
1
const NEWLINE = / \r ? \n / ;
2
+ const ANYTHING_OR_NONE = / [ ^ \n \r ] * / ;
2
3
const ANYTHING = / [ ^ \n \r ] + / ;
3
- const SUBJECT = / [ ^ \n \r ] { 0 , 49 } / ;
4
4
const NOT_A_COMMENT = / [ ^ # ] / ;
5
- const SUMMARY = / [ ^ \n \r ] { 0 , 72 } / ;
6
5
const SCISSORS = / # - + > 8 - + \r ? \n / ;
7
6
const BRANCH_NAME = / [ ^ \s ' ” » " “ ] + / ;
8
7
const COMMIT = / [ 0 - 9 a - f ] { 7 , 40 } / ;
@@ -20,11 +19,7 @@ module.exports = grammar({
20
19
name : 'gitcommit' ,
21
20
extras : ( ) => [ ] ,
22
21
23
- externals : ( $ ) => [
24
- $ . _conventional_type ,
25
- $ . _conventional_subject ,
26
- $ . _trailer_value ,
27
- ] ,
22
+ externals : ( $ ) => [ $ . _conventional_type , $ . _trailer_value ] ,
28
23
29
24
rules : {
30
25
source : ( $ ) =>
@@ -41,11 +36,7 @@ module.exports = grammar({
41
36
optional (
42
37
seq ( alias ( choice ( 'fixup!' , 'amend!' ) , $ . subject_prefix ) , WHITESPACE )
43
38
) ,
44
- choice (
45
- seq ( NOT_A_COMMENT , SUBJECT ) ,
46
- seq ( $ . prefix , $ . _conventional_subject )
47
- ) ,
48
- optional ( alias ( ANYTHING , $ . overflow ) )
39
+ choice ( seq ( NOT_A_COMMENT , ANYTHING_OR_NONE ) , seq ( $ . prefix , ANYTHING ) )
49
40
) ,
50
41
51
42
prefix : ( $ ) =>
@@ -57,25 +48,19 @@ module.exports = grammar({
57
48
) ,
58
49
59
50
_body_line : ( $ ) =>
60
- choice ( $ . _message , $ . breaking_change , $ . trailer , $ . comment , NEWLINE ) ,
51
+ choice ( $ . message_line , $ . breaking_change , $ . trailer , $ . comment , NEWLINE ) ,
61
52
62
- _message : ( $ ) =>
63
- seq ( seq ( NOT_A_COMMENT , SUMMARY ) , optional ( alias ( ANYTHING , $ . overflow ) ) ) ,
53
+ message_line : ( $ ) => seq ( seq ( NOT_A_COMMENT , ANYTHING_OR_NONE ) ) ,
64
54
65
55
trailer : ( $ ) =>
66
- seq (
67
- alias ( TRAILER_TOKEN , $ . token ) ,
68
- alias ( $ . _trailer_value , $ . value ) ,
69
- optional ( alias ( ANYTHING , $ . overflow ) )
70
- ) ,
56
+ seq ( alias ( TRAILER_TOKEN , $ . token ) , optional ( alias ( ANYTHING , $ . value ) ) ) ,
71
57
72
58
breaking_change : ( $ ) =>
73
59
seq (
74
60
// BREAKING_CHANGE conflicts with TRAILER_TOKEN, an so requires higher
75
61
// lexical precedence
76
62
alias ( token ( prec ( 1 , BREAKING_CHANGE ) ) , $ . token ) ,
77
- alias ( $ . _trailer_value , $ . value ) ,
78
- optional ( alias ( ANYTHING , $ . overflow ) )
63
+ optional ( alias ( ANYTHING , $ . value ) )
79
64
) ,
80
65
81
66
comment : ( $ ) =>
0 commit comments