Lab41/Redwood — pull request #28 by cglewis (2013-12-20 07:18:33+00:00)
Title: Improve shell

This shell leverages ``cmd.py`` to manage the interactive pieces.

The entire shell should work the same as it used to, with the added benefits of:

- history (up and down arrows)
- full tab completion
- forward and backward movement of the cursor
- modifiable commands without having to delete everything after the change first
- cleaner, clearer help output
- exits the shell cleanly, even when the user doesn't behave nicely (exception being that the terminal closes unexpectedly)
- ``Control-P`` scrolls back to the last command
- ``Control-N`` forward to the next one
- ``Control-F`` moves the cursor to the right non-destructively
- ``Control-B`` moves the cursor to the left non-destructively
- ``?`` does the same as ``help``

Things that could still use a bit of improvement:

- There is some code duplication that could be refactored
- I wanted to keep the existing model and structure of Redwood in tact, this causes some weird things to be required to work properly with ``cmd.py``, this could be cleaned up a bit if the model and structure of Redwood changed slightly with regards to discovery functions.