* Bug Fixes
* Fixed bug in how **history** command deals with multiline commands when output to a script
* Fixed a bug when the ``with_argument_list`` decorator is called with the optional ``preserve_quotes`` argument
* Fix bug in ``perror()`` where it would try to print an exception Traceback even if none existed
* Enhancements
* Improvements to the **history** command
* Simplified the display format and made it more similar to **bash**
* Added **-x**, **--expanded** flag
* output expanded commands instead of entered command (expands aliases, macros, and shortcuts)
* Added **-v**, **--verbose** flag
* display history and include expanded commands if they differ from the typed command
* Added support for negative indices
* Added ``matches_sort_key`` to override the default way tab completion matches are sorted
* Added ``StdSim.pause_storage`` member which when True will cause ``StdSim`` to not save the output sent to it.
See documentation for ``CommandResult`` in ``pyscript_bridge.py`` for reasons pausing the storage can be useful.
* Added ability to disable/enable individual commands and entire categories of commands. When a command
is disabled, it will not show up in the help menu or tab complete. If a user tries to run the command
or call help on it, a command-specific message supplied by the developer will be printed. The following
commands were added to support this feature.
* ``enable_command()``
* ``enable_category()``
* ``disable_command()``
* ``disable_category()``
* Potentially breaking changes
* Made ``cmd2_app`` a positional and required argument of ``AutoCompleter`` since certain functionality now
requires that it can't be ``None``.
* ``AutoCompleter`` no longer assumes ``CompletionItem`` results are sorted. Therefore you should follow the
``cmd2`` convention of setting ``self.matches_sorted`` to True before returning the results if you have already
sorted the ``CompletionItem`` list. Otherwise it will be sorted using ``self.matches_sort_key``.
* Removed support for bash completion since this feature had slow performance. Also it relied on
``AutoCompleter`` which has since developed a dependency on ``cmd2`` methods.
* Removed ability to call commands in ``pyscript`` as if they were functions (e.g. ``app.help()``) in favor
of only supporting one ``pyscript`` interface. This simplifies future maintenance.
* No longer supporting C-style comments. Hash () is the only valid comment marker.
* No longer supporting comments embedded in a command. Only command line input where the first
non-whitespace character is a will be treated as a comment. This means any character appearing
later in the command will be treated as a literal. The same applies to a in the middle of a multiline
command, even if it is the first character on a line.
* \ this is a comment
* this is not a comment