summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md7
-rw-r--r--man/man1/fzf.114
-rw-r--r--src/options.go15
-rw-r--r--src/options_test.go4
4 files changed, 16 insertions, 24 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8aae9e54..729d8412 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,9 +3,10 @@ CHANGELOG
0.23.1
------
-- Reset `hidden` flag and scroll offset of `--preview-window` if another
- `--preview-window` is found. We should only keep style-related flags across
- multiple `--preview-window` options.
+- Added `--preview-window` options for disabling flags
+ - `nocycle`
+ - `nohidden`
+ - `nowrap`
0.23.0
------
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1
index 22171be3..d571542d 100644
--- a/man/man1/fzf.1
+++ b/man/man1/fzf.1
@@ -381,7 +381,7 @@ Preview window will be updated even when there is no match for the current
query if any of the placeholder expressions evaluates to a non-empty string.
.RE
.TP
-.BI "--preview-window=" "[POSITION][:SIZE[%]][:rounded|sharp|noborder][:wrap][:cycle][:hidden][:+SCROLL[-OFFSET]]"
+.BI "--preview-window=" "[POSITION][:SIZE[%]][:rounded|sharp|noborder][:[no]wrap][:[no]cycle][:[no]hidden][:+SCROLL[-OFFSET]]"
.RS
.B POSITION: (default: right)
@@ -430,18 +430,6 @@ e.g.
.RE
-You can write style-related flags across multiple \fB--preview-window\fR
-options. But flags that are not style-related such as \fBhidden\fR and scroll
-offset are only allowed in the last \fB--preview-window\fR.
-
-.RS
-e.g.
- export FZF_DEFAULT_OPTS='--preview-window sharp:cycle'
-
- # sharp + cycle + up + 50%
- fzf --preview-window 'up' --preview-window '50%' --preview 'bat {}'
-.RE
-
.SS Scripting
.TP
.BI "-q, --query=" "STR"
diff --git a/src/options.go b/src/options.go
index c7354b35..51e5001c 100644
--- a/src/options.go
+++ b/src/options.go
@@ -80,9 +80,10 @@ const usage = `usage: fzf [options]
Preview
--preview=COMMAND Command to preview highlighted line ({})
--preview-window=OPT Preview window layout (default: right:50%)
- [up|down|left|right][:SIZE[%]][:wrap][:cycle][:hidden]
- [:+SCROLL[-OFFSET]]
+ [up|down|left|right][:SIZE[%]]
+ [:[no]wrap][:[no]cycle][:[no]hidden]
[:rounded|sharp|noborder]
+ [:+SCROLL[-OFFSET]]
Scripting
-q, --query=STR Start the finder with the given query
@@ -994,10 +995,6 @@ func parseInfoStyle(str string) infoStyle {
}
func parsePreviewWindow(opts *previewOpts, input string) {
- // We should reset flags that are not style-related.
- opts.hidden = false
- opts.scroll = ""
-
tokens := strings.Split(input, ":")
sizeRegex := regexp.MustCompile("^[0-9]+%?$")
offsetRegex := regexp.MustCompile("^\\+([0-9]+|{-?[0-9]+})(-[0-9]+|-/[1-9][0-9]*)?$")
@@ -1006,10 +1003,16 @@ func parsePreviewWindow(opts *previewOpts, input string) {
case "":
case "hidden":
opts.hidden = true
+ case "nohidden":
+ opts.hidden = false
case "wrap":
opts.wrap = true
+ case "nowrap":
+ opts.wrap = false
case "cycle":
opts.cycle = true
+ case "nocycle":
+ opts.cycle = false
case "up", "top":
opts.position = posUp
case "down", "bottom":
diff --git a/src/options_test.go b/src/options_test.go
index 38873738..aae8eedc 100644
--- a/src/options_test.go
+++ b/src/options_test.go
@@ -399,11 +399,11 @@ func TestPreviewOpts(t *testing.T) {
}
opts = optsFor("--preview-window=up:15:wrap:hidden:+{1}-/2", "--preview-window=down", "--preview-window=cycle")
if !(opts.Preview.command == "" &&
- opts.Preview.hidden == false &&
+ opts.Preview.hidden == true &&
opts.Preview.wrap == true &&
opts.Preview.cycle == true &&
opts.Preview.position == posDown &&
- opts.Preview.scroll == "" &&
+ opts.Preview.scroll == "{1}-/2" &&
opts.Preview.size.percent == false &&
opts.Preview.size.size == 15) {
t.Error(opts.Preview.size.size)