1
0
mirror of https://github.com/janet-lang/janet synced 2024-11-09 18:29:55 +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:
Naqua Darazaki 2024-07-02 13:54:11 +02:00
parent 3078686f8f
commit ae6b359109
No known key found for this signature in database
GPG Key ID: 023E43B9C821CE6C

View File

@ -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;