Download Latest Version scalafmt-x86_64-pc-win32.zip (9.2 MB)
Email in envelope

Get an email when there's a new version of scalafmt

Home / v3.10.5
Name Modified Size InfoDownloads / Week
Parent folder
scalafmt-x86_64-pc-win32.zip 2026-01-28 9.3 MB
scalafmt-macos 2026-01-28 80.2 MB
scalafmt-aarch64-pc-linux.zip 2026-01-28 11.7 MB
scalafmt-x86_64-apple-darwin.zip 2026-01-28 14.8 MB
scalafmt-aarch64-apple-darwin.zip 2026-01-28 13.7 MB
scalafmt-x86_64-pc-linux.zip 2026-01-28 13.3 MB
scalafmt-linux-musl 2026-01-28 82.9 MB
scalafmt-linux-glibc 2026-01-28 89.2 MB
README.md 2026-01-28 1.6 kB
v3.10.5 source code.tar.gz 2026-01-28 1.8 MB
v3.10.5 source code.zip 2026-01-28 2.2 MB
Totals: 11 Items   319.1 MB 0

Features

This release has a number of features and fixes to allow scalafmt adoption to extend to scala.js as well.

  • improve handling of rewrite.insertBraces functionality
  • InsertBlocks: add settings and overrideFor (#5172) @kitbellew
    • FormatWriter: use InsertBraces.countBreakBefore (#5170) @kitbellew
  • MissingBraces: include method result type as well (#5168) @kitbellew
  • MissingBraces: extract all nested if-else blocks (#5164) @kitbellew
  • MissingBraces: ensure right brace belongs to body (#5163) @kitbellew
  • MissingBraces: return some parts as non-blocks (#5162) @kitbellew
  • MissingBraces: implement for if-then, for-do (#5161) @kitbellew
  • InsertBraces: fix renaming maxLines to maxBreaks (#5159) @kitbellew
    • InsertBraces: rename maxLines to maxBreaks (#5157) @kitbellew
  • MissingBraces: pass InsertBlocks, get case class (#5158) @kitbellew
  • Splits: use comments.indentTrailingInCaseBody (#5166) @kitbellew
  • Splits: use optional beforeParenLambdaParams (#5147) @kitbellew
  • IndentOperator: allow multiple exemptScope vals (#5130) @kitbellew
  • add new infix style which preserves existing breaks but possibly adds new ones
  • Infix.Style: rename keep to none, keepNL to keep (#5110) @kitbellew
  • FormatOps: don't break before infix arg in braces (#5124) @kitbellew
  • FormatOps: handle infix=keepNL even more correctly (#5122) @kitbellew
  • FormatOps: handle infix=keepNL correctly (#5121) @kitbellew
  • DialectMacro: capture only public Dialect methods (#5192) @kitbellew
  • SyntacticGroupOps: fix for patterns, scala3 types (#5186) @kitbellew
  • Splits: keep classic break for two-branches assign (#5185) @kitbellew
  • InfixSplits: use 0 cost for non-break "NL" split (#5181) @kitbellew
  • ScalafmtConfig: change binPack.importSelectors (#5183) @kitbellew
  • Imports: don't check errors if rule isn't used (#5182) @kitbellew

Miscellaneous

  • InfixSplits: findNestedInfixes was always true (#5201) @kitbellew
  • Split: move policy as the first default parameter (#5199) @kitbellew
  • SyntacticGroup: replace with scalameta version (#5197) @kitbellew
  • TreeSyntacticGroup: change imports (#5196) @kitbellew
  • SyntacticGroup: remove unused PrefixArg (#5191) @kitbellew
  • SyntacticGroupOps: refactor, simplify two bools (#5184) @kitbellew
  • Rewrite: cosmetic: remove unused, add types (#5178) @kitbellew
  • RewriteFactory: create() returns an Option now (#5177) @kitbellew

Build and dependency updates

  • scalameta: upgrade to v4.14.6 (#5195) @kitbellew
  • scala-native: upgrade to v0.5.10 (#5190) @kitbellew
Source: README.md, updated 2026-01-28