KeyInputStream maps keyboard events into a stream of characters. Current functionality includes:
- line buffering and line editing, using a text console,
- integrated input history and completion,
- CTRL-D is interpretted as a 'soft' EOF mark,KeyboardInputStream
- listens to keyboard focus events.
Future enhancements include:
- a "raw" mode in which characters and other keyboard events are delivered without line editing,
- a "no echo" mode in which line editting occurs without echoing of input characters,
- making the active characters and keycodes "soft",
- making completion and history context sensitive; e.g. when switching between a shell and an application, and
- code refactoring to support classical terminal devices and remote consoles.
Bugs:
- The current method of echoing the input is suboptimal, and is broken in the case where an application outputs a prompt string to stdout or stderr.
@author crawley@jnode.org