diff --git a/core/shared/src/main/scala/caseapp/core/app/CaseApp.scala b/core/shared/src/main/scala/caseapp/core/app/CaseApp.scala index ac659d3e..386c2740 100644 --- a/core/shared/src/main/scala/caseapp/core/app/CaseApp.scala +++ b/core/shared/src/main/scala/caseapp/core/app/CaseApp.scala @@ -143,11 +143,11 @@ abstract class CaseApp[T](implicit val parser0: Parser[T], val messages: Help[T] if (hasFullHelp) parser.withFullHelp.detailedParse(expandArgs(args.toList), stopAtFirstUnrecognized, ignoreUnrecognized) match { case Left(err) => error(err) - case Right((WithFullHelp(_, _, true, _), _)) => fullHelpAsked(progName) - case Right((WithFullHelp(_, true, _, _), _)) => helpAsked(progName) - case Right((WithFullHelp(true, _, _, _), _)) => usageAsked(progName) - case Right((WithFullHelp(_, _, _, Left(err)), _)) => error(err) - case Right((WithFullHelp(_, _, _, Right(t)), remainingArgs)) => run(t, remainingArgs) + case Right((WithFullHelp(_, true), _)) => fullHelpAsked(progName) + case Right((WithFullHelp(WithHelp(_, true, _), _), _)) => helpAsked(progName) + case Right((WithFullHelp(WithHelp(true, _, _), _), _)) => usageAsked(progName) + case Right((WithFullHelp(WithHelp(_, _, Left(err)), _), _)) => error(err) + case Right((WithFullHelp(WithHelp(_, _, Right(t)), _), remainingArgs)) => run(t, remainingArgs) } else if (hasHelp) parser.withHelp.detailedParse(expandArgs(args.toList), stopAtFirstUnrecognized, ignoreUnrecognized) match { diff --git a/core/shared/src/main/scala/caseapp/core/complete/Completer.scala b/core/shared/src/main/scala/caseapp/core/complete/Completer.scala index 4762a6d7..cf879e18 100644 --- a/core/shared/src/main/scala/caseapp/core/complete/Completer.scala +++ b/core/shared/src/main/scala/caseapp/core/complete/Completer.scala @@ -20,5 +20,5 @@ trait Completer[T] { self => def withHelp: Completer[WithHelp[T]] = contramapOpt(_.baseOrError.toOption) def withFullHelp: Completer[WithFullHelp[T]] = - contramapOpt(_.baseOrError.toOption) + contramapOpt(_.withHelp.baseOrError.toOption) } diff --git a/core/shared/src/main/scala/caseapp/core/help/WithFullHelp.scala b/core/shared/src/main/scala/caseapp/core/help/WithFullHelp.scala index 9ba7e58f..f845255a 100644 --- a/core/shared/src/main/scala/caseapp/core/help/WithFullHelp.scala +++ b/core/shared/src/main/scala/caseapp/core/help/WithFullHelp.scala @@ -4,20 +4,13 @@ import caseapp.core.Error import caseapp.{ExtraName, Group, HelpMessage, Recurse} final case class WithFullHelp[T]( - @Group("Help") - @HelpMessage("Print usage and exit") - usage: Boolean = false, - @Group("Help") - @HelpMessage("Print help message and exit") - @ExtraName("h") - help: Boolean = false, + @Recurse + withHelp: WithHelp[T], @Group("Help") @HelpMessage("Print help message, including hidden options, and exit") @ExtraName("fullHelp") - helpFull: Boolean = false, - @Recurse - baseOrError: Either[Error, T] + helpFull: Boolean = false ) { def map[U](f: T => U): WithFullHelp[U] = - copy(baseOrError = baseOrError.map(f)) + copy(withHelp = withHelp.map(f)) } diff --git a/project/Mima.scala b/project/Mima.scala index 98cfe9ed..ee900057 100644 --- a/project/Mima.scala +++ b/project/Mima.scala @@ -9,12 +9,13 @@ import scala.sys.process._ object Mima { def binaryCompatibilityVersions: Set[String] = - Seq("git", "tag", "--merged", "HEAD^", "--contains", "15cf6005e") + Seq("git", "tag", "--merged", "HEAD^", "--contains", "1b90b2ac934eb41d6a82d10bd78561fa91fb4ead") .!! .linesIterator .map(_.trim) .filter(_.startsWith("v")) .map(_.stripPrefix("v")) + .filter(_ != "2.1.0-M5") .toSet def settings = Def.settings(