aboutsummaryrefslogtreecommitdiff
path: root/tests/cmdline
diff options
context:
space:
mode:
authorYonatan Goldschmidt2019-12-14 23:42:03 +0200
committerDamien George2020-01-12 13:09:27 +1100
commit853aaa06f24c98191a44a38eedd4ec2a0e63d3eb (patch)
tree8ea2c47102ae540789b481f665518d898f79c61b /tests/cmdline
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 'tests/cmdline')
-rw-r--r--tests/cmdline/repl_words_move.py31
-rw-r--r--tests/cmdline/repl_words_move.py.exp47
2 files changed, 78 insertions, 0 deletions
diff --git a/tests/cmdline/repl_words_move.py b/tests/cmdline/repl_words_move.py
new file mode 100644
index 000000000..e1eb52953
--- /dev/null
+++ b/tests/cmdline/repl_words_move.py
@@ -0,0 +1,31 @@
+# word movement
+# backward-word, start in word
+234b1
+# backward-word, don't start in word
+234 b1
+# backward-word on start of line. if cursor is moved, this will result in a SyntaxError
+1 2 + 3b+
+# forward-word, start in word
+1+2 12+f+3
+# forward-word, don't start in word
+1+ 12 3f+
+# forward-word on eol. if cursor is moved, this will result in a SyntaxError
+1 + 2 3f+
+
+# kill word
+# backward-kill-word, start in word
+100 + 45623
+# backward-kill-word, don't start in word
+100 + 456231
+# forward-kill-word, start in word
+100 + 256d3
+# forward-kill-word, don't start in word
+1 + 256d2
+
+# extra move/kill shortcuts
+# ctrl-left
+2341
+# ctrl-right
+123
+# ctrl-w
+1231
diff --git a/tests/cmdline/repl_words_move.py.exp b/tests/cmdline/repl_words_move.py.exp
new file mode 100644
index 000000000..86f6b7788
--- /dev/null
+++ b/tests/cmdline/repl_words_move.py.exp
@@ -0,0 +1,47 @@
+MicroPython \.\+ version
+Use \.\+
+>>> # word movement
+>>> # backward-word, start in word
+>>> \.\+
+1234
+>>> # backward-word, don't start in word
+>>> \.\+
+1234
+>>> # backward-word on start of line. if cursor is moved, this will result in a SyntaxError
+>>> \.\+
+6
+>>> # forward-word, start in word
+>>> \.\+
+18
+>>> # forward-word, don't start in word
+>>> \.\+
+16
+>>> # forward-word on eol. if cursor is moved, this will result in a SyntaxError
+>>> \.\+
+6
+>>>
+>>> # kill word
+>>> # backward-kill-word, start in word
+>>> \.\+
+123
+>>> # backward-kill-word, don't start in word
+>>> \.\+
+101
+>>> # forward-kill-word, start in word
+>>> \.\+
+123
+>>> # forward-kill-word, don't start in word
+>>> \.\+
+3
+>>>
+>>> # extra move/kill shortcuts
+>>> # ctrl-left
+>>> \.\+
+1234
+>>> # ctrl-right
+>>> \.\+
+123
+>>> # ctrl-w
+>>> \.\+
+1
+>>>