12c: a test pins the closer to its list item or blockquote edge, and 4c names the list-item walk's re-scan class
This commit was merged in pull request #86.
This commit is contained in:
@@ -305,6 +305,7 @@ test('names the container no closer closes inside the block holding it', () => {
|
||||
assert.deepEqual(path(markdownToAdf('Part.\n!adf:expand\n')), ['content', 1])
|
||||
assert.equal(content(markdownToAdf('!adf:bulletList\n')), unclosed('bulletList'))
|
||||
assert.equal(content(markdownToAdf('- !adf:panel info\n Part.\n!adf:/panel\n')), unclosed('panel'))
|
||||
assert.equal(content(markdownToAdf('> !adf:panel info\n> - a\n> !adf:/panel\n')), unclosed('panel'))
|
||||
assert.equal(content(markdownToAdf('!adf:panel info\n!adf:expand\nPart.\n!adf:/panel\n')), unclosed('expand'))
|
||||
assert.deepEqual(path(markdownToAdf('!adf:panel info\n!adf:expand\nPart.\n!adf:/panel\n')), ['content', 0, 'content', 0])
|
||||
})
|
||||
|
||||
@@ -74,9 +74,11 @@ proves 12, 13 spells 11's gaps in 12's grammar, and 12 rewrites code 4b and 4c c
|
||||
them: `readNestedDirective` restarts its depth counter per level, so each parse level
|
||||
re-scans the region below it and nested inline directives cost O(depth × content) — 3f's
|
||||
cost, which 3i's slot parse doubles rather than changes in class, bounded by the 500-level
|
||||
guard. A fifth predates 12c: a blank line continues every open list item without consuming
|
||||
input, so the block walk visits the whole item stack per line — `d` nested items and `4d`
|
||||
blank lines take 11s at 59 KB (the stability-reviewer, 2026-09-16). §11's scanning rule is
|
||||
guard. A fifth predates 12c: the list-item walk re-scans the rest of a line once per item
|
||||
level — `isThematicBreak` in `containerStart` on an opener line, `isBlankLine` and
|
||||
`leadingColumns` in `continuesContainer` on a continuation line, and a blank line
|
||||
continues every open item without consuming input; 30000 nested items take 4.4s at 59 KB
|
||||
(the stability-reviewer, 2026-09-16). §11's scanning rule is
|
||||
the whole argument; the pipeline persona feeds documents nobody typed.
|
||||
`readDirectiveContent`'s scan splits into named steps with that fix rather than keeping its
|
||||
complexity (the maintainer, 2026-09-16).
|
||||
|
||||
Reference in New Issue
Block a user