将命令行选项解析器与范围相结合

时间:2014-02-01 23:20:58

标签: scala command-line scopt

我目前正在使用scopt作为命令行应用程序。但是我的scopt.OptionParser[Config]变得非常大。我认为把它分成更小的部分,然后将它们组合起来可能会很好。

阅读文档后,我认为没有办法做到这一点。

我错过了什么吗?或者是不可能的?

1 个答案:

答案 0 :(得分:1)

是的,它可以分成更小的块。您可以通过将功能转移到以下特征来实现:

trait FooParser { self: OptionParser[MyArgs] =>
  cmd("foo")
  ...
}
trait BarParser { self: OptionParser[MyArgs] =>
  cmd("bar")
  ...
}
val fooBarParser = new OptionParser[MyArgs]("FooBar") with FooParser with BarParser {
  head("FooBar")
  ...
}