aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Belikov <pavel.fuchs.belikov@gmail.com>2017-12-12 21:13:17 +0300
committerPavel Belikov <pavel.fuchs.belikov@gmail.com>2017-12-12 21:13:17 +0300
commit290471cfda86d55a1caab890629c3263a7395ca6 (patch)
treea1587ca6304e38a57436c56cc6504790fdb05a40
parentMerge pull request #51 from pavel-belikov/fix-usage-wrapping (diff)
downloadargs.hxx-290471cfda86d55a1caab890629c3263a7395ca6.tar.xz
add Options::HiddenFromUsage and Options::HiddenFromDescription
-rw-r--r--args.hxx22
-rw-r--r--test.cxx8
2 files changed, 21 insertions, 9 deletions
diff --git a/args.hxx b/args.hxx
index a8818ab..bcbc826 100644
--- a/args.hxx
+++ b/args.hxx
@@ -514,17 +514,25 @@ namespace args
*/
Required = 0x02,
- /** Flag is excluded from help output.
+ /** Flag is excluded from usage line.
*/
- Hidden = 0x04,
+ HiddenFromUsage = 0x04,
+
+ /** Flag is excluded from options help.
+ */
+ HiddenFromDescription = 0x08,
/** Flag is global and can be used in any subcommand.
*/
- Global = 0x08,
+ Global = 0x10,
/** Flag stops a parser.
*/
- KickOut = 0x10,
+ KickOut = 0x20,
+
+ /** Flag is excluded from options help and usage line
+ */
+ Hidden = HiddenFromUsage | HiddenFromDescription,
};
inline Options operator | (Options lhs, Options rhs)
@@ -1350,7 +1358,7 @@ namespace args
for (Base *child: Children())
{
- if ((child->GetOptions() & Options::Hidden) != Options::None)
+ if ((child->GetOptions() & Options::HiddenFromDescription) != Options::None)
{
continue;
}
@@ -1371,7 +1379,7 @@ namespace args
std::vector <std::string> names;
for (Base *child: Children())
{
- if ((child->GetOptions() & Options::Hidden) != Options::None)
+ if ((child->GetOptions() & Options::HiddenFromUsage) != Options::None)
{
continue;
}
@@ -1900,7 +1908,7 @@ namespace args
for (Base *child: Children())
{
- if ((child->GetOptions() & Options::Hidden) != Options::None)
+ if ((child->GetOptions() & Options::HiddenFromDescription) != Options::None)
{
continue;
}
diff --git a/test.cxx b/test.cxx
index 911779d..b01241a 100644
--- a/test.cxx
+++ b/test.cxx
@@ -593,8 +593,8 @@ TEST_CASE("Required flags work as expected", "[args]")
TEST_CASE("Hidden options are excluded from help", "[args]")
{
args::ArgumentParser parser1("");
- args::ValueFlag<int> foo(parser1, "foo", "foo", {'f', "foo"}, args::Options::Hidden);
- args::ValueFlag<int> bar(parser1, "bar", "bar", {'b'});
+ args::ValueFlag<int> foo(parser1, "foo", "foo", {'f', "foo"}, args::Options::HiddenFromDescription);
+ args::ValueFlag<int> bar(parser1, "bar", "bar", {'b'}, args::Options::HiddenFromUsage);
args::Group group(parser1, "group");
args::ValueFlag<int> foo1(group, "foo", "foo", {'f', "foo"}, args::Options::Hidden);
args::ValueFlag<int> bar2(group, "bar", "bar", {'b'});
@@ -604,6 +604,10 @@ TEST_CASE("Hidden options are excluded from help", "[args]")
REQUIRE(std::get<0>(desc[0]) == "-b[bar]");
REQUIRE(std::get<0>(desc[1]) == "group");
REQUIRE(std::get<0>(desc[2]) == "-b[bar]");
+
+ parser1.helpParams.proglineShowFlags = true;
+ parser1.helpParams.proglinePreferShortFlags = true;
+ REQUIRE((parser1.GetProgramLine(parser1.helpParams) == std::vector<std::string>{"[-f <foo>]", "[-b <bar>]"}));
}
TEST_CASE("Implicit values work as expected", "[args]")