Skip to content

Commit 22d5dcd

Browse files
authored
fix: unclosed "{", argument with whitespace #41
fix #34 fix #38 fix #39 fix #40
1 parent bf6a269 commit 22d5dcd

File tree

5 files changed

+4883
-3811
lines changed

5 files changed

+4883
-3811
lines changed

corpus/arguments.txt

Lines changed: 67 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
================================================================================
2-
simple argument
2+
argument
33
================================================================================
4-
This in an argument: {arg}
4+
argument: {arg}
5+
argument: {arg arg}
6+
CTRL-R CTRL-R {register CTRL-F}
7+
list of { uri:string, name: string } tables
58

69

710
--------------------------------------------------------------------------------
@@ -10,11 +13,26 @@ This in an argument: {arg}
1013
(block
1114
(line
1215
(word)
16+
(argument
17+
(word)))
18+
(line
1319
(word)
20+
(argument
21+
(word)))
22+
(line
1423
(word)
15-
(word)
24+
(keycode)
1625
(argument
17-
(word)))))
26+
(word)))
27+
(line
28+
(word)
29+
(word)
30+
(word)
31+
(word)
32+
(word)
33+
(word)
34+
(word)
35+
(word))))
1836

1937
================================================================================
2038
multiple arguments on the same line
@@ -54,6 +72,14 @@ argument in parentheses
5472
NOT an argument
5573
================================================================================
5674
{foo "{bar}" `{baz}` |{baz| } {}
75+
foo { bar
76+
{ {} foo{{ foo{{{
77+
{{
78+
{{{
79+
{ } foo
80+
, inside { }:
81+
\} literal } x
82+
\{ literal { x
5783

5884
===============
5985
3. Netrw *netrw-ref* {{{1
@@ -66,15 +92,50 @@ EXTERNAL *netrw-externapp* {{{2
6692
(help_file
6793
(block
6894
(line
95+
(word)
96+
(ERROR
97+
(word))
6998
(argument
70-
(word)
71-
(MISSING "}"))
99+
(word))
72100
(word)
73101
(codespan
74102
(word))
75103
(taglink
76104
(word))
77105
(word)
106+
(word))
107+
(line
108+
(word)
109+
(word)
110+
(word))
111+
(line
112+
(word)
113+
(word)
114+
(word)
115+
(word))
116+
(line
117+
(word))
118+
(line
119+
(word))
120+
(line
121+
(word)
122+
(word)
123+
(word))
124+
(line
125+
(word)
126+
(word)
127+
(word)
128+
(word)
129+
(word))
130+
(line
131+
(word)
132+
(word)
133+
(word)
134+
(word))
135+
(line
136+
(word)
137+
(word)
138+
(word)
78139
(word)))
79140
(block
80141
(line

grammar.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,10 @@ module.exports = grammar({
7373
seq('|', /[^|\n\t ]+/),
7474
// NOT taglink: "||".
7575
/\|\|*/,
76-
// NOT argument: "{}".
77-
/\{\}/,
76+
// NOT argument:
77+
'{',
78+
'}',
79+
'{}',
7880
/\{\{+[0-9]*/,
7981
'(',
8082
/\w+\(/,
@@ -201,7 +203,7 @@ module.exports = grammar({
201203
// Inline code (may contain whitespace!): `foo bar`
202204
codespan: ($) => _word($, /[^``\n]+/, '`', '`'),
203205
// Argument: {arg}
204-
argument: ($) => _word($, /[^{}\n\t ]+/, '{', '}'),
206+
argument: ($) => _word($, /[^{}\n\t ][^{}\n\t]*/, '{', '}'),
205207
},
206208
});
207209

src/grammar.json

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,16 @@
239239
"value": "\\|\\|*"
240240
},
241241
{
242-
"type": "PATTERN",
243-
"value": "\\{\\}"
242+
"type": "STRING",
243+
"value": "{"
244+
},
245+
{
246+
"type": "STRING",
247+
"value": "}"
248+
},
249+
{
250+
"type": "STRING",
251+
"value": "{}"
244252
},
245253
{
246254
"type": "PATTERN",
@@ -893,7 +901,7 @@
893901
"type": "IMMEDIATE_TOKEN",
894902
"content": {
895903
"type": "PATTERN",
896-
"value": "[^{}\\n\\t ]+"
904+
"value": "[^{}\\n\\t ][^{}\\n\\t]*"
897905
}
898906
},
899907
"named": true,

src/node-types.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,10 @@
425425
"type": "{",
426426
"named": false
427427
},
428+
{
429+
"type": "{}",
430+
"named": false
431+
},
428432
{
429433
"type": "|",
430434
"named": false

0 commit comments

Comments
 (0)