diff options
author | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2019-07-16 10:48:17 -0400 |
---|---|---|
committer | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2019-07-16 10:48:17 -0400 |
commit | 90cfcdfc795d0c4eb6768eae9623a049e9e79e8d (patch) | |
tree | 0112e281f5c6c62afe041b53b13b4dfa0824e8c0 /cmd2/cmd2.py | |
parent | 1820ebe60a4d059b6f016041fe9b401758ae321e (diff) | |
download | cmd2-git-90cfcdfc795d0c4eb6768eae9623a049e9e79e8d.tar.gz |
Moved the sorting of shortcuts into StatementParser which allows users to pass in a dictionary instead of a tuple for shortcuts.
Diffstat (limited to 'cmd2/cmd2.py')
-rw-r--r-- | cmd2/cmd2.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py index b8e5d9d2..2c37635d 100644 --- a/cmd2/cmd2.py +++ b/cmd2/cmd2.py @@ -397,9 +397,6 @@ class Cmd(cmd.Cmd): self._py_history = [] self.pyscript_name = 'app' - if shortcuts is None: - shortcuts = constants.DEFAULT_SHORTCUTS - shortcuts = sorted(shortcuts.items(), reverse=True) self.statement_parser = StatementParser(allow_redirection=allow_redirection, terminators=terminators, multiline_commands=multiline_commands, @@ -472,7 +469,7 @@ class Cmd(cmd.Cmd): # If natural sorting is preferred, then set this to NATURAL_SORT_KEY. # cmd2 uses this key for sorting: # command and category names - # alias, macro, and settable names + # alias, macro, settable, and shortcut names # tab completion results when self.matches_sorted is False self.default_sort_key = ALPHABETICAL_SORT_KEY @@ -2816,7 +2813,9 @@ class Cmd(cmd.Cmd): @with_argparser(ArgParser()) def do_shortcuts(self, _: argparse.Namespace) -> None: """List available shortcuts""" - result = "\n".join('%s: %s' % (sc[0], sc[1]) for sc in sorted(self.statement_parser.shortcuts)) + # Sort the shortcut tuples by name + sorted_shortcuts = sorted(self.statement_parser.shortcuts, key=lambda x: self.default_sort_key(x[0])) + result = "\n".join('{}: {}'.format(sc[0], sc[1]) for sc in sorted_shortcuts) self.poutput("Shortcuts for other commands:\n{}".format(result)) @with_argparser(ArgParser(epilog=INTERNAL_COMMAND_EPILOG)) |