biomejs
biome
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(markdown_parser): terminate fenced code blocks at list-item boundaries An unterminated fenced code block is valid per CommonMark §4.5 (it ends at the close of its container), but the grammar marked `r_fence` as required, so the absent closing fence left a `missing (required)` slot in the CST — for a plain unterminated fence and for fences opened inside bullet items. - Grammar: `MdFencedCodeBlock.r_fence` is now optional. A closing fence cannot be fabricated without breaking token-level losslessness, so an unterminated fence must legitimately leave the slot empty. - Parser: a fenced code block cannot be lazily continued, so its content ends when a line de-indents below the enclosing list item's required indent — measured after any blockquote prefixes, so a `> - x` sibling is handed back to the list/quote parser instead of being absorbed as code. Reuses the existing `consume_indent` helper. Tests: CST invariant tests (missing-slot + per-list item counts for plain, nested, blockquoted), `.md`/`.snap` parser fixtures, and three commonmark- referenced seed cases in the differential fuzz corpus.
jfmcdowell:fix/md-fence-bullet-item
2 hours ago
test(markdown_parser): add fence-as-bullet CST fixtures; reuse consume_indent Add `.md` + `.snap` parser fixtures for the plain and blockquoted fence-as-bullet cases so the CST shape is reviewable, not only asserted by the structural-count invariant tests. Rework the de-indent helpers to reuse the file's canonical `consume_indent` column counter instead of a hand-rolled byte loop. Indentation stays an explicit space/tab measurement (CommonMark indentation is space/tab only — narrower than `biome_unicode_table`'s `WHS`, which also matches \n\r\f\v), documented inline.
jfmcdowell:fix/md-fence-bullet-item
2 hours ago
docs(markdown_parser): note optional r_fence in fenced-code grammar comment
jfmcdowell:fix/md-fence-bullet-item
5 hours ago
fix(markdown_parser): end blockquoted fence-as-bullet at item boundary The fenced-code de-indent break ran after the line's blockquote prefix was consumed into the code block, so `> - x` had its `>` absorbed and `- x` was mis-parsed as a paragraph inside the first item (two bullets instead of three). Decide the de-indent before consuming the quote prefix — measuring the line's indent after any `>` prefixes — so on a de-indent the block ends at the raw line start and the list/quote parser re-reads the line as a sibling. Strengthen the nested test to assert per-list item counts ([1, 3]) and add a blockquoted regression ([3]); both previously only checked for a missing required slot.
jfmcdowell:fix/md-fence-bullet-item
5 hours ago
fix(lint): detect optional-chain inequality guards (#10425)
main
6 hours ago
fix(markdown_parser): terminate fenced code blocks at list-item boundaries An unterminated fenced code block is valid per CommonMark §4.5 (it ends at the close of its container), but the grammar marked `r_fence` as required, so the absent closing fence left a `missing (required)` slot in the CST — e.g. a plain `` ``` `` document or a fence opened inside a bullet item. Two coupled fixes: - Grammar: make `MdFencedCodeBlock.r_fence` optional, since a closing fence cannot be fabricated without breaking token-level losslessness. - Parser: a fenced code block cannot be lazily continued, so its content now stops when a line de-indents below the enclosing list item's required indent, handing the line back to the list parser as a sibling instead of swallowing it as code. cst-check sweeps (50k + 500k targeted corpora): missing_required and stray_list_newline both 0. Differential vs commonmark.js: 512 fewer divergences, zero new ones.
jfmcdowell:fix/md-fence-bullet-item
6 hours ago
fix(lint): detect optional-chain inequality guards
sjh9714:fix-use-optional-chain-inequality-guard
6 hours ago
docs: fix duplicate "from" in noUntrustedLicenses diagnostic (#10465)
main
7 hours ago
Latest Branches
CodSpeed Performance Gauge
+1%
fix(markdown_parser): terminate fenced code blocks at list-item boundaries
#10471
2 hours ago
897a147
jfmcdowell:fix/md-fence-bullet-item
CodSpeed Performance Gauge
0%
fix(lint): detect optional-chain inequality guards
#10425
7 days ago
9f94ebb
sjh9714:fix-use-optional-chain-inequality-guard
CodSpeed Performance Gauge
0%
docs: fix duplicate "from" in noUntrustedLicenses diagnostic
#10465
7 hours ago
82e7f5b
dfedoryshchev:chore/fix-duplicate-from-in-untrusted-licenses-diagnostic
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs