diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Newlines.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Newlines.scala index c8ec03a5d7..14a58b0e73 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Newlines.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Newlines.scala @@ -333,10 +333,14 @@ object Newlines { implicit lazy val codec: ConfCodecEx[Newlines] = generic.deriveCodecEx(Newlines()).noTypos - sealed abstract class SourceHints(val ignoreSourceSplit: Boolean) { + sealed abstract class IgnoreSourceSplit { + val ignoreSourceSplit: Boolean @inline - final def in(hints: SourceHints*): Boolean = hints.contains(this) + final def in(hints: IgnoreSourceSplit*): Boolean = hints.contains(this) } + + sealed abstract class SourceHints(val ignoreSourceSplit: Boolean) + extends IgnoreSourceSplit // the classic handler of source newlines case object classic extends SourceHints(ignoreSourceSplit = false) // try to keep newlines diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/config/ScalafmtConfig.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/config/ScalafmtConfig.scala index fcb614494a..f4066f9ca5 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/config/ScalafmtConfig.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/config/ScalafmtConfig.scala @@ -376,7 +376,7 @@ object ScalafmtConfig { if (newlines.sourceIgnored) { addIf(optIn.configStyleArguments && align.openParenCallSite && newlines.beforeOpenParenCallSite.isEmpty) addIf(optIn.configStyleArguments && align.openParenDefnSite && newlines.beforeOpenParenDefnSite.isEmpty) - def mustIgnoreSourceSplit(what: sourcecode.Text[Option[Newlines.SourceHints]]) = + def mustIgnoreSourceSplit(what: sourcecode.Text[Option[Newlines.IgnoreSourceSplit]]) = what.value.foreach(x => addIfDirect(!x.ignoreSourceSplit, s"${what.source}=$x")) mustIgnoreSourceSplit(newlines.beforeMultiline) mustIgnoreSourceSplit(newlines.beforeMultilineDef)