From 54df45b2386010e9ffac5c0e99ce4c8e812d0534 Mon Sep 17 00:00:00 2001 From: volcano303 Date: Tue, 7 Apr 2026 16:16:49 +0000 Subject: [PATCH] Add scalafmt plugin to scala-finch generator --- .../languages/ScalaFinchServerCodegen.java | 1 + .../resources/scala-finch/project/plugins.sbt | 2 + .../resources/scala-finch/scalafmt.mustache | 58 +++++++++++++++++++ .../scala-finch/.openapi-generator/FILES | 1 + .../scala-finch/.openapi-generator/VERSION | 2 +- .../petstore/scala-finch/.scalafmt.conf | 58 +++++++++++++++++++ .../petstore/scala-finch/project/plugins.sbt | 2 + .../scala-finch/src/main/scala/errors.scala | 1 - .../scala/org/openapitools/apis/PetApi.scala | 1 + .../scala/org/openapitools/apis/UserApi.scala | 1 + 10 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 modules/openapi-generator/src/main/resources/scala-finch/scalafmt.mustache create mode 100644 samples/server/petstore/scala-finch/.scalafmt.conf diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java index e6144e081f92..85be7d98c486 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java @@ -156,6 +156,7 @@ public ScalaFinchServerCodegen() { supportingFiles.add(new SupportingFile("project/build.properties", "project", "build.properties")); supportingFiles.add(new SupportingFile("project/plugins.sbt", "project", "plugins.sbt")); + supportingFiles.add(new SupportingFile("scalafmt.mustache", "", ".scalafmt.conf")); supportingFiles.add(new SupportingFile("sbt", "", "sbt")); supportingFiles.add(new SupportingFile("endpoint.mustache", sourceFolder, "endpoint.scala")); diff --git a/modules/openapi-generator/src/main/resources/scala-finch/project/plugins.sbt b/modules/openapi-generator/src/main/resources/scala-finch/project/plugins.sbt index d005ee813b4d..3b4ef35c4f66 100644 --- a/modules/openapi-generator/src/main/resources/scala-finch/project/plugins.sbt +++ b/modules/openapi-generator/src/main/resources/scala-finch/project/plugins.sbt @@ -5,3 +5,5 @@ addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3") addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.5.3") addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.6.0") + +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6") diff --git a/modules/openapi-generator/src/main/resources/scala-finch/scalafmt.mustache b/modules/openapi-generator/src/main/resources/scala-finch/scalafmt.mustache new file mode 100644 index 000000000000..fa3c57ad8c66 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/scala-finch/scalafmt.mustache @@ -0,0 +1,58 @@ +version=3.10.6 +runner.dialect = scala212 +project { + git = false + excludeFilters = [ + scalafmt-benchmarks/src/resources, + sbt-test + bin/issue + ] + layout = StandardConvention +} +align { + preset = none + stripMargin = true +} +binPack { + importSelectors = fold +} +newlines { + avoidForSimpleOverflow = all + ignoreInSyntax = false + source = fold +} +rewrite { + rules = [ + AvoidInfix, + Imports, + RedundantBraces, + RedundantParens, + SortModifiers, + ] + imports { + selectors = fold + removeRedundantSelectors = true + sort = ascii + groups = [ + ["org\\.scalafmt\\..*"], + ["scala\\.meta\\..*", "org\\.scalameta\\..*"], + ["sbt\\..*"], + ["java.?\\..*"], + ["scala\\..*"], + ["org\\..*"], + ["com\\..*"], + ] + } + redundantBraces { + preset = all + oneStatApply { + parensMaxSpan = 300 + bracesMinSpan = 300 + } + } + redundantParens { + preset = all + } + sortModifiers.preset = styleGuide + trailingCommas.style = "always" +} diff --git a/samples/server/petstore/scala-finch/.openapi-generator/FILES b/samples/server/petstore/scala-finch/.openapi-generator/FILES index 6bfce1fa7c2b..cce55c6e8e8e 100644 --- a/samples/server/petstore/scala-finch/.openapi-generator/FILES +++ b/samples/server/petstore/scala-finch/.openapi-generator/FILES @@ -1,3 +1,4 @@ +.scalafmt.conf README.md build.sbt project/build.properties diff --git a/samples/server/petstore/scala-finch/.openapi-generator/VERSION b/samples/server/petstore/scala-finch/.openapi-generator/VERSION index c30f0ec2be7f..f7962df3e243 100644 --- a/samples/server/petstore/scala-finch/.openapi-generator/VERSION +++ b/samples/server/petstore/scala-finch/.openapi-generator/VERSION @@ -1 +1 @@ -5.1.0-SNAPSHOT \ No newline at end of file +7.22.0-SNAPSHOT diff --git a/samples/server/petstore/scala-finch/.scalafmt.conf b/samples/server/petstore/scala-finch/.scalafmt.conf new file mode 100644 index 000000000000..fa3c57ad8c66 --- /dev/null +++ b/samples/server/petstore/scala-finch/.scalafmt.conf @@ -0,0 +1,58 @@ +version=3.10.6 +runner.dialect = scala212 +project { + git = false + excludeFilters = [ + scalafmt-benchmarks/src/resources, + sbt-test + bin/issue + ] + layout = StandardConvention +} +align { + preset = none + stripMargin = true +} +binPack { + importSelectors = fold +} +newlines { + avoidForSimpleOverflow = all + ignoreInSyntax = false + source = fold +} +rewrite { + rules = [ + AvoidInfix, + Imports, + RedundantBraces, + RedundantParens, + SortModifiers, + ] + imports { + selectors = fold + removeRedundantSelectors = true + sort = ascii + groups = [ + ["org\\.scalafmt\\..*"], + ["scala\\.meta\\..*", "org\\.scalameta\\..*"], + ["sbt\\..*"], + ["java.?\\..*"], + ["scala\\..*"], + ["org\\..*"], + ["com\\..*"], + ] + } + redundantBraces { + preset = all + oneStatApply { + parensMaxSpan = 300 + bracesMinSpan = 300 + } + } + redundantParens { + preset = all + } + sortModifiers.preset = styleGuide + trailingCommas.style = "always" +} diff --git a/samples/server/petstore/scala-finch/project/plugins.sbt b/samples/server/petstore/scala-finch/project/plugins.sbt index d005ee813b4d..3b4ef35c4f66 100644 --- a/samples/server/petstore/scala-finch/project/plugins.sbt +++ b/samples/server/petstore/scala-finch/project/plugins.sbt @@ -5,3 +5,5 @@ addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3") addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.5.3") addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.6.0") + +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6") diff --git a/samples/server/petstore/scala-finch/src/main/scala/errors.scala b/samples/server/petstore/scala-finch/src/main/scala/errors.scala index 25f7cc382652..0d0985d33083 100644 --- a/samples/server/petstore/scala-finch/src/main/scala/errors.scala +++ b/samples/server/petstore/scala-finch/src/main/scala/errors.scala @@ -24,4 +24,3 @@ case class MissingIdentifier(message: String) extends CommonError(message) * @param message An error message */ case class RecordNotFound(message: String) extends CommonError(message) - diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/PetApi.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/PetApi.scala index 8a5185fa2d31..56c3db10c1d9 100644 --- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/PetApi.scala +++ b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/PetApi.scala @@ -6,6 +6,7 @@ import org.openapitools.models._ import org.openapitools.models.ApiResponse import java.io.File import org.openapitools.models.Pet +import scala.collection.immutable.Seq import io.finch.circe._ import io.circe.generic.semiauto._ import com.twitter.concurrent.AsyncStream diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/UserApi.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/UserApi.scala index 440e9fe7103b..356b98f91baa 100644 --- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/UserApi.scala +++ b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/UserApi.scala @@ -5,6 +5,7 @@ import org.openapitools._ import org.openapitools.models._ import scala.collection.immutable.Seq import org.openapitools.models.User +import java.time.ZonedDateTime import io.finch.circe._ import io.circe.generic.semiauto._ import com.twitter.concurrent.AsyncStream