Releases: scalameta/scalafmt
Releases Β· scalameta/scalafmt
v3.9.9
Bug fixes
- RedundantBraces: remove in if-guard sometimes (#4953) @kitbellew
- RedundantParens: relax rule around tuples (#4950) @kitbellew
- RedundantParens: refactor and expand findEnclosed (#4951) @kitbellew
- Splits: observe break in
for
ifkeep
(#4942) @kitbellew
Build and dependency updates
- Scalameta: upgrade to v4.13.9 (#4952) @kitbellew
- SBT: replace deprecated Resolver.sonatypeOssRepos (#4949) @kitbellew
- Update sbt-scalafmt to 2.5.5 (#4946) @scalameta-bot
- Update sbt, scripted-plugin to 1.11.2 (#4945) @scalameta-bot
- Update sbt-ci-release to 1.11.1 (#4943) @scalameta-bot
v3.9.8
Bug fixes
- handle polymorphic function just like regular or contextual functions
- Use FunctionLike/Member.Function for FunctionTerm (#4938) @kitbellew
- FormatWriter: use Tree.Block, not AlignContainer (#4937) @kitbellew
- Splits: handle poly function after
{
and=>
(#4936) @kitbellew - Term.FunctionTerm: expand to Member.Function (#4932) @kitbellew
Miscellaneous
- DynamicSuite: relax Download filter (#4931) @kitbellew
- GitOps: add tryExecLines and catch any Throwable (#4929) @kitbellew
- {CustomStructure,EmptyFile}Test: refactor slightly (#4928) @kitbellew
- ScalafmtReflect: add dynamic version to exception (#4926) @kitbellew
- DynamicSuite: properly assert out is empty (#4927) @kitbellew
- DynamicSuite: don't modify the expected exception (#4925) @kitbellew
- Fix wrong config name and outdated path in doc (#4924) @samabcde
- {Git,File}OpsTest: use fixtures, don't share state (#4923) @kitbellew
- GitOpsTest: move some methods into companion (#4922) @kitbellew
- FidelityTest: read file async and within test body (#4918) @kitbellew
Build and dependency updates
- CI: separate publishing docusaurus (#4939) @kitbellew
- Scalameta: upgrade to v4.13.8 (#4935) @kitbellew
- Github actions: use newer Windows-2025 runner (#4933) @kitbellew
- Scalameta: upgrade to v4.13.7 (#4930) @kitbellew
- Update jline to 3.30.4 (#4919) @scalameta-bot
v3.9.7
Pull Requests
- bugfix: Update sbt plugin to correctly publish to maven central (#4917) @tgodzik
- DeleteTree: ignore exceptions (#4915) @kitbellew
- FormatTests: write heat map async, skip under CI (#4914) @kitbellew
- Scalameta: upgrade to v4.13.6 (#4910) @kitbellew
- FormatWriter: in AlignStop, store isSlc, not owner (#4909) @kitbellew
- FormatWriter: fix inconsistent multiline alignment (#4907) @kitbellew
- FormatWriter: refactor AlignBlock.tryAppendToBlock (#4908) @kitbellew
- FormatWriter: again fix infix align owner (#4906) @kitbellew
- FormatWriter: compare eol owner tree positions (#4905) @kitbellew
- FormatWriter: traverse align owner up infix chain (#4904) @kitbellew
- Formatting: upgrade to v3.9.6 (#4902) @kitbellew
- FormatOps: modify ctrl-body comment splits (#4901) @kitbellew
- Splits: prefer before-dot over after-arrow rule (#4900) @kitbellew
- Splits: refine comment handling within select (#4899) @kitbellew
- Splits: no optimal single line if cost positive (#4898) @kitbellew
v3.9.6
Bug fixes
- Splits: fix handling before left bracket (#4893) @kitbellew
Build and dependency updates
- Update sbt-scalajs, scalajs-compiler, ... to 1.19.0 (#4894) @scalameta-bot
v3.9.5
Bug fixes
- Scalameta: upgrade to v4.13.5 (#4889) @kitbellew
- Splits: keep NL after comma if source=keep (#4888) @kitbellew
- Splits: exclude brackets in ApplyType after Select (#4882) @kitbellew
Miscellaneous
- ParConverters: move from sysops to tests (#4890) @kitbellew
- Splits: find last in
qual
, not before select.
(#4880) @kitbellew
Build and dependency updates
- SBT: move nailgun dependency to JVM platform (#4891) @kitbellew
- Update sbt, scripted-plugin to 1.10.11 (#4885) @scalameta-bot
- Update sbt, scripted-plugin to 1.10.10 (#4879) @scalameta-bot
- Update sbt-ci-release to 1.9.3 (#4877) @scalameta-bot
- bugfix: Remove sbt script as it seems unable to download latest sbt (#4876) @tgodzik
- Formatting: upgrade to v3.9.4 (#4872) @kitbellew
v3.9.4
Bug fixes
- Scalameta: upgrade to v4.13.4 (#4871) @kitbellew
- TreeOps: no trailing commas for extended instance (#4870) @kitbellew
- Splits: handle do-while conditions as well (#4867) @kitbellew
- Splits: don't indent enclosed cond in if/while (#4866) @kitbellew
Formatting updates
- Formatting: update CLI to v3.9.3 (#4865) @kitbellew
- Formatting: update config to v3.9.3 (#4864) @kitbellew
v3.9.3
Bug fixes
- Splits: refactor handling infix before left brace (#4862) @kitbellew
- Splits: handle braces within if/for/while better (#4860) @kitbellew
- Infix bugs: fix getting single arg, next operator (#4861) @kitbellew
- Splits: ensure break between
yield
andcase
(#4858) @kitbellew - TreeOps: fix lambda param check a-la fewer-braces (#4856) @kitbellew
Miscellaneous
- Add working "get started" example (#4855) @adamnfish
Build and dependency updates
- Scalameta: upgrade to v4.13.3 (#4863) @kitbellew
v3.9.2
Features
This release modifies the way splits (formatting options) are determined for each pair of consecutive non-whitespace tokens, from a large match
statement to a handful of lookups. This has led to a speedup of about 35% in our tests.
While we haven't seen any changes to actual formatting as a result of this change, they are possible, so feel free to report any changes you don't like.
- Router: extract rules to Splits, use class lookup (#4848) @kitbellew
Bug fixes
- Config: make
withDialect
a public method (#4849) @kitbellew - Router: absorb some penalty in single-line blocks (#4851) @kitbellew
Build and dependency updates
- improvement: Pin image versions (#4850) @tgodzik
- improvement: Upload zip to limit download sizes (#4847) @tgodzik
- CI: extract native release into separate workflow (#4846) @kitbellew
- CI: synchronize the docker download location (#4845) @kitbellew
v3.9.1
Features
- ScalafmtRunner: allow dedicated format thread pool (#4840) @kitbellew
- TermDisplay: track each stage: read, format, write (#4837) @kitbellew
- TermDisplay: use the same format in fallback (#4838) @kitbellew
- TermDisplay: simplify, remove url stuff (#4835) @kitbellew
Bug fixes
- Async processing:
- Cli: ensure input execution context is initialized (#4834) @kitbellew
- ScalafmtRunner: don't stop on first failure (#4833) @kitbellew
- Cli: do not forget to exit on failure as well (#4830) @kitbellew
- GranularPlatformAsyncOps: modify read/write async (#4829) @kitbellew
- ScalafmtRunner: use separate execution contexts (#4824) @kitbellew
- RegexCompat: keep multiline-string trailing spaces (#4836) @kitbellew
- bugfix: Don't use aggregate in Scala Native (#4823) @tgodzik
Miscellaneous
- PathMatcher: move to sysops, for sbt-scalafmt (#4843) @kitbellew
- RunnerSettings: rename from ScalafmtRunner (#4842) @kitbellew
- InputMethod: handle misformatted file, don't throw (#4831) @kitbellew
- Error: remove unused classes or ctors (#4828) @kitbellew
Build and dependency updates
- Scalameta: upgrade to v4.13.2 (#4841) @kitbellew
- Workflow: revise how we continue on error (#4844) @kitbellew
- Workflow: skip test step error detection until end (#4839) @kitbellew
- CI: test all platforms, separate into steps (#4832) @kitbellew
v3.9.0
Features
Introduces support for Scala.js, includes some re-design for consistent cross-platform behaviour, such as asynchronous processing (I/O, Futures) etc.
- PlatformFileOps: read/write files asynchronously (#4822) @kitbellew
- SBT: add JSPlatform to cli (#4816) @kitbellew
- SBT: add JSPlatform to tests (#4817) @kitbellew
- SBT: add JSPlatform to core (#4815) @kitbellew
- SBT: add JSPlatform to config (#4814) @kitbellew
- SBT: add JSPlatform to sysops (#4812) @kitbellew
- ScalafmtRunner, InputMethod: run asynchronously (#4809) @kitbellew
- Use PlatformFileOps instead of nio Files (#4808) @kitbellew
- Use platform-agnostic exception classes (#4807) @kitbellew
- PlatformRunOps: define exit() instead of sys.exit (#4805) @kitbellew
- TermDisplay: use platform-agnostic polling (#4804) @kitbellew
- SBT: add JSPlatform to macros (#4801) @kitbellew
- sysops: refactor platform-specific code (#4800) @kitbellew
- interfaces: add JSPlatform implementation (#4799) @kitbellew
- FormatWriter: don't use Patern.splitAsIterator (#4792) @kitbellew
- FileOps: keep only readFile(Path) (#4790) @kitbellew
- PlatformCompat: inline
prepareCommand
(#4787) @kitbellew - PlatformCompat: inline
fixPathOnNativeWindows
(#4786) @kitbellew - PlatformCompat: inline
relativize
(#4785) @kitbellew - PlatformCompat: remove
()
inisNativeOnWindows
(#4784) @kitbellew - OsSpecific: remove implicits, use methods directly (#4756) @kitbellew
- ScalafmtRunner: use Future, not
.par
(#4743) @kitbellew - CommunitySuite: use Future instead of
.par
(#4747) @kitbellew - ScalafmtCliReporter: refactor error, exit handling (#4745) @kitbellew
Bug fixes
- Router: use only possible split if
( comment NL
(#4782) @kitbellew - RedundantBraces: fix removing blocks (#4783) @kitbellew
- Consistent formatting on Unix and Windows
- FormatTests: always test windows lineEndings, too (#4781) @kitbellew
- RegexCompat: fix docstring patterns for
\r
(#4777) @kitbellew - FormatWriter: revise SLC formatting (#4779) @kitbellew
- State: expand space check to include non-breaking (#4780) @kitbellew
- FormatWriter: define string slice append method (#4778) @kitbellew
- RegexCompat: fix leading-asterisk pattern for
\r
(#4776) @kitbellew - RegexCompat: revise splitByBeforeTextMatching (#4775) @kitbellew
- RegexCompat: fix comment patterns for
\r
(#4774) @kitbellew - RegexCompat: fix strip margin patterns for
\r
(#4773) @kitbellew - RegexCompat: remove unused patterns (#4772) @kitbellew
- RegexCompat[native]: add method to compile pattern (#4771) @kitbellew
- Markdown: handle LineEndings.windows correctly (#4768) @kitbellew
- Imports: handle LineEndings.windows correctly (#4770) @kitbellew
- State: exclude trailing space/CR from column width (#4769) @kitbellew
- Add tests with line under/overflow for strings (#4767) @kitbellew
- RegexCompat: no need to inline
vals
(#4766) @kitbellew
Miscellaneous
- Configuration: document how imports sorting works (#4796) @kitbellew
- FileOps: inline getFileMatcher in dynamic (#4794) @kitbellew
- FileOps: remove unused methods (#4793) @kitbellew
- FormatAssertions: use StringBuilder explicitly (#4791) @kitbellew
- FormatTests: use DiffOptions to avoid ANSI (#4765) @kitbellew
- CliTest: use munit.Location, assertContains (#4746) @kitbellew
Build and dependency updates
- Scalameta: upgrade to v4.13.1 (#4821) @kitbellew
- Update jline to 3.29.0 (#4819) @scalameta-bot
- Update sbt-native-packager to 1.11.1 (#4818) @scalameta-bot
- Upgrade metaconfig to v0.15.0, mdoc to v2.6.4 (#4813) @kitbellew
- Scalameta: upgrade to v4.13.0 (#4811) @kitbellew
- Coursier: upgrade to 2.1.24, interfaces to 1.0.28 (#4806) @kitbellew
- SBT: cosmetic, refactor scalameta dependencies (#4798) @kitbellew
- SBT: add methods to check if scala 2.12 or 2.13 (#4797) @kitbellew
- Use parallel-collections in 2.13 scala native (#4789) @jchyb
- mdoc: upgrade to v2.6.3 (#4788) @kitbellew
- CI: enable
dockerize
on release (#4762) @kitbellew - CI: run
scala-native
only on release (#4763) @kitbellew - fix: Add back removed script to allow scalafmt action to work (#4760) @tgodzik
- Cli: use varargs, remove unused methods (#4757) @kitbellew
- SBT: build community tests for JVM and Native (#4748) @kitbellew
- refactor: Use Scala Native instead of native image (#4738) @tgodzik
- Update sbt-scalafmt to 2.5.4 (#4754) @scalameta-bot
- Update scala-parallel-collections to 1.2.0 (#4753) @scalameta-bot
- Update sbt-scalajs to 1.18.2 (#4752) @scalameta-bot
- Update interface to 1.0.27 (#4751) @scalameta-bot
- Update sbt-native-packager to 1.11.0 (#4750) @scalameta-bot
- Update sbt-assembly to 2.3.1 (#4749) @scalameta-bot
- Workflow: add native tests to jvm as a matrix (#4742) @kitbellew
- SBT: refactor tests, move those for cli and sysops (#4740) @kitbellew
- SBT: don't build dynamic for NativePlatform (#4741) @kitbellew
- SBT: refactor tests, move those for cli and sysops (#4739) @kitbellew
- Formatting: upgrade to v3.8.6 (#4737) @kitbellew