Commit graph

13 commits

Author SHA1 Message Date
willmcpherson2
dccab569d2 Shell: Tab completion for programs in PATH
This patch adds a function to LineEditor that takes the current shell
buffer, searches PATH for the first program that starts with that
buffer and then compares that to any other programs starting with the
buffer to remove any mismatching characters off the end. The result is
appended to the buffer.

This may be faster with a data structure but that seems overkill.
2019-09-15 19:27:44 +02:00
marprok
ac154999f5 Shell: Added support for ctr-e/a.
By pressing ctr-e/a the cursor goes to the end/beginning of the current line.
2019-09-02 09:42:05 +02:00
Conrad Pankoff
36e3e7b75a Shell: Support forward delete 2019-08-18 07:36:23 +02:00
Andreas Kling
253e391bfc Shell: Implement support for terminal clearing with ^L.
Make LineEditor::get_line() responsible for printing the prompt. That way
we can re-prompt after clearing the screen on ^L.

This makes the Serenity Terminal feel a little bit more like home :^)
2019-07-19 20:01:46 +02:00
Andreas Kling
fc4022d173 Shell: Handle SIGWINCH to get a nice behavior when resizing.
When resizing the terminal, we now clear the entire current line and reset
the shell's LineEditor input state. This makes it look and feel kinda the
same as xterm.

Fixes #286.
2019-07-08 19:06:06 +02:00
Andreas Kling
f7ede145b4 Shell: Run clang-format on everything. 2019-06-07 11:49:21 +02:00
Andreas Kling
3cba2a8a78 Kernel: Add a beep() syscall that beeps the PC speaker.
Hook this up in Terminal so that the '\a' character generates a beep.
Finally emit an '\a' character in the shell line editing code when
backspacing at the start of the line.
2019-05-15 21:40:41 +02:00
Andreas Kling
67108f872f Shell: Make ^W and ^U work when cursor is not at the end of the line. 2019-05-07 05:29:07 +02:00
Andreas Kling
b04f08ba48 Shell: Support home/end keys for line editing. 2019-05-07 05:03:21 +02:00
Andreas Kling
d53941a466 Shell: Support basic line editing with left/right arrow keys. 2019-05-07 04:17:05 +02:00
Andreas Kling
b860da3ea5 Shell: Ignore tab key for now. 2019-05-07 02:55:56 +02:00
Andreas Kling
ad1c3c748f Shell: Allow browsing history with up/down arrow keys. 2019-05-07 02:50:15 +02:00
Andreas Kling
ba7364b43b Shell: Move line editing to a separate class.
To be clear, there isn't really any line editing yet. But there is
going to be, so let's have it in its own class.
2019-05-07 01:39:41 +02:00