tv fzf: bump complete-1
This commit is contained in:
parent
54f82ea7cb
commit
7721142f25
@ -1,26 +1,48 @@
|
|||||||
|
commit 57cbd76c068121b685399fdb4649e7ba537983d6
|
||||||
|
Author: tv <tv@krebsco.de>
|
||||||
|
Date: Mon Dec 5 15:24:30 2022 +0100
|
||||||
|
|
||||||
|
Add --complete-1 option
|
||||||
|
|
||||||
|
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1
|
||||||
|
index 79e7291..3b8a753 100644
|
||||||
|
--- a/man/man1/fzf.1
|
||||||
|
+++ b/man/man1/fzf.1
|
||||||
|
@@ -685,6 +685,9 @@ interactive finder and automatically select the only match
|
||||||
|
If there is no match for the initial query (\fB--query\fR), do not start
|
||||||
|
interactive finder and exit immediately
|
||||||
|
.TP
|
||||||
|
+.B "--complete-1"
|
||||||
|
+Exit interactive finder when there's exactly one match
|
||||||
|
+.TP
|
||||||
|
.BI "-f, --filter=" "STR"
|
||||||
|
Filter mode. Do not start interactive finder. When used with \fB--no-sort\fR,
|
||||||
|
fzf becomes a fuzzy-version of grep.
|
||||||
diff --git a/src/core.go b/src/core.go
|
diff --git a/src/core.go b/src/core.go
|
||||||
index a18c3a1..a3d92a4 100644
|
index 2ddddc3..09afff2 100644
|
||||||
--- a/src/core.go
|
--- a/src/core.go
|
||||||
+++ b/src/core.go
|
+++ b/src/core.go
|
||||||
@@ -331,6 +331,13 @@ func Run(opts *Options, version string, revision string) {
|
@@ -337,8 +337,14 @@ func Run(opts *Options, version string, revision string) {
|
||||||
}
|
}
|
||||||
|
determine(val.final)
|
||||||
}
|
}
|
||||||
terminal.UpdateList(val, clearSelection())
|
+ } else {
|
||||||
+ if (opts.Complete1) {
|
+ if opts.Complete1 && val.Length() == 1 {
|
||||||
+ count := val.Length()
|
|
||||||
+ if count == 1 {
|
|
||||||
+ opts.Printer(val.Get(0).item.AsString(opts.Ansi))
|
+ opts.Printer(val.Get(0).item.AsString(opts.Ansi))
|
||||||
+ terminal.reqBox.Set(reqClose, nil)
|
+ terminal.reqBox.Set(reqClose, nil)
|
||||||
|
+ } else {
|
||||||
|
+ terminal.UpdateList(val, clearSelection())
|
||||||
+ }
|
+ }
|
||||||
+ }
|
}
|
||||||
|
- terminal.UpdateList(val, clearSelection())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/options.go b/src/options.go
|
diff --git a/src/options.go b/src/options.go
|
||||||
index a55dc34..7f121cd 100644
|
index 5400311..1e38fe4 100644
|
||||||
--- a/src/options.go
|
--- a/src/options.go
|
||||||
+++ b/src/options.go
|
+++ b/src/options.go
|
||||||
@@ -92,6 +92,7 @@ const usage = `usage: fzf [options]
|
@@ -108,6 +108,7 @@ const usage = `usage: fzf [options]
|
||||||
-1, --select-1 Automatically select the only match
|
-1, --select-1 Automatically select the only match
|
||||||
-0, --exit-0 Exit immediately when there's no match
|
-0, --exit-0 Exit immediately when there's no match
|
||||||
-f, --filter=STR Filter mode. Do not start interactive finder.
|
-f, --filter=STR Filter mode. Do not start interactive finder.
|
||||||
@ -28,7 +50,7 @@ index a55dc34..7f121cd 100644
|
|||||||
--print-query Print query as the first line
|
--print-query Print query as the first line
|
||||||
--expect=KEYS Comma-separated list of keys to complete fzf
|
--expect=KEYS Comma-separated list of keys to complete fzf
|
||||||
--read0 Read input delimited by ASCII NUL characters
|
--read0 Read input delimited by ASCII NUL characters
|
||||||
@@ -208,6 +209,7 @@ type Options struct {
|
@@ -274,6 +275,7 @@ type Options struct {
|
||||||
Query string
|
Query string
|
||||||
Select1 bool
|
Select1 bool
|
||||||
Exit0 bool
|
Exit0 bool
|
||||||
@ -36,7 +58,7 @@ index a55dc34..7f121cd 100644
|
|||||||
Filter *string
|
Filter *string
|
||||||
ToggleSort bool
|
ToggleSort bool
|
||||||
Expect map[tui.Event]string
|
Expect map[tui.Event]string
|
||||||
@@ -269,6 +271,7 @@ func defaultOptions() *Options {
|
@@ -342,6 +344,7 @@ func defaultOptions() *Options {
|
||||||
Query: "",
|
Query: "",
|
||||||
Select1: false,
|
Select1: false,
|
||||||
Exit0: false,
|
Exit0: false,
|
||||||
@ -44,7 +66,7 @@ index a55dc34..7f121cd 100644
|
|||||||
Filter: nil,
|
Filter: nil,
|
||||||
ToggleSort: false,
|
ToggleSort: false,
|
||||||
Expect: make(map[tui.Event]string),
|
Expect: make(map[tui.Event]string),
|
||||||
@@ -1311,6 +1314,8 @@ func parseOptions(opts *Options, allArgs []string) {
|
@@ -1546,6 +1549,8 @@ func parseOptions(opts *Options, allArgs []string) {
|
||||||
opts.Exit0 = true
|
opts.Exit0 = true
|
||||||
case "+0", "--no-exit-0":
|
case "+0", "--no-exit-0":
|
||||||
opts.Exit0 = false
|
opts.Exit0 = false
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
self: super:
|
self: super:
|
||||||
|
|
||||||
super.fzf.overrideAttrs (old: {
|
super.fzf.overrideAttrs (old: {
|
||||||
# XXX cannot use `patches` because fzf has a custom patchPhase
|
patches = old.patches or [] ++ [
|
||||||
patchPhase = ''
|
./complete1.patch
|
||||||
patch -Np1 < ${./complete1.patch}
|
];
|
||||||
${old.patchPhase or ""}
|
|
||||||
'';
|
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user