jart / bestline

ANSI Standard X3.64 Teletypewriter Command Session Library
Other
443 stars 29 forks source link

Support for something like "readNextKey()"? #21

Open gonzus opened 2 years ago

gonzus commented 2 years ago

This library, as all your work, looks awesome!

I am pretty sure it should be possible to add a function readNextKey() so that it would return the "logical key" that the user pressed: k, S, 4, Enter, F5, Page-Up, Ctrl-C, Alt-D, Ctrl-Alt-L, etc. This would require decoding the escape sequences associated to keys such as Page-Up (which is something that is at least partially done today, right?), and might require adding defines / enums for the possible key values.

Do you think something like this could be useful?

jart commented 2 years ago

One thing you should be able to do currently is something like CTRL-Q <UP-ARROW> which will echo into your REPL some decoded C string literal content for the keyboard sequence e.g. \e[A. The quating feature could very easily be adapted to print the kinds of keyboard shortcuts you suggested.