Commit b7ca9458 authored by Damien George's avatar Damien George
Browse files

lib/mp-readline: Make it easy to exit auto-indent mode by pressing enter.

This patch allows you to stop auto-indent by pressing enter on a second
blank line.  Easier than having to use backspace, and prevents new users
from getting stuck in auto-indent mode.
parent e6dccaf1
......@@ -49,6 +49,10 @@ Finally type ``print(i)``, press RETURN, press BACKSPACE and press RETURN again:
3
>>>
Auto-indent won't be applied if the previous two lines were all spaces. This
means that you can finish entering a compound statment by pressing RETURN
twice, and then a third press will finish and execute.
Auto-completion
---------------
......
......@@ -370,6 +370,18 @@ STATIC void readline_auto_indent(void) {
}
}
// i=start of line; j=first non-space
if (i > 0 && j + 1 == line->len) {
// previous line is not first line and is all spaces
for (size_t k = i - 1; k > 0; --k) {
if (line->buf[k - 1] == '\n') {
// don't auto-indent if last 2 lines are all spaces
return;
} else if (line->buf[k - 1] != ' ') {
// 2nd previous line is not all spaces
break;
}
}
}
int n = (j - i) / 4;
if (line->buf[line->len - 2] == ':') {
n += 1;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment