Skip to content

Overhaul Terminal to include more functionality #78

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

Open
m1n1 opened this issue Aug 27, 2021 · 0 comments
Open

Overhaul Terminal to include more functionality #78

m1n1 opened this issue Aug 27, 2021 · 0 comments

Comments

@m1n1
Copy link
Contributor

m1n1 commented Aug 27, 2021

Right now the VenusTerminal is very simple. We are using the vscode Pseudoterminal, which itself builds upon xterm.js.

The vscode Pseudoterminal has no functionality built in, except forwarding inputs. All evaluation ,navigation and so on is expected to be handled by either a real shell or cli, or a custom backend.

Writing a custom backend is more complicated then it sounds. There is a existing backend here , which includes the most basic functions like:

  • Arrow navigation: Use left and right arrows to navigate in your input
  • vWord-boundary navigation: Use alt+left and alt+right to jump between words
  • Word-boundary deletion: Use alt+backspace to delete a word
  • Multi-line continuation: Break command to multiple lines if they contain incomplete quotation marks, boolean operators (&&
    or ||), pipe operator (|), or new-line escape sequence ().
  • Full-navigation on multi-line command: You are not limited only on the line you are editing, you can navigate and edit all of your lines.
  • Local History: Just like bash, access the commands you previously typed using the up and down arrows.
  • Tab-Completion: Provides support for registering your own tab-completion callbacks.

There is also the possibility of using the already existing terminal backend here, here and here.

For all options modifications seem necessary.

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