diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2019-11-21 23:06:14 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2019-11-21 23:06:14 +0900 |
| commit | e615600ff150e460a22d6a74da21a6df40d486fc (patch) | |
| tree | b02ded20df20fcf5b03f2c222b9df40fed627912 /src | |
| parent | 60465c4664bd390c49d5eeb46abcbf7d34c36cc2 (diff) | |
| download | fzf-e615600ff150e460a22d6a74da21a6df40d486fc.tar.gz | |
Allow action composition over multiple --bind
# Note + prefix in the second bind expression
fzf --bind u:up --bind u:+up
fzf --bind u:up+up
Diffstat (limited to 'src')
| -rw-r--r-- | src/options.go | 6 | ||||
| -rw-r--r-- | src/options_test.go | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/options.go b/src/options.go index bdd16e1c..bb7333ca 100644 --- a/src/options.go +++ b/src/options.go @@ -809,7 +809,11 @@ func parseKeymap(keymap map[int][]action, str string) { default: t := isExecuteAction(specLower) if t == actIgnore { - errorExit("unknown action: " + spec) + if specIndex == 0 && specLower == "" { + actions = append(keymap[key], actions...) + } else { + errorExit("unknown action: " + spec) + } } else { var offset int switch t { diff --git a/src/options_test.go b/src/options_test.go index 5d35fb3e..66d7c8f5 100644 --- a/src/options_test.go +++ b/src/options_test.go @@ -246,6 +246,7 @@ func TestBind(t *testing.T) { "f1:execute(ls {+})+abort+execute(echo {+})+select-all,f2:execute/echo {}, {}, {}/,f3:execute[echo '({})'],f4:execute;less {};,"+ "alt-a:execute-Multi@echo (,),[,],/,:,;,%,{}@,alt-b:execute;echo (,),[,],/,:,@,%,{};,"+ "x:Execute(foo+bar),X:execute/bar+baz/"+ + ",f1:+top,f1:+top"+ ",,:abort,::accept,+:execute:++\nfoobar,Y:execute(baz)+up") check(tui.CtrlA, "", actKillLine) check(tui.CtrlB, "", actToggleSort, actUp, actDown) @@ -253,7 +254,7 @@ func TestBind(t *testing.T) { check(tui.AltZ+',', "", actAbort) check(tui.AltZ+':', "", actAccept) check(tui.AltZ, "", actPageDown) - check(tui.F1, "ls {+}", actExecute, actAbort, actExecute) + check(tui.F1, "ls {+}", actExecute, actAbort, actExecute, actSelectAll, actTop, actTop) check(tui.F2, "echo {}, {}, {}", actExecute) check(tui.F3, "echo '({})'", actExecute) check(tui.F4, "less {}", actExecute) |
