Description
Firstly, thank you for your excellent piece of software. cmd2 works well for my applications.
A case for KISS
I realize that it is rather unusual to request for the removal of a feature, but I think some of the features of cmd2 don't fit. A very clear example is the table creation API. As you already know, Textualize/rich is a project that also supports this, is popular, and is likely used in conjunction with cmd2. Please correct me if I'm wrong, but cmd2 isn't supposed to be a library to help render output of a command. But facilitate writing commands that can be used in a shell like environment.
Features like, autocomplete, history, argument processing, scripting, aliases fit well with the project. Features like table creation do not. I think table creation should be removed from cmd2 and delegated to a project like rich.
Similarly, the main Cmd2
class also has some features that might be better off separated into a plugin.
For example,
include_py: bool = False,
include_ipy: bool = False,
And all the relevant codepaths are better off in a separate plugin/mixin instead of the main Cmd2 class.
Maybe some stuff in ansi.py
is also better off delegated to rich, or some other library? I am not sure.
A case for improvement.
A feature that is in scope for the project and potentially useful to the users is syntax highlighted help messages and argument options. Many people, including me, have been using this for quite some time, and I believe it should be the default (but customizable) behavior.
Example: