summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorYonatan Goldschmidt <yon.goldschmidt@gmail.com>2019-12-14 23:42:03 +0200
committerDamien George <damien.p.george@gmail.com>2020-01-12 13:09:27 +1100
commit853aaa06f24c98191a44a38eedd4ec2a0e63d3eb (patch)
tree8ea2c47102ae540789b481f665518d898f79c61b /py
parentdce590c29dbefea253f4034c4bde3508f205364e (diff)
lib/mp-readline: Add word-based move/delete EMACS key sequences.
This commit adds backward-word, backward-kill-word, forward-word, forward-kill-word sequences for the REPL, with bindings to Alt+F, Alt+B, Alt+D and Alt+Backspace respectively. It is disabled by default and can be enabled via MICROPY_REPL_EMACS_WORDS_MOVE. Further enabling MICROPY_REPL_EMACS_EXTRA_WORDS_MOVE adds extra bindings for these new sequences: Ctrl+Right, Ctrl+Left and Ctrl+W. The features are enabled on unix micropython-coverage and micropython-dev.
Diffstat (limited to 'py')
-rw-r--r--py/mpconfig.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/py/mpconfig.h b/py/mpconfig.h
index d6f4d9232..2c4169070 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -570,6 +570,21 @@
#define MICROPY_REPL_EMACS_KEYS (0)
#endif
+// Whether to include emacs-style word movement/kill readline behavior in REPL.
+// This adds Alt+F, Alt+B, Alt+D and Alt+Backspace for forward-word, backward-word, forward-kill-word
+// and backward-kill-word, respectively.
+#ifndef MICROPY_REPL_EMACS_WORDS_MOVE
+#define MICROPY_REPL_EMACS_WORDS_MOVE (0)
+#endif
+
+// Whether to include extra convenience keys for word movement/kill in readline REPL.
+// This adds Ctrl+Right, Ctrl+Left and Ctrl+W for forward-word, backward-word and backward-kill-word
+// respectively. Ctrl+Delete is not implemented because it's a very different escape sequence.
+// Depends on MICROPY_REPL_EMACS_WORDS_MOVE.
+#ifndef MICROPY_REPL_EMACS_EXTRA_WORDS_MOVE
+#define MICROPY_REPL_EMACS_EXTRA_WORDS_MOVE (0)
+#endif
+
// Whether to implement auto-indent in REPL
#ifndef MICROPY_REPL_AUTO_INDENT
#define MICROPY_REPL_AUTO_INDENT (0)