forgotten-tones/vcv

Create general-purpose terminal emulator base classes

Opened this issue · 1 comments

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:

Responding to arrow keys might be a nice first step at emulating readline. Ideas here: