Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create general-purpose terminal emulator base classes #25

Open
8 of 28 tasks
Tracked by #21
oubiwann opened this issue Apr 1, 2023 · 1 comment
Open
8 of 28 tasks
Tracked by #21

Create general-purpose terminal emulator base classes #25

oubiwann opened this issue Apr 1, 2023 · 1 comment

Comments

@oubiwann
Copy link
Contributor

oubiwann commented Apr 1, 2023

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 oubiwann changed the title Create a general-purpose TTY module Create a general-purpose terminal emulator module Apr 1, 2023
@oubiwann oubiwann changed the title Create a general-purpose terminal emulator module Create a general-purpose terminal emulator base classes Apr 1, 2023
@oubiwann oubiwann changed the title Create a general-purpose terminal emulator base classes Create general-purpose terminal emulator base classes Apr 1, 2023
@oubiwann
Copy link
Contributor Author

oubiwann commented Apr 7, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant