1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 06:37:44 +00:00

LibCore: Allow marking options as 'hidden' in ArgsParser

This removes them from the main invocation example in --help, as well as
hides them from autocomplete results (we were previously special-casing
"help" and "version").
This commit is contained in:
Ali Mohammad Pur 2022-03-23 23:24:36 +04:30 committed by Ali Mohammad Pur
parent ef5523231c
commit da12acfa78
2 changed files with 53 additions and 37 deletions

View file

@ -37,6 +37,7 @@ public:
char short_name { 0 };
char const* value_name { nullptr };
Function<bool(char const*)> accept_value;
bool hide_from_help_and_autocomplete { false };
String name_for_display() const
{
@ -69,16 +70,16 @@ public:
void print_version(FILE*);
void add_option(Option&&);
void add_ignored(char const* long_name, char short_name);
void add_option(bool& value, char const* help_string, char const* long_name, char short_name);
void add_option(char const*& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_option(String& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_option(StringView& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_option(int& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_option(unsigned& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_option(double& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_option(Optional<double>& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_option(Optional<size_t>& value, char const* help_string, char const* long_name, char short_name, char const* value_name);
void add_ignored(char const* long_name, char short_name, bool hidden = false);
void add_option(bool& value, char const* help_string, char const* long_name, char short_name, bool hidden = false);
void add_option(char const*& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_option(String& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_option(StringView& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_option(int& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_option(unsigned& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_option(double& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_option(Optional<double>& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_option(Optional<size_t>& value, char const* help_string, char const* long_name, char short_name, char const* value_name, bool hidden = false);
void add_positional_argument(Arg&&);
void add_positional_argument(char const*& value, char const* help_string, char const* name, Required required = Required::Yes);