and a leftover bug: priority of option list inside definition list
This commit is contained in:
parent
b8f761b7e2
commit
1b9b806007
2 changed files with 50 additions and 1 deletions
|
|
@ -2245,7 +2245,7 @@ proc parseOptionList(p: var RstParser): PRstNode =
|
||||||
popInd(p)
|
popInd(p)
|
||||||
else:
|
else:
|
||||||
parseLine(p, b)
|
parseLine(p, b)
|
||||||
if currentTok(p).kind == tkIndent: inc p.idx
|
while currentTok(p).kind == tkIndent: inc p.idx
|
||||||
c.add(a)
|
c.add(a)
|
||||||
c.add(b)
|
c.add(b)
|
||||||
c.order = order; inc order
|
c.order = order; inc order
|
||||||
|
|
@ -2262,6 +2262,8 @@ proc parseDefinitionList(p: var RstParser): PRstNode =
|
||||||
var col = currentTok(p).col
|
var col = currentTok(p).col
|
||||||
result = newRstNodeA(p, rnDefList)
|
result = newRstNodeA(p, rnDefList)
|
||||||
while true:
|
while true:
|
||||||
|
if isOptionList(p):
|
||||||
|
break # option list has priority over def.list
|
||||||
j = p.idx
|
j = p.idx
|
||||||
var a = newRstNode(rnDefName)
|
var a = newRstNode(rnDefName)
|
||||||
parseLine(p, a)
|
parseLine(p, a)
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,53 @@ suite "RST parsing":
|
||||||
rnLeaf 'set'
|
rnLeaf 'set'
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
test "items of 1 option list can be separated by blank lines":
|
||||||
|
check(dedent"""
|
||||||
|
-a desc1
|
||||||
|
|
||||||
|
-b desc2
|
||||||
|
""".toAst ==
|
||||||
|
dedent"""
|
||||||
|
rnOptionList
|
||||||
|
rnOptionListItem order=1
|
||||||
|
rnOptionGroup
|
||||||
|
rnLeaf '-'
|
||||||
|
rnLeaf 'a'
|
||||||
|
rnDescription
|
||||||
|
rnLeaf 'desc1'
|
||||||
|
rnOptionListItem order=2
|
||||||
|
rnOptionGroup
|
||||||
|
rnLeaf '-'
|
||||||
|
rnLeaf 'b'
|
||||||
|
rnDescription
|
||||||
|
rnLeaf 'desc2'
|
||||||
|
""")
|
||||||
|
|
||||||
|
test "option list has priority over definition list":
|
||||||
|
check(dedent"""
|
||||||
|
defName
|
||||||
|
defBody
|
||||||
|
|
||||||
|
-b desc2
|
||||||
|
""".toAst ==
|
||||||
|
dedent"""
|
||||||
|
rnInner
|
||||||
|
rnDefList
|
||||||
|
rnDefItem
|
||||||
|
rnDefName
|
||||||
|
rnLeaf 'defName'
|
||||||
|
rnDefBody
|
||||||
|
rnInner
|
||||||
|
rnLeaf 'defBody'
|
||||||
|
rnOptionList
|
||||||
|
rnOptionListItem order=1
|
||||||
|
rnOptionGroup
|
||||||
|
rnLeaf '-'
|
||||||
|
rnLeaf 'b'
|
||||||
|
rnDescription
|
||||||
|
rnLeaf 'desc2'
|
||||||
|
""")
|
||||||
|
|
||||||
test "RST comment":
|
test "RST comment":
|
||||||
check(dedent"""
|
check(dedent"""
|
||||||
.. comment1
|
.. comment1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue