diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Docstrings.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Docstrings.scala index 61418c38ae..1a2b3e3cdc 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Docstrings.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/config/Docstrings.scala @@ -31,6 +31,9 @@ case class Docstrings( ) { import Docstrings._ + def withoutRewrites: Docstrings = + copy(removeEmpty = false, wrap = Wrap.no, style = Preserve) + def skipFirstLineIf(wasBlank: Boolean): Boolean = blankFirstLine match { case BlankFirstLine.yes => true case BlankFirstLine.no => style.skipFirstLine 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 a51b3b8734..79e60c8e70 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 @@ -250,6 +250,7 @@ case class ScalafmtConfig( // used in ScalafmtReflectConfig def withoutRewrites: ScalafmtConfig = copy( trailingCommas = None, + docstrings = docstrings.withoutRewrites, rewrite = rewrite.withoutRewrites ) diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatWriter.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatWriter.scala index 9bf80a2871..9a14799d11 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatWriter.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatWriter.scala @@ -1013,7 +1013,7 @@ class FormatWriter(formatOps: FormatOps) { val codeStyle = style.copy( runner = style.runner.forCodeBlock, // let's not wrap docstrings, to avoid recursion - docstrings = style.docstrings.copy(wrap = Docstrings.Wrap.no), + docstrings = style.docstrings.withoutRewrites, maxColumn = style.maxColumn - spaces.length - termIndent.length - 1 ) Scalafmt.format(code.mkString("\n"), codeStyle) match { diff --git a/scalafmt-tests/src/test/scala/org/scalafmt/config/ScalafmtConfigTest.scala b/scalafmt-tests/src/test/scala/org/scalafmt/config/ScalafmtConfigTest.scala index 4f4c8eae56..fb140a2746 100644 --- a/scalafmt-tests/src/test/scala/org/scalafmt/config/ScalafmtConfigTest.scala +++ b/scalafmt-tests/src/test/scala/org/scalafmt/config/ScalafmtConfigTest.scala @@ -105,7 +105,7 @@ class ScalafmtConfigTest extends FunSuite { .get assert(config1.hasRewrites) val config2 = config1.withoutRewrites - assert(config2.hasRewrites) // XXX: this is incorrect + assert(!config2.hasRewrites) } }