Create general-purpose terminal emulator base classes
Opened this issue · 1 comments
oubiwann commented
Part of epic:
Tasks:
- Stub out library and UI files (.svg, .cpp, .hpp files)
- Create
Shell
header for implementation:-
read
-
eval
-
print
-
loop
-
- Create
Shell
no-ops for testing:-
read
(no parsing) -
eval
(echo) -
print
-
loop
-
- Allow for defining welcome, prompt, and banner
- Get primitive read-print capability in a text area
- Store entries as vec of strings
- maintain a vec for display purposes
- maintain another vec for the complete session history
- Emulate terminal behaviour
- only read when last line is change
- don't make changes to text area if not made in last line
- don't go past max height
- when max height is reached, pop off first element from display vec to make room
- don't allow edits in the prompt area
- add readline suppport
- Reset button for clearing history and memory
- Add support for slurping files (definitions)
- Add support for dumping command history to file
- Provide a means of setting specific shells
- Maintain cross-restart command history (module json file?)
Blocks:
oubiwann commented
Responding to arrow keys might be a nice first step at emulating readline. Ideas here: