Skip to content

Commit

Permalink
Merge pull request #597 from eed3si9n/wip/plugin
Browse files Browse the repository at this point in the history
Move to globalSettings
  • Loading branch information
eed3si9n committed Feb 23, 2023
2 parents 153e640 + 896dfb0 commit 89ad9af
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 40 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Dependencies._
import Common._

ThisBuild / version := "1.9.2-SNAPSHOT"
ThisBuild / version := "1.10.1-SNAPSHOT"
ThisBuild / organization := "org.scalaxb"
ThisBuild / homepage := Option(url("http://scalaxb.org"))
ThisBuild / licenses := List("MIT License" -> url("https://github.com/eed3si9n/scalaxb/blob/master/LICENSE"))
Expand Down
2 changes: 1 addition & 1 deletion sbt-scalaxb/src/main/scala/sbtscalaxb/ScalaxbKeys.scala
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ trait ScalaxbKeys {
lazy val scalaxbMapK = settingKey[Boolean]("Generate a mapK for tagless style clients")
lazy val scalaxbGigahorseVersion = settingKey[String]("Gigahorse version")
lazy val scalaxbGigahorseBackend = settingKey[GigahorseHttpBackend.Value]("Gigahorse http backend")
@deprecated("Use 'scalaxbHttpClientStyle:=HttpCLientStyle.Future' instead", since="1.10.0")
@deprecated("Use 'scalaxbHttpClientStyle := HttpClientStyle.Future' instead", since="1.10.0")
lazy val scalaxbAsync = settingKey[Boolean]("Generates async SOAP client")
lazy val scalaxbHttpClientStyle = settingKey[HttpClientStyle.Value]("Generates SOAP client using a specific style")
lazy val scalaxbIgnoreUnknown = settingKey[Boolean]("Ignores unknown Elements")
Expand Down
86 changes: 48 additions & 38 deletions sbt-scalaxb/src/main/scala/sbtscalaxb/ScalaxbPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,51 @@ import scalaxb.{compiler => sc}
import scalaxb.compiler.{Config => ScConfig}
import sc.ConfigEntry
import sc.ConfigEntry.{HttpClientStyle => _, _}
import scala.annotation.nowarn

object ScalaxbPlugin extends sbt.AutoPlugin {
override def requires = plugins.JvmPlugin

object autoImport extends ScalaxbKeys
import autoImport._
override lazy val globalSettings: Seq[Def.Setting[_]] = Seq(
scalaxbPackageName := "generated",
scalaxbPackageNames := Map(),
scalaxbClassPrefix := None,
scalaxbParamPrefix := None,
scalaxbAttributePrefix := None,
scalaxbOpOutputWrapperPostfix := sc.Defaults.opOutputWrapperPostfix,
scalaxbPrependFamily := false,
scalaxbWrapContents := Nil,
scalaxbContentsSizeLimit := Int.MaxValue,
scalaxbChunkSize := 10,
scalaxbNamedAttributes := false,
scalaxbPackageDir := true,
scalaxbGenerateRuntime := true,
scalaxbGenerateDispatchClient := true,
scalaxbGenerateDispatchAs := false,
scalaxbGenerateHttp4sClient := false,
scalaxbGenerateGigahorseClient := false,
scalaxbGenerateSingleClient := HttpClientType.None,
scalaxbProtocolFileName := sc.Defaults.protocolFileName,
scalaxbProtocolPackageName := None,
scalaxbLaxAny := false,
scalaxbDispatchVersion := ScConfig.defaultDispatchVersion.value,
scalaxbGigahorseVersion := ScConfig.defaultGigahorseVersion.value,
scalaxbGigahorseBackend := GigahorseHttpBackend.OkHttp,
scalaxbHttp4sVersion := ScConfig.defaultHttp4sVersion.value,
scalaxbMapK := false,
scalaxbIgnoreUnknown := false,
scalaxbVararg := false,
scalaxbGenerateMutable := false,
scalaxbGenerateVisitor := false,
scalaxbGenerateLens := false,
scalaxbAutoPackages := false,
scalaxbCapitalizeWords := false,
scalaxbSymbolEncodingStrategy := SymbolEncodingStrategy.Legacy151,
scalaxbEnumNameMaxLength := 50,
scalaxbUseLists := false,
scalaxbAsync := true,
)

override lazy val projectSettings: Seq[Def.Setting[_]] =
inConfig(Compile)(baseScalaxbSettings) ++
Expand Down Expand Up @@ -57,43 +95,15 @@ object ScalaxbPlugin extends sbt.AutoPlugin {
val xs = scalaxbPackageNames.value
(xs map { case (k, v) => ((Some(k.toString): Option[String]), Some(v)) }) updated (None, Some(x))
},
scalaxbPackageName := "generated",
scalaxbPackageNames := Map(),
scalaxbClassPrefix := None,
scalaxbParamPrefix := None,
scalaxbAttributePrefix := None,
scalaxbOpOutputWrapperPostfix := sc.Defaults.opOutputWrapperPostfix,
scalaxbPrependFamily := false,
scalaxbWrapContents := Nil,
scalaxbContentsSizeLimit := Int.MaxValue,
scalaxbChunkSize := 10,
scalaxbNamedAttributes := false,
scalaxbPackageDir := true,
scalaxbGenerateRuntime := true,
scalaxbGenerateDispatchClient := true,
scalaxbGenerateDispatchAs := false,
scalaxbGenerateHttp4sClient := true,
scalaxbGenerateGigahorseClient := false,
scalaxbGenerateSingleClient := HttpClientType.None,
scalaxbProtocolFileName := sc.Defaults.protocolFileName,
scalaxbProtocolPackageName := None,
scalaxbLaxAny := false,
scalaxbDispatchVersion := ScConfig.defaultDispatchVersion.value,
scalaxbGigahorseVersion := ScConfig.defaultGigahorseVersion.value,
scalaxbGigahorseBackend := GigahorseHttpBackend.OkHttp,
scalaxbHttp4sVersion := ScConfig.defaultHttp4sVersion.value,
scalaxbHttpClientStyle := {if(scalaxbAsync.?.value.getOrElse(true)) HttpClientStyle.Future else HttpClientStyle.Sync}: @nowarn,
scalaxbMapK := false,
scalaxbIgnoreUnknown := false,
scalaxbVararg := false,
scalaxbGenerateMutable := false,
scalaxbGenerateVisitor := false,
scalaxbGenerateLens := false,
scalaxbAutoPackages := false,
scalaxbCapitalizeWords := false,
scalaxbSymbolEncodingStrategy := SymbolEncodingStrategy.Legacy151,
scalaxbEnumNameMaxLength := 50,
scalaxbUseLists := false,
scalaxbHttpClientStyle := {
(scalaxbHttpClientStyle.?.value) match {
case Some(x) => x
case _ =>
if (scalaxbGenerateHttp4sClient.value) HttpClientStyle.Tagless
else if (scalaxbAsync.value) HttpClientStyle.Future
else HttpClientStyle.Sync
}
},
scalaxbConfig :=
ScConfig(
Vector(PackageNames(scalaxbCombinedPackageNames.value)) ++
Expand Down

0 comments on commit 89ad9af

Please sign in to comment.