Commit Graph

275 Commits (65dd2bb42947d4ede31d160214f3a4c6fdc619e1)

Author SHA1 Message Date
Junegunn Choi 65dd2bb429
Add 'track' action 1 year ago
Junegunn Choi 6be855be6a
Add change-header and transform-header
Close #3237
1 year ago
Junegunn Choi 0c61d81713
Add toggle-track action 1 year ago
tyama711 fb019d43bf
Fix a bug of height range with -1 or -0 (#3226)
Fixed a bug that when both heightUnknown and deferred are true, deferred is not properly reset and the program terminates abnormally.

Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
1 year ago
Junegunn Choi 211512ae64
Fix Rubocop error 1 year ago
Junegunn Choi 8ec917b1c3
Add 'one' event
Close #2629
Close #2494
Close #459
1 year ago
Junegunn Choi 1c7534f009
Add --track option to track the current selection
Close #3186
Related #1890
1 year ago
Junegunn Choi d7daf5f724
Render CR and LF as ␍ and ␊
Close #2529
1 year ago
Junegunn Choi cfc0747d5d
Follow Rubocop suggestion 1 year ago
Junegunn Choi fcd7e8768d
Omit port number in `--listen` for automatic port assignment
Close #3200
1 year ago
Junegunn Choi 3c34dd8275
Fix extra new line in the preview window
When a colored text ends at the right end of the window

Fix #3209
1 year ago
Junegunn Choi 96c3de12eb
Run 'become' only when the command template is properly evaluated 1 year ago
Junegunn Choi 6ea38b4438
Add become(...) action that replaces current fzf process
Close #3159
1 year ago
Junegunn Choi aa2b9ec476
Add 'show-preview' and 'hide-preview'
For cases where 'toggle-preview' is not enough
1 year ago
Junegunn Choi 3ee00f8bc2
toggle-preview should not show empty preview window 1 year ago
Junegunn Choi fccab60a5c
`--preview-window 0,hidden` should not execute the preview command
Until `toggle-preview` action is triggered

Fix #3149
1 year ago
Junegunn Choi 618d317803
Support custom separator of inline info
Close #2030
Close #3084
1 year ago
Junegunn Choi 284d77fe2e
Add 'focus' event
Can we find a better name? I have considered the followings.

* 'point', because "the pointer" points to the current item.
* 'shift', 'switch', 'move', etc. These are not technically correct
  because the current item can change without cursor movement (--tac,
  reload, search update)
* 'change' is already taken. 'change-current' feels a bit wordy and
  sounds wrong, 'current-changed' is wordy and doesn't go well with the
  other event names
* 'target', not straightforward

Close #3053
1 year ago
Junegunn Choi d51980a3f5 Add 'transform-border-label' and 'transform-preview-label' 1 year ago
Junegunn Choi 77874b473c
Update Rubocop dependencies 1 year ago
Junegunn Choi b7cce7be15
Remove unused block argument 1 year ago
Junegunn Choi 3cd3362417
Fix test failure 1 year ago
Junegunn Choi e97e925efb
Resume preview following if the user scrolls the window to the bottom 1 year ago
Junegunn Choi 23d8b78ce1
Allow toggling of alternative preview window layout that is hidden
Fix #3113
1 year ago
Junegunn Choi 3b2244077d
Add scrollbar to the preview window 1 year ago
Junegunn Choi 5cd6f1d064
Add scrollbar
Close #3096
2 years ago
Junegunn Choi 62c7f59b94
Add transform-prompt(...) action 2 years 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
2 years ago
Junegunn Choi 6c37177cf5
Add reload-sync action
Close #2816
2 years 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} {}')
2 years ago
Junegunn Choi 4b3f0b9f08
Allow put action with an argument i.e. put(...) 2 years 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
2 years 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.
2 years ago
Junegunn Choi 750b2a6313
Add GET endpoints for getting the state of the finder
* GET / (or GET /current)
* GET /query
2 years ago
Junegunn Choi 6d14573fd0 Add test case for --listen 2 years ago
Junegunn Choi 51c518da1e
Add change-query(...) action 2 years ago
Junegunn Choi 18e3b38c69
Add 'next-selected' and 'prev-selected' actions
Close #2749
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 f6ce624c6f
Add tests for --border-label and --preview-label
Also fix failing tests due to info separator

Related #3022 #3029
2 years ago
Junegunn Choi 168829b555
Add 'start' event that is triggered once when fzf finder starts
Close #1622
2 years ago
John Fred Fadrigalan 4603d540c3
[shell] Make bash/zsh completion and bindings work with 'set -u' (#2999)
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2 years ago
Junegunn Choi 22cbd9fa58
Implement height range (--height ~[VALUE][%])
Close #2953
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 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 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 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
3 years ago