Commit Graph

321 Commits (master)

Author SHA1 Message Date
Junegunn Choi 3b2244077d
Add scrollbar to the preview window 1 year ago
Junegunn Choi 435d8fa0a2
Colors for 'separator' and 'scrollbar' will default to that for 'border' 1 year ago
Junegunn Choi 5cd6f1d064
Add scrollbar
Close #3096
1 year ago
Junegunn Choi 62c7f59b94
Add transform-prompt(...) action 1 year ago
Junegunn Choi e97176b1d7
Update transform-query examples for zsh
Close #3107
1 year ago
Junegunn Choi d649f5d826
Always execute preview command if {q} is in the template
Even when {q} is empty. Because, why not?

While this can be seen as a breaking change, there is an easy workaround
to keep the old behavior.

    # This will show // even when the query is empty
    : | fzf --preview 'echo /{q}/'

    # But if you don't want it,
    : | fzf --preview '[ -n {q} ] || exit; echo /{q}/'

Close #2759
1 year ago
Junegunn Choi 6c37177cf5
Add reload-sync action
Close #2816
1 year ago
Junegunn Choi 14775aa975
Add 'load' event that is triggered when the input stream is complete
and the first search (with or without query) is complete
1 year ago
Junegunn Choi 36d2bb332b
Add transform-query(...) action
Test case authored by @SpicyLemon

Close #1930
Close #2465
Close #2559
Close #2509 (e.g. fzf --bind 'space:transform-query:printf %s%s {q} {}')
1 year ago
Junegunn Choi 4b3f0b9f08
Allow put action with an argument i.e. put(...) 1 year ago
Junegunn Choi 12af069dca
Add pos(...) action to move the cursor to the numeric position
# Put the cursor on the 10th item
  seq 100 | fzf --sync --bind 'start:pos(10)'

  # Put the cursor on the 10th to last item
  seq 100 | fzf --sync --bind 'start:pos(-10)'

Close #3069
Close #395
1 year ago
Junegunn Choi b7bb973118
Revert "Add GET endpoints for getting the state of the finder"
This reverts commit 750b2a6313.

This can cause a deadlock if the endpoints are accessed in the core event
loop via execute action.

  fzf --listen 6266 --bind 'space:execute:curl localhost:6266'

Technically, there's no reason to use the API because the information is
already available via `{}` and `{q}`, but I'd like to completely remove
the risk of misuse.
1 year ago
Junegunn Choi 750b2a6313
Add GET endpoints for getting the state of the finder
* GET / (or GET /current)
* GET /query
1 year ago
Junegunn Choi 1ba7484d60 Add --listen=HTTP_PORT option to receive actions
Supersedes #2019

See also:
* #1728
* https://github.com/junegunn/fzf.vim/pull/1044
1 year ago
Junegunn Choi 51c518da1e
Add change-query(...) action 1 year ago
Junegunn Choi 18e3b38c69
Add 'next-selected' and 'prev-selected' actions
Close #2749
1 year ago
Junegunn Choi 3d2376ab52
Add color name 'preview-label' (#3053) 1 year ago
Junegunn Choi 6b207bbf2b
Fix inconsistent bonus points in exact match
Exact match would assign a different bonus point to the first character
when non-default --scheme was used.

Fix #3073
1 year ago
Junegunn Choi 8f4c89f50e
Make 'double-click' behave the same as 'enter' by default
Close #3061
1 year ago
Junegunn Choi a38b63be18
Fix mouse event above fzf finder
Fix #2949
2 years ago
Junegunn Choi 1bebd6f4f5
Fix panic on inverse match query with `--tiebreak=chunk`
Fix #3055
2 years ago
Junegunn Choi 8868d7d188
Add --separator to customize the info separator 2 years ago
Junegunn Choi 01ae621f11
Add --border=[bold|double] and --preview-window=border-[bold|double] 2 years ago
Junegunn Choi a29944660e
Fix typo in CHANGELOG 2 years ago
Junegunn Choi c09ec8e4d1
Allow putting border label on the bottom line
Related #3022
2 years ago
Junegunn Choi 31bbaad06e
Add --preview-label and --preview-label-pos
Close #3022
2 years ago
Junegunn Choi b9ca1fe830
Add horizontal separator after info panel (counter)
Close #3029
2 years ago
Junegunn Choi e61585f2f3
Add --border-label and --border-label-pos
Close #3022
2 years ago
Junegunn Choi 168829b555
Add 'start' event that is triggered once when fzf finder starts
Close #1622
2 years ago
Junegunn Choi 78ad6d2d88
Phase out --no-clear in favor of bindable 'reload' action 2 years ago
Junegunn Choi 22cbd9fa58
Implement height range (--height ~[VALUE][%])
Close #2953
2 years ago
Abirdcfly 54d42e3f40
Fix typo in CHANGELOG (#2948) 2 years ago
Junegunn Choi 6fb41a202a
Add --scheme=[default|path|history] option to choose scoring scheme
Close #2909
Close #2930
2 years ago
Emil Vanherp 4bef330ce1
Add support for ANSI strike-through (#2932)
Close #2932

Co-authored-by: Emil Vanherp <emil@vanherp.me>
2 years ago
Junegunn Choi c1c355160d
Support border-{up,down} as the synonyms for border-{top,bottom} 2 years ago
Junegunn Choi aa10dccf90
Support colon delimiter in ANSI escape sequences
# Both should work
    printf "\e[38;5;208mOption 1\e[m\nOption 2" | fzf --ansi
    printf "\e[38:5:208mOption 1\e[m\nOption 2" | fzf --ansi

This change makes ANSI parsing slightly slower.

    cpu: Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz

    Before:
      BenchmarkNextAnsiEscapeSequence-12            992.22 MB/s
      BenchmarkExtractColor-12                      174.35 MB/s

    After:
      BenchmarkNextAnsiEscapeSequence-12            925.05 MB/s
      BenchmarkExtractColor-12                      163.33 MB/s

Fix #2913
2 years ago
Junegunn Choi 19f9bbca0d
Allow specifying fzf options in $FZF_TMUX_OPTS without '--' 2 years ago
Yang Tian d826f9e72f
[fzf-tmux] Use fzf border instead of tmux popup border (#2908)
Co-authored-by: Yang Tian <yang.tian@getcruise.com>
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2 years ago
Junegunn Choi 38259d0382
Fix incorrect ordering of `--tiebreak=chunk` 2 years ago
Junegunn Choi f0bfeba733
Add new tiebreak: 'chunk'
Favors the line with shorter matched chunk. A chunk is a set of
consecutive non-whitespace characters.

Unlike the default `length`, this new scheme works well with tabular input.

  # length prefers item #1, because the whole line is shorter,
  # chunk prefers item #2, because the matched chunk ("foo") is shorter
  fzf --height=6 --header-lines=2 --tiebreak=chunk --reverse --query=fo << "EOF"
  N | Field1 | Field2 | Field3
  - | ------ | ------ | ------
  1 | hello  | foobar | baz
  2 | world  | foo    | bazbaz
  EOF

If the input does not contain any spaces, `chunk` is equivalent to
`length`. But we're not going to set it as the default because it is
computationally more expensive.

Close #2285
Close #2537
- Not the exact solution to --tiebreak=length not taking --nth into account,
  but this should work. And the added benefit is that it works well even
  when --nth is not provided.
- Adding a bonus point to the last character of a word didn't turn out great.
  The order of the result suddenly changes when you type in the last
  character in the word producing a jarring effect.
2 years ago
Junegunn Choi c3a7a24eea
Tweak bonus points to word boundaries
Close https://github.com/junegunn/fzf.vim/issues/1004

  # jobs/latency.js is favored over job_latency.js
  printf 'job_latency.js\njobs/latency.js' | fzf -qlatency
2 years ago
Junegunn Choi ecc418ba77
0.31.0 2 years ago
Junegunn Choi 7a7cfcacbe
Lift unicode.IsGraphic constraint for pointer, marker, and ellipsis
Use at your own risk.

Close #2709
Close #2055
2 years ago
Junegunn Choi 52594355bf
[shell] 'kill' completion will now require trigger sequence (**)
'kill **<tab>' instead of 'kill <tab>' just like any other completions.

Close #2716
Close #385
2 years ago
Junegunn Choi 82b46726fc
Add support for an alternative preview window layout
Close #2804
Close #2844

Related #2277
2 years ago
Junegunn Choi 70529878e2
Use SGR mouse mode for larger terminals
Fix #2840
2 years ago
Junegunn Choi b3ab6311c5
Hide cursor while rendering the screen
Fix #2781
Fix #2588
Fix #1805

Fix https://github.com/junegunn/fzf.vim/issues/1370
Fix https://github.com/junegunn/fzf.vim/issues/1060
2 years ago
Junegunn Choi d56f605b63
Add `rebind` action for restoring bindings after `unbind`
Fix #2752
Close #2564
2 years ago
Junegunn Choi 5209e95bc7
Make preview updated when reload and change-query are combined
Fix #2744
2 years ago
Junegunn Choi ef67a45702
Add --ellipsis=.. option
Close #2432

Also see
- #1769
- https://github.com/junegunn/fzf/pull/1844#issuecomment-586663660
2 years ago
Junegunn Choi dc975e8974
0.29.0 2 years ago
Junegunn Choi cd23401411
Fix rendering of the prompt line when overflow occurs with `--info=inline`
Fix #2692
2 years ago
Junegunn Choi 43f0d0cacd
change-preview-window to take multiple option sets separated by '|'
So you can "rotate" through the different options with a single binding.

  fzf --preview 'cat {}' \
      --bind 'ctrl-/:change-preview-window(70%|down,40%,border-horizontal|hidden|)'

Close #2376
2 years ago
Junegunn Choi 20b4e6953e
Implement change-preview and change-preview-window actions
The new actions are named with 'change-' prefix to differentiate from
the pre-existing, one-off 'preview(...)' action.

Fix #2360
Fix #2505
Fix #2666

Related #2435
Related #2376
  - Can set up multiple bindings with different change-preview-window actions
  - Not possible to "rotate" through the options with a single binding
  - Enlarge or shrink not possible
2 years ago
Junegunn Choi 7bff4661f6
Add --header-first option to display header before prompt line
Close #2422
3 years ago
Junegunn Choi ffd8bef808
Update CHANGELOG 3 years ago
Junegunn Choi 4138333f5c
0.27.3 3 years ago
Junegunn Choi 0f02fc0c77
Reset {n} after reload
Fix #2611
3 years ago
a1346054 3c804bcfec fix spelling 3 years ago
Junegunn Choi 7191ebb615
Do not show preview window by default if `--preview` is empty
Close #2516
3 years ago
Junegunn Choi 8255aa23f4
Fix bug where `--read0` not properly displaying long lines
Fix #2508
3 years ago
Junegunn Choi a4bc08f5a3
Allow specifying 16 base ANSI colors by their names
Close #2502
3 years ago
Junegunn Choi 347c4b2625
Add 'unbind' action
Fix #2486
3 years ago
Junegunn Choi 19759ed36e
0.27.0 3 years ago
Junegunn Choi c440418ce6
Sign and notarize macOS binaries
Close #2408
3 years ago
Junegunn Choi 15f4cfb6d9
More border optins for preview window
Close #2431
3 years ago
Junegunn Choi 1b08f43f82
Advanced preview scroll offset expression to better support fixed header 3 years ago
Junegunn Choi 4c4c6e626e
Add support for preview window header
Fix #2373

  # Display top 3 lines as the fixed header
  fzf --preview 'bat --style=header,grid --color=always {}' --preview-window '~3'
3 years ago
Junegunn Choi c256442245
Fix typo 3 years ago
Junegunn Choi 76bbf57b3d
Add select and deselect actions
Close #2358
3 years ago
Junegunn Choi 6654239c94
0.25.1 3 years ago
Junegunn Choi f55c990e86
Add `close` action
Close #2331
3 years ago
Junegunn Choi d779ff7e6d
Make search toggleable
- `--phony` renamed to `--disabled` for consistency
    - `--no-phony` is now `--enabled`
- Added `enable-search`, `disable-search`, and `toggle-search` actions
  for `--bind`
- Added `--color` options: `query` and `disabled`

Close #2303
3 years ago
Junegunn Choi 151252e33a
Add preview-top and preview-bottom actions 3 years ago
Junegunn Choi 7f8e0dbc40
Extend support for alt key chords
"alt-" with any case-sensitive character is allowed
3 years ago
Junegunn Choi 0de7ab18f6
Add "last" action to move the cursor to the last match
This is the opposite of "first" (previously known as "top").
3 years ago
Junegunn Choi 257ddd028d
Update CHANGELOG 3 years ago
Junegunn Choi 2ec382ae0e
Add --preview-window follow option 3 years ago
Junegunn Choi 6d647e13ff
Add change-prompt action
Close #2270
3 years ago
Junegunn Choi f6269f0193
Add --padding option
Close #2241
4 years ago
Junegunn Choi 1bcbc5a353
Fix regression where lines are skipped in the preview window
Fix #2239
4 years ago
Junegunn Choi d4c9db0a27
0.24.1 4 years ago
Junegunn Choi 0d5f862daf
0.24.0 4 years ago
Junegunn Choi 552414978e
0.24.0-rc1 4 years ago
Junegunn Choi 2e8e63fb0b
Add more --border options
Instead of drawing the window border in Vim using an extra window,
extend the --border option so that we do can it natively.

Close #2223
Fix #2184
4 years ago
Junegunn Choi 874f7dd416
Update --color example in CHANGELOG
New color name: input
4 years ago
Junegunn Choi 8b0e3b1624
Update --color docs 4 years ago
Junegunn Choi 11841f688b
Add support for text styling using --color
Close #1663
4 years ago
Junegunn Choi a4d9b0b468
Support ANSI escape sequence for clearing display in preview window
fzf --preview 'for i in $(seq 100000); do
    (( i % 200 == 0 )) && printf "\033[2J"
    echo "$i"
    sleep 0.01
  done'
4 years ago
Junegunn Choi faf68dbc5c
Implement streaming preview window (#2215)
Fix #2212

    # Will start rendering after 200ms, update every 100ms
    fzf --preview 'for i in $(seq 100); do echo $i; sleep 0.01; done'

    # Should print "Loading .." message after 500ms
    fzf --preview 'sleep 1; for i in $(seq 100); do echo $i; sleep 0.01; done'

    # The first line should appear after 200ms
    fzf --preview 'date; sleep 2; date'

    # Should not render before enough lines for the scroll offset are ready
    rg --line-number --no-heading --color=always ^ |
      fzf --delimiter : --ansi --preview-window '+{2}-/2' \
          --preview 'sleep 1; bat --style=numbers --color=always --pager=never --highlight-line={2} {1}'
4 years ago
Junegunn Choi fc7630a66d
0.23.1 4 years ago
Junegunn Choi 3248153d9f
Add --preview-window=default for resetting the options 4 years ago
Junegunn Choi 865144850d
Add nowrap, nocycle, nohidden for --preview-window
Close #2203
4 years ago
Junegunn Choi d9752a4c21
Reset preview window flags that are not style-related
Fix #2203
4 years ago
Junegunn Choi dba14d2630
0.23.0 4 years ago
Junegunn Choi 3cc8a74a91
Add --preview-window option for cyclic scrolling
Close #2182
4 years ago
Tinmarino c0aa5a438f
Add preview-half-page-down and preview-half-page-up (#2145) 4 years ago
Junegunn Choi e0f0b5bcf9
Update CHANGELOG 4 years ago
Junegunn Choi 9dc4b40d7a
Add more preview window options and reduce vertical padding on noborder
Fix #2138
Fix #2029
4 years ago
Junegunn Choi 1cb19dbf65
Support preview scroll offset relative to window height
Related: https://github.com/junegunn/fzf.vim/issues/1092
4 years ago
Junegunn Choi e2ae1b249c
0.22.0 4 years ago
Junegunn Choi f092e4038f
Smart match of accented characters
Fix #1618
4 years ago
Junegunn Choi 0f9cb5590e
Add preview window option for setting the initial scroll offset
Close #1057
Close #2120

  # Initial scroll offset is set to the line number of each line of
  # git grep output *minus* 5 lines
  git grep --line-number '' |
    fzf --delimiter : --preview 'nl {1}' --preview-window +{2}-5
4 years ago
Junegunn Choi 8e027c445f
Support ANSI colors in --prompt string
Close #2086
4 years ago
Junegunn Choi d1676776aa
Update CHANGELOG 4 years ago
Junegunn Choi 334a4fa159
0.21.1 4 years ago
Junegunn Choi b0673c3563
0.21.0 4 years ago
Junegunn Choi 373c6d8d55
Add --keep-right option to keep the right end of the line visible
Close #1652
4 years ago
Junegunn Choi 50b7608f9d
Change custom fuzzy completion API
To make it easier to write more complex fzf options. Although this
does not break backward compatibility, users are encouraged to update
their code accordingly.

  # Before
  _fzf_complete "FZF_ARG1 FZF_ARG2..." "$@" < <(
    # Print candidates
  )

  # After
  _fzf_complete FZF_ARG1 FZF_ARG2... -- "$@" < <(
    # Print candidates
  )
4 years ago
Michael Kelley 7d5985baf9
Make height option work under Windows (#1341)
Separate Unix & Windows code into platform specific files for light renderer
4 years ago
Junegunn Choi d9c6a0305b
Draft CHANGELOG for the upcoming release 4 years ago
Junegunn Choi 30577b0c17
0.20.0 4 years ago
Junegunn Choi 9fefe08b3f
Revert README as preview-{fg,bg} are only available on master 4 years ago
Junegunn Choi 684bfff713
Update README/CHANGELOG 4 years ago
Junegunn Choi 3db6b88d82
Add preview-fg and preview-bg for --color
Close #1776
4 years ago
Junegunn Choi af1a5f130b
Add clear-query and clear-selection
Close #1787
Related #1364
5 years ago
Junegunn Choi 86e3994e87 Properly clear list when --header-lines not filled on reload 5 years ago
Junegunn Choi 394d8cfd18
Remove immediate flickering on reload action 5 years ago
Junegunn Choi effbc258bb Update CHANGELOG 5 years ago
Junegunn Choi 7238c8944d
Update CHANGELOG 5 years ago
Junegunn Choi e24299239e
Add `--preview-window noborder` option to disable preview border
Close #1699
5 years ago
Junegunn Choi d2fa470165
Add --info=STYLE [default|inline|hidden]
Close #1738
5 years ago
Junegunn Choi 168453da71
More key chords for --bind
Close #1752
5 years ago
Junegunn Choi 23a06d63ac
Update CHANGELOG and man pages 5 years ago
Junegunn Choi ff951341c9
0.18.0 5 years ago
Junegunn Choi b46227dcb6
0.17.5 6 years ago
Junegunn Choi f0fe79dd3b
0.17.4 6 years ago
Junegunn Choi 390b49653b
0.17.3 7 years ago
Junegunn Choi 04aa2992e7
Revert "0.17.2"
This reverts commit 2f1edeff78.
7 years ago
Junegunn Choi 2f1edeff78
0.17.2 7 years ago
Junegunn Choi 0b33dc6ce1
0.17.1 7 years ago
Junegunn Choi 58b5be8ab6
0.17.0-2 7 years ago
Junegunn Choi e89eebb7ba
0.17.0 7 years ago
Junegunn Choi ecb6b234cc
0.16.11 7 years ago
Junegunn Choi 6dbc108da2
0.16.10 7 years ago
Junegunn Choi 18a1aeaa91
0.16.9 7 years ago
Uri Gorelik a4d78e2200 Update CHANGELOG with unix-line-discard+top (#940)
Also change the example binding for `unix-word-rubout` to *ctrl-w* instead of *ctrl-u*
7 years ago
Junegunn Choi b49f22cdf9
0.16.8 7 years ago
Junegunn Choi 2d61691bb2
0.16.7 7 years ago
Junegunn Choi e03e91477b
0.16.6 7 years ago
Junegunn Choi e87a85a179
0.16.5 7 years ago
Junegunn Choi c82fb3c9b9
Add toggle-preview-wrap action 7 years ago
Junegunn Choi 4b700192c1
Add --border option to draw horizontal lines above and below the finder
Goes well with --height
7 years ago
Junegunn Choi 36dceecd58
Add support for ctrl-space key
Close #825
7 years ago
Junegunn Choi 421b9b271a
Add execute-silent action
Close #823
7 years ago
Junegunn Choi ed57dcb924
Extend placeholder expression for multiple selections
Close #788
7 years ago
Junegunn Choi f2ce233a6d
0.16.2 7 years ago
Junegunn Choi 6a75e30941
Allow invisible preview window (--preview-window 0)
Close #820
7 years ago
Junegunn Choi ff248d566d
Drop ncurses dependency
Close #818
7 years ago
Junegunn Choi 131aa5dd15
Composable actions in --bind
Close #816
7 years ago