cmdopt2/parser: render argument placeholders during usage

This commit is contained in:
Danny Robson 2022-03-18 13:04:09 +10:00
parent f64d617156
commit 8a38459f9a

View File

@ -211,15 +211,24 @@ usage (
for (auto const &arg: keyword) {
auto const &delimiters = arg.required ? REQUIRED : OPTIONAL;
if (arg.short_)
fmt::print (output, " {}-{}{}", delimiters[0], '-', *arg.short_, delimiters[1]);
if (arg.long_)
fmt::print (output, " {}--{}{}", delimiters[0], "--", *arg.long_, delimiters[1]);
if (arg.short_) {
fmt::print (output, FMT_STRING (" {}-{}"), delimiters[0], *arg.short_);
if (arg.acceptor1)
fmt::print (output, FMT_STRING (" <{}>"), arg.name);
fmt::print (output, FMT_STRING ("{}"), delimiters[1]);
}
if (arg.long_) {
fmt::print (output, FMT_STRING (" {}--{}"), delimiters[0], *arg.long_);
if (arg.acceptor1)
fmt::print (output, FMT_STRING (" <{}>"), arg.name);
fmt::print (output, FMT_STRING ("{}"), delimiters[1]);
}
}
for (auto const &arg: positional) {
auto const &delimiters = arg.required ? REQUIRED : OPTIONAL;
fmt::print (output, " {}{}{}", delimiters[0], arg.name, delimiters[1]);
fmt::print (output, FMT_STRING (" {}{}{}"), delimiters[0], arg.name, delimiters[1]);
}
fmt::print (output, "\n");