github oxc-project/oxc oxfmt_v0.76.0
oxfmt v0.76.0

latest release: oxlint_v1.91.0
3 hours ago

💥 BREAKING CHANGES

  • 296623d oxfmt: [BREAKING] Format parser:html files by oxc_formatter_htmlish (#28273) (Yuji Sugiura)

🚀 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, head and body (#28388) (Yuji Sugiura)
  • 44d8c2b formatter_htmlish: Implement HTML-ish formatter Html variant (#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.b and super.b like foo.b (#28200) (leaysgur)
  • 72a54cf formatter: Break parens of (a + b)[c] like (a + b).c (#28199) (leaysgur)
  • b8f4f34 formatter: Print x.b and x.#b samely (#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 u32 spans (#28708) (leaysgur)
  • f680ee1 formatter_yaml: Use multiline flag 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 char to escape attr quotes (#28697) (leaysgur)
  • 8239dac parser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)

📚 Documentation

  • 303d9e8 formatter: Strengthen start-token-no-double-parens rationale (#28711) (Yuji Sugiura)
  • a82ce83 oxfmt: Update unclassified divergence (#28685) (Yuji Sugiura)
  • 7f18c20 formatter_htmlish: Note class and srcset are formatted with embeddedLanguageFormatting: 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)

Don't miss a new oxc release

NewReleases is sending notifications on new releases.