Skip to content

Commit

Permalink
FormatOps vertical multiline: explicit implicits
Browse files Browse the repository at this point in the history
Specifically, implicitParamListModifierForce=after should not apply when
`implicit` is explicit rather than applies once to the entire group.
  • Loading branch information
kitbellew committed Feb 20, 2023
1 parent 8951c58 commit 61d7860
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1233,9 +1233,10 @@ class FormatOps(
case Decision(FormatToken(LeftParenOrBracket(), _, m), ss)
if allParenOwners.contains(m.leftOwner) =>
ss.filter(!_.isActiveFor(SplitTag.VerticalMultilineSingleLine))
case Decision(ftd @ FormatToken(soft.ImplicitOrUsing(), _, _), _)
case Decision(ftd @ FormatToken(soft.ImplicitOrUsing(), _, m), _)
if style.newlines.forceAfterImplicitParamListModifier &&
!tokens.isRightCommentThenBreak(ftd) =>
!tokens.isRightCommentThenBreak(ftd) &&
hasImplicitParamList(m.leftOwner) =>
Seq(Split(Newline, 0))
}

Expand Down
24 changes: 8 additions & 16 deletions scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat
Original file line number Diff line number Diff line change
Expand Up @@ -4277,17 +4277,14 @@ object a:
)(b: B,
bs: B*
)(implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(implicit
c: C,
implicit
d: D) {}
)(implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4296,8 +4293,7 @@ object a:
)(implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, vertical multiline, implicitParamListModifierForce = [before]
maxColumn = 40
verticalMultiline.atDefnSite = true
Expand Down Expand Up @@ -4381,18 +4377,15 @@ object a:
bs: B*
)(
implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(
implicit
c: C,
implicit
d: D) {}
implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4402,8 +4395,7 @@ object a:
implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, short
maxColumn = 23
===
Expand Down
24 changes: 8 additions & 16 deletions scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat
Original file line number Diff line number Diff line change
Expand Up @@ -4088,17 +4088,14 @@ object a:
)(b: B,
bs: B*
)(implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(implicit
c: C,
implicit
d: D) {}
)(implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4107,8 +4104,7 @@ object a:
)(implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, vertical multiline, implicitParamListModifierForce = [before]
maxColumn = 40
verticalMultiline.atDefnSite = true
Expand Down Expand Up @@ -4192,18 +4188,15 @@ object a:
bs: B*
)(
implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(
implicit
c: C,
implicit
d: D) {}
implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4213,8 +4206,7 @@ object a:
implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, short
maxColumn = 23
===
Expand Down
24 changes: 8 additions & 16 deletions scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat
Original file line number Diff line number Diff line change
Expand Up @@ -4316,17 +4316,14 @@ object a:
)(b: B,
bs: B*
)(implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(implicit
c: C,
implicit
d: D) {}
)(implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4335,8 +4332,7 @@ object a:
)(implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, vertical multiline, implicitParamListModifierForce = [before]
maxColumn = 40
verticalMultiline.atDefnSite = true
Expand Down Expand Up @@ -4420,18 +4416,15 @@ object a:
bs: B*
)(
implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(
implicit
c: C,
implicit
d: D) {}
implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4441,8 +4434,7 @@ object a:
implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, short
maxColumn = 23
===
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4408,17 +4408,14 @@ object a:
)(b: B,
bs: B*
)(implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(implicit
c: C,
implicit
d: D) {}
)(implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4427,8 +4424,7 @@ object a:
)(implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, vertical multiline, implicitParamListModifierForce = [before]
maxColumn = 40
verticalMultiline.atDefnSite = true
Expand Down Expand Up @@ -4512,18 +4508,15 @@ object a:
bs: B*
)(
implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(
implicit
c: C,
implicit
d: D) {}
implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -4533,8 +4526,7 @@ object a:
implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
<<< interleaved, short
maxColumn = 23
===
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -385,17 +385,14 @@ object a {
)(b: B,
bs: B*
)(implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(implicit
c: C,
implicit
d: D) {}
)(implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -404,8 +401,7 @@ object a {
)(implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
}
<<< explicit implicits, implicitParamListModifierForce = [before]
maxColumn = 40
Expand Down Expand Up @@ -461,18 +457,15 @@ object a {
bs: B*
)(
implicit
implicit
c: C) {}
implicit c: C) {}
class F(
a: A,
as: A*
)(b: B,
bs: B*
)(
implicit
c: C,
implicit
d: D) {}
implicit c: C,
implicit d: D) {}
class F(
a: A,
as: A*
Expand All @@ -482,6 +475,5 @@ object a {
implicit
c: C,
d: D,
implicit
e: E) {}
implicit e: E) {}
}

0 comments on commit 61d7860

Please sign in to comment.