cmd2 4.0 discussion
Now that cmd2 3.0.0 is out, it's time to start discussing what we would like to see in the 4.0.0 release for cmd2.
Features @kmvanbrunt and I have discussed for 4.x include:
- [x] Remove explicit dependency on Python's built-in
cmdmodule, but retain backwards compatibility (PR #1539) - [ ] Remove dependency on Python's built-in
readlinemodule and replace it with a dependency on prompt-toolkit which is a pure Python replacement for GNU Readline - [ ] Support adding a bottom toolbar to display real-time status via
prompt-toolkit - [ ] Consider implementing syntax that is essentially compatible with Typer for defining command arguments based on type hints. A user documented how to do this in Discussion #1530.
- [ ] Investigate adding support for syntax highlighting of text entered by users, at least for command names
- [ ] Investigate adding support for
prompt-toolkitInput Validation - [ ] Consider migrating documentation to Zensical which is essentially MkDocs 2.0, but implemented in Rust and much faster
Moving to prompt-toolkit and no longer depending on cmd will be a large paradigm shift for cmd2. But this will open doors for easier and more consistent cross-platform support as well as being able to provide some more advanced features that we cannot now.
PR #1539 handles removing the explicit dependency on Python's built-in cmd module
I plan to educate myself on Zensical over the holidays.
I think @kmvanbrunt has already started looking into prompt-toolkit.
@theagilehacker @joqual If you would like to help with anything here, we'd love some more developers to get involved. Also if you have ideas for what you would like to see in cmd2, please suggest them. Most of the planned work requires replacing readline with prompt-toolkit first. But the Typer stuff is fully independent of that. I suspect Kevin wouldn't mind help with prompt-tookit work, so familiarizing yourself with that also would be helpful.