You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support Apex multiline string literals ('''...'''), preserving their content verbatim (release notes).
Support the SOQL FORMULA('...') function in WHERE clauses (release notes). The formula expression is printed verbatim from the source.
Support the SOQL WITH tuple/key-value form (WITH Identifier(key = value, ...)), which previously threw No handler found (issue).
Fix trailing empty line not printed after ignored nodes in class declaration blocks (issue).
Fix standalone comments before SOQL WITH SECURITY_ENFORCED / WITH USER_MODE / WITH SYSTEM_MODE clauses migrating between WITH and the identifier across format passes.
Fix trailing comments on the last field of a SOSL RETURNING X(...) clause migrating outside the closing paren across format passes.
Dependency Changes
Drop support for NodeJS < 22.
Drop support for Java < 17.
Internal Changes
Improve AST post-processing performance by ~1.7X, thanks to @lukecotter.
Replace runtime XStream reflection with a build-time code-generated serializer, substantially improving serialization performance.
Initialize the jorje parser stack at native-image build time, cutting per-file process startup (~4x faster cold start in spawn-per-file native mode) - thanks to @lukecotter for the technique in #2405.
Replace eslint with biome for linting purpose.
Add a performance benchmark harness for profiling where time goes during formatting.
Add a CI workflow that benchmarks a labeled PR against its base branch, and can also be run manually on any branch or against a contributor's PR.
Tighten the plugin to strict TypeScript (strict: true, no any), including a typed @class -> handler dispatch in the printer. Type-safety only, no change to formatted output.