Commit 92a3cacd597fdb6a873a33ed1dba769630190494

Authored by Henry Fredrick Schreiner
Committed by Henry Schreiner
1 parent a133e9cc

Dropping hidden keyword, just use empty string

README.md
... ... @@ -153,7 +153,7 @@ The add commands return a pointer to an internally stored `Option`. If you set t
153 153 * `->requires(opt)`: This option requires another option to also be present, opt is an `Option` pointer.
154 154 * `->excludes(opt)`: This option cannot be given with `opt` present, opt is an `Option` pointer.
155 155 * `->envname(name)`: Gets the value from the environment if present and not passed on the command line.
156   -* `->group(name)`: The help group to put the option in. No effect for positional options. Defaults to `"Options"`. `"Hidden"` will not show up in the help print.
  156 +* `->group(name)`: The help group to put the option in. No effect for positional options. Defaults to `"Options"`. `""` will not show up in the help print (hidden).
157 157 * `->ignore_case()`: Ignore the case on the command line (also works on subcommands, does not affect arguments).
158 158 * `->take_last()`: Only take the last option/flag given on the command line, automatically true for bool flags
159 159 * `->check(CLI::ExistingFile)`: Requires that the file exists if given.
... ... @@ -211,6 +211,7 @@ There are several options that are supported on the main app and subcommands. Th
211 211 * `.allow_extras()`: Do not throw an error if extra arguments are left over
212 212 * `.prefix_command()`: Like `allow_extras`, but stop immediately on the first unrecognised item. It is ideal for allowing your app or subcommand to be a "prefix" to calling another app.
213 213 * `.set_footer(message)`: Set text to appear at the bottom of the help string.
  214 +* `.group(name)`: Set a group name, defaults to `"Subcommands"`. Setting `""` will be hide the subcommand.
214 215  
215 216 > Note: if you have a fixed number of required positional options, that will match before subcommand names.
216 217  
... ...
include/CLI/App.hpp
... ... @@ -850,7 +850,7 @@ class App {
850 850 for(const Option_p &opt : options_)
851 851 if(opt->get_positional()) {
852 852 // A hidden positional should still show up in the usage statement
853   - // if(detail::to_lower(opt->get_group()) == "hidden")
  853 + // if(detail::to_lower(opt->get_group()).empty())
854 854 // continue;
855 855 out << " " << opt->help_positional();
856 856 if(opt->_has_help_positional())
... ... @@ -870,8 +870,8 @@ class App {
870 870 if(pos) {
871 871 out << std::endl << "Positionals:" << std::endl;
872 872 for(const Option_p &opt : options_) {
873   - if(detail::to_lower(opt->get_group()) == "hidden")
874   - continue;
  873 + if(detail::to_lower(opt->get_group()).empty())
  874 + continue; // Hidden
875 875 if(opt->_has_help_positional())
876 876 detail::format_help(out, opt->help_pname(), opt->get_description(), wid);
877 877 }
... ... @@ -880,8 +880,8 @@ class App {
880 880 // Options
881 881 if(npos) {
882 882 for(const std::string &group : groups) {
883   - if(detail::to_lower(group) == "hidden")
884   - continue;
  883 + if(detail::to_lower(group).empty())
  884 + continue; // Hidden
885 885 out << std::endl << group << ":" << std::endl;
886 886 for(const Option_p &opt : options_) {
887 887 if(opt->nonpositional() && opt->get_group() == group)
... ... @@ -896,7 +896,7 @@ class App {
896 896 for(const App_p &com : subcommands_) {
897 897 const std::string &group_key = detail::to_lower(com->get_group());
898 898 if(group_key.empty() || subcmd_groups_seen.count(group_key) != 0)
899   - continue;
  899 + continue; // Hidden or not in a group
900 900  
901 901 subcmd_groups_seen.insert(group_key);
902 902 out << std::endl << com->get_group() << ":" << std::endl;
... ...
tests/HelpTest.cpp
... ... @@ -56,9 +56,9 @@ TEST(THelp, Hidden) {
56 56 CLI::App app{"My prog"};
57 57  
58 58 std::string x;
59   - app.add_option("something", x, "My option here")->group("Hidden");
  59 + app.add_option("something", x, "My option here")->group("");
60 60 std::string y;
61   - app.add_option("--another", y)->group("Hidden");
  61 + app.add_option("--another", y)->group("");
62 62  
63 63 std::string help = app.help();
64 64  
... ...