diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2024-06-01 13:20:12 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2024-06-01 13:21:59 +0900 |
commit | 41bcbe342ff70020bd7aa776ca041205aa970f43 (patch) | |
tree | 8603e35a460fcf7aa466aaa01d64686270ffff7e | |
parent | dbe8dc344efbbc7d356cfaf6f807f4be42a45188 (diff) |
Revert "An '--expect' key should execute actions bound to the key"
To be backward compatible.
Close #3829
-rw-r--r-- | man/man1/fzf.1 | 8 | ||||
-rw-r--r-- | src/terminal.go | 20 | ||||
-rwxr-xr-x | test/test_go.rb | 2 |
3 files changed, 17 insertions, 13 deletions
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1 index c85d1069..f1bf04af 100644 --- a/man/man1/fzf.1 +++ b/man/man1/fzf.1 @@ -828,6 +828,14 @@ list. e.g. \fBfzf --expect=ctrl-v,ctrl-t,alt-s --expect=f1,f2,~,@\fR .RE + +This option is not compatible with \fB--bind\fR on the same key and will take +precedence over it. To combine the two, use \fBprint\fR action. + +.RS +e.g. + \fBfzf --multi --bind 'enter:print()+accept,ctrl-y:select-all+print(ctrl-y)+accept'\fR +.RE .TP .B "--read0" Read input delimited by ASCII NUL characters instead of newline characters diff --git a/src/terminal.go b/src/terminal.go index 0e945fad..ff6295f1 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -3608,6 +3608,14 @@ func (t *Terminal) Loop() error { } t.mutex.Lock() + for key, ret := range t.expect { + if keyMatch(key, event) { + t.pressed = ret + t.reqBox.Set(reqClose, nil) + t.mutex.Unlock() + return nil + } + } previousInput := t.input previousCx := t.cx t.lastKey = event.KeyName() @@ -4460,18 +4468,6 @@ func (t *Terminal) Loop() error { return true } - for key, ret := range t.expect { - if keyMatch(key, event) { - t.pressed = ret - if actions, found := t.keymap[key]; found { - doActions(actions) - } - t.reqBox.Set(reqClose, nil) - t.mutex.Unlock() - return nil - } - } - if t.jumping == jumpDisabled || len(actions) > 0 { // Break out of jump mode if any action is submitted to the server if t.jumping != jumpDisabled { diff --git a/test/test_go.rb b/test/test_go.rb index dfb338e8..6675f775 100755 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -594,7 +594,7 @@ class TestGoFZF < TestBase tmux.send_keys "seq 1 100 | #{fzf('--query 1 --print-query --expect z --bind z:up+up')}", :Enter tmux.until { |lines| assert_equal 20, lines.match_count } tmux.send_keys('z') - assert_equal %w[1 z 11], fzf_output_lines + assert_equal %w[1 z 1], fzf_output_lines end def test_expect_print_query |