Junegunn Choi
8b299a29c7
Fix rendering of double-column borders
1 year ago
Junegunn Choi
0c5956c43c
Better support for Windows terminals
...
* Default border style on Windows is changed to `sharp` because some
Windows terminals are not capable of displaying `rounded` border
characters correctly.
* If your terminal emulator renders each box-drawing character with
2 columns, set `RUNEWIDTH_EASTASIAN` environment variable to `1`.
1 year ago
Junegunn Choi
e97e925efb
Resume preview following if the user scrolls the window to the bottom
1 year ago
Junegunn Choi
e0f0984da7
Allow re-enabling preview follow on change-preview-window
1 year ago
Junegunn Choi
4d22b5aaef
Disable preview follow after dragging the scrollbar
...
TBD: Should we re-enable follow once the offset reaches the bottom?
1 year ago
Junegunn Choi
80b8846318
Run preview command when preview window appears after resize ( #3113 )
...
# Start fzf in a small screen so that the preview window is hidden
fzf --bind 'ctrl-p:toggle-preview' --preview 'stat {}' --preview-window='right,50%,<100(down,50%,hidden)'
# Enlarge the screen until the preview window appears. It should not be empty.
1 year ago
Junegunn Choi
bf641faafa
Prevent fzf crashing on malformed remote action
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
ee5cdb9713
Reduce flickering of the scroll info panel on the preview window
1 year ago
Junegunn Choi
03d02d67f7
Fix cyclic scrolling with non-zero preview header lines
...
e.g. fzf --preview-window 'cycle,~2' --preview 'echo foo; echo bar; seq 100'
1 year ago
Junegunn Choi
5798145581
Fix preview border on tcell renderer
1 year ago
Junegunn Choi
c1cd0c09a2
Allow dragging of the preview window
1 year ago
Junegunn Choi
1fc1f47d80
Fix double-click on light renderer
1 year ago
Junegunn Choi
ec471a5bc2
Make sure two consecutive double clicks require four clicks
1 year ago
Junegunn Choi
a893fc0ca2
Clicks with different x coordinates shouldn't be seen as a double-click
1 year ago
Junegunn Choi
3761dc0433
Avoid superfluous update of scrollbar
1 year ago
Junegunn Choi
aa71a07fbe
Fix scrollbar rendering ( #3096 )
1 year ago
Junegunn Choi
088293f5e7
Restore mouse drag mode ( #3096 )
1 year ago
Junegunn Choi
7c660aa86e
Allow dragging of scrollbar
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
ec20dfe312
Only allow local requests
1 year ago
Junegunn Choi
924ffb5a35
Fix cache being immediately cleared on reload-sync
1 year ago
Junegunn Choi
62c7f59b94
Add transform-prompt(...) action
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
44b6336372
Make server channel buffered
...
Not to block an action that calls the API
fzf --listen 6266 --bind 'space:execute-silent:curl localhost:6266 -d up'
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
4dbe45640a
Remove $FZF_LISTEN_PORT
...
It is not worth the added complexity.
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
8e283f512a
Fix bind spec parser
1 year ago
Junegunn Choi
73162a4bc3
Rewrite bind spec parser
1 year ago
Junegunn Choi
1a9761736e
Add time and size limit to remote requests
1 year ago
Junegunn Choi
fd1f7665a7
Abort fzf if --listen port is unavailable
1 year ago
Junegunn Choi
cf69b836ac
Only trim CR and NF from the submitted expression
...
So the trailing space in the following case is respected.
curl -XPOST localhost:6266 -d "change-prompt:$(date)> "
1 year ago
Junegunn Choi
a7a771b92b
Break out of jump mode when any action is submitted to the server
1 year ago
Junegunn Choi
def011c029
Fix parse error of actions with arguments
1 year ago
Junegunn Choi
4b055bf260
Rewrite HTTP server without net/http
...
This cuts down the binary size from 5.7MB to 3.3MB.
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
0ad30063ff
Rename previous-history to prev-history
...
previous-history is still supported for backward compatibility
1 year ago
Junegunn Choi
7812c64a31
Fix uninitialized colors in base themes
...
Fix #3079
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
OHZEKI Naoki
6b7a543c82
Add more util tests ( #3062 )
...
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
1 year ago
Junegunn Choi
2ba68d24f2
Do not erase info separator before redrawing it
1 year ago
Bruno Heridet
46877e0a92
test(eventbox): remove obsolete EvtClose const ( #3059 )
2 years 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
Zhizhen He
2a54e3d770
Fix typos in the source code ( #3048 )
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
f984aa0d2c
Fix --border-label and --preview-label on tcell renderer
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
22cbd9fa58
Implement height range (--height ~[VALUE][%])
...
Close #2953
2 years ago
Junegunn Choi
731daf0f37
Fix tcell renderer
...
Fix #2954
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
Charlie Vieth
209d5e8e90
ansi: speed up escape sequence parsing ( #2927 )
2 years ago
Junegunn Choi
c1c355160d
Support border-{up,down} as the synonyms for border-{top,bottom}
2 years ago
Junegunn Choi
83515d5610
Update ANSI test cases
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
f4fd53211a
Reformat comments adhere to gofmt
2 years ago
Junegunn Choi
19f9bbca0d
Allow specifying fzf options in $FZF_TMUX_OPTS without '--'
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
bbbcd780c9
Allow "--version" to be used as the argument to --query, --header, et al.
...
But why?
2 years ago
Junegunn Choi
18f7230662
Fix mouse location in --height mode
...
Fix #2900
2 years ago
Junegunn Choi
3af5b7f2ac
Do not validate other options when --version is present
...
Close #2690
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
0d06c28b19
Fix delimiter regex to properly support caret (^)
...
Fix #2861
2 years ago
Junegunn Choi
821fc9feed
Fix failing test case
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
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.
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
f8b713f425
Remove redundant state update on reload
...
Related: 5209e95
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
b88eb72ac2
Modernize build tags
2 years ago
Junegunn Choi
a06671b47f
Increase TTY buffer limit
...
Kitty's shell intergration generates a long sequence of key presses in
certain cases. As long as the length of the sequence is finite, fzf can
process it.
Close #2748
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
ce9af687bc
Remove unused code
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
673c5d886d
Add 'put' action for putting the character to the prompt
...
fzf --bind 'space:preview(date)+put'
Close #2456
3 years ago
Junegunn Choi
7bff4661f6
Add --header-first option to display header before prompt line
...
Close #2422
3 years ago
Junegunn Choi
02cee2234d
Implement --scroll-off=LINES
...
Close #2533
3 years ago
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)
3 years ago
Vlastimil Ovčáčík
a33c011c21
Test escaping of powershell commands on Windows
3 years ago
Rashil Gandhi
7c3f42bbba
Fix powershell escaping
3 years ago
Junegunn Choi
edac9820b5
Cache cygpath result
...
No need to repeatedly run cygpath process because $SHELL never changes.
3 years ago
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
3 years ago
Junegunn Choi
97ae8afb6f
Reload should update preview window
...
Fix #2644
3 years ago
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.
3 years ago
Junegunn Choi
50eb2e3855
Render spinner on info line during "reload"
...
Fix #2637
3 years ago
Vlastimil Ovčáčík
b8aa2d2c32
Minor refactoring tcell library from tui.go to tcell.go
...
To prevent including tcell library in non-windows builds.
3 years ago
Vlastimil Ovčáčík
0ff885461b
Add mouse support to the FullscreenRenderer
3 years ago
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.
3 years ago
Vlastimil Ovčáčík
09700f676b
Add CtrlCaret keyboard event to FullscreenRenderer
3 years ago
Vlastimil Ovčáčík
4271e9cffa
Fix Ctrl+Space key combination to emit CtrlSpace instead of Rune ' '
3 years ago
Vlastimil Ovčáčík
f3dc8a10d5
Add ability to type AltGr characters in FullscreenRenderer on Windows.
3 years ago
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).
3 years ago
Junegunn Choi
4173e94c6f
Do not check for --height support on --version
...
https://github.com/junegunn/fzf.vim/issues/1329
3 years ago
Hiroki Konishi
261d3d3340
fix: replace broken links with archived ones
3 years ago
Hiroki Konishi
15e20fcae1
fix: spelling `Refence` -> `Reference`
3 years ago
Vlastimil Ovčáčík
f4f47f5fe3
Minor changes
...
- obsolete todo removed, I tested the ev.ch for " " char and it works just
fine
3 years ago
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.
3 years ago
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
3 years ago
Junegunn Choi
0f02fc0c77
Reset {n} after reload
...
Fix #2611
3 years ago
Keating950
3f90fb42d8
Fix spelling error (Extention -> Extension) ( #2589 )
3 years ago
Michael Kelley
c21e9edad4
Restore VT hack for Windows ( #2580 )
...
- restore VT enable hack
- resolve an issue reported in https://github.com/kelleyma49/PSFzf
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
3f75a8369f
Replace RuneWidth to StringWidth to handle grapheme clusters
...
Fix #2482
3 years ago
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%
3 years ago
Junegunn Choi
3a2015ee26
Fix minimum preview window height
3 years ago
Junegunn Choi
3d37a5ba1d
Apply preview-bg color to preview border of all shapes
3 years ago
Junegunn Choi
15f4cfb6d9
More border optins for preview window
...
Close #2431
3 years ago
Junegunn Choi
be36de2482
Ignore more ANSI escape sequences
...
Fix #2420
3 years ago
Junegunn Choi
8b36a4cb19
Speed up preview switching when doing partial rendering
...
Fix #2417
3 years ago
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
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
Mitsuo Heijo
2e353aee96
Replace golang.org/x/crypto/ssh/terminal with golang.org/x/term ( #2395 )
...
See https://github.com/golang/go/issues/31044
3 years ago
Junegunn Choi
1b08f43f82
Advanced preview scroll offset expression to better support fixed header
3 years ago
Junegunn Choi
b24a2e2fdc
Fix regression in preview window rendering
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
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)
```
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
bb0502ff44
Check gofmt in `make test`
3 years ago
Junegunn Choi
76bbf57b3d
Add select and deselect actions
...
Close #2358
3 years ago
odeson24
9fe1a7b373
Remove redundant assignment ( #2356 )
...
Co-authored-by: Ryan Ou <ryanou@aetherai.com>
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
Junegunn Choi
1cfeec0ca3
Fix segmentation fault on \x1b[0K
...
Fix #2339
3 years ago
freddii
58ac1fb2fa
Fix typos in source code ( #2322 )
3 years ago
Junegunn Choi
e922704f72
Migrate to GitHub Actions
3 years ago
E.L.K
eaa0c52b45
Fix selection changed on terminal resize ( #2306 )
3 years ago
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)?)
```
3 years ago
Junegunn Choi
8c533e34ea
0.25.0
3 years ago
Junegunn Choi
090dee857f
Do not disable mouse on SIGCONT before SIGSTOP
...
Fix #2161
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
7136cfc68b
Fix alt-, for --expect
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
f37ccaa64f
Prevent index out of range error
...
Fix #2293
3 years ago
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
3 years ago
Junegunn Choi
f502725120
Fix slice bound error on extremely narrow screen
3 years ago
Junegunn Choi
2ec382ae0e
Add --preview-window follow option
3 years ago
Junegunn Choi
6d647e13ff
Add change-prompt action
...
Close #2270
4 years ago
Junegunn Choi
d2af3ff98d
Change how hl:-1 or hl+:-1 is applied to text with background color
4 years ago
Junegunn Choi
2983426771
Fix unit tests
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
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
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
15d351b0f0
Use default bg color when fg is set to -1 with reverse attribute
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
e7ca237b07
Fix nil error on --color=bw
...
Fix #2229
4 years ago
Junegunn Choi
eaa413c566
Fix error when preview command failed to start
4 years ago
Junegunn Choi
552414978e
0.24.0-rc1
4 years ago
Junegunn Choi
607081bbaa
[vim] Download latest binary to meet version requirement
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
9b946f2b7a
Fix preview window of tcell renderer
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
69dffd78a6
Do not assume that each character takes at least 1 column
...
Fixes #2163 , though this is not a proper fix to the problem.
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
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
1d8bd11b67
Fix preview window size calculation
4 years ago
Junegunn Choi
bafb99d520
Allow splitting preview-window options
...
e.g. --preview-window sharp --preview-window cycle
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
Michael Kelley
ae15eda546
Add truecolor support for Windows, if available ( #2156 )
...
- Update to latest tcell which has 24 bit Windows support
- light renderer under Windows defaults to Dark256, if possible
- Respect TCELL_TRUECOLOR
- Remove tcell 1.3 references
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
1ab4289ad6
Disallow preview-window size of zero
4 years ago
Junegunn Choi
e2ae1b249c
0.22.0
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
f092e4038f
Smart match of accented characters
...
Fix #1618
4 years ago
Junegunn Choi
aa5dae391b
Fix handling of unicode characters in query string
4 years ago
Junegunn Choi
a61150a96c
Allow negative field index in preview-window scroll offset
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
e0217e8c79
Ignore cursor position report
...
Close #2081
4 years ago
Junegunn Choi
3ab1c42266
Use rune characters instaed of numbers in code
4 years ago
Junegunn Choi
199bc3f0ad
Merge branch 'master' into devel
4 years ago
Junegunn Choi
17dd833925
Add preview action for --bind
...
Fix #2010
Fix #1638
4 years ago
Khon Trieu
4ec144c969
Accented character normalization for Vietnamese characters ( #2090 )
...
Fix #2088
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
Jack Bates
5deaf58928
Run rubocop --auto-correct --disable-uncorrectable ( #1967 )
...
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
4 years ago
Junegunn Choi
334a4fa159
0.21.1
4 years ago
Alexandr
a6a732e1fc
Update AtomicBool to use atomic memory operation ( #1939 )
4 years ago
Junegunn Choi
07b965bba1
Fix ANSI color offsets when --keep-right is used
4 years ago
Junegunn Choi
c39113ee41
[windows] Do not include directories in the list
...
Fix #1926
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
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
ba82f0bef9
Do not read more than 10K characters from /dev/tty
...
This might help with #1456 where fzf hangs consuming CPU resources.
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
Junegunn Choi
dd49e41c42
Ignore xterm OSC control sequences
...
- OSC Ps ; Pt BEL
- OSC Ps ; Pt ST
Fix #1415
4 years ago
Junegunn Choi
4c9cab3f8a
Fix prefix/suffix/equal matcher to trim whitespaces
...
- Prefix matcher will trim leading whitespaces only when the pattern
doesn't start with a whitespace
- Suffix matcher will trim trailing whitespaces only when the pattern
doesn't end with a whitespace
- Equal matcher will trim leading whitespaces only when the pattern
doesn't start with a whitespace, and trim trailing whitespaces only
when the pattern doesn't end with a whitespace
Previously, only suffix matcher would trim whitespaces unconditionally.
Fix #1894
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
Junegunn Choi
dca56da0ef
Add 'insert' key for --bind
...
Close #1744
4 years ago
Junegunn Choi
ec75d16ea8
Fix panic on unexpected escape sequences
4 years ago
Junegunn Choi
567c8303bf
Update ANSI processor to handle "rmso" and "rmul"
...
Fix #1877
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
Hiroki Konishi
d61ac32d7b
Fix bug of validation of jump-labels ( #1875 )
...
When jump-labels are specified with `--jump-labels=` way, validation was
not carried out.
4 years ago
Junegunn Choi
8583b150c9
Fix inline info truncation
4 years ago