summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2024-06-01 13:20:12 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2024-06-01 13:21:59 +0900
commit41bcbe342ff70020bd7aa776ca041205aa970f43 (patch)
tree8603e35a460fcf7aa466aaa01d64686270ffff7e
parentdbe8dc344efbbc7d356cfaf6f807f4be42a45188 (diff)
Revert "An '--expect' key should execute actions bound to the key"
To be backward compatible. Close #3829
-rw-r--r--man/man1/fzf.18
-rw-r--r--src/terminal.go20
-rwxr-xr-xtest/test_go.rb2
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