Junegunn Choi
3f75a8369f
Replace RuneWidth to StringWidth to handle grapheme clusters
...
Fix #2482
3 years ago
Junegunn Choi
3a2015ee26
Fix minimum preview window height
3 years ago
Junegunn Choi
15f4cfb6d9
More border optins for preview window
...
Close #2431
3 years ago
Junegunn Choi
8b36a4cb19
Speed up preview switching when doing partial rendering
...
Fix #2417
3 years ago
Junegunn Choi
764316a53d
Fix flaky test case: test_interrupt_execute
...
Try to avoid extraneous INT signal
3 years ago
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 {})"
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
7310370a31
Fix truncation of colored line when --preview-window wrap is set
...
Fix #2346
3 years ago
Junegunn Choi
8ae94f0059
Fix premature truncation of colored line when --preview-window wrap is set
...
Fix #2346
3 years ago
Junegunn Choi
8fccf20892
Fix incorrect tab character handling
...
Fix #2372
3 years ago
Junegunn Choi
b82c1693c0
Fix deadlocks
3 years ago
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
3 years ago
Junegunn Choi
f657169616
Fix deadlock on exit
3 years ago
Junegunn Choi
e2e8d94b14
Kill input command on terminate
...
Fix #2381
Close #2382
3 years ago
bitterfox
4f9a7f8c87
Don't exit fzf by SIGINT while executing command ( #2375 )
...
Fix #2374
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
3 years ago
Junegunn Choi
76bbf57b3d
Add select and deselect actions
...
Close #2358
3 years ago
Junegunn Choi
f55c990e86
Add `close` action
...
Close #2331
3 years ago
Junegunn Choi
c862af09f2
Fix toggle-preview-wrap action
...
Fix #2336
3 years ago
E.L.K
eaa0c52b45
Fix selection changed on terminal resize ( #2306 )
4 years ago
Junegunn Choi
090dee857f
Do not disable mouse on SIGCONT before SIGSTOP
...
Fix #2161
4 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
4 years ago
Junegunn Choi
151252e33a
Add preview-top and preview-bottom actions
4 years ago
Junegunn Choi
7f8e0dbc40
Extend support for alt key chords
...
"alt-" with any case-sensitive character is allowed
4 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").
4 years ago
Junegunn Choi
f37ccaa64f
Prevent index out of range error
...
Fix #2293
4 years ago
Junegunn Choi
f502725120
Fix slice bound error on extremely narrow screen
4 years ago
Junegunn Choi
2ec382ae0e
Add --preview-window follow option
4 years ago
Junegunn Choi
6d647e13ff
Add change-prompt action
...
Close #2270
4 years ago
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
4 years ago
Junegunn Choi
1efef88b6e
Improve trim function to handle longer strings
...
Fix #2258
4 years ago
Junegunn Choi
f6269f0193
Add --padding option
...
Close #2241
4 years ago
Junegunn Choi
520eae817a
Remove print statement for debugging
4 years ago
Junegunn Choi
2553806e79
Allow preview window height shorter than 3
...
Fix #2231
4 years ago
Junegunn Choi
1bcbc5a353
Fix regression where lines are skipped in the preview window
...
Fix #2239
4 years ago
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 .
4 years ago
Junegunn Choi
7915e365b3
Prefer LightRenderer on Windows if it's available
...
Fix #1766
4 years ago
Junegunn Choi
eaa413c566
Fix error when preview command failed to start
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
11841f688b
Add support for text styling using --color
...
Close #1663
4 years ago
Junegunn Choi
03c4f04246
Use 64-bit integer for preview version
4 years ago
Junegunn Choi
a1f06ae27f
Fix regression where empty preview content is not displayed
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
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)
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
1d8bd11b67
Fix preview window size calculation
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
6f9663da62
Always allow preview/execute commands with no placeholder expressions
...
Fix #2017
4 years ago
Wenxuan
f8ae1786dd
Fix items width limit ( #2190 )
4 years ago
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`.
4 years ago
Junegunn Choi
43798fc2e8
Revert 1ab4289: Preview window of size 0 is allowed
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
92b7efafca
Ignore punctuation characters before and after preview offset column
...
This is to allow line numbers in a ctags output (e.g. 123;")
4 years ago
Junegunn Choi
aa5dae391b
Fix handling of unicode characters in query string
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
17dd833925
Add preview action for --bind
...
Fix #2010
Fix #1638
4 years ago
Junegunn Choi
c33258832e
Add refresh-preview action
4 years ago
Junegunn Choi
a7aa08ce07
Add backward-eof event for --bind
4 years ago
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.
4 years ago
Junegunn Choi
07b965bba1
Fix ANSI color offsets when --keep-right is used
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
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)
4 years ago
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.
4 years ago
Hiroki Konishi
2a60edcd52
Make pointer and multi-select marker customizable ( #1844 )
...
Add --pointer and --marker option which can provide additional context to the user
4 years ago
Junegunn Choi
8583b150c9
Fix inline info truncation
4 years ago
Tony Metzidis
f246fb2fc2
Show error message when failed to start preview command ( #1810 )
...
Fix #1637
5 years ago
Junegunn Choi
6e3af646b2
Draw spinner with Unicode characters
5 years ago
Junegunn Choi
3db6b88d82
Add preview-fg and preview-bg for --color
...
Close #1776
5 years ago
Junegunn Choi
2b725a4db5
Defer resetting multi-selection on reload
5 years ago
Junegunn Choi
af1a5f130b
Add clear-query and clear-selection
...
Close #1787
Related #1364
5 years ago
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'
5 years ago
Junegunn Choi
2886f06977
Fix --preview-window noborder with non-default background color
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
05b5f3f845
'reload' action should reset multi-selection
5 years ago
Junegunn Choi
deccf20a35
Fix regression of select-all
5 years ago
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
5 years ago
Alexandr
b4cccf23d4
Improvements to code quality and readability ( #1737 )
...
* Remove 1 unused field and 3 unused functions
unused elements fount by running
golangci-lint run --disable-all --enable unused
src/result.go:19:2: field `index` is unused (unused)
index int32
^
src/tui/light.go:716:23: func `(*LightWindow).stderr` is unused (unused)
func (w *LightWindow) stderr(str string) {
^
src/terminal.go:1015:6: func `numLinesMax` is unused (unused)
func numLinesMax(str string, max int) int {
^
src/tui/tui.go:167:20: func `ColorPair.is24` is unused (unused)
func (p ColorPair) is24() bool {
^
* Address warnings from "gosimple" linter
src/options.go:389:83: S1003: should use strings.Contains(str, ",,,") instead (gosimple)
if str == "," || strings.HasPrefix(str, ",,") || strings.HasSuffix(str, ",,") || strings.Index(str, ",,,") >= 0 {
^
src/options.go:630:18: S1007: should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (gosimple)
executeRegexp = regexp.MustCompile(
^
src/terminal.go:29:16: S1007: should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (gosimple)
placeholder = regexp.MustCompile("\\\\?(?:{[+sf]*[0-9,-.]*}|{q}|{\\+?f?nf?})")
^
src/terminal_test.go:92:10: S1007: should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (gosimple)
regex = regexp.MustCompile("\\w+")
^
* Address warnings from "staticcheck" linter
src/algo/algo.go:374:2: SA4006: this value of `offset32` is never used (staticcheck)
offset32, T := alloc32(offset32, slab, N)
^
src/algo/algo.go:456:2: SA4006: this value of `offset16` is never used (staticcheck)
offset16, C := alloc16(offset16, slab, width*M)
^
src/tui/tui.go:119:2: SA9004: only the first constant in this group has an explicit type (staticcheck)
colUndefined Color = -2
^
5 years ago
Junegunn Choi
a185593d65
Remove unnecessary map lookup
5 years ago
Junegunn Choi
525040238e
Fix behavior of 'deselect-all' to only deselect matches
...
To make it consistent with select-all and toggle-all.
Close #1364
5 years ago
Junegunn Choi
072066c49c
--multi to take optional argument to limit the number of selection
...
Close #1718
Related #688
5 years ago
Simon Fraser
391669a451
Add 'f' flag for placeholder expression ( #1733 )
...
If present the contents of the selection will be placed in a temporary file,
and the filename will be placed into the string instead.
5 years ago
Christian Muehlhaeuser
6577388250
os.Kill signal cannot be trapped ( #1641 )
5 years ago
Christian Muehlhaeuser
3b9dbd4146
Code cleanup: remove unnecessary string conversions ( #1642 )
5 years ago
Christian Muehlhaeuser
a1260feeed
Code cleanup ( #1640 )
...
- Replaced time.Now().Sub() with time.Since()
- Replaced unnecessary string/byte slice conversions
- Removed obsolete return and value assignment in range loop
5 years ago
Junegunn Choi
0e3e6ac442
Disallow preview scroll when the content just fits the window
5 years ago
Junegunn Choi
07d755df11
Fix regression of prompt display
5 years ago
Junegunn Choi
37585bd5a5
Disable preview scroll if the content fits on the screen
...
Close #1540
5 years ago
Junegunn Choi
89e24bf8f2
Fix ineffective break statement
5 years ago
Junegunn Choi
8d2fcd3518
Avoid unnecessary redraw of the preview window
5 years ago
Junegunn Choi
f39ab3875e
Redraw prompt only when necessary
5 years ago
Junegunn Choi
75972d59a8
Add --no-unicode option to draw borders in ASCII characters
...
Close ##1533
5 years ago
Junegunn Choi
2157f4f193
Add color option for gutter
...
fzf --color gutter:-1
Close #1529
Close #1468
5 years ago
Junegunn Choi
8dc1377efb
Export FZF_PREVIEW_LINES and FZF_PREVIEW_COLUMNS to preview process
...
fzf will still override LINES and COLUMNS as before but they may not
hold the correct values depending on the default shell.
Close #1314
5 years ago
Junegunn Choi
6c32148f90
Add placeholder expression for zero-based item index: {n} and {+n}
...
Close #1482
5 years ago
Junegunn Choi
5d16b28869
Fix tab width after ANSI reset code in preview window
...
Close #1423
6 years ago
Junegunn Choi
ca42e5e00a
Avoid unnecessary redraw of preview window
...
Close #1455
6 years ago