Releases: scalameta/scalafmt
Releases Β· scalameta/scalafmt
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
v3.7.14
Bug fixes
- FormatOps: fewer-braces func not just in apply (#3624) @kitbellew
- Update scalameta, testkit to 4.8.10 (#3628) @scalameta-bot
Dependency updates
- Update scalafmt-core to 3.7.13 (#3627) @scalameta-bot
- Update sbt-scalafmt to 2.5.2 (#3626) @scalameta-bot
- Update sbt to 1.9.4 (#3625) @scalameta-bot
v3.7.13
Features
- Interfaces: add credentials to public interface (#3620) @kitbellew
- PolicyOps: use
newlines.ignoreInSyntax
(#3613) @kitbellew - Router: implement
spaces.beforeXxxArgInParens
(#3612) @kitbellew - FormatWriter: implement
align.delayUntilSpace
(#3616) @kitbellew
Bug fixes
- FormatWriter: accumulate align shift correctly (#3615) @kitbellew
Miscellaneous
- Installation: document COURSIER_REPOSITORIES (#3621) @kitbellew
- Update installation.md: avoid obsolete sbt shell syntax (#3619) @SethTisue
- TreeOps: remove isDefDef, use Member.ParamClause (#3611) @kitbellew
- Router: refactor modification before
(
(#3610) @kitbellew - ScalafmtConfig: display validation errors clearer (#3609) @kitbellew
- FormatWriter: FormatLocations.iterate to foreach (#3606) @kitbellew
- FormatWriter: append to empty align block (#3605) @kitbellew
Dependency updates
- Scalameta: upgrade to v4.8.9 (#3622) @kitbellew
- Scalameta: upgrade to v4.8.8 (#3617) @kitbellew