Skip to content

Commit

Permalink
FormatOps: raise NL cost for binpacked ctrl body
Browse files Browse the repository at this point in the history
  • Loading branch information
kitbellew committed Jun 14, 2024
1 parent 7e72eb6 commit 16b9274
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1455,11 +1455,13 @@ class FormatOps(
val expire = nextNonCommentSameLine(blastFT).left
def penalize(penalty: Int) = Policy ? (penalty > 0) &&
new PolicyOps.PenalizeAllNewlines(Policy.End == blast, penalty)
def getNlSplit(penalty: Int)(implicit fileLine: FileLine): Split =
nlSplitFunc(1).andPolicy(penalize(penalty)).forThisLine(nextLine)
def getSplits(spaceSplit: Split) = (
def getNlSplit(penalty: Int, nlCost: Int = 1)(implicit
fileLine: FileLine,
): Split = nlSplitFunc(nlCost).andPolicy(penalize(penalty))
.forThisLine(nextLine)
def getSplits(spaceSplit: Split, nlCost: Int = 1) = (
spaceSplit.withIndents(spaceIndents),
getNlSplit(1)(nextLine(spaceSplit.fileLine)),
getNlSplit(1, nlCost)(nextLine(spaceSplit.fileLine)),
)
def getSlb(end: T, excl: TokenRanges)(implicit fileLine: FileLine) =
SingleLineBlock(end, exclude = excl, noSyntaxNL = true)
Expand All @@ -1476,9 +1478,9 @@ class FormatOps(
val spacePolicy = policy | penalize(penalty)
Split(Space, 0).withPolicy(spacePolicy).withOptimalToken(blast)
}
def getPolicySplits(penalty: Int, policy: Policy)(implicit
fileLine: FileLine,
) = getSplits(getSpaceSplit(penalty, policy))
def getPolicySplits(penalty: Int, policy: Policy, nlCost: Int = 1)(
implicit fileLine: FileLine,
) = getSplits(getSpaceSplit(penalty, policy), nlCost)
def getSlbSplits(
exclude: TokenRanges = TokenRanges.empty,
policy: Policy = Policy.NoPolicy,
Expand Down Expand Up @@ -1526,7 +1528,13 @@ class FormatOps(
else getSplits(getSlbSplit(getLastToken(lia.op)))
case _ =>
val callPolicy = CallSite.getFoldedPolicy(body)
getPolicySplits(if (callPolicy.nonEmpty) 0 else 1, callPolicy)
val nlCost = body match {
case Member.Apply(_, ac)
if styleMap.at(getHead(ac)).binPack.callSiteFor(ac).isOneline =>
3
case _ => 1
}
getPolicySplits(if (callPolicy.nonEmpty) 0 else 1, callPolicy, nlCost)
}

Seq(spaceSplit, nlSplit)
Expand Down
32 changes: 14 additions & 18 deletions scalafmt-tests/src/test/resources/scalajs/Apply.stat
Original file line number Diff line number Diff line change
Expand Up @@ -1172,15 +1172,13 @@ val rhs = genScalaArg(prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.
}
>>>
object a {
val rhs =
genScalaArg(sym, index, formalArgsRegistry, param, static, captures = Nil)(
prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs =
genScalaArg(sym, index, formalArgsRegistry, param, static)(prevArgsCount =>
varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs =
genScalaArg(prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))(
sym, index, formalArgsRegistry, param, static, captures = Nil)
val rhs = genScalaArg(sym, index, formalArgsRegistry, param, static, captures = Nil)(
prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs = genScalaArg(sym, index, formalArgsRegistry, param, static)(
prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs = genScalaArg(prevArgsCount =>
varDefs.take(prevArgsCount).toList.map(_.ref))(
sym, index, formalArgsRegistry, param, static, captures = Nil)
}
<<< don't break after equals if bp, !overflow
preset = default
Expand All @@ -1200,13 +1198,11 @@ val rhs = genScalaArg(prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.
}
>>>
object a {
val rhs =
genScalaArg(sym, index, formalArgsRegistry, param, static, captures = Nil)(
prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs =
genScalaArg(sym, index, formalArgsRegistry, param, static)(prevArgsCount =>
varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs =
genScalaArg(prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))(
sym, index, formalArgsRegistry, param, static, captures = Nil)
val rhs = genScalaArg(sym, index, formalArgsRegistry, param, static,
captures = Nil)(prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs = genScalaArg(sym, index, formalArgsRegistry, param, static)(
prevArgsCount => varDefs.take(prevArgsCount).toList.map(_.ref))
val rhs = genScalaArg(prevArgsCount =>
varDefs.take(prevArgsCount).toList.map(_.ref))(
sym, index, formalArgsRegistry, param, static, captures = Nil)
}

0 comments on commit 16b9274

Please sign in to comment.