Releases: scalameta/scalafmt
Releases Β· scalameta/scalafmt
v3.8.4-RC3
Features
- Support pure functions and capture checking (#4582) @kitbellew
- Router: consistent if-else block format for fold (#4581) @kitbellew
- AvoidInfix: process scala3
match
operator, too (#4567) @kitbellew
Fixes
- Router: penalize lambda arrow break further (#4601) @kitbellew
- Router: remove
{
nlPenalty computation (#4606) @kitbellew - FormatOps: extend getSlbEndOnLeft to LeftBrace (#4603) @kitbellew
- FormatOps: support ContextArrow in
getFuncArrow
(#4599) @kitbellew - State: optionally apply indents to alt mod (#4587) @kitbellew
- RedundantParens: enforce infixSide more precisely (#4579) @kitbellew
- TreeOps: a braceless
match
is like fewer-braces (#4577) @kitbellew - FormatTokens: fix getLastExceptParen, incl comment (#4568) @kitbellew
- AvoidInfix: make sure to wrap Term.Match as well (#4566) @kitbellew
Miscellaneous
- Router: optimization, check brace then matching (#4605) @kitbellew
- Policy: add special single-token policy (#4604) @kitbellew
- Router: move to TreeOps getting lambda penalties (#4600) @kitbellew
- Split: add implicit
penalizeNL
andpenalizeIf
(#4598) @kitbellew - PolicyOps: add
exclude
toPenalizeAllNewlines
(#4597) @kitbellew - Indent: add an implicit conversion from Int (#4589) @kitbellew
- Shorten token and ModExt descriptions (#4588) @kitbellew
- Router: refactor select-dot policies (#4586) @kitbellew
- PolicyOps: use Policy.Delay for decideNewlineXxx (#4585) @kitbellew
- FormatOps: extract right delims methods (#4584) @kitbellew
- ModExt: move
alt
centrally from NewlineT (#4583) @kitbellew - Router: remove overlapping match rules (#4580) @kitbellew
- Router: match using FormatToken.{Left,Right}Owner (#4578) @kitbellew
- LoggerOps: log tree name with parent name (#4575) @kitbellew
- DynamicSuite: test Scalafmt interface class loader (#4572) @kitbellew
- AvoidInfix: refactor checkMatchingInfix (#4570) @kitbellew
- Error: add a wrapper Exception
WithCode
(#4565) @kitbellew
Build and dependency updates
- Update sbt, scripted-plugin to 1.10.5 (#4596) @scalameta-bot
- Update auxlib, clib, javalib, nativelib, ... to 0.5.6 (#4595) @scalameta-bot
- Update jline to 3.27.1 (#4593) @scalameta-bot
- Update interface to 1.0.24 (#4592) @scalameta-bot
- Update sbt-buildinfo to 0.13.1 (#4591) @scalameta-bot
- Update
test/resources/readme.md
reference (#4590) @emmanuel-ferdman - Scalameta: upgrade to v4.12.0 (#4576) @kitbellew
- SBT: native-image settings/plugins for JVM only (#4574) @kitbellew
- bugfix: Publish native interfaces with full suffix (#4573) @tgodzik
v3.8.4-RC2
Features
- Performance improvements
- BestFirstSearch: use partially optimal state (#4555) @kitbellew
- BestFirstSearch: move queue isEmpty to dequeue (#4554) @kitbellew
- BestFirstSearch: handle killOnFail in shortestPath (#4553) @kitbellew
- BestFirstSearch: getActiveSplits takes predicate (#4552) @kitbellew
- BestFirstSearch: allow block close go past range (#4541) @kitbellew
- BestFirstSearch: FormatToken index in no-opt zones (#4543) @kitbellew
- FormatTokens: implement
width
with indices (#4551) @kitbellew - BestFirstSearch: recurse on single-case partial functions (#4496) @kitbellew
- BestFirstSearch: skip processOptimal if too long (#4493) @kitbellew
- BestFirstSearch: don't recurse if isOpt (#4491) @kitbellew
- FormatOps: remove redundant infix split (#4465) @kitbellew
- BestFirstSearch: use partially optimal state (#4555) @kitbellew
- FormatOps: implement binPack.parentCtor=ForceBreak (#4550) @kitbellew
- BinPack: use binPack.parentCtors=source explicitly (#4549) @kitbellew
- BinPack.ParentCtors: describe each option in doc (#4548) @kitbellew
- Docstrings:
blankFirstLine=fold
takes precedence (#4534) @kitbellew - AvoidInfix: apply to postfix select as well (#4519) @kitbellew
- RemoveScala3OptionalBraces:
()
to fewer braces (#4515) @kitbellew
Bug fixes
- FormatWriter: 2nd try to fold oneline after format (#4537) @kitbellew
- Fix broken link. (#4547) @counter2015
- Producing non-idempotent formatting
- Router: no break after
=>
in lambda w/ type (#4524) @kitbellew - Router: skip removed block around enclosed expr (#4523) @kitbellew
- Router: zero cost for dot NL in braces-to-parens (#4522) @kitbellew
- Router: skip removed block when traversing (#4521) @kitbellew
- Router: penalize dot NL split if braces-to-parens (#4520) @kitbellew
- FormatOps: adjust block body in CtrlBody.unfolded (#4518) @kitbellew
- PolicyOps: expire SLB exclude On in apply/select (#4517) @kitbellew
- FormatOps: rewrite ArgClause in braces to parens (#4514) @kitbellew
- Router: fold closing paren if no NL after opening (#4513) @kitbellew
- Router: lower NL penalty for braces-to-parens case (#4511) @kitbellew
- Router: refactor lambda splits for
{...
(#4506) @kitbellew - OptimizationEntities: skip block with apply as arg (#4505) @kitbellew
- Router: check exclude blocks if braces to parens (#4502) @kitbellew
- Router: penalize break after
{
in args (#4501) @kitbellew - FormatOps: check deeper if braces can be parens (#4495) @kitbellew
- Policy: compare starts, not ends (#4476) @kitbellew
- Router: force NL if semicolon after removed brace (#4475) @kitbellew
- Router: detect rewritten blocks before
else
(#4473) @kitbellew - State: fix handling of SLC in overflow (#4471) @kitbellew
- FormatOps: inner infixes can be enclosed in braces (#4470) @kitbellew
- Router: align
{...
rule with the one for(...
(#4463) @kitbellew - Router: use SpaceOrNoSplit instead of custom rule (#4462) @kitbellew
- RedundantBraces: revise keeping brace post comment (#4460) @kitbellew
- Router: include brace in optimal only if present (#4459) @kitbellew
- RedundantParens: fold/unfold NL ok before infix op (#4454) @kitbellew
- FormatTokens: check for rewritten empty body (#4452) @kitbellew
- RedundantBraces: keep partial function braces (#4448) @kitbellew
- Router: no break after
- Producing invalid code
- Router: don't fold after single-line comment (#4516) @kitbellew
- Router: force NL after
;
in optional-brace block (#4510) @kitbellew - FormatOps: recognize optional-braces partial func (#4508) @kitbellew
- RedundantBraces: keep braces if splice is
$
(#4509) @kitbellew - FormatTokens: fix token span computation (#4485) @kitbellew
- Router: fold
else
only after non-empty block (#4474) @kitbellew - State: don't delay penalty with pending spaces (#4467) @kitbellew
- Imports: do not expand nor sort import wildcards (#4457) @kitbellew
- Router: add explicit rules for do/while in Term.Do (#4451) @kitbellew
- RedundantBraces: replace paren w/ brace if comment (#4449) @kitbellew
- Router: slightly penalize interpolation newlines (#4442) @kitbellew
- FormatOps: remove noSyntaxNL flag added in #4246 (#4439) @kitbellew
- Router: fix single line end for Mod.Annot (#4438) @kitbellew
- State: fix logic allowing punctuation overflow (#4437) @kitbellew
Miscellaneous
- FormatOps: use new Tokens methods (#4562) @kitbellew
- Router: add ParamClause as well, to Unit/ArgClause (#4560) @kitbellew
- Router: handle Lit.Unit and empty ArgClause (#4556) @kitbellew
- FormatTokens: use FormatToken in matching (#4546) @kitbellew
- Use FormatToken in policies, indents etc. (#4545) @kitbellew
- Debug: log number of times a split was traversed (#4544) @kitbellew
- LoggerOps: add methods to log without position (#4540) @kitbellew
- FormatToken: alias, use everywhere as {FT} (#4539) @kitbellew
- Rewrite: use Map.updateWith (#4538) @kitbellew
- test/JavaDoc: fix test config according to title (#4533) @kitbellew
- Router: cosmetic, clean up beforeCurlyLambdaParams (#4532) @kitbellew
- PolicyOps: use PenalizeAllNewlines if penalty > 0 (#4531) @kitbellew
- SelectLike: use nameFt if possible, vs nameToken (#4529) @kitbellew
- TestStyles: add [un]foldWithRewritesAndOverflow (#4464) @kitbellew
- HasTests: move scalafmtRunner() to companion (#4526) @kitbellew
- Debug: move routes and state logging to LoggerOps (#4527) @kitbellew
- TestHelpers: define helper method to format code (#4525) @kitbellew
- TestStyles: use predefined style variables (#4512) @kitbellew
- Router: use single non-NL default split before
}
(#4499) @kitbellew - Router: inline braces-to-parens policy (#4500) @kitbellew
- TokenRange: use FormatToken instead of Token (#4494) @kitbellew
- BestFirstSearch: turn noOptZones into a Map (#4492) @kitbellew
- Router: break after self-annotation (#4490) @kitbellew
- FormatOps: remove getOptimalTokenFor (#4489) @kitbellew
- BestFirstSearch: use visual token width to recurse (#4488) @kitbellew
- BestFirstSearch: memorize failed search sometimes (#4481) @kitbellew
- Use Token.text instead of Token.syntax (#4487) @kitbellew
- State: move convenience methods checking for SLB (#4486) @kitbellew
- BestFirstSearch: use isOpt, not explicit maxCost (#4484) @kitbellew
- State: refactor getColumns (#4483) @kitbellew
- FormatTests: up visits level to 2000, skip below (#4482) @kitbellew
- FormatOps: stop looking for infixes if check fails (#4469) @kitbellew
- FormatTokens: rename ifEnclosedWithinParens (#4466) @kitbellew
- Add preset values to overflow, redundant delims (#4468) @kitbellew
- Router: refactor around lambda variables (#4461) @kitbellew
- Policy: keep token in Policy.End, not just offset (#4458) @kitbellew
- TestStyles: define implicit style conversions (#4453) @kitbellew
- Do not import deprecated alias scala.meta.Token (#4450) @kitbellew
- RedundantBraces: keep brace after a semicolon (#4446) @kitbellew
- RedundantBraces: cosmetic, minor refactor (#4447) @kitbellew
- FormatTokensRewrite: add ReplacementType.toString (#4445) @kitbellew
- FormatOps: remove duplicate ExtractFromMeta (#4444) @kitbellew
- ScalafmtVersion: relax the regex pattern (#4441) @kitbellew
- CommunitySuite: assert on total number of states (#4443) @kitbellew
- LoggerOps: expand logging (#4440) @kitbellew
Build and dependency updates
- SBT: update native build to recent JDK (#4561) @kitbellew
- SBT: remove buildInfoSettings from macros (#4563) @kitbellew
- Update coursier-interface to 1.0.23 (#4558) @kitbellew
- Scalameta: upgrade to v4.11.2 (#4559) @kitbellew
- CI: run dependabot weekly (#4504) @kitbellew
- CI: switch deprecated macOS-12 to macOS-latest (#4503) @kitbellew
- Update sbt to 1.10.3 (#4480) @scalameta-bot
- Update sbt-scalajs to 1.17.0 (#4479) @scalameta-bot
- Update sbt-ci-release to 1.9.0 (#4478) @scalameta-bot
- Update sbt-assembly to 2.3.0 (#4477) @scalameta-bot
- Scalameta: upgrade to v4.11.0 (#4472) @kitbellew
- use
sbt/setup-sbt
to be suresbt
is present (#4455) @mzuehlke
v3.8.4-RC1
Verifying against public repositories
This release fixes issue #4133 and introduces a large number of fixes which address formatting issues discovered while testing the formatter against a set of public repositories, and adds these checks with every commit.
- CommunitySuite: add Intellij Scala plugin code (#4436) @kitbellew
- CommunitySuite: check the total states visited (#4429) @kitbellew
- CommunitySuite: remove some versions (#4418) @kitbellew
- CommunitySuite: add versions of playframework (#4414) @kitbellew
- CommunitySuite: remove maxStateVisits override (#4390) @kitbellew
- CommunitySuite: add versions of zio (#4407) @kitbellew
- CommunitySuite: allow selecting a subset of styles (#4393) @kitbellew
- CommunitySuite: add versions of Akka (#4391) @kitbellew
- CommunityBuild: add
fileOverride
parameter (#4388) @kitbellew - CommunityBuild:
excluded
as PathMatcher patterns (#4385) @kitbellew - CommunitySuite: add versions of scalaz (#4380) @kitbellew
- CommunitySparkSuite: add spark v3.5.3 (#4378) @kitbellew
- CommunitySuite: set longpaths in clone directory (#4376) @kitbellew
- CommunitySuite: test scala.js version 1.17.0 (#4373) @kitbellew
- CommunitySparkSuite: add more spark versions (#4360) @kitbellew
- CommunitySuite: add tests for spark versions (#4358) @kitbellew
- CommunitySuite: check out projects under target/ (#4348) @kitbellew
- CommunitySuite: add tests for scala-cli versions (#4347) @kitbellew
- CommunityTests: split into separate projects (#4346) @kitbellew
- CommunityRepoSuite: add common abstract superclass (#4345) @kitbellew
- CommunitySuite: print git ref and scalafmt style (#4344) @kitbellew
- CommunitySuite: add tests for scala3 versions (#4342) @kitbellew
- CommunitySuite: add tests for scala2 versions (#4341) @kitbellew
- CommunitySuite: create directory, ignore if exists (#4343) @kitbellew
- CommunitySuite: support excluding some styles (#4340) @kitbellew
- CommunityBuild: test community-code formatting (#4256) @kitbellew
Features
- ProjectFiles: add
.mill
to the default glob list (#4412) @kitbellew - NamedDialect: add all scala3 dialects (#4382) @kitbellew
- Allow to compile with Scala Native (#4325) @jchyb
- Separate regex patterns to jvm-only directory in preparation for Scala Native (#4309) @jchyb
- Prepare the build for cross compilation by renaming jvm sources (#4282) @jchyb
- Update libraries needed for cross compilation with Scala Native (#4283) @jchyb
- Replace java reflection with a macro-based solution (#4280) @jchyb
- Add literal.binPrefix setting to format binary literals. (#4183) @charpov
Bug fixes
- Router: apply space.inParens consistently (#4431) @kitbellew
- Router: no NL after
<-
in()
enums for scala3 (#4416) @kitbellew - Router: no conflict b/w preferNoSplit/skipNoSplit (#4415) @kitbellew
- Rewrite: remove one NL even if found many (#4413) @kitbellew
- Router: don't compare Option and Binpack.Site (#4320) @kitbellew
- CliOptions: write info to console instead of err (#4272) @kitbellew
- CliOptions: turn info into a stream+writer wrapper (#4271) @kitbellew
- ScalafmtCliReporter: use info for downloader (#4270) @kitbellew
- CliOptionsTest: expand, add tests, use System.out (#4269) @kitbellew
- CliOptions: clean-up determining when out is used (#4268) @kitbellew
- CliOptions: move NoopOutputStream to new Output (#4267) @kitbellew
- ScalafmtCoreRunner: print stack trace to stderr (#4266) @kitbellew
- Router: allow breaks in any double-quote strings (#4254) @kitbellew
- Scala3 syntax: remove braces around single import (#4223) @kitbellew
- ConfParsed: catch any runaway errors and wrap (#4208) @kitbellew
- ScalafmtDynamicSession: check config has a parent (#4185) @kitbellew
- Router: restore Shebang token handling (#4120) @kitbellew
- RedudantParens: generalize unary-literal check (#4119) @kitbellew
- RedundantParens: don't rewrite unary within select (#4118) @kitbellew
- RedundantParens: don't rewrite
Init
(#4124) @kitbellew
Miscellaneous
- Router: inline, remove TreeOps.findTemplate (#4433) @kitbellew
- Split/Modification: slightly change
toString()
(#4432) @kitbellew - LoggerOps: log optional token (#4361) @kitbellew
- Use new tree/token implicit extensions (#4322) @kitbellew
- ScalafmtDynamicError: include cause (#4313) @kitbellew
- Debug: capture and log routes (splits) (#4294) @kitbellew
- LoggerOps: add option to do no logging (#4289) @kitbellew
- Debug: don't assume completed state after
start
(#4288) @kitbellew - Split: keep 2 instances of FileLine, for debugging (#4273) @kitbellew
- Un'SKIP' tests which have been fixed previously (#4224) @kitbellew
- Debug: improve reporting visited tokens (#4221) @kitbellew
- ManualTests: re-use "ONLY" from HasTests (#4207) @kitbellew
Dependency and build updates
- Scalameta: upgrade to v4.10.2 (#4434) @kitbellew
- Workflows: change
master
tomain
(#4401) @kitbellew - SBT: upgrade scala 2.13 to patch 15 (#4324) @kitbellew
- Scalameta: upgrade to v4.10.1 (#4323) @kitbellew
- Scalameta: upgrade to v4.10.0 (#4321) @kitbellew
- Update sbt to 1.10.2 (#4305) @scalameta-bot
- Update munit to 1.0.2 (#4308) @scalameta-bot
- Update mdoc, sbt-mdoc to 2.6.1 (#4307) @scalameta-bot
- Update scalacheck to 1.18.1 (#4306) @scalameta-bot
- Update scala-library, scala-reflect to 2.12.20 (#4304) @scalameta-bot
- Update contributing-scalafmt.md (#4184) @charpov
- Update sbt-native-packager to 1.10.4 (#4179) @scalameta-bot
- Update sbt-ci-release to 1.6.1 (#4178) @scalameta-bot
- Update sbt-mima-plugin to 1.1.4 (#4180) @scalameta-bot
- Update munit to 1.0.1 (#4181) @scalameta-bot
- Update metaconfig-core, ... to 0.13.0 (#4177) @scalameta-bot
Bug fixes and supporting changes addressing bugs in formatting public code
- Router: fix handling of comment-space-dot chain (#4435) @kitbellew
- Split: make killOnFail an Option, set a default (#4428) @kitbellew
- FormatOps: simplify logic of defnSiteLastToken (#4427) @kitbellew
- State: don't penalize punct overflow (#4426) @kitbellew
- Router: don't penalize NL before
:
if keeping (#4425) @kitbellew - Router: remove optimal if avoid interpolation NL (#4423) @kitbellew
- State: delay penalty if
avoid
in interpolation (#4424) @kitbellew - BestFirstSearch: remove a useless optimization (#4421) @kitbellew
- FormatOps: extend SlbEnd to lbrace, colon, comment (#4422) @kitbellew
- Router: change lambda space splits (#4420) @kitbellew
- Router: move up check for no NL after
<-
enums (#4419) @kitbellew - ConvertToNewScala3Syntax: remove
:_
/@_
as unit (#4417) @kitbellew - Router: add dedicated rule for formatOff (#4411) @kitbellew
- FormatWriter: fix rare but possible bug (#4410) @kitbellew
- Router: fix performance of chained apply calls, with anon functions (#4409) @kitbellew
- OptimizationEntities: move TreeOps.statementStarts (#4408) @kitbellew
- FormatOps: fix ForYield as CtrlBody (#4406) @kitbellew
- Router: require NL before
}
if non-SLB({
(#4405) @kitbellew - TreeOps: inline getEnumStatements (#4404) @kitbellew
- FormatTokens: move distance from FormatOps (#4403) @kitbellew
- FormatTests: assert on the total number of visits (#4402) @kitbellew
- TreeOps: inline extractStatementsIfAny (#4397) @kitbellew
- Router: extend SLB optimal for
(...
(#4400) @kitbellew - FormatOps: SelectLike uses FormatToken as
name
(#4399) @kitbellew - FormatOps: extract helpers to OptimizationEntities (#4398) @kitbellew
- Literals: move Case inside the companion (#4396) @kitbellew
- FormatTokens: return FormatToken in matchingXxx (#4395) @kitbellew
- FormatTokens: define a few more methods (#4394) @kitbellew
- HasTests: parse and assert expected state visits (#4392) @kitbellew
- Router: increase penalty for NL before colon (#4389) @kitbellew
- RedundantBraces: keep if a comment is attached (#4384) @kitbellew
- RedundantParens: keep w/ dotless select in infix (#4386) @kitbellew
- FormatOps: ignore removed block in select chains (#4387) @kitbellew
- ScalafmtConfig: add
withFileOverride()
(#4383) @kitbellew - FormatOps: ignore source NL in binpacking ctors (#4379) @kitbellew
- FormatOps: use optimal slb end in binpacked
(...
(#4381) @kitbellew - BestFirstSearch: stop using State.allAltAreNL (#4369) @kitbellew
- TreeOps: also ignore single-stat rewritten blocks (#4377) @kitbellew
- TreeOps: ignore single block stat for NL optimizn (#4375) @kitbellew
- RedundantBraces: keep some around PartialFunction (#4374) @kitbellew
- TreeOps: revise NL-optimization around functions (#4372) @kitbellew
- Router: price sole NL split in
=> <NL>
at 1 (#4371) @kitbellew - FormatOps: no blank within infix if not enclosed (#4370) @kitbellew
- TreeOps: skip 1st stat in case body in NL optimizn (#4367) @kitbellew
- Router: price sole NL split in
=> comment
at 1 (#4366) @kitbellew - Router: no
startsStatement
for{
(#4365) @kitbellew - BestFirstSearch: call StateQueue.enqueue directly (#4362) @kitbellew
- Router: no
startsStatement
for=>
(#4364) @kitbellew - Router: consolidate splits around lambda (#4363) @kitbellew
- Router: check if "NL" for
(
is actually not NL (#4359) @kitbellew - TreeOps: get owners via token range, not position (#4357) @kitbellew
- RedundantBraces: keep around do-while within for (#4356) @kitbellew
- BestFirstSearch: arg clause an opt-zone for keep (#4354) @kitbellew
- Router: fix consistency based on src NL existence (#4355) @kitbellew
- FormatOps: extend slb end past select for
keep
(#4353) @kitbellew - Route: hide NL before dot for keep via a splittag (#4351) @kitbellew
- RemoveScala3OptionalBraces: not with no-NL select (#4352) @kitbellew
- Router: extract single stat from rewritten block (#4349) @kitbellew
- RedundantBraces:
else-if
always ok if opt-braces (#4339) @kitbellew - BestFirstSearch: optimal has low-penalty NL split (#4338) @kitbellew
- Router: bp=d...
v3.8.3
Features
- ScalafmtConfig: set line endings with git autoCRLF (#4114) @kitbellew
- Scalafmt: move line ending choice to FormatWriter (#4097) @kitbellew
- FormatWriter: prepare for configurable line ending (#4091) @kitbellew
- Documentation: describe
lineEndings
(#4090) @kitbellew
- Spaces: add
aroundSymbolicInfixOperators
params (#4103) @kitbellew - FormatWriter: check topLevelStatBlanks blank gaps (#4083) @kitbellew
- Router: use
spaces.afterColonInMatchPattern
(#4070) @kitbellew - Router: use
indent.{binPackXxx,afterInfix}Site
(#4057) @kitbellew
Bug fixes
- RedundantBraces: don't rewrite
try { (a, b) }
(#4111) @kitbellew - TokenOps: backquoted tokens don't "end" in symbol (#4107) @kitbellew
- Router: src=keep force NL only for matching
else
(#4105) @kitbellew - RedundantParens: handle parens around type as well (#4078) @kitbellew
- RedundantParens: allow any Ref, not just Name (#4077) @kitbellew
- RedundantParens: make body check more permissive (#4076) @kitbellew
- Add test with parens around types (#4075) @kitbellew
- FormatOps: in folded ctrl body, use
adjustedBody
(#4073) @kitbellew - Router: increase NL penalty within interpolation (#4068) @kitbellew
- FormatOps: treat assignment infix as non-infix rhs (#4065) @kitbellew
- RewriteTrailingCommas: handle optional braces case (#4059) @kitbellew
- Router: end
src=fold
single-line pastyield
(#4054) @kitbellew
Miscellaneous
- ScalafmtReflectConfig: add
withTarget
method (#4113) @kitbellew - Scalafmt: remove special case of space-only code (#4096) @kitbellew
- Scalafmt: remove special case of shebang prefix (#4095) @kitbellew
- FormatTokens: method to report token lookup error (#4088) @kitbellew
- FormatTokens: define a token hash builder (#4087) @kitbellew
- Token.LF: replace all references with Token.AtEOL (#4086) @kitbellew
- FormatWriter: use
HashMap.updateWith
(#4082) @kitbellew - Remove scala-2.11 specializations, no longer used (#4081) @kitbellew
- TreeOps: use common base in colonDeclType (#4080) @kitbellew
- RedundantBraces: refactor body checking (#4079) @kitbellew
- Modification: consistency, rename isNewline->isNL (#4074) @kitbellew
- Issue template: emphasize providing small example (#4069) @kitbellew
- TreeExtractors: use tree extns for assign/lt assoc (#4064) @kitbellew
- Router: support all enumerators, including
case
(#4063) @kitbellew - FormatOps: use Infix.isAssignment to skip indent (#4062) @kitbellew
- FormatOps: move ExtractFromMeta to companion obj (#4060) @kitbellew
- FormatOps: add InfixSplits.isAfterOp flag (#4061) @kitbellew
- Add no-indent infix test for right-assoc operator (#4056) @kitbellew
- Documentation: fix links to
binPack.xxxSite
(#4055) @kitbellew - Router: refactor single-line block logic (#4053) @kitbellew
- Split: allow ignoring withOptimalAt, relax check (#4052) @kitbellew
Dependency updates
- Scalameta: upgrade to v4.9.9 (#4115) @kitbellew
- Update mdoc, mdoc-parser, sbt-mdoc to 2.5.4 (#4110) @scalameta-bot
- FilterMatcher: turn into metaconfig-parsable type (#4102) @kitbellew
- FormatOps: slight refactor in
insideInfixSplit
(#4100) @kitbellew - Scalameta: upgrade to v4.9.8 (#4094) @kitbellew
- EmptyFileTest: use explicit
expected
(#4092) @kitbellew - Formatted: define Try[_]/Throwable ctors (#4093) @kitbellew
- Bump docker/build-push-action from 5 to 6 (#4085) @dependabot
- Update mdoc, mdoc-parser, sbt-mdoc to 2.5.3 (#4071) @scalameta-bot
- Update scalafmt-core to 3.8.2 (#4072) @scalameta-bot
- Scalameta: upgrade to v4.9.7 (#4066) @kitbellew
v3.8.2
Features
- Change
binpack=oneline
formatting- FormatOps: raise NL cost for binpacked ctrl body (#4048) @kitbellew
- Router: fix binpack=oneline continuation handling (#4047) @kitbellew
- FormatOps: extract and improve oneline break policy (#4046) @kitbellew
- Router: implement
binpack=onelineSjs
conf option (#4045) @kitbellew - Router: refactor handling of binpack comma args (#4044) @kitbellew
- Router: bp=oneline multi-line arg ends before
)
(#4043) @kitbellew - FormatOps: refactor GetSelectLike (#4042) @kitbellew
- Documentation: add detail to
binPack.xxxSite
(#4040) @kitbellew - BinPack: improve choice of correct XxxSite param (#4034) @kitbellew
- Router: bp: to prefer space, define nl split first (#4031) @kitbellew
- Router: fix bp.callsite=oneline post-comma policy (#4012) @kitbellew
- Router: fix bp.callsite=oneline penalty bug (#4004) @kitbellew
- Router: extend single line for bp.defnsite=oneline (#4000) @kitbellew
- Router: fix bp.defnsite=oneline inconsistency bug (#4002) @kitbellew
- FormatOps: use src=keep to open break for scala.js (#4001) @kitbellew
- Router: refactor binpack.defnsite=oneline logic (#3996) @kitbellew
- Router: fix handling of binpack=oneline (#3992) @kitbellew
- Router: binpack=oneline: add explicit state names (#3991) @kitbellew
- Router: inline binpack nl policies (#3990) @kitbellew
- Router: Align binpack.{call,defn}Site behaviour (#3977) @kitbellew
- BinPack: add string presets (always/never/oneline) (#3985) @kitbellew
- FormatOps: fix scala.js style implementation (#3980) @kitbellew
- Align binpack formatting for
callSite
anddefnSite
- Router: clause site: refactor dangle indicators (#3982) @kitbellew
- FormatOps: expand config-style source detection (#3981) @kitbellew
- Router: treat infix argument clause like any other (#3978) @kitbellew
- Router: binpack callsite: move no-split indents (#3976) @kitbellew
- Router: binpack defnsite: generalize slb indicator (#3975) @kitbellew
- Router: binpack callsite: fix literalsSingleLine (#3974) @kitbellew
- Router: binpack callsite: Spc for attached comment (#3973) @kitbellew
- Router: binpack defnsite: rename mustUseNL->nlOnly (#3972) @kitbellew
- Router: binpack: refactor policies, newline split (#3971) @kitbellew
- FormatOps: pass close-break indicator for cfgstyle (#3970) @kitbellew
- DanglingParentheses: add bracketSite versions (#3969) @kitbellew
- FormatTokens: add more methods around comments (#3968) @kitbellew
- Router: add hasBreak, noBreak, hasBlankLine (#3967) @kitbellew
- FormatOps: use token index instead of hash (#3966) @kitbellew
- DanglingParentheses: bundle defnSite with excludes (#3965) @kitbellew
- Tests: add extra without dangling, remove obsolete (#3964) @kitbellew
- Router: refactor, replace formatToken/tok with ft (#3963) @kitbellew
- Config-style: allow optimizing defn site clause (#3962) @kitbellew
- Config-style: control over forcing vs optimization (#3961) @kitbellew
- Config-style: separate control for call/defn sites (#3960) @kitbellew
- Config-style: refactor, prepare for more control (#3959) @kitbellew
- ScalafmtConfig: shorten the allowed maxColumn (#3958) @kitbellew
- {Format,Tree}Ops: use token index instead of hash (#3957) @kitbellew
- FormatOps: use FormatToken.Meta in ExtractFromMeta (#3956) @kitbellew
- Newlines: add more keepBreak overloads (#3955) @kitbellew
- Add more variants in tests for binPack.defnSite (#3953) @kitbellew
- Router: fix scala.js style for binPack.callSite (#3931) @kitbellew
- FormatOps: prefer ConfigStyle.Force over Source (#3929) @kitbellew
- FormatOps: add method to get flags for bp=callsite (#3928) @kitbellew
- Add more variants in tests for binPack.callSite (#3927) @kitbellew
- Documentation: describe
binPack.xxxSite
(#3905) @kitbellew - FormatOps: separate config style: exists or forced (#3904) @kitbellew
- Router: refactor nlPolicy for binpack.callSite (#3903) @kitbellew
- Test binPack.xxxSite with configStyleArguments (#3902) @kitbellew
- BinPack: drop
unsafe
prefix in call/defn sites (#3900) @kitbellew - BinPack: remove stale warning about unsafeXxxSite (#3899) @kitbellew
- Documentation: describe formatting algorithm (#3951) @kitbellew
Bug fixes
- FormatOps: handle enclosed folded body differently (#4039) @kitbellew
- FormatOps: pass Tuples to
argumentStarts
as well (#4025) @kitbellew - Router: add NL split in select chain for src=keep (#4021) @kitbellew
- PreferCurlyFors: don't rewrite if has infix (#4018) @kitbellew
- Split: block optimal token with non-zero cost (#4020) @kitbellew
- PreferCurlyFors: don't rewrite semicolon only (#4013) @kitbellew
- FormatOps: return for fewer braces infix lhs early (#4015) @kitbellew
- Router: use indentCallSiteOnce to callsite only (#4005) @kitbellew
- Fix #3465
- FormatWriter: merge columns at different depth (#3925) @kitbellew
- FormatWriter: match columns in tryAppendToBlock (#3924) @kitbellew
- FormatWriter: share shifted columns between lines (#3923) @kitbellew
- FormatWriter: use a "merge" in tryAppendToBlock (#3922) @kitbellew
- FormatWriter: minor refactor, rename variables (#3921) @kitbellew
- FormatWriter: add
ft
method to AlignStop (#3920) @kitbellew - FormatWriter: move logic to getAlignNonSlcOwner (#3919) @kitbellew
- FormatWriter: add style, get overflow in AlignLine (#3918) @kitbellew
- FormatWriter: add non-SLC owner to AlignStop (#3917) @kitbellew
- FormatWriter: don't insert braces in annotation (#3913) @kitbellew
- FormatWriter: inline getAlignContainer(fmt loc) (#3916) @kitbellew
- FormatWriter: simplify, add to empty block only (#3915) @kitbellew
- FormatWriter: rename location to floc, consistency (#3914) @kitbellew
- Router: fix configStyle/binPack.callSite/src=keep (#3906) @kitbellew
- Router: fix fold bug after semicolon (#3910) @kitbellew
- RedundantBraces: ignore block under Term.Xml (#3893) @kitbellew
- FormatOps: can't look at breaks for fold/unfold (#3889) @kitbellew
Miscellaneous
- Policy: handle booleans, add WithConv, Expire, description labels (#4041) @kitbellew
- BestFirstSearch: clean-up "UNABLE TO FORMAT" msg (#4038) @kitbellew
- TreeOps: move getArgs from FormatOps, make partial (#4035) @kitbellew
- PolicySummary: return only splits in
execute
(#4037) @kitbellew - Router: no need to bind a new var for FormatTokens (#4036) @kitbellew
- ReaderUtil: refactor, expose custom value parsing (#4033) @kitbellew
- Error: simplify parameters of SearchStateExploded (#4032) @kitbellew
- PolicyOps: move penalizeNewlineByNesting (#4026) @kitbellew
- StyleMap: refactor checking basic/complex literals (#4019) @kitbellew
- Split: don't check presence in set separately (#4016) @kitbellew
- FormatAssertions: adjust line range before caret (#4014) @kitbellew
- Policy: add a Map policy, use instead of Proxy (#4011) @kitbellew
- Policy: add a RelayOnSplit policy (#4010) @kitbellew
- Policy: use new convenient binary End operators (#4009) @kitbellew
- Policy: add a Split parameter to
unexpired()
(#4008) @kitbellew - Policy: use common logic for all methods in Or/And (#4007) @kitbellew
- Policy: add convenient binary operators for End (#4006) @kitbellew
- FormatOps: in CtrlBodySplits, add consistency (#4003) @kitbellew
- FormatOps: add all arguments to
argumentStarts
(#3994) @kitbellew - FormatOps: return FormatToken in findFirstOnRight (#3999) @kitbellew
- FormatOps: process all clauses together (#3998) @kitbellew
- BestFirstSearch: access incremental cost directly (#3997) @kitbellew
- Router: get return type only on colon (#3995) @kitbellew
- Router: tighten range for parent-ctors policy (#3993) @kitbellew
- TreeOps: get last tree in followedBySelectOrApply (#3989) @kitbellew
- PolicyOps: add
decideNewlinesOnlyBeforeToken
(#3988) @kitbellew - Router/FormatOps: import all
tokens._
symbols (#3987) @kitbellew - FormatOps: look for keyword past enclosing parens (#3984) @kitbellew
- FormatOps: extend body indent to end of line (#3983) @kitbellew
- FormatOps: create auxilliary class ClauseSiteFlags (#3979) @kitbellew
- Docstrings: implement the fold option to Wrap (#3952) @kitbellew
- Docstrings: use keep/fold/unfold in BlankFirstLine (#3947) @kitbellew
- BestFirstSearch: minor optimization with HashMap (#3950) @kitbellew
- ScalafmtOptimizer: remove unused code (#3949) @kitbellew
- Add a bit more structure to own docstrings (#3948) @kitbellew
- HasTests: show line number with config error (#3946) @kitbellew
- BestFirstSearch: switch to Long as State key (#3942) @kitbellew
- BestFirstSearch: use overridden ScalafmtConfig (#3945) @kitbellew
- BestFirstSearch: refactor optimization zones code (#3943) @kitbellew
- Router: to debug, use FileLine in binpack policies (#3930) @kitbellew
- Newlines: add method okSpaceForSource(newlines) (#3909) @kitbellew
- Modification: add conditional ctor to Newline2x (#3908) @kitbellew
- Documentation: add more context for
source=keep
(#3898) @kitbellew - Documentation: advise reading entire page first (#3897) @kitbellew
- Router: use built-to FormatToken.toString (#3892) @kitbellew
- scalafmt: enable AvoidInfix rewrite (#3890) @kitbellew
- scalafmt: enable
Imports
rewrite (#3888) @kitbellew - scalafmt: enable trailing commas rewrite (#3887) @kitbellew
- scalafmt: enable RedundantBraces rewrite (#3886) @kitbellew
- scalafmt: align strip margins (#3885) @kitbellew
- scalafmt: enable newlines.source=fold formatting (#3884) @kitbellew
- scalafmt: don't ignore newlines in syntax (#3883) @kitbellew
- scalafmt: enable RedundantParens rewrite (#3882) @kitbellew
- scalafmt: enable SortModifiers with
styleGuide
(#3881) @kitbellew - scalafmt: avoid simple overflow (#3880) @kitbellew
- scalafmt: group parameters (#3879) @kitbellew
- scalafmt: upgrade version ...
v3.8.1
New features
- ScalafmtOptimizer: rename forceConfigStyleOnOffset (#3874) @kitbellew
- RemoveScala3OptionalBraces: handle fewer braces (#3815) @kitbellew
- FormatTokensRewrite: check rewritten tokens sorted (#3871) @kitbellew
- FormatTokensRewrite: simplify claiming on right (#3870) @kitbellew
- FormatTokensRewrite: track source index explicitly (#3869) @kitbellew
- RedundantBraces: remove parens and trailing comma (#3868) @kitbellew
- Router: break on
(lambda
to keep trailing comma (#3855) @kitbellew - FormatOps: fix leading infix before fewer braces (#3859) @kitbellew
- FormatWriter: trailing comma with a removed paren (#3858) @kitbellew
- FormatWriter: keep braces if trailingCommas=Always (#3856) @kitbellew
- RedundantBraces: claim left brace inside parens (#3867) @kitbellew
- FormatTokensRewrite: return index, vs rule applied (#3866) @kitbellew
- FormatTokensRewrite: onRight proxy in Replacement (#3865) @kitbellew
- FormatTokensRewrite: pass FormatToken to resurrect (#3864) @kitbellew
- FormatTokensRewrite:
claim
implicit FormatToken (#3863) @kitbellew - FormatTokensRewrite: reuse index claimed earlier (#3860) @kitbellew
- FormatTokensRewrite: obtain rule from Replacement (#3862) @kitbellew
- FormatTokensRewrite: token index in Replacement (#3861) @kitbellew
- FormatTokensRewrite: token map expects left token (#3857) @kitbellew
- Test preserving non-folding trailing comma (#3849) @kitbellew
- RewriteTrailingCommas: take over check, refactor (#3854) @kitbellew
- TreeOps: rename, improve
endsWithFewerBraces
(#3853) @kitbellew - FormatTokensRewrite: define
Replacement.isRemove
(#3851) @kitbellew - FormatTokensRewrite: add getClaimed method (#3848) @kitbellew
- Rewrite rules: pass FormatTokens as implicit (#3847) @kitbellew
- FormatTokensRewrite: find only enabled rules (#3846) @kitbellew
- RemoveScala3OptionalBraces: allow leading infix op (#3840) @kitbellew
- RedundantBraces: fix "moving" braces around func (#3834) @kitbellew
- FormatTokensRewrite: ScalafmtConfig in Replacement (#3838) @kitbellew
- FormatTokensRewrite: update claims in
onRight
(#3835) @kitbellew - FormatTokensRewrite: "claim" index in
tokens
(#3830) @kitbellew - FormatTokensRewrite: move Rule into Replacement (#3828) @kitbellew
- FormatTokensRewrite: keep each token's replacement (#3827) @kitbellew
- FormatTokensRewrite: sort rule factories (#3826) @kitbellew
- FormatWriter: mind rewritten tokens for {} -> () (#3822) @kitbellew
- FormatTokensRewrite: include all rules in Session (#3816) @kitbellew
- RemoveScala3OptionalBraces: move next token check (#3814) @kitbellew
- RewriteScala3Settings: expand RemoveOptionalBraces (#3813) @kitbellew
- FormatTokensRewrite: add
createIfRequested()
(#3808) @kitbellew
- SortSettings: implement the
styleGuide
preset (#3797) @kitbellew- SortSettings: add
erased
(#3796) @kitbellew
- SortSettings: add
Bug fixes
- Scalameta: upgrade to v4.9.3 (#3875) @kitbellew
- Scalameta: upgrade to v4.9.2 (#3839) @kitbellew
Miscellaneous
- Docs: use parens, not brackets for
since vX.Y.Z
(#3873) @kitbellew - Docs: mention version for
fewerBracesMin/MaxSpan
(#3872) @kitbellew - Replace scalafiddle reference with scastie (#3843) @sake92
- LoggerOps: use Token.structure for logging (#3850) @kitbellew
- FormatOps: simplify
functionExpire
(#3841) @kitbellew - FormatTokens: modify getHead/getLast (#3837) @kitbellew
- TreeOps: extract both braces in SingleArgInBraces (#3836) @kitbellew
- FormatTokens: add nextNonCommentAfter (#3833) @kitbellew
- FormatTokens: import TokenOps._ (#3832) @kitbellew
- FormatTokens: getDelimsIfEnclosed (#3831) @kitbellew
- DynamicSuite: test newer versions without problems (#3823) @kitbellew
:
could be from the single term in ArgClause (#3805) @kitbellew- TreeOps: in SingleArgInBraces, check rewrites (#3809) @kitbellew
- FormatOps: pass FormatTokens as implicit (#3807) @kitbellew
- TreeOps: add
isEmptyTree
and function body (#3806) @kitbellew }
could be from a block arg or splice (#3804) @kitbellew- FormatWriter: fix top-level identification logic (#3802) @kitbellew
- ScalafmtConfig: use Sbt dialect for .sbt files (#3795) @kitbellew
- Documentation: add min version for
styleGuide
(#3798) @kitbellew - Scalafmt: use .forSbt for .sbt files only (#3792) @kitbellew
- Scalafmt: remove unused methods (#3791) @kitbellew
- SortSettings: create a variable for each modifier (#3793) @kitbellew
- Documentation: expand section on
SortModifiers
(#3794) @kitbellew
Dependency updates
- Update scala-library, scala-reflect to 2.13.13 (#3818) @scalameta-bot
- Update scalafmt-core to 3.8.0 (#3820) @scalameta-bot
- Update scalameta, testkit to 4.9.1 (#3821) @scalameta-bot
- Update sbt to 1.9.9 (#3819) @scalameta-bot
- Update scala-library, scala-reflect to 2.12.19 (#3817) @scalameta-bot
- Bump release-drafter/release-drafter from 5 to 6 (#3803) @dependabot
v3.8.0
Features
- ConvertToNewScala3Syntax: use the new granular parameter (#3735) @kitbellew
- #3712
- AvoidInfixSettings: use scalatest ops in test only (#3739) @kitbellew
- AvoidInfixSettings: relax
forSbtOpt
append rule (#3737) @kitbellew - ProjectFiles: detect if source is test in Layout (#3738) @kitbellew
- RewriteSettings: rename
forSbt
toforSbtOpt
(#3719) @kitbellew - AvoidInfixSettings: refactor defaults (#3718) @kitbellew
- AvoidInfixSettings: add
behavior.of
to default (#3711) @kitbellew - AvoidInfixSettings: consolidate AvoidInfix params (#3717) @kitbellew
- StandardProjectLayoutTest: rename to fix typo (#3716) @kitbellew
- ProjectFiles: shorten len in recursive getLang (#3715) @kitbellew
- ProjectFiles: implement Layout.withLang (#3714) @kitbellew
- ProjectFiles: refactor getting parent dirs (#3713) @kitbellew
- NeverInfixPattern: allow to match lhs as well (#3705) @kitbellew
- StandardProjectLayoutTest: add tests (#3706) @kitbellew
- AbsoluteFile: add
apply(String*)
(#3708) @kitbellew - NeverInfixPattern: implement own matching method (#3704) @kitbellew
- AvoidInfix: add tests for
of
(#3703) @kitbellew - NeverInfixPattern: rename from ambiguous
Pattern
(#3702) @kitbellew - Regex: use pattern.matcher.find, not findFirstIn (#3701) @kitbellew
Bug fixes
- FormatOps: fix fewer-braces lambda argument (#3782) @kitbellew
- Scalameta: update to 4.9.0 (#3781) @kitbellew
- Contains a number of parsing and interface fixes
- TreeOps: define
SingleArgInBraces
tree matcher (#3776) @kitbellew
- RedundantBraces: remove inner braces, not outer (#3780) @kitbellew
- FormatOps: fix
functionExpire
when rewritten (#3773) @kitbellew - Use Term.FunctionTerm where Term.Function was used (#3771) @kitbellew
- Use an sbt-scalafmt badge that shows the actual latest version (#3769) @taig
- FormatOps: force NL for non-single-expr in finally (#3761) @kitbellew
- RedundantParens: exclude case of trailing commas (#3750) @kitbellew
- RewriteTrailingCommas/RedundantParens: collaborate (#3760) @kitbellew
- TreeOps: relax when trailing comma paren possible (#3755) @kitbellew
- FormatOps: set indent correctly for enclosed body (#3754) @kitbellew
- Add tests with trailing commas in tuple (#3759) @kitbellew
- FormatOps: in getArgs, optionally return Nil (#3756) @kitbellew
- FormatTokensRewrite: claim current token as well (#3753) @kitbellew
- FormatTokensRewrite: create Session, pass around (#3752) @kitbellew
- FormatOps: outindent after fewer braces in infix (#3740) @kitbellew
- Scalameta: update to v4.8.15 (#3741) @kitbellew
- bugfix: Show exception from path matcher correctly (#3729) @tgodzik
- FormatWriter: fix end marker handling (#3734) @kitbellew
Miscellaneous
- FormatOps: inline
opensConfigStyle{,Classic}
(#3784) @kitbellew - FormatOps: getMustDangleForTrailingCommas(Token) (#3783) @kitbellew
- RedundantBraces: processBlock never called on
}
(#3779) @kitbellew - RedundantBraces: add
canRewriteXyzWithParens
(#3778) @kitbellew - RedundantBraces: extract method checking line span (#3777) @kitbellew
- FormatWriter: check stats in top-level handling (#3775) @kitbellew
- TreeOps: use DRY in checking function in braces (#3774) @kitbellew
- TreeOps: add method
isParentAnApply
(#3772) @kitbellew - FormatTests: improve idempotency and other errors (#3770) @kitbellew
- FormatTests: check AST only if result is parsable (#3758) @kitbellew
- FormatTests: ease check when test fails to parse (#3757) @kitbellew
- FormatTokens: add prevNonCommentSameLineBefore (#3751) @kitbellew
- FormatTests: improve asserting idempotency failure (#3736) @kitbellew
- Docs: increase
maxColumn
to showcase alignment (#3733) @kitbellew - improvement: Warn users not to use an example config without discussion (#3710) @tgodzik
Depedency updates
- Update mdoc, mdoc-parser, sbt-mdoc to 2.5.2 (#3768) @scalameta-bot
- Update sbt-jmh to 0.4.7 (#3749) @scalameta-bot
- Update sbt to 1.9.8 (#3748) @scalameta-bot
- Update sbt-scalajs to 1.15.0 (#3747) @scalameta-bot
- Bump actions/download-artifact from 3 to 4 (#3742) @dependabot
- Update scalafmt-core to 3.7.17 (#3726) @scalameta-bot
- Update mdoc-parser to 2.5.1 (#3725) @scalameta-bot
- Update mdoc, sbt-mdoc to 2.5.1 (#3724) @scalameta-bot
- Update sbt-assembly to 2.1.5 (#3723) @scalameta-bot
- Bump actions/setup-java from 3 to 4 (#3721) @dependabot
v3.7.17
Bug fixes
- Cli: version is necessary, may not be sufficient (#3696) @kitbellew
- Scalameta: update to v4.8.14 (#3695) @kitbellew
- ScalafmtReflect: lazily load obsolete class (#3690) @kitbellew
- DynamicSuite: test nightly version via local build (#3691) @kitbellew
v3.7.16
Features
- YML: Add java21 to the build (#3687) @kitbellew
Bug fixes
- Scalameta: update to v4.8.13 (#3686) @kitbellew
- MarkdownParser: add formatter using mdoc parser (#3684) @kitbellew
- InputMethod: check for empty diff (#3683) @kitbellew
- ConfParsed: don't mask parsing/retrieval errors (#3681) @kitbellew
Miscellaneous
- YML: Make java11 primary, remove java8 (#3685) @kitbellew
- Error: include doc url in SearchStateExploded msg (#3682) @kitbellew
- Config: move all methods into ScalafmtConfig (#3680) @kitbellew
Dependency updates
- Update typesafe:config to 1.4.3 (#3677) @scalameta-bot
- Update scalafmt-core to 3.7.15 (#3679) @scalameta-bot
- Update sbt to 1.9.7 (#3678) @scalameta-bot
- Update sbt-assembly to 2.1.4 (#3676) @scalameta-bot
v3.7.15
Bug fixes
- RewriteTrailingCommas: allow tuples as well (#3665) @kitbellew
- FormatOps: fix Defn as optional braces block (#3658) @kitbellew
- Scalafmt: don't parse shebang line as scala (#3657) @kitbellew
- ScalafmtConfig: fix withoutRewrites (#3654) @kitbellew
Miscellaneous
- TokenClasses: don't use classifiers (#3667) @kitbellew
- Scalafmt: handle empty code differently (#3656) @kitbellew
- HasTests: locations could be null (#3655) @kitbellew
- Add a full structure test for intermittent failure (#3635) @kitbellew
- CliArgParser: clarify
--stdin
description (#3633) @kitbellew
Dependency updates
- Scalameta: update to v4.8.12 (#3666) @kitbellew
- Update: metaconfig to v0.12.0, mdoc to v2.4.0 (#3668) @kitbellew
- Update sbt-scalajs to 1.14.0 (#3648) @scalameta-bot
- Update sbt-assembly to 2.1.3 (#3647) @scalameta-bot
- Update sbt to 1.9.6 (#3650) @scalameta-bot
- Update scalafmt-core to 3.7.14 (#3651) @scalameta-bot
- Update sbt-jmh to 0.4.6 (#3652) @scalameta-bot
- Bump docker/metadata-action from 4 to 5 (#3646) @dependabot
- Bump docker/login-action from 2 to 3 (#3645) @dependabot
- Bump docker/build-push-action from 4 to 5 (#3644) @dependabot
- Bump actions/checkout from 3 to 4 (#3643) @dependabot
- Scalameta: update to v4.8.11 (#3640) @kitbellew