diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2013-11-12 19:38:19 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2013-11-12 19:38:19 +0000 |
| commit | 0244112af42f5a4e027705dd68b662fb2c795cce (patch) | |
| tree | 0eeacacc746bd8557c9b1d8644dff0a66670bb25 /src/command_manager.hh | |
| parent | 5a4650aecc20d6f13abe0193d0d5886a51a43af4 (diff) | |
Add support for hidden commands, that will not show on completion
Diffstat (limited to 'src/command_manager.hh')
| -rw-r--r-- | src/command_manager.hh | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/command_manager.hh b/src/command_manager.hh index 849ea3a7..92bbd7f2 100644 --- a/src/command_manager.hh +++ b/src/command_manager.hh @@ -21,6 +21,19 @@ using CommandCompleter = std::function<CandidateList (const Context& context, CompletionFlags, CommandParameters, size_t, ByteCount)>; +enum class CommandFlags +{ + None = 0, + Hidden = 1, +}; +constexpr CommandFlags operator|(CommandFlags lhs, CommandFlags rhs) +{ + return (CommandFlags)((int)lhs | (int)rhs); +} +constexpr bool operator&(CommandFlags lhs, CommandFlags rhs) +{ + return (bool)((int)lhs & (int)rhs); +} class PerArgumentCommandCompleter { @@ -55,12 +68,12 @@ public: bool command_defined(const String& command_name) const; - void register_command(String command_name, - Command command, + void register_command(String command_name, Command command, + CommandFlags flags = CommandFlags::None, CommandCompleter completer = CommandCompleter()); - void register_commands(memoryview<String> command_names, - Command command, + void register_commands(memoryview<String> command_names, Command command, + CommandFlags flags = CommandFlags::None, CommandCompleter completer = CommandCompleter()); private: @@ -69,6 +82,7 @@ private: struct CommandDescriptor { Command command; + CommandFlags flags; CommandCompleter completer; }; std::unordered_map<String, CommandDescriptor> m_commands; |
