Skip to content

Commit

Permalink
Add nowrap, nocycle, nohidden for --preview-window
Browse files Browse the repository at this point in the history
  • Loading branch information
junegunn committed Oct 9, 2020
1 parent d9752a4 commit 8651448
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 24 deletions.
7 changes: 4 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
------
Expand Down
14 changes: 1 addition & 13 deletions man/man1/fzf.1
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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"
Expand Down
15 changes: 9 additions & 6 deletions src/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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]*)?$")
Expand All @@ -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":
Expand Down
4 changes: 2 additions & 2 deletions src/options_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 8651448

Please sign in to comment.