mirror of
https://github.com/janet-lang/janet
synced 2024-11-24 01:17:16 +00:00
Add ctrl + left/right arrow support to the REPL
Ctrl + left/right arrow would simply input "5D"/"5C" into the REPL which was useless and confusing With this change, it instead goes to the previous/next word which is usually expected in readline-like interfaces
This commit is contained in:
parent
3078686f8f
commit
ae6b359109
@ -867,7 +867,7 @@ static int line() {
|
||||
if (write_console((char *) gbl_prompt, gbl_plen) == -1) return -1;
|
||||
for (;;) {
|
||||
char c;
|
||||
char seq[3];
|
||||
char seq[5];
|
||||
|
||||
int rc;
|
||||
do {
|
||||
@ -991,6 +991,20 @@ static int line() {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (seq[2] == ';') {
|
||||
if (read_console(seq + 3, 2) == -1) break;
|
||||
if (seq[3] == '5') {
|
||||
switch (seq[4]) {
|
||||
case 'C': /* ctrl-right */
|
||||
krightw();
|
||||
break;
|
||||
case 'D': /* ctrl-left */
|
||||
kleftw();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (seq[0] == 'O') {
|
||||
if (read_console(seq + 1, 1) == -1) break;
|
||||
|
Loading…
Reference in New Issue
Block a user