diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2019-11-09 22:54:48 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2019-11-10 11:36:55 +0900 |
commit | 11962dabba69e706246bfcd54fa42b1e1c6bee8b (patch) | |
tree | 79eb580d68ed9da6643cc08aca75c432e7ff4e88 | |
parent | dceb5d09cdb0d3158a3f79e59eb3c16ffe242d6b (diff) |
Add --phony option for disabling search
With --phony, fzf becomes a simply selector interface without its own
search functionality. The query string is only used for building the
command for preview or execute action.
Close #1723
-rw-r--r-- | src/core.go | 10 | ||||
-rw-r--r-- | src/options.go | 7 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/core.go b/src/core.go index 2db5b3ae..ae8c8ebe 100644 --- a/src/core.go +++ b/src/core.go @@ -227,6 +227,12 @@ func Run(opts *Options, revision string) { for { delay := true ticks++ + input := func() []rune { + if opts.Phony { + return []rune{} + } + return []rune(terminal.Input()) + } eventBox.Wait(func(events *util.Events) { if _, fin := (*events)[EvtReadFin]; fin { delete(*events, EvtReadNew) @@ -241,7 +247,7 @@ func Run(opts *Options, revision string) { if opts.Sync { terminal.UpdateList(PassMerger(&snapshot, opts.Tac)) } - matcher.Reset(snapshot, terminal.Input(), false, !reading, sort) + matcher.Reset(snapshot, input(), false, !reading, sort) case EvtSearchNew: switch val := value.(type) { @@ -249,7 +255,7 @@ func Run(opts *Options, revision string) { sort = val } snapshot, _ := chunkList.Snapshot() - matcher.Reset(snapshot, terminal.Input(), true, !reading, sort) + matcher.Reset(snapshot, input(), true, !reading, sort) delay = false case EvtSearchProgress: diff --git a/src/options.go b/src/options.go index 2ab3a896..9e093797 100644 --- a/src/options.go +++ b/src/options.go @@ -33,6 +33,7 @@ const usage = `usage: fzf [options] -d, --delimiter=STR Field delimiter regex (default: AWK-style) +s, --no-sort Do not sort the result --tac Reverse the order of the input + --phony Do not perform search --tiebreak=CRI[,..] Comma-separated list of sort criteria to apply when the scores are tied [length|begin|end|index] (default: length) @@ -154,6 +155,7 @@ type Options struct { Fuzzy bool FuzzyAlgo algo.Algo Extended bool + Phony bool Case Case Normalize bool Nth []Range @@ -207,6 +209,7 @@ func defaultOptions() *Options { Fuzzy: true, FuzzyAlgo: algo.FuzzyMatchV2, Extended: true, + Phony: false, Case: CaseSmart, Normalize: true, Nth: make([]Range, 0), @@ -1014,6 +1017,10 @@ func parseOptions(opts *Options, allArgs []string) { } case "--no-expect": opts.Expect = make(map[int]string) + case "--no-phony": + opts.Phony = false + case "--phony": + opts.Phony = true case "--tiebreak": opts.Criteria = parseTiebreak(nextString(allArgs, &i, "sort criterion required")) case "--bind": |