💥 BREAKING CHANGES
🚀 Features
- 336b2c1 oxfmt: Support html-in-js templates closing a dynamic tag name (#28389) (Yuji Sugiura)
- 0a42af6 formatter_htmlish: Format end tags of omitted
html,headandbody(#28388) (Yuji Sugiura) - 44d8c2b formatter_htmlish: Implement HTML-ish formatter
Htmlvariant (#28272) (Yuji Sugiura) - 36e5ddb oxfmt: Add debug span for reading files (#28204) (leaysgur)
🐛 Bug Fixes
- dbcc358 formatter: Keep arrow conditional body parens before a leading
function/class(#28710) (Yuji Sugiura) - fef809a formatter_htmlish: Handle XHTML (#28703) (leaysgur)
- f3dd201 formatter_htmlish: Keep SVG text under
xml:space="preserve"as written (#28382) (Yuji Sugiura) - fb3aefa formatter: Keep source parens around html-in-js placeholders past comments (#28381) (Yuji Sugiura)
- e738dae formatter: Quote keys added in an HTML event handler with single quotes (#28380) (Yuji Sugiura)
- 2e7a629 oxfmt: Format HTML in a
<script>body as an embedded part (#28379) (Yuji Sugiura) - f00862b formatter: Keep parens around a generic function type in a type assertion (#28173) (vidigoat)
- 9ead5c4 formatter: Handle
this.bandsuper.blikefoo.b(#28200) (leaysgur) - 72a54cf formatter: Break parens of
(a + b)[c]like(a + b).c(#28199) (leaysgur) - b8f4f34 formatter: Print
x.bandx.#bsamely (#28193) (leaysgur) - 9ddccb7 formatter: Keep parens for private field (#28188) (leaysgur)
⚡ Performance
- b6f1ac9 formatter_markdown: Bump parser to 0.0.4 and skip unread work (#28713) (leaysgur)
- 633ee96 formatter_css: Use
u32spans (#28708) (leaysgur) - f680ee1 formatter_yaml: Use
multilineflag for flow scalars (#28707) (leaysgur) - ff7c203 formatter_css: Avoid repeated scans and allocations in values (#28706) (leaysgur)
- 7cd46cb formatter_htmlish: Search script end tags by
<in embedded (#28704) (leaysgur) - 46f8efd formatter_graphql: Print block string lines borrowed from the source (#28701) (leaysgur)
- dce1485 formatter_htmlish: Skip escaping attr values without the chosen quote (#28700) (leaysgur)
- e9392c8 formatter_core: Search line terminators with memchr (#28699) (leaysgur)
- ceb26be formatter_htmlish: Use
charto escape attr quotes (#28697) (leaysgur) - 8239dac parser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)
📚 Documentation
- 303d9e8 formatter: Strengthen
start-token-no-double-parensrationale (#28711) (Yuji Sugiura) - a82ce83 oxfmt: Update unclassified divergence (#28685) (Yuji Sugiura)
- 7f18c20 formatter_htmlish: Note
classandsrcsetare formatted withembeddedLanguageFormatting: off(#28465) (Yuji Sugiura) - 01ed68a oxfmt,formatter_htmlish,formatter: Clean up behavior comments (#28384) (Yuji Sugiura)
- a363c27 formatter_css,formatter_yaml: Point parser citations at AGENTS.md (#28466) (Yuji Sugiura)
- 6586050 formatter_core: Document tab width in text width policy (#28393) (leaysgur)
- 49fbffb formatter_core: Tighten FORMATTER_POLICY (#28206) (leaysgur)