scallyw4g / alphaterm Goto Github PK
View Code? Open in Web Editor NEWNext gen terminal experience
Next gen terminal experience
Commands that render with ncurses (htop, vim, etc..), or require user input (ssh, less, etc..), are virtually un-usable.
Add a button/option/something to restart a running/completed command in term.js.
We need two tickets to the gunshow.
Implement global hotkey listener with 'react-hotkeys'. I need C-u!
Currently only shell commands and directories are autocompletable. Zsh supports contextual parameter and flag completion, which is super useful. While I would like this feature, I think it is unreasonable to expect users to supply a completion function with their program for every shell in the universe. Since Bash and Zsh completion functions are fairly ubiquitous I propose writing the contextual completion feature, followed by a (Zsh &|| Bash)-> Alphaterm completion function parser. Sounds fun.
For example, find /
returns a lot of data. The current setup re-renders the commandNode component every time a piece of data is returned, which gets very slow very quickly.
TODO:
Prevent re-rendering after a timeout if a command has not returned, then re-render once the command returns.
If you input a path.. say /home/someone/stuff/things, then backspace back up to /home/someone/st , the autocompleter still contains suggestions for the stuff directory instead of the someone directory because it loads new completions when it matches a filepath. Ie. it loads new completions on /home, /home/someone, /home/someone/stuff, etc. and since backspacing over ~/stuff/someone to ~/stu hits ~/stuff , those are the completions it loads.
To fix this I can imagine two solutions:
First, reload completions on every keystroke, which would likely be a reasonable solution in both implementation and computational complexity.
If this turns out to be too complex, then the other solution I can imagine is to cache the depth of the path on every keystroke, and reload the completions when that depth changes.
TODO:
[X] Autocomplete shell functions
[X] Autocomplete directories
[X] Contextual directory completion
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.