Junegunn Choi
607eacf8c7
Allow unbind(focus)
...
Fix #3279
1 year ago
Junegunn Choi
7a049644a8
Fix panic when trying to render preview window of a negative height
...
Fix #3292
1 year ago
Junegunn Choi
17a13f00f8
Allow customizing scrollbar of the preview window via --scrollbar=xy
1 year ago
Junegunn Choi
43436e48e0
Add new border style: 'block'
1 year ago
Junegunn Choi
5a39102405
Allow customizing the color of preview scrollbar via 'preview-scrollbar'
1 year ago
Junegunn Choi
94999101e3
Fix the behavior of change-preview-window action ( #3280 )
...
* change-preview-window restores the initial preview window options,
and overrides the properties that are specified
* However, 'hidden' property is treated differently. It is set to
'false' if the specified properties of the action is non-empty.
* cf. toggle-preview takes the "current" preview window options and
toggles the 'hidden' property.
1 year ago
Junegunn Choi
e619b7c4f4
Fix the background color of the scrollbar inside the preview window
1 year ago
Junegunn Choi
b7c2e8cb67
Fix caching when reload and query change triggered by the same binding
1 year ago
Junegunn Choi
fb76893e18
0.40.0
1 year ago
Junegunn Choi
88d812fe82
Do not display trailing carriage returns in the preview window
...
Close #3269
1 year ago
Junegunn Choi
77f9f4664a
Fix search not triggered when query change and reload happen at the same time
...
Fix #3268
1 year ago
Junegunn Choi
cf95e44cb4
Add 'zero' event
...
Close #3263
1 year ago
Junegunn Choi
65dd2bb429
Add 'track' action
1 year ago
Junegunn Choi
6be855be6a
Add change-header and transform-header
...
Close #3237
1 year ago
Junegunn Choi
0c61d81713
Add toggle-track action
1 year ago
Junegunn Choi
7c6f5dba63
Fixed --track when used with --tac
...
Fix #3234
1 year ago
Junegunn Choi
96670d5f16
Disallow using --track with --tac
...
Close #3234
1 year ago
tyama711
fb019d43bf
Fix a bug of height range with -1 or -0 ( #3226 )
...
Fixed a bug that when both heightUnknown and deferred are true, deferred is not properly reset and the program terminates abnormally.
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
1 year ago
Junegunn Choi
8ec917b1c3
Add 'one' event
...
Close #2629
Close #2494
Close #459
2 years ago
Junegunn Choi
1c7534f009
Add --track option to track the current selection
...
Close #3186
Related #1890
2 years ago
Junegunn Choi
60f37aae2f
Respect 'regular' attribute in 'bw' base theme
...
Don't make the text bold if an element is explicitly specified as
'regular'.
Fix #3222
2 years ago
Junegunn Choi
d7daf5f724
Render CR and LF as ␍ and ␊
...
Close #2529
2 years ago
Junegunn Choi
fcd7e8768d
Omit port number in `--listen` for automatic port assignment
...
Close #3200
2 years ago
Junegunn Choi
3c34dd8275
Fix extra new line in the preview window
...
When a colored text ends at the right end of the window
Fix #3209
2 years ago
Zhizhen He
3364d4d147
Add spell check workflow ( #3183 )
2 years ago
Junegunn Choi
b1459c79cf
Make sure that the query before the cursor is not hidden
...
Close #3176
2 years ago
Junegunn Choi
4e305eca26
become: Set stdin to /dev/tty
2 years ago
Junegunn Choi
96c3de12eb
Run 'become' only when the command template is properly evaluated
2 years ago
Junegunn Choi
6ea38b4438
Add become(...) action that replaces current fzf process
...
Close #3159
2 years ago
Junegunn Choi
f7447aece1
Code cleanup
2 years ago
Junegunn Choi
aa2b9ec476
Add 'show-preview' and 'hide-preview'
...
For cases where 'toggle-preview' is not enough
2 years ago
Junegunn Choi
3ee00f8bc2
toggle-preview should not show empty preview window
2 years ago
Junegunn Choi
fccab60a5c
`--preview-window 0,hidden` should not execute the preview command
...
Until `toggle-preview` action is triggered
Fix #3149
2 years ago
Junegunn Choi
95a7661bb1
Sanitize input strings that should be a single line
2 years ago
Junegunn Choi
618d317803
Support custom separator of inline info
...
Close #2030
Close #3084
2 years ago
Junegunn Choi
ae897c8cdb
No need to touch mouse flag if it's already false
2 years ago
Junegunn Choi
d0a0f3c052
Temporarily disable mouse mode when switching to an external command
2 years ago
Junegunn Choi
91b9591b10
Reenable mouse mode when coming back from an external program
...
Close #3141
2 years ago
Junegunn Choi
aa7361337d
Make test case pass on 32-bit platforms
...
Close #3127
2 years ago
Junegunn Choi
284d77fe2e
Add 'focus' event
...
Can we find a better name? I have considered the followings.
* 'point', because "the pointer" points to the current item.
* 'shift', 'switch', 'move', etc. These are not technically correct
because the current item can change without cursor movement (--tac,
reload, search update)
* 'change' is already taken. 'change-current' feels a bit wordy and
sounds wrong, 'current-changed' is wordy and doesn't go well with the
other event names
* 'target', not straightforward
Close #3053
2 years ago
Junegunn Choi
826178f1e2
Do not restore terminal state while running an external command
2 years ago
Junegunn Choi
d51980a3f5
Add 'transform-border-label' and 'transform-preview-label'
2 years ago
jpcrs
c3d73e7ecb
Add change-border-label and change-preview-label actions, update man
2 years ago
Junegunn Choi
b077f6821d
Action argument in enclosed form should allow new lines
...
Close #3138
2 years ago
Junegunn Choi
2023011763
0.36.0
2 years ago
Junegunn Choi
dc8da605f9
Fix rendering of double-column borders on light renderer
2 years ago
Junegunn Choi
8b299a29c7
Fix rendering of double-column borders
2 years 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`.
2 years ago
Junegunn Choi
e97e925efb
Resume preview following if the user scrolls the window to the bottom
2 years ago
Junegunn Choi
e0f0984da7
Allow re-enabling preview follow on change-preview-window
2 years ago
Junegunn Choi
4d22b5aaef
Disable preview follow after dragging the scrollbar
...
TBD: Should we re-enable follow once the offset reaches the bottom?
2 years 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.
2 years ago
Junegunn Choi
bf641faafa
Prevent fzf crashing on malformed remote action
2 years ago
Junegunn Choi
23d8b78ce1
Allow toggling of alternative preview window layout that is hidden
...
Fix #3113
2 years ago
Junegunn Choi
3b2244077d
Add scrollbar to the preview window
2 years ago
Junegunn Choi
ee5cdb9713
Reduce flickering of the scroll info panel on the preview window
2 years 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'
2 years ago
Junegunn Choi
5798145581
Fix preview border on tcell renderer
2 years ago
Junegunn Choi
c1cd0c09a2
Allow dragging of the preview window
2 years ago
Junegunn Choi
1fc1f47d80
Fix double-click on light renderer
2 years ago
Junegunn Choi
ec471a5bc2
Make sure two consecutive double clicks require four clicks
2 years ago
Junegunn Choi
a893fc0ca2
Clicks with different x coordinates shouldn't be seen as a double-click
2 years ago
Junegunn Choi
3761dc0433
Avoid superfluous update of scrollbar
2 years ago
Junegunn Choi
aa71a07fbe
Fix scrollbar rendering ( #3096 )
2 years ago
Junegunn Choi
088293f5e7
Restore mouse drag mode ( #3096 )
2 years ago
Junegunn Choi
7c660aa86e
Allow dragging of scrollbar
2 years ago
Junegunn Choi
435d8fa0a2
Colors for 'separator' and 'scrollbar' will default to that for 'border'
2 years ago
Junegunn Choi
5cd6f1d064
Add scrollbar
...
Close #3096
2 years ago
Junegunn Choi
ec20dfe312
Only allow local requests
2 years ago
Junegunn Choi
924ffb5a35
Fix cache being immediately cleared on reload-sync
2 years ago
Junegunn Choi
62c7f59b94
Add transform-prompt(...) action
2 years ago
Junegunn Choi
d649f5d826
Always execute preview command if {q} is in the template
...
Even when {q} is empty. Because, why not?
While this can be seen as a breaking change, there is an easy workaround
to keep the old behavior.
# This will show // even when the query is empty
: | fzf --preview 'echo /{q}/'
# But if you don't want it,
: | fzf --preview '[ -n {q} ] || exit; echo /{q}/'
Close #2759
2 years ago
Junegunn Choi
6c37177cf5
Add reload-sync action
...
Close #2816
2 years ago
Junegunn Choi
14775aa975
Add 'load' event that is triggered when the input stream is complete
...
and the first search (with or without query) is complete
2 years 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'
2 years ago
Junegunn Choi
36d2bb332b
Add transform-query(...) action
...
Test case authored by @SpicyLemon
Close #1930
Close #2465
Close #2559
Close #2509 (e.g. fzf --bind 'space:transform-query:printf %s%s {q} {}')
2 years ago
Junegunn Choi
4dbe45640a
Remove $FZF_LISTEN_PORT
...
It is not worth the added complexity.
2 years ago
Junegunn Choi
4b3f0b9f08
Allow put action with an argument i.e. put(...)
2 years ago
Junegunn Choi
12af069dca
Add pos(...) action to move the cursor to the numeric position
...
# Put the cursor on the 10th item
seq 100 | fzf --sync --bind 'start:pos(10)'
# Put the cursor on the 10th to last item
seq 100 | fzf --sync --bind 'start:pos(-10)'
Close #3069
Close #395
2 years ago
Junegunn Choi
b7bb973118
Revert "Add GET endpoints for getting the state of the finder"
...
This reverts commit 750b2a6313
.
This can cause a deadlock if the endpoints are accessed in the core event
loop via execute action.
fzf --listen 6266 --bind 'space:execute:curl localhost:6266'
Technically, there's no reason to use the API because the information is
already available via `{}` and `{q}`, but I'd like to completely remove
the risk of misuse.
2 years ago
Junegunn Choi
750b2a6313
Add GET endpoints for getting the state of the finder
...
* GET / (or GET /current)
* GET /query
2 years ago
Junegunn Choi
8e283f512a
Fix bind spec parser
2 years ago
Junegunn Choi
73162a4bc3
Rewrite bind spec parser
2 years ago
Junegunn Choi
1a9761736e
Add time and size limit to remote requests
2 years ago
Junegunn Choi
fd1f7665a7
Abort fzf if --listen port is unavailable
2 years 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)> "
2 years ago
Junegunn Choi
a7a771b92b
Break out of jump mode when any action is submitted to the server
2 years ago
Junegunn Choi
def011c029
Fix parse error of actions with arguments
2 years ago
Junegunn Choi
4b055bf260
Rewrite HTTP server without net/http
...
This cuts down the binary size from 5.7MB to 3.3MB.
2 years 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
2 years ago
Junegunn Choi
51c518da1e
Add change-query(...) action
2 years ago
Junegunn Choi
18e3b38c69
Add 'next-selected' and 'prev-selected' actions
...
Close #2749
2 years ago
Junegunn Choi
0ad30063ff
Rename previous-history to prev-history
...
previous-history is still supported for backward compatibility
2 years ago
Junegunn Choi
7812c64a31
Fix uninitialized colors in base themes
...
Fix #3079
2 years ago
Junegunn Choi
3d2376ab52
Add color name 'preview-label' ( #3053 )
2 years 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
2 years ago
Junegunn Choi
8f4c89f50e
Make 'double-click' behave the same as 'enter' by default
...
Close #3061
2 years ago
OHZEKI Naoki
6b7a543c82
Add more util tests ( #3062 )
...
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2 years ago
Junegunn Choi
2ba68d24f2
Do not erase info separator before redrawing it
2 years 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
3 years ago
Junegunn Choi
d56f605b63
Add `rebind` action for restoring bindings after `unbind`
...
Fix #2752
Close #2564
3 years ago
Junegunn Choi
f8b713f425
Remove redundant state update on reload
...
Related: 5209e95
3 years ago
Junegunn Choi
5209e95bc7
Make preview updated when reload and change-query are combined
...
Fix #2744
3 years ago
Junegunn Choi
ef67a45702
Add --ellipsis=.. option
...
Close #2432
Also see
- #1769
- https://github.com/junegunn/fzf/pull/1844#issuecomment-586663660
3 years ago
Junegunn Choi
b88eb72ac2
Modernize build tags
3 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
3 years ago
Junegunn Choi
cd23401411
Fix rendering of the prompt line when overflow occurs with `--info=inline`
...
Fix #2692
3 years ago
Junegunn Choi
ce9af687bc
Remove unused code
3 years ago
Junegunn Choi
43f0d0cacd
change-preview-window to take multiple option sets separated by '|'
...
So you can "rotate" through the different options with a single binding.
fzf --preview 'cat {}' \
--bind 'ctrl-/:change-preview-window(70%|down,40%,border-horizontal|hidden|)'
Close #2376
3 years ago
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
3 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