From 4365759b32515727ffee54c48e888457b3e837e5 Mon Sep 17 00:00:00 2001 From: Pavel Belikov Date: Sat, 18 Nov 2017 12:55:05 +0300 Subject: add more HelpParams for different strings used in usage/options sections --- args.hxx | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) (limited to 'args.hxx') diff --git a/args.hxx b/args.hxx index 7a4ccf7..ed9325b 100644 --- a/args.hxx +++ b/args.hxx @@ -575,6 +575,30 @@ namespace args */ std::string proglineCommand = "COMMAND"; + /** The prefix for progline value + */ + std::string proglineValueOpen = " <"; + + /** The postfix for progline value + */ + std::string proglineValueClose = ">"; + + /** The prefix for progline required argument + */ + std::string proglineRequiredOpen = ""; + + /** The postfix for progline required argument + */ + std::string proglineRequiredClose = ""; + + /** The prefix for progline non-required argument + */ + std::string proglineNonrequiredOpen = "["; + + /** The postfix for progline non-required argument + */ + std::string proglineNonrequiredClose = "]"; + /** Show flags in program line */ bool proglineShowFlags = false; @@ -602,6 +626,15 @@ namespace args /** Add newline before flag description */ bool addNewlineBeforeDescription = false; + + /** The prefix for option value + */ + std::string valueOpen = "["; + + /** The postfix for option value + */ + std::string valueClose = "]"; + }; /** Base class for all match types @@ -854,10 +887,11 @@ namespace args std::string res = flag.str(params.shortPrefix, params.longPrefix); if (!postfix.empty()) { - res += " <" + postfix + ">"; + res += params.proglineValueOpen + postfix + params.proglineValueClose; } - return { IsRequired() ? res : "[" + res + "]" }; + return { IsRequired() ? params.proglineRequiredOpen + res + params.proglineRequiredClose + : params.proglineNonrequiredOpen + res + params.proglineNonrequiredClose }; } virtual std::vector> GetDescription(const HelpParams ¶ms, const unsigned indentLevel) const override @@ -881,7 +915,7 @@ namespace args if (!postfix.empty() && (!useValueNameOnce || it + 1 == flagStrings.end())) { flags += flag.isShort ? params.shortSeparator : params.longSeparator; - flags += "[" + postfix + "]"; + flags += params.valueOpen + postfix + params.valueClose; } } @@ -981,9 +1015,10 @@ namespace args return true; } - virtual std::vector GetProgramLine(const HelpParams &) const override + virtual std::vector GetProgramLine(const HelpParams ¶ms) const override { - return { IsRequired() ? Name() : "[" + Name() + ']' }; + return { IsRequired() ? params.proglineRequiredOpen + Name() + params.proglineRequiredClose + : params.proglineNonrequiredOpen + Name() + params.proglineNonrequiredClose }; } virtual void Validate(const std::string &, const std::string &) const override -- cgit v1.2.1