Skip to content

Commit d76e6b7

Browse files
committed
[optional_arg]
fix #1
1 parent a75a932 commit d76e6b7

File tree

6 files changed

+55
-16
lines changed

6 files changed

+55
-16
lines changed

grammar.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ module.exports = grammar({
5757
$.taglink,
5858
$.codespan,
5959
$.argument,
60+
$.optional_arg,
6061
$.keycode,
6162
$.note,
6263
),
@@ -222,8 +223,10 @@ module.exports = grammar({
222223
taglink: ($) => _word($, prec(1, /[^|\n\t ]+/), '|', '|'),
223224
// Inline code (may contain whitespace!): `foo bar`
224225
codespan: ($) => _word($, /[^``\n]+/, '`', '`'),
225-
// Argument: {arg} (no whitespace allowed)
226+
// Argument: {arg} (no whitespace allowed), also {arg}? for LuaLS-style optional args.
226227
argument: ($) => seq(_word($, /[^}\n\t ]+/, '{', '}'), optional(token.immediate('?'))),
228+
// Optional argument: [arg] (no whitespace allowed)
229+
optional_arg: ($) => _word($, /[^\]\n\t ]+/, '[', ']'),
227230
},
228231
});
229232

test/corpus/arguments.txt test/corpus/argument.txt

+6-8
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,20 @@ nvim_buf_detach_event[{buf}]
123123
(word))
124124
(line
125125
(word)
126-
(word)
127-
(argument
128-
(word))
129-
(word))))
126+
(optional_arg
127+
(word)))))
130128

131129
================================================================================
132130
NOT an argument
133131
================================================================================
134132
a '{' '}' block
135133
{foo "{bar}" `{baz}` |{baz| } {}
136-
foo { bar
134+
foo { bar
137135
{ {} foo{{ foo{{{
138-
{{
139-
{{{
136+
{{
137+
{{{
140138
{ } foo
141-
, inside { }:
139+
, inside { }:
142140
\} literal } x
143141
\{ literal { x
144142

test/corpus/argument_optional.txt

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
================================================================================
2+
optional [argument]
3+
================================================================================
4+
:ar[gs]! [++opt] [+cmd] {arglist} *:args_f!*
5+
:[count]arge[dit][!] [++opt] [+cmd] {name} ..
6+
7+
8+
--------------------------------------------------------------------------------
9+
10+
(help_file
11+
(block
12+
(line
13+
(word)
14+
(optional_arg
15+
(word))
16+
(word)
17+
(optional_arg
18+
(word))
19+
(optional_arg
20+
(word))
21+
(argument
22+
(word))
23+
(tag
24+
(word)))
25+
(line
26+
(word)
27+
(optional_arg
28+
(word))
29+
(word)
30+
(optional_arg
31+
(word))
32+
(optional_arg
33+
(word))
34+
(optional_arg
35+
(word))
36+
(optional_arg
37+
(word))
38+
(argument
39+
(word))
40+
(word))))

test/corpus/codeblock.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -398,8 +398,8 @@ codeblock stop and start on same line
398398
(line
399399
(word)
400400
(word)
401-
(word)
402-
(word))
401+
(optional_arg
402+
(word)))
403403
(line
404404
(argument
405405
(word))))

test/corpus/taglink.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ Hello |world| hello
5656
(taglink
5757
(word))
5858
(word)
59-
(word)
60-
(word)
59+
(optional_arg
60+
(word))
6161
(word))
6262
(line
6363
(taglink

test/corpus/url.txt

+1-3
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,9 @@ markdown: [https://neovim.io/doc/user/#yay](https://neovim.io/doc/user/#yay).
5454
(word))
5555
(line
5656
(word)
57-
(word)
58-
(url
57+
(optional_arg
5958
(word))
6059
(word)
61-
(word)
6260
(url
6361
(word))
6462
(word))))

0 commit comments

Comments
 (0)