Prettier 3.9.5
Prettier 3.9.5: The Little Fixes That Matter
Remember when Prettier was just a humble opinionated formatter for JavaScript? What began in 2017 as a side project by James Long has evolved into the de facto standard for code formatting across the entire web ecosystem — JavaScript, TypeScript, CSS, HTML, Markdown, JSON, and beyond. Version 3.9.5 continues that trajectory with three targeted fixes that showcase the project's maturation into a precision instrument.
Markdown: Capping Ordered List Marks
CommonMark parsers only support ordered list item numbers up to 999,999,999. Numbers larger than that were being silently capped or, worse, misparsed entirely — producing output that looked right but rendered wrong. Prettier 3.9.5 now properly handles this edge case, ensuring that your Markdown renders correctly no matter how oddly numbered your lists get. It's the kind of spec-compliance fix that only matters when it doesn't work.
Markdown: Preserving Empty Links
An interesting edge case was discovered where Prettier would silently remove angle brackets from an inline link with an empty URL and a title attribute, which changed its interpretation entirely. The change from [link](<> "title") to [link]( "title") might look harmless, but it broke the link semantics. This fix ensures that empty-url links with titles keep their brackets.
Less: Cleaner Map Lookups
Less map lookups with spaces after the opening bracket — like #theme[ primary] — were previously left with unwanted whitespace. Prettier 3.9.5 now strips the extra spaces, producing the cleaner output you'd expect from an opinionated formatter.
CSS: Preventing Space in type() with +
When using the CSS type() function with a + selector, Prettier was inserting an unwanted space. This subtle formatting glitch has been resolved, bringing the CSS output in line with user expectations.
The Verdict
Prettier 3.9.5 is a maintenance release through and through — no grand features, no paradigm shifts, just the kind of careful edge-case handling that makes a mature project worth depending on. The trajectory from v1.0's basic JS formatting to today's multi-language precision is a testament to the project's longevity. Upgrade when you can, but there's no rush — this is polish, not revolution.