Junegunn Choi
673c5d886d
Add 'put' action for putting the character to the prompt
...
fzf --bind 'space:preview(date)+put'
Close #2456
2021-11-04 00:49:05 +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
Vlastimil Ovčáčík
e0dd2be3fb
Document escaping and expanding of quotes on Windows
...
Parsers included:
- go parser (well, this is easily dealt with using `` strings)
- win32 (shell-api) parser
- powershell parser (for powershell commands)
- powershell parsing rules for calling native commands
- internal parsers of select regex applications (like grep)
2021-11-02 15:56:20 +09:00
Vlastimil Ovčáčík
a33c011c21
Test escaping of powershell commands on Windows
2021-11-02 15:56:20 +09:00
Rashil Gandhi
7c3f42bbba
Fix powershell escaping
2021-11-02 15:56:20 +09:00
Junegunn Choi
edac9820b5
Cache cygpath result
...
No need to repeatedly run cygpath process because $SHELL never changes.
2021-10-25 18:46:59 +09:00
Rashil Gandhi
84a47f7102
Respect SHELL env var on Windows ( #2641 )
...
This makes fzf respect SHELL environment variable on Windows, like it does on *nix, whenever defined.
Close #2638
2021-10-23 01:09:47 +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
Vlastimil Ovčáčík
b8aa2d2c32
Minor refactoring tcell library from tui.go to tcell.go
...
To prevent including tcell library in non-windows builds.
2021-10-03 01:39:30 +09:00
Vlastimil Ovčáčík
0ff885461b
Add mouse support to the FullscreenRenderer
2021-10-03 01:39:30 +09:00
Vlastimil Ovčáčík
ca43f95fb1
Fix Backspace key to emit BSpace and AltBS events instead of CtrlH
...
CtrlH events are still sent when appropriate. I have adjusted
FullscreenRenderer to match the LightRenderer's behaviour, which seems
to be correct.
2021-10-03 01:39:30 +09:00
Vlastimil Ovčáčík
09700f676b
Add CtrlCaret keyboard event to FullscreenRenderer
2021-10-03 01:39:30 +09:00
Vlastimil Ovčáčík
4271e9cffa
Fix Ctrl+Space key combination to emit CtrlSpace instead of Rune ' '
2021-10-03 01:39:30 +09:00
Vlastimil Ovčáčík
f3dc8a10d5
Add ability to type AltGr characters in FullscreenRenderer on Windows.
2021-10-03 01:39:30 +09:00
Vlastimil Ovčáčík
00fb486f6a
[tests] Add testing of keyboard events in FullscreenRenderer.GetChar()
...
This contains one test case of each tcell.Key* event type that can be
sent to and subsequently processed in fzf's GetChar(). The test cases
describe status quo, and all of them PASS.
Small function util.ToTty() was added. It is similar to util.IsTty(),
but for stdout (hence the To preposition).
2021-10-03 01:39:30 +09:00
Junegunn Choi
4173e94c6f
Do not check for --height support on --version
...
https://github.com/junegunn/fzf.vim/issues/1329
2021-09-29 20:17:44 +09:00
Hiroki Konishi
261d3d3340
fix: replace broken links with archived ones
2021-09-28 18:07:22 +09:00
Hiroki Konishi
15e20fcae1
fix: spelling Refence
-> Reference
2021-09-28 18:07:22 +09:00
Vlastimil Ovčáčík
f4f47f5fe3
Minor changes
...
- obsolete todo removed, I tested the ev.ch for " " char and it works just
fine
2021-09-24 16:04:36 +09:00
Vlastimil Ovčáčík
71d11de7ca
[tests] Change tests to output to stdout only with verbose flag
...
This hides stdout output unless "go test -v" was run.
2021-09-24 16:04:36 +09:00
Vlastimil Ovčáčík
88d74a15aa
Change the tests to run on Windows ( #2615 )
...
Most of the "expected" strings in terminal.go test were changed to
"text/template" values. Quotes in those string were parametrized in
the templates. Two functions handling templates were added
for convenience.
Templates has the advantage of:
- parametrize repetitive strings inside "expected" values
- inner and outer quotes were parametrized in templates
- long and confusing test values are more readable
- templates can be localized for other operating systems
2021-09-24 09:45:06 +09:00
Junegunn Choi
0f02fc0c77
Reset {n} after reload
...
Fix #2611
2021-09-14 20:36:10 +09:00
Keating950
3f90fb42d8
Fix spelling error (Extention -> Extension) ( #2589 )
2021-08-17 16:40:24 +09:00
Michael Kelley
c21e9edad4
Restore VT hack for Windows ( #2580 )
...
- restore VT enable hack
- resolve an issue reported in https://github.com/kelleyma49/PSFzf
2021-08-15 16:01:50 +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
8255aa23f4
Fix bug where --read0
not properly displaying long lines
...
Fix #2508
2021-06-01 16:55:51 +09:00
Junegunn Choi
a4bc08f5a3
Allow specifying 16 base ANSI colors by their names
...
Close #2502
2021-05-26 19:35:26 +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
da1f645670
Change --preview-window delimiter from : to , for consistency
...
Delimiter : was chosen when --preview-option only supported position and
size attributes. e.g. up:50%
2021-04-06 20:10:55 +09:00
Junegunn Choi
3a2015ee26
Fix minimum preview window height
2021-04-06 20:05:54 +09:00
Junegunn Choi
3d37a5ba1d
Apply preview-bg color to preview border of all shapes
2021-04-06 18:01:29 +09:00
Junegunn Choi
15f4cfb6d9
More border optins for preview window
...
Close #2431
2021-04-06 17:37:11 +09:00
Junegunn Choi
be36de2482
Ignore more ANSI escape sequences
...
Fix #2420
2021-04-06 00:51:39 +09:00
Junegunn Choi
8b36a4cb19
Speed up preview switching when doing partial rendering
...
Fix #2417
2021-04-04 13:43:16 +09:00
Michael Kelley
c8cd94a772
Ensure proper ESC seq handling under Windows preview mode ( #2430 )
...
- Increase go routine buffer size
- Add time wait for nonblock getchr()
- Resolve #2429
2021-04-04 13:19:43 +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
Mitsuo Heijo
2e353aee96
Replace golang.org/x/crypto/ssh/terminal with golang.org/x/term ( #2395 )
...
See https://github.com/golang/go/issues/31044
2021-03-20 14:38:34 +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
b24a2e2fdc
Fix regression in preview window rendering
2021-03-12 21:23:16 +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
Charlie Vieth
5a874ae241
Speed up ANSI code processing ( #2368 )
...
This commit speeds up the parsing/processing of ANSI escape codes by
roughly 7.5x. The speedup is mostly accomplished by replacing the regex
with dedicated parsing logic (nextAnsiEscapeSequence()) and reducing the
number of allocations in extractColor().
#### Benchmarks
```
name old time/op new time/op delta
ExtractColor-16 4.89µs ± 5% 0.64µs ± 2% -86.87% (p=0.000 n=9+9)
name old speed new speed delta
ExtractColor-16 25.6MB/s ± 5% 194.6MB/s ± 2% +661.43% (p=0.000 n=9+9)
name old alloc/op new alloc/op delta
ExtractColor-16 1.37kB ± 0% 0.31kB ± 0% -77.31% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
ExtractColor-16 48.0 ± 0% 4.0 ± 0% -91.67% (p=0.000 n=10+10)
```
2021-03-11 19:34:50 +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
bb0502ff44
Check gofmt in make test
2021-02-28 18:28:21 +09:00
Junegunn Choi
76bbf57b3d
Add select and deselect actions
...
Close #2358
2021-02-25 21:23:05 +09:00
odeson24
9fe1a7b373
Remove redundant assignment ( #2356 )
...
Co-authored-by: Ryan Ou <ryanou@aetherai.com>
2021-02-17 10:28:43 +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
Junegunn Choi
1cfeec0ca3
Fix segmentation fault on \x1b[0K
...
Fix #2339
2021-02-01 22:59:11 +09:00
freddii
58ac1fb2fa
Fix typos in source code ( #2322 )
2021-01-15 10:10:09 +09:00
Junegunn Choi
e922704f72
Migrate to GitHub Actions
2021-01-13 19:10:24 +09:00
E.L.K
eaa0c52b45
Fix selection changed on terminal resize ( #2306 )
2021-01-04 04:20:31 +09:00
Elliott Sales de Andrade
82791f7efc
Use more explicit int-to-string conversion.
...
This fixes the following errors with Go 1.15:
```
src/options.go:452:69: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
src/options.go:463:33: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
```
2021-01-03 14:38:09 +09:00
Junegunn Choi
8c533e34ea
0.25.0
2021-01-03 00:56:11 +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
7136cfc68b
Fix alt-, for --expect
2020-12-31 03:38:46 +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
e0a22e76f8
Make --color attributes mergeable
...
So you can override the colors and still have the text attributes
# Default colors and attributes
fzf
export FZF_DEFAULT_OPTS='--color hl👎 underline,hl+👎 underline:reverse'
# Default colors with underline+reverse attributes
fzf
# Different colors with underline+reverse attributes
fzf --color hl:176,hl+:177
Related: https://github.com/junegunn/fzf.vim/issues/1197#issuecomment-739804363
2020-12-07 19:11:00 +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
d2af3ff98d
Change how hl:-1 or hl+:-1 is applied to text with background color
2020-12-04 19:27:43 +09:00
Junegunn Choi
2983426771
Fix unit tests
2020-11-25 13:08:28 +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
3fe8eeedc5
Fix handling of arrow keys with alt and/or shift modifier
...
Fix #2254
- Properly handle extra chars in the buffer. Patch suggested by @mckelly2833.
- Support alt-arrow sequences in \e[1;3A format
- Support shift-alt-arrow sequences in \e[1;10A format
2020-11-24 19:51:19 +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
15d351b0f0
Use default bg color when fg is set to -1 with reverse attribute
2020-11-03 20:51:44 +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
e7ca237b07
Fix nil error on --color=bw
...
Fix #2229
2020-10-29 01:27:08 +09:00
Junegunn Choi
eaa413c566
Fix error when preview command failed to start
2020-10-27 21:36:38 +09:00
Junegunn Choi
552414978e
0.24.0-rc1
2020-10-27 11:07:27 +09:00
Junegunn Choi
607081bbaa
[vim] Download latest binary to meet version requirement
2020-10-27 01:01:58 +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
9b946f2b7a
Fix preview window of tcell renderer
2020-10-25 21:43:53 +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
69dffd78a6
Do not assume that each character takes at least 1 column
...
Fixes #2163 , though this is not a proper fix to the problem.
2020-10-23 23:32:10 +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