summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames Wright <jrwrigh.iii@gmail.com>2020-02-27 10:38:32 -0700
committerGitHub <noreply@github.com>2020-02-28 02:38:32 +0900
commit9f0626da643070455fb5d6bb11ff1f483a0c100f (patch)
tree5d34b175ba6f35be663814319a41cf87ba275f01 /src
parentd8cb5c1cf5d11f4fd00bb6cc22f604cd1e38c245 (diff)
downloadfzf-9f0626da643070455fb5d6bb11ff1f483a0c100f.tar.gz
Add backward-delete-char/eof action (#1891)
'backward-delete-char/eof' will either abort if query is empty or delete one character backwards.
Diffstat (limited to 'src')
-rw-r--r--src/options.go2
-rw-r--r--src/terminal.go8
2 files changed, 10 insertions, 0 deletions
diff --git a/src/options.go b/src/options.go
index be9ffbcc..69ff7d4c 100644
--- a/src/options.go
+++ b/src/options.go
@@ -740,6 +740,8 @@ func parseKeymap(keymap map[int][]action, str string) {
appendAction(actBackwardChar)
case "backward-delete-char":
appendAction(actBackwardDeleteChar)
+ case "backward-delete-char/eof":
+ appendAction(actBackwardDeleteCharEOF)
case "backward-word":
appendAction(actBackwardWord)
case "clear-screen":
diff --git a/src/terminal.go b/src/terminal.go
index bc975546..bd41bdb8 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -187,6 +187,7 @@ const (
actAcceptNonEmpty
actBackwardChar
actBackwardDeleteChar
+ actBackwardDeleteCharEOF
actBackwardWord
actCancel
actClearScreen
@@ -1846,6 +1847,13 @@ func (t *Terminal) Loop() {
t.input = []rune{}
t.cx = 0
}
+ case actBackwardDeleteCharEOF:
+ if len(t.input) == 0 {
+ req(reqQuit)
+ } else if t.cx > 0 {
+ t.input = append(t.input[:t.cx-1], t.input[t.cx:]...)
+ t.cx--
+ }
case actForwardChar:
if t.cx < len(t.input) {
t.cx++