summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcmacrae <calum0macrae@gmail.com>2018-11-20 14:47:53 +0000
committercmacrae <calum0macrae@gmail.com>2018-11-20 14:47:53 +0000
commita760a13a0eb9f72097a302be19772b5b2a6142af (patch)
tree98e6d552f2ec308802bfea981fa9cc77311c1724
parent804be3cfb8982f83e850f28bef5730672b6d04da (diff)
keys: Implement basic readline movement keys
- C-b: left - C-f: right - C-a: beginning-of-line - C-e: end-of-line
-rw-r--r--up.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/up.go b/up.go
index 9028d89..3236ec8 100644
--- a/up.go
+++ b/up.go
@@ -326,14 +326,20 @@ func (e *Editor) HandleKey(ev *tcell.EventKey) bool {
e.delete(-1)
case key(tcell.KeyDelete):
e.delete(0)
- case key(tcell.KeyLeft):
+ case key(tcell.KeyLeft),
+ ctrlKey(tcell.KeyCtrlB):
if e.cursor > 0 {
e.cursor--
}
- case key(tcell.KeyRight):
+ case key(tcell.KeyRight),
+ ctrlKey(tcell.KeyCtrlF):
if e.cursor < len(e.value) {
e.cursor++
}
+ case ctrlKey(tcell.KeyCtrlA):
+ e.cursor = 0
+ case ctrlKey(tcell.KeyCtrlE):
+ e.cursor = e.lastw
default:
// Unknown key/combination, not handled
return false