mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2025-01-03 15:17:25 +00:00
parent
a4391aeedd
commit
2665580120
@ -3,6 +3,13 @@ CHANGELOG
|
||||
|
||||
0.51.0
|
||||
------
|
||||
- Added a new environment variable `$FZF_POS` exported to the child processes. It's the vertical position of the cursor in the list starting from 1.
|
||||
```sh
|
||||
# Toggle selection to the top or to the bottom
|
||||
seq 30 | fzf --multi --bind 'load:pos(10)' \
|
||||
--bind 'shift-up:transform:for _ in $(seq $FZF_POS $FZF_MATCH_COUNT); do echo -n +toggle-up; done' \
|
||||
--bind 'shift-down:transform:for _ in $(seq 1 $FZF_POS); do echo -n +toggle-down; done'
|
||||
```
|
||||
- Added `--with-shell` option to start child processes with a custom shell command and flags
|
||||
```sh
|
||||
gem list | fzf --with-shell 'ruby -e' \
|
||||
|
@ -984,6 +984,8 @@ fzf exports the following environment variables to its child processes.
|
||||
.br
|
||||
.BR FZF_SELECT_COUNT " Number of selected items"
|
||||
.br
|
||||
.BR FZF_POS " Vertical position of the cursor in the list starting from 1"
|
||||
.br
|
||||
.BR FZF_QUERY " Current query string"
|
||||
.br
|
||||
.BR FZF_PROMPT " Prompt string"
|
||||
|
@ -856,6 +856,7 @@ func (t *Terminal) environ() []string {
|
||||
env = append(env, fmt.Sprintf("FZF_SELECT_COUNT=%d", len(t.selected)))
|
||||
env = append(env, fmt.Sprintf("FZF_LINES=%d", t.areaLines))
|
||||
env = append(env, fmt.Sprintf("FZF_COLUMNS=%d", t.areaColumns))
|
||||
env = append(env, fmt.Sprintf("FZF_POS=%d", util.Min(t.merger.Length(), t.cy+1)))
|
||||
return env
|
||||
}
|
||||
|
||||
|
@ -3250,6 +3250,17 @@ class TestGoFZF < TestBase
|
||||
tmux.send_keys :Up
|
||||
tmux.until { |lines| assert_includes lines, '> 2' }
|
||||
end
|
||||
|
||||
def test_fzf_pos
|
||||
tmux.send_keys "seq 100 | #{FZF} --preview 'echo $FZF_POS / $FZF_MATCH_COUNT'", :Enter
|
||||
tmux.until { |lines| assert(lines.any? { |line| line.include?('1 / 100') }) }
|
||||
tmux.send_keys :Up
|
||||
tmux.until { |lines| assert(lines.any? { |line| line.include?('2 / 100') }) }
|
||||
tmux.send_keys '99'
|
||||
tmux.until { |lines| assert(lines.any? { |line| line.include?('1 / 1') }) }
|
||||
tmux.send_keys '99'
|
||||
tmux.until { |lines| assert(lines.any? { |line| line.include?('0 / 0') }) }
|
||||
end
|
||||
end
|
||||
|
||||
module TestShell
|
||||
|
Loading…
Reference in New Issue
Block a user