@@ -62,7 +62,7 @@ module.exports = grammar({
62
62
// Explicit special cases: these are plaintext, not errors.
63
63
_word_common : ( ) => choice (
64
64
// NOT tag: isolated "*".
65
- / \* [ \n \t ] / ,
65
+ '*' ,
66
66
// NOT optionlink: '
67
67
"'" ,
68
68
// NOT optionlink: 'x
@@ -208,26 +208,28 @@ module.exports = grammar({
208
208
optionlink : ( $ ) => _word ( $ , / [ a - z ] [ a - z ] + / , "'" , "'" ) ,
209
209
// Link to tag: |foo|
210
210
taglink : ( $ ) => _word ( $ , choice (
211
- token . immediate ( / [ ^ | \n \t ] + / ) ,
212
- // Special cases: |(| |{| …
213
- token . immediate ( '{' ) ,
214
- token . immediate ( '}' ) ,
215
- token . immediate ( '(' ) ,
216
- token . immediate ( ')' ) ,
217
- token . immediate ( '`' ) ,
218
- ) , '|' , '|' ) ,
211
+ / [ ^ | \n \t ] + / ,
212
+ // Special cases: |(| |{| …
213
+ '{' ,
214
+ '}' ,
215
+ '(' ,
216
+ ')' ,
217
+ '`' ,
218
+ ) ,
219
+ '|' , '|' ) ,
219
220
// Inline code (may contain whitespace!): `foo bar`
220
221
codespan : ( $ ) => _word ( $ , / [ ^ ` ` \n ] + / , '`' , '`' ) ,
221
- // Argument: {arg}
222
- argument : ( $ ) => _word ( $ , / [ ^ { } \n \t ] [ ^ { } \n \t ] * / , '{' , '}' ) ,
222
+ // Argument: {arg} (no whitespace allowed)
223
+ argument : ( $ ) => _word ( $ , / [ ^ } \n \t ] + / , '{' , '}' ) ,
223
224
} ,
224
225
} ) ;
225
226
226
227
// Word delimited by special chars.
227
228
// `rule` can be a rule function or regex. It is aliased to "word" because they are
228
229
// semantically the same: atoms of captured plain text.
229
230
function _word ( $ , rule , c1 , c2 , fname ) {
230
- rule = rule . test !== undefined ? token . immediate ( rule ) : rule
231
+ // rule = rule.test ? token.immediate(rule) : rule
232
+ // rule = token.immediate(rule)
231
233
fname = fname ?? 'text' ;
232
- return seq ( c1 , field ( fname , alias ( rule , $ . word ) ) , token . immediate ( c2 ) ) ;
234
+ return seq ( c1 , field ( fname , alias ( token . immediate ( prec ( 1 , rule ) ) , $ . word ) ) , token . immediate ( c2 ) ) ;
233
235
}
0 commit comments