diff options
| author | James Wright <jrwrigh.iii@gmail.com> | 2020-02-27 10:38:32 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-28 02:38:32 +0900 |
| commit | 9f0626da643070455fb5d6bb11ff1f483a0c100f (patch) | |
| tree | 5d34b175ba6f35be663814319a41cf87ba275f01 /src | |
| parent | d8cb5c1cf5d11f4fd00bb6cc22f604cd1e38c245 (diff) | |
| download | fzf-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.go | 2 | ||||
| -rw-r--r-- | src/terminal.go | 8 |
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++ |
