Объединение анализаторов опций CommandLine с Scopt

Я сейчас пользуюсь scopt для приложения командной строки. Однако Мой scopt.OptionParser[Config] становится очень большим. Я подумал, что было бы неплохо разбить его на более мелкие части, а затем объединить их.

После прочтения документации я не вижу никакого способа сделать это.

Я что-то пропустил? Или это невозможно?

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")
  ...
}
Другие вопросы по тегам