diff options
author | Eric Lin <anselor@gmail.com> | 2018-09-23 20:57:47 +0000 |
---|---|---|
committer | Eric Lin <anselor@gmail.com> | 2018-09-23 20:57:47 +0000 |
commit | 7cc94ab98c007210b344fbb1af965570fae63959 (patch) | |
tree | 80fe9c72f4a2512337710a68bc0ef67054d23375 /cmd2/argparse_completer.py | |
parent | dbe485957b421f6fd973b3a493de7b264b363d54 (diff) | |
download | cmd2-git-7cc94ab98c007210b344fbb1af965570fae63959.tar.gz |
Added the the ability to format help to the AutoCompleter to support sub-command specific help lookup.
Diffstat (limited to 'cmd2/argparse_completer.py')
-rwxr-xr-x | cmd2/argparse_completer.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cmd2/argparse_completer.py b/cmd2/argparse_completer.py index 03ff4375..dc9baf7a 100755 --- a/cmd2/argparse_completer.py +++ b/cmd2/argparse_completer.py @@ -510,6 +510,18 @@ class AutoCompleter(object): return self.basic_complete(text, line, begidx, endidx, completers.keys()) return [] + def format_help(self, tokens: List[str]) -> str: + """Supports the completion of sub-commands for commands through the cmd2 help command.""" + for idx, token in enumerate(tokens): + if idx >= self._token_start_index: + if self._positional_completers: + # For now argparse only allows 1 sub-command group per level + # so this will only loop once. + for completers in self._positional_completers.values(): + if token in completers: + return completers[token].format_help(tokens) + return self._parser.format_help() + @staticmethod def _process_action_nargs(action: argparse.Action, arg_state: _ArgumentState) -> None: if isinstance(action, _RangeAction): |