Skip to content

Commit 1d80196

Browse files
Merge pull request #1568 from alexarchambault/case-app-scala-3
Switch to Scala 3-based case-app
2 parents c4c2b51 + ccf3e98 commit 1d80196

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+177
-207
lines changed

build.sc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -647,9 +647,8 @@ trait CliOptions extends SbtModule with ScalaCliPublishModule {
647647
def compileIvyDeps = super.compileIvyDeps() ++ Seq(
648648
Deps.jsoniterMacros
649649
)
650-
private def scalaVer = Scala.scala213
651-
def scalaVersion = scalaVer
652-
def repositories = super.repositories ++ customRepositories
650+
def scalaVersion = Scala.defaultInternal
651+
def repositories = super.repositories ++ customRepositories
653652

654653
def constantsFile = T.persistent {
655654
val dir = T.dest / "constants"
@@ -750,6 +749,7 @@ trait Cli extends SbtModule with ProtoBuildModule with CliLaunchers
750749
def repositories = super.repositories ++ customRepositories
751750

752751
def ivyDeps = super.ivyDeps() ++ Agg(
752+
Deps.caseApp,
753753
Deps.coursierLauncher,
754754
Deps.coursierProxySetup,
755755
Deps.coursierPublish.exclude((organization, "config_2.13")),

modules/cli-options/src/main/scala/scala/cli/commands/BenchmarkingOptions.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ final case class BenchmarkingOptions(
1515
// format: on
1616

1717
object BenchmarkingOptions {
18-
lazy val parser: Parser[BenchmarkingOptions] = Parser.derive
19-
implicit lazy val parserAux: Parser.Aux[BenchmarkingOptions, parser.D] = parser
20-
implicit lazy val help: Help[BenchmarkingOptions] = Help.derive
18+
implicit lazy val parser: Parser[BenchmarkingOptions] = Parser.derive
19+
implicit lazy val help: Help[BenchmarkingOptions] = Help.derive
2120
}

modules/cli-options/src/main/scala/scala/cli/commands/BloopExitOptions.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,4 @@ final case class BloopExitOptions(
2121
object BloopExitOptions {
2222
implicit lazy val parser: Parser[BloopExitOptions] = Parser.derive
2323
implicit lazy val help: Help[BloopExitOptions] = Help.derive
24-
// Parser.Aux for using BloopExitOptions with @Recurse in other options
25-
implicit lazy val parserAux: Parser.Aux[BloopExitOptions, parser.D] = parser
2624
}

modules/cli-options/src/main/scala/scala/cli/commands/CoursierOptions.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ final case class CoursierOptions(
2424
// format: on
2525

2626
object CoursierOptions {
27-
lazy val parser: Parser[CoursierOptions] = Parser.derive
28-
implicit lazy val parserAux: Parser.Aux[CoursierOptions, parser.D] = parser
29-
implicit lazy val help: Help[CoursierOptions] = Help.derive
30-
implicit lazy val jsonCodec: JsonValueCodec[CoursierOptions] = JsonCodecMaker.make
27+
implicit lazy val parser: Parser[CoursierOptions] = Parser.derive
28+
implicit lazy val help: Help[CoursierOptions] = Help.derive
29+
implicit lazy val jsonCodec: JsonValueCodec[CoursierOptions] = JsonCodecMaker.make
3130
}

modules/cli-options/src/main/scala/scala/cli/commands/CrossOptions.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ final case class CrossOptions(
1010
// format: on
1111

1212
object CrossOptions {
13-
lazy val parser: Parser[CrossOptions] = Parser.derive
14-
implicit lazy val parserAux: Parser.Aux[CrossOptions, parser.D] = parser
15-
implicit lazy val help: Help[CrossOptions] = Help.derive
13+
implicit lazy val parser: Parser[CrossOptions] = Parser.derive
14+
implicit lazy val help: Help[CrossOptions] = Help.derive
1615
}

modules/cli-options/src/main/scala/scala/cli/commands/DirectoriesOptions.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ final case class DirectoriesOptions(
1515
// format: on
1616

1717
object DirectoriesOptions {
18-
lazy val parser: Parser[DirectoriesOptions] = Parser.derive
19-
implicit lazy val parserAux: Parser.Aux[DirectoriesOptions, parser.D] = parser
20-
implicit lazy val help: Help[DirectoriesOptions] = Help.derive
18+
implicit lazy val parser: Parser[DirectoriesOptions] = Parser.derive
19+
implicit lazy val help: Help[DirectoriesOptions] = Help.derive
2120
}

modules/cli-options/src/main/scala/scala/cli/commands/HelpGroupOptions.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package scala.cli.commands
22

33
import caseapp.*
44
import caseapp.core.help.{Help, HelpFormat}
5+
import caseapp.core.Scala3Helpers.*
56
import com.github.plokhotnyuk.jsoniter_scala.core.*
67
import com.github.plokhotnyuk.jsoniter_scala.macros.*
78

@@ -40,8 +41,7 @@ case class HelpGroupOptions(
4041
}
4142

4243
object HelpGroupOptions {
43-
lazy val parser: Parser[HelpGroupOptions] = Parser.derive
44-
implicit lazy val parserAux: Parser.Aux[HelpGroupOptions, parser.D] = parser
45-
implicit lazy val help: Help[HelpGroupOptions] = Help.derive
46-
implicit lazy val jsonCodec: JsonValueCodec[HelpGroupOptions] = JsonCodecMaker.make
44+
implicit lazy val parser: Parser[HelpGroupOptions] = Parser.derive
45+
implicit lazy val help: Help[HelpGroupOptions] = Help.derive
46+
implicit lazy val jsonCodec: JsonValueCodec[HelpGroupOptions] = JsonCodecMaker.make
4747
}

modules/cli-options/src/main/scala/scala/cli/commands/LoggingOptions.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ final case class LoggingOptions(
2222
}
2323

2424
object LoggingOptions {
25-
lazy val parser: Parser[LoggingOptions] = Parser.derive
26-
implicit lazy val parserAux: Parser.Aux[LoggingOptions, parser.D] = parser
27-
implicit lazy val help: Help[LoggingOptions] = Help.derive
28-
implicit lazy val jsonCodec: JsonValueCodec[LoggingOptions] = JsonCodecMaker.make
25+
implicit lazy val parser: Parser[LoggingOptions] = Parser.derive
26+
implicit lazy val help: Help[LoggingOptions] = Help.derive
27+
implicit lazy val jsonCodec: JsonValueCodec[LoggingOptions] = JsonCodecMaker.make
2928
}

modules/cli-options/src/main/scala/scala/cli/commands/MainClassOptions.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ final case class MainClassOptions(
99
@ValueDescription("main-class")
1010
@Name("M")
1111
mainClass: Option[String] = None,
12-
12+
1313
@Group("Entrypoint")
1414
@HelpMessage("List main classes available in the current context")
1515
@Name("mainClassList")
@@ -20,7 +20,6 @@ final case class MainClassOptions(
2020
// format: on
2121

2222
object MainClassOptions {
23-
lazy val parser: Parser[MainClassOptions] = Parser.derive
24-
implicit lazy val parserAux: Parser.Aux[MainClassOptions, parser.D] = parser
25-
implicit lazy val help: Help[MainClassOptions] = Help.derive
23+
implicit lazy val parser: Parser[MainClassOptions] = Parser.derive
24+
implicit lazy val help: Help[MainClassOptions] = Help.derive
2625
}

modules/cli-options/src/main/scala/scala/cli/commands/MarkdownOptions.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ final case class MarkdownOptions(
1313
// format: on
1414

1515
object MarkdownOptions {
16-
lazy val parser: Parser[MarkdownOptions] = Parser.derive
17-
implicit lazy val parserAux: Parser.Aux[MarkdownOptions, parser.D] = parser
18-
implicit lazy val help: Help[MarkdownOptions] = Help.derive
16+
implicit lazy val parser: Parser[MarkdownOptions] = Parser.derive
17+
implicit lazy val help: Help[MarkdownOptions] = Help.derive
1918
}

0 commit comments

Comments
 (0)