Junegunn Choi
22cbd9fa58
Implement height range (--height ~[VALUE][%])
...
Close #2953
2022-09-28 23:22:31 +09:00
Junegunn Choi
f4fd53211a
Reformat comments adhere to gofmt
2022-08-12 22:11:15 +09:00
Junegunn Choi
821fc9feed
Fix failing test case
2022-07-20 12:29:45 +09:00
Junegunn Choi
82b46726fc
Add support for an alternative preview window layout
...
Close #2804
Close #2844
Related #2277
2022-07-20 12:08:54 +09:00
Junegunn Choi
b089bb5e7b
Fix scrollability of the preview window in certain cases
...
Fix #2683
This commit fixes the cases where fzf incorrectly determines the
scrollability of the preview window when `--preview-window-wrap` is set.
Wrapping of the preview content happens during the rendering phase, so
it's currently not possible to know how many lines are actually needed
to display the content beforehand. So `preview-bottom` still may not
move to the very bottom with wrapping enabled.
2022-04-28 11:46:24 +09:00
Junegunn Choi
d56f605b63
Add rebind
action for restoring bindings after unbind
...
Fix #2752
Close #2564
2022-04-04 21:54:22 +09:00
Junegunn Choi
f8b713f425
Remove redundant state update on reload
...
Related: 5209e95
2022-03-31 10:05:28 +09:00
Junegunn Choi
5209e95bc7
Make preview updated when reload and change-query are combined
...
Fix #2744
2022-03-29 22:27:03 +09:00
Junegunn Choi
ef67a45702
Add --ellipsis=.. option
...
Close #2432
Also see
- #1769
- https://github.com/junegunn/fzf/pull/1844#issuecomment-586663660
2022-03-29 21:35:36 +09:00
Junegunn Choi
cd23401411
Fix rendering of the prompt line when overflow occurs with --info=inline
...
Fix #2692
2021-12-22 23:23:50 +09:00
Junegunn Choi
ce9af687bc
Remove unused code
2021-12-05 21:17:38 +09:00
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
2021-12-05 21:13:10 +09:00
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
2021-11-30 23:57:46 +09:00
Junegunn Choi
7bff4661f6
Add --header-first option to display header before prompt line
...
Close #2422
2021-11-03 21:19:22 +09:00
Junegunn Choi
02cee2234d
Implement --scroll-off=LINES
...
Close #2533
2021-11-02 21:48:19 +09:00
Junegunn Choi
97ae8afb6f
Reload should update preview window
...
Fix #2644
2021-10-23 01:06:15 +09:00
Vlastimil Ovčáčík
61339a8ae2
Add more tests of placeholder flags and simplify its logic ( #2624 )
...
* [tests] Test fzf's placeholders and escaping on practical commands
This tests some reasonable commands in fzf's templates (for commands,
previews, rebinds etc.), how are those commands escaped (backslashes,
double quotes), and documents if the output is executable in cmd.exe.
Both on Unix and Windows.
* [tests] Add testing of placeholder parsing and matching
Adds tests and bit of docs for the curly brackets placeholders in fzf's
template strings. Also tests the "placeholder" regex.
* [tests] Add more test cases of replacing placeholders focused on flags
Replacing placeholders in templates is already tested, this adds tests
that focus more on the parameters of placeholders - e.g. flags, token
ranges.
There is at least one test for each flag, not all combinations are
tested though.
* [refactoring] Split OS-specific function quoteEntry() to corresponding source file
This is minor refactoring, and also the function's test was made
crossplatform.
* [refactoring] Simplify replacePlaceholder function
Should be equivalent to the original, but has simpler structure.
2021-10-15 22:31:59 +09:00
Junegunn Choi
50eb2e3855
Render spinner on info line during "reload"
...
Fix #2637
2021-10-15 22:13:57 +09:00
Junegunn Choi
7191ebb615
Do not show preview window by default if --preview
is empty
...
Close #2516
2021-06-08 08:53:29 +09:00
Junegunn Choi
347c4b2625
Add 'unbind' action
...
Fix #2486
2021-05-22 13:16:39 +09:00
Junegunn Choi
3f75a8369f
Replace RuneWidth to StringWidth to handle grapheme clusters
...
Fix #2482
2021-05-14 11:44:44 +09:00
Junegunn Choi
3a2015ee26
Fix minimum preview window height
2021-04-06 20:05:54 +09:00
Junegunn Choi
15f4cfb6d9
More border optins for preview window
...
Close #2431
2021-04-06 17:37:11 +09:00
Junegunn Choi
8b36a4cb19
Speed up preview switching when doing partial rendering
...
Fix #2417
2021-04-04 13:43:16 +09:00
Junegunn Choi
764316a53d
Fix flaky test case: test_interrupt_execute
...
Try to avoid extraneous INT signal
2021-03-26 17:40:12 +09:00
Junegunn Choi
f84b3de24b
Automatically set /dev/tty as STDIN on execute action
...
https://github.com/junegunn/fzf/issues/1360#issuecomment-788178140
# Redirect /dev/tty to suppress "Vim: Warning: Input is not from a terminal"
ls | fzf --bind "enter:execute(vim {} < /dev/tty)"
# With this change, we can omit "< /dev/tty" part
ls | fzf --bind "enter:execute(vim {})"
2021-03-25 20:00:09 +09:00
Junegunn Choi
1b08f43f82
Advanced preview scroll offset expression to better support fixed header
2021-03-13 02:26:41 +09:00
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'
2021-03-12 20:32:27 +09:00
Junegunn Choi
7310370a31
Fix truncation of colored line when --preview-window wrap is set
...
Fix #2346
2021-03-12 20:31:27 +09:00
Junegunn Choi
8ae94f0059
Fix premature truncation of colored line when --preview-window wrap is set
...
Fix #2346
2021-03-12 11:05:51 +09:00
Junegunn Choi
8fccf20892
Fix incorrect tab character handling
...
Fix #2372
2021-03-12 10:08:18 +09:00
Junegunn Choi
b82c1693c0
Fix deadlocks
2021-03-08 00:08:10 +09:00
Junegunn Choi
019bfc4e35
Fix yet another deadlock
...
EventBox.Set should not be called while holding the terminal mutex
goroutine 1 [semacquire]:
sync.runtime_SemacquireMutex(0xc0001923bc, 0x1000001066200, 0x1)
/usr/local/Cellar/go/1.16/libexec/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0001923b8)
/usr/local/Cellar/go/1.16/libexec/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
/usr/local/Cellar/go/1.16/libexec/src/sync/mutex.go:81
github.com/junegunn/fzf/src.(*Terminal).Input(0xc000192000, 0x0, 0x0, 0x0, 0x0)
/fzf/src/terminal.go:581 +0x145
github.com/junegunn/fzf/src.Run.func10(0xc00010c8a0, 0xc000092050, 0xa)
/fzf/src/core.go:245 +0x37
github.com/junegunn/fzf/src.Run.func11(0xc00011a4e0)
/fzf/src/core.go:295 +0x5ce
github.com/junegunn/fzf/src/util.(*EventBox).Wait(0xc00011a4e0, 0xc000127ec8)
/fzf/src/util/eventbox.go:34 +0x5e
github.com/junegunn/fzf/src.Run(0xc000180000, 0x11ac014, 0x6, 0x11ac158, 0x7)
/fzf/src/core.go:251 +0xdac
main.main()
/fzf/main.go:13 +0x5a
goroutine 11 [semacquire]:
sync.runtime_SemacquireMutex(0xc00012c31c, 0xc00010e800, 0x1)
/usr/local/Cellar/go/1.16/libexec/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc00012c318)
/usr/local/Cellar/go/1.16/libexec/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(0xc00012c318)
/usr/local/Cellar/go/1.16/libexec/src/sync/mutex.go:81 +0x47
github.com/junegunn/fzf/src/util.(*EventBox).Set(0xc00011a4e0, 0x7, 0x114eb40, 0x1265460)
/fzf/src/util/eventbox.go:40 +0x3b
github.com/junegunn/fzf/src.(*Terminal).killPreview(0xc000192000, 0x0)
/fzf/src/terminal.go:1831 +0xa5
github.com/junegunn/fzf/src.(*Terminal).exit(0xc000192000, 0xc000106e58)
/fzf/src/terminal.go:1847 +0x75
github.com/junegunn/fzf/src.(*Terminal).Loop.func8.1(0xc00011a540)
/fzf/src/terminal.go:2148 +0x38f
github.com/junegunn/fzf/src/util.(*EventBox).Wait(0xc00011a540, 0xc000106f90)
/fzf/src/util/eventbox.go:34 +0x5e
github.com/junegunn/fzf/src.(*Terminal).Loop.func8(0xc000192000, 0xc00010a2c0)
/fzf/src/terminal.go:2077 +0xa5
created by github.com/junegunn/fzf/src.(*Terminal).Loop
/fzf/src/terminal.go:2072 +0x3e8
2021-03-07 23:35:19 +09:00
Junegunn Choi
f657169616
Fix deadlock on exit
2021-03-07 21:44:08 +09:00
Junegunn Choi
e2e8d94b14
Kill input command on terminate
...
Fix #2381
Close #2382
2021-03-07 11:30:26 +09:00
bitterfox
4f9a7f8c87
Don't exit fzf by SIGINT while executing command ( #2375 )
...
Fix #2374
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2021-02-28 21:01:03 +09:00
Junegunn Choi
76bbf57b3d
Add select and deselect actions
...
Close #2358
2021-02-25 21:23:05 +09:00
Junegunn Choi
f55c990e86
Add close
action
...
Close #2331
2021-02-02 00:11:05 +09:00
Junegunn Choi
c862af09f2
Fix toggle-preview-wrap action
...
Fix #2336
2021-02-01 23:14:21 +09:00
E.L.K
eaa0c52b45
Fix selection changed on terminal resize ( #2306 )
2021-01-04 04:20:31 +09:00
Junegunn Choi
090dee857f
Do not disable mouse on SIGCONT before SIGSTOP
...
Fix #2161
2021-01-03 00:43:56 +09:00
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
2021-01-03 00:15:00 +09:00
Junegunn Choi
151252e33a
Add preview-top and preview-bottom actions
2020-12-31 12:57:57 +09:00
Junegunn Choi
7f8e0dbc40
Extend support for alt key chords
...
"alt-" with any case-sensitive character is allowed
2020-12-30 18:39:17 +09:00
Junegunn Choi
0de7ab18f6
Add "last" action to move the cursor to the last match
...
This is the opposite of "first" (previously known as "top").
2020-12-30 18:39:17 +09:00
Junegunn Choi
f37ccaa64f
Prevent index out of range error
...
Fix #2293
2020-12-23 10:34:31 +09:00
Junegunn Choi
f502725120
Fix slice bound error on extremely narrow screen
2020-12-05 22:00:42 +09:00
Junegunn Choi
2ec382ae0e
Add --preview-window follow option
2020-12-05 21:16:35 +09:00
Junegunn Choi
6d647e13ff
Add change-prompt action
...
Close #2270
2020-12-04 20:34:41 +09:00
Junegunn Choi
3829eab1cf
Support ANSI code for clearing the rest of the line (ESC[0K)
...
Some programs use it to set the background color for the whole line.
fzf --preview "printf 'normal \x1b[42mgreen\x1b[0K \x1b[43myellow\x1b[m\nnormal again'"
fzf --preview 'delta <(echo foo) <(echo bar) < /dev/tty'
Fix #2249
2020-11-25 01:49:48 +09:00
Junegunn Choi
1efef88b6e
Improve trim function to handle longer strings
...
Fix #2258
2020-11-24 19:03:59 +09:00
Junegunn Choi
f6269f0193
Add --padding option
...
Close #2241
2020-11-09 20:37:17 +09:00
Junegunn Choi
520eae817a
Remove print statement for debugging
2020-11-09 19:17:33 +09:00
Junegunn Choi
2553806e79
Allow preview window height shorter than 3
...
Fix #2231
2020-11-03 22:04:01 +09:00
Junegunn Choi
1bcbc5a353
Fix regression where lines are skipped in the preview window
...
Fix #2239
2020-11-03 21:31:19 +09:00
Junegunn Choi
f8aaeef218
Revert "Prefer LightRenderer on Windows if it's available"
...
This reverts commit 7915e365b3
due to https://github.com/junegunn/fzf.vim/issues/1152#issuecomment-719696495 .
2020-10-31 02:53:10 +09:00
Junegunn Choi
7915e365b3
Prefer LightRenderer on Windows if it's available
...
Fix #1766
2020-10-31 01:41:57 +09:00
Junegunn Choi
eaa413c566
Fix error when preview command failed to start
2020-10-27 21:36:38 +09:00
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
2020-10-26 22:51:22 +09:00
Junegunn Choi
11841f688b
Add support for text styling using --color
...
Close #1663
2020-10-25 19:30:41 +09:00
Junegunn Choi
03c4f04246
Use 64-bit integer for preview version
2020-10-24 16:55:55 +09:00
Junegunn Choi
a1f06ae27f
Fix regression where empty preview content is not displayed
2020-10-23 23:52:05 +09:00
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'
2020-10-23 21:37:20 +09:00
Junegunn Choi
d2d4d68585
Always show the number of selected entries to indicate if --multi is enabled
...
Close #2217
seq 100 | fzf
# 100/100
seq 100 | fzf --multi
# 100/100 (0)
seq 100 | fzf --multi 5
# 100/100 (0/5)
2020-10-20 20:04:06 +09:00
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}'
2020-10-18 17:03:33 +09:00
Junegunn Choi
1d8bd11b67
Fix preview window size calculation
2020-10-06 19:37:33 +09:00
Junegunn Choi
3cc8a74a91
Add --preview-window option for cyclic scrolling
...
Close #2182
2020-10-06 10:05:57 +09:00
Tinmarino
c0aa5a438f
Add preview-half-page-down and preview-half-page-up ( #2145 )
2020-10-05 21:58:56 +09:00
Junegunn Choi
6f9663da62
Always allow preview/execute commands with no placeholder expressions
...
Fix #2017
2020-09-29 11:32:56 +09:00
Wenxuan
f8ae1786dd
Fix items width limit ( #2190 )
2020-09-24 11:06:20 +09:00
Junegunn Choi
f2d44ab5a7
Revert horizontal padding around preview window on "noborder"
...
Use 2-space horizontal padding so that the preview content is aligned
with the candidate list when the position of the preview window is `up`
or `down`.
2020-08-23 17:17:57 +09:00
Junegunn Choi
43798fc2e8
Revert 1ab4289
: Preview window of size 0 is allowed
2020-08-23 17:12:37 +09:00
Junegunn Choi
9dc4b40d7a
Add more preview window options and reduce vertical padding on noborder
...
Fix #2138
Fix #2029
2020-08-23 17:05:45 +09:00
Junegunn Choi
1cb19dbf65
Support preview scroll offset relative to window height
...
Related: https://github.com/junegunn/fzf.vim/issues/1092
2020-08-23 15:57:49 +09:00
Junegunn Choi
92b7efafca
Ignore punctuation characters before and after preview offset column
...
This is to allow line numbers in a ctags output (e.g. 123;")
2020-08-02 10:03:17 +09:00
Junegunn Choi
aa5dae391b
Fix handling of unicode characters in query string
2020-07-28 12:58:37 +09:00
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
2020-07-27 00:27:03 +09:00
Junegunn Choi
8e027c445f
Support ANSI colors in --prompt string
...
Close #2086
2020-07-05 16:16:46 +09:00
Junegunn Choi
17dd833925
Add preview action for --bind
...
Fix #2010
Fix #1638
2020-06-21 22:41:33 +09:00
Junegunn Choi
c33258832e
Add refresh-preview action
2020-06-20 22:04:09 +09:00
Junegunn Choi
a7aa08ce07
Add backward-eof event for --bind
2020-06-07 23:07:03 +09:00
Junegunn Choi
97a725fbd0
Do not disable mouse after execute(-silent) when --height option is used
...
The action takes place in the alternate screen so the offsets should
still be correct.
2020-05-18 02:43:58 +09:00
Junegunn Choi
07b965bba1
Fix ANSI color offsets when --keep-right is used
2020-03-23 19:05:06 +09:00
Junegunn Choi
373c6d8d55
Add --keep-right option to keep the right end of the line visible
...
Close #1652
2020-03-11 22:35:24 +09:00
Junegunn Choi
d9b1211191
Add more --border options; default changed to "rounded"
...
--border option now takes an optional argument that defines the style
- rounded (new default)
- sharp
- horizontal (previous default)
2020-03-05 20:56:15 +09:00
James Wright
9f0626da64
Add backward-delete-char/eof action ( #1891 )
...
'backward-delete-char/eof' will either abort if query is
empty or delete one character backwards.
2020-02-28 02:38:32 +09:00
Hiroki Konishi
2a60edcd52
Make pointer and multi-select marker customizable ( #1844 )
...
Add --pointer and --marker option which can provide additional context to the user
2020-02-17 10:19:03 +09:00
Junegunn Choi
8583b150c9
Fix inline info truncation
2020-02-06 12:01:51 +09:00
Tony Metzidis
f246fb2fc2
Show error message when failed to start preview command ( #1810 )
...
Fix #1637
2020-01-19 19:42:10 +09:00
Junegunn Choi
6e3af646b2
Draw spinner with Unicode characters
2020-01-15 10:43:09 +09:00
Junegunn Choi
3db6b88d82
Add preview-fg and preview-bg for --color
...
Close #1776
2019-12-12 23:03:17 +09:00
Junegunn Choi
2b725a4db5
Defer resetting multi-selection on reload
2019-12-09 21:32:58 +09:00
Junegunn Choi
af1a5f130b
Add clear-query and clear-selection
...
Close #1787
Related #1364
2019-12-07 14:44:24 +09:00
Junegunn Choi
1e6ac5590e
'reload' action should be allowed even where there's no match
...
If the command template doesn't have any placeholder expressions.
: | fzf --bind 'space:reload:seq 10'
2019-12-06 22:34:30 +09:00
Junegunn Choi
2886f06977
Fix --preview-window noborder with non-default background color
2019-11-15 18:27:08 +09:00
Junegunn Choi
e24299239e
Add --preview-window noborder
option to disable preview border
...
Close #1699
2019-11-15 11:39:51 +09:00
Junegunn Choi
d2fa470165
Add --info=STYLE [default|inline|hidden]
...
Close #1738
2019-11-15 00:39:29 +09:00
Junegunn Choi
05b5f3f845
'reload' action should reset multi-selection
2019-11-12 00:57:19 +09:00
Junegunn Choi
deccf20a35
Fix regression of select-all
2019-11-11 23:31:31 +09:00
Junegunn Choi
78da928727
Experimental implementation of "reload" action
...
# Reload input list with different sources
seq 10 | fzf --bind 'ctrl-a:reload(seq 100),ctrl-b:reload(seq 1000)'
# Reload as you type
seq 10 | fzf --bind 'change:reload:seq {q}' --phony
# Integration with ripgrep
RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case "
INITIAL_QUERY=""
FZF_DEFAULT_COMMAND="$RG_PREFIX '$INITIAL_QUERY'" \
fzf --bind "change:reload:$RG_PREFIX {q} || true" \
--ansi --phony --query "$INITIAL_QUERY"
Close #751
Close #965
Close #974
Close #1736
Related #1723
2019-11-10 11:43:37 +09:00