Junegunn Choi
690d5e6dbd
Fix scrollability of the preview window when preview offset is specified
...
This should not be scrollable
fzf --preview 'seq $FZF_PREVIEW_LINES' --preview-window '~5'
2023-10-20 17:37:08 +09:00
Junegunn Choi
a76c055b63
Fix inconsistent preview window width with --border
...
fzf --preview 'cat {}' --bind 'space:change-preview-window:up|right' --border
2023-10-20 16:03:41 +09:00
Junegunn Choi
3df06a1c68
Fix offset-up and offset-down with --layout=reverse ( #3456 )
2023-10-12 19:14:03 +09:00
Junegunn Choi
404b6a864b
Add offset-up and offset-down
...
# Scrolling will behave similarly to CTRL-E and CTRL-Y of vim
fzf --bind scroll-up:offset-up,scroll-down:offset-down \
--bind ctrl-y:offset-up,ctrl-e:offset-down \
--scroll-off=5
Close #3456
2023-10-11 12:53:51 +09:00
Junegunn Choi
391aa14845
Add mouse events for --bind
...
Close #3473
2023-10-11 09:42:12 +09:00
Junegunn Choi
d8188fce7b
Experimental support for Kitty image protocol in preview window
...
Close #3228
* Works inside and outside of tmux
* There is a problem where fzf unnecessarily displays the scroll offset
indicator at the topbright of the screen when the image just fits the
preview window. This is because `kitty icat` generates an extra line
after the image area.
# A 5-row images; an extra row at the end confuses fzf
["\e_Ga ... \e[9C̅̅ࠪ̅̍ࠪ̅̎ࠪ̅̐ࠪ̅̒ࠪ̅̽ࠪ̅̾ࠪ̅̿ࠪ̅͆ࠪ̅͊ࠪ̅͋ࠪ\n",
"\r\e[9C̍̅ࠪ̍̍ࠪ̍̎ࠪ̍̐ࠪ̍̒ࠪ̍̽ࠪ̍̾ࠪ̍̿ࠪ̍͆ࠪ̍͊ࠪ̍͋ࠪ\n",
"\r\e[9C̎̅ࠪ̎̍ࠪ̎̎ࠪ̎̐ࠪ̎̒ࠪ̎̽ࠪ̎̾ࠪ̎̿ࠪ̎͆ࠪ̎͊ࠪ̎͋ࠪ\n",
"\r\e[9C̐̅ࠪ̐̍ࠪ̐̎ࠪ̐̐ࠪ̐̒ࠪ̐̽ࠪ̐̾ࠪ̐̿ࠪ̐͆ࠪ̐͊ࠪ̐͋ࠪ\n",
"\r\e[9C̒̅ࠪ̒̍ࠪ̒̎ࠪ̒̐ࠪ̒̒ࠪ̒̽ࠪ̒̾ࠪ̒̿ࠪ̒͆ࠪ̒͊ࠪ̒͋ࠪ\n",
"\r\e[39m\e8"]
* Example:
fzf --preview='
if file --mime-type {} | grep -qF 'image/'; then
# --transfer-mode=memory is the fastest option but if you want fzf to be able
# to redraw the image on terminal resize or on 'change-preview-window',
# you need to use --transfer-mode=stream.
kitty icat --clear --transfer-mode=memory --stdin=no --place=${FZF_PREVIEW_COLUMNS}x${FZF_PREVIEW_LINES}@0x0 {}
else
bat --color=always {}
fi
'
2023-10-07 18:36:33 +09:00
Junegunn Choi
901939bd96
Add support for limit and offset parameters for GET / endpoint
...
Related #3372
2023-09-18 00:55:20 +09:00
Junegunn Choi
0f50dc848e
Add 'GET /' endpoint for getting the program state (experimental)
...
Related #3372
2023-09-03 16:30:35 +09:00
Junegunn Choi
f50a7058d6
Fix center-alignment of border/preview label
...
Fix #3421
2023-09-01 20:30:44 +09:00
Junegunn Choi
dd59b8c7b9
Fix ANSI color continuation in --header
...
# Both lines should be in red
fzf --header $'\x1b[31mfoo\nbar'
2023-07-25 22:20:31 +09:00
Junegunn Choi
f83491274f
Add toggle-header option
...
Close #3358
2023-07-25 22:11:15 +09:00
Bart
3c09c77269
Fix deprecations of ioutil ( #3370 )
2023-07-16 17:14:22 +09:00
Junegunn Choi
63aa5d3b4e
Correct outdated comment
2023-07-05 23:42:34 +09:00
guangwu
4772bd8d4c
Use strings.ContainsRune instead ( #3335 )
2023-06-17 19:10:12 +09:00
Junegunn Choi
d0b7780239
Add --info=right
...
Related: #3322
2023-06-11 16:09:15 +09:00
Junegunn Choi
e627ca6bd7
Add --info=inline-right
...
Close #3322
2023-06-10 23:11:05 +09:00
Junegunn Choi
c97172bdd4
Fix background color of spinner on the preview window
2023-06-10 14:48:47 +09:00
Mike
ce8a745fb4
Add new border style: 'thinblock' ( #3327 )
...
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2023-06-10 14:48:29 +09:00
Junegunn Choi
4c70745cc1
Fix bug where preview is not updated after reload when --disabled is set
...
Fix #3311
2023-05-27 15:51:04 +09:00
Junegunn Choi
16b0aeda7d
Make sure 'become' process is given a proper tty device
2023-05-21 14:01:27 +09:00
Junegunn Choi
607eacf8c7
Allow unbind(focus)
...
Fix #3279
2023-05-17 10:58:03 +09:00
Junegunn Choi
7a049644a8
Fix panic when trying to render preview window of a negative height
...
Fix #3292
2023-05-17 00:06:35 +09:00
Junegunn Choi
17a13f00f8
Allow customizing scrollbar of the preview window via --scrollbar=xy
2023-05-16 23:59:08 +09:00
Junegunn Choi
43436e48e0
Add new border style: 'block'
2023-05-16 23:45:31 +09:00
Junegunn Choi
5a39102405
Allow customizing the color of preview scrollbar via 'preview-scrollbar'
2023-05-16 23:24:05 +09:00
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.
2023-05-05 15:33:03 +09:00
Junegunn Choi
e619b7c4f4
Fix the background color of the scrollbar inside the preview window
2023-05-01 16:18:26 +09:00
Junegunn Choi
fb76893e18
0.40.0
2023-05-01 01:59:21 +09:00
Junegunn Choi
88d812fe82
Do not display trailing carriage returns in the preview window
...
Close #3269
2023-04-30 18:14:40 +09:00
Junegunn Choi
77f9f4664a
Fix search not triggered when query change and reload happen at the same time
...
Fix #3268
2023-04-30 18:14:40 +09:00
Junegunn Choi
cf95e44cb4
Add 'zero' event
...
Close #3263
2023-04-26 15:13:08 +09:00
Junegunn Choi
65dd2bb429
Add 'track' action
2023-04-22 23:42:09 +09:00
Junegunn Choi
6be855be6a
Add change-header and transform-header
...
Close #3237
2023-04-22 22:01:37 +09:00
Junegunn Choi
0c61d81713
Add toggle-track action
2023-04-22 15:48:51 +09:00
Junegunn Choi
7c6f5dba63
Fixed --track when used with --tac
...
Fix #3234
2023-04-22 15:09:43 +09:00
Junegunn Choi
8ec917b1c3
Add 'one' event
...
Close #2629
Close #2494
Close #459
2023-04-01 17:25:47 +09:00
Junegunn Choi
1c7534f009
Add --track option to track the current selection
...
Close #3186
Related #1890
2023-04-01 12:59:44 +09:00
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
2023-03-26 23:39:05 +09:00
Junegunn Choi
d7daf5f724
Render CR and LF as ␍ and ␊
...
Close #2529
2023-03-25 10:41:19 +09:00
Junegunn Choi
fcd7e8768d
Omit port number in --listen
for automatic port assignment
...
Close #3200
2023-03-19 15:48:39 +09:00
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
2023-03-17 13:22:20 +09:00
Zhizhen He
3364d4d147
Add spell check workflow ( #3183 )
2023-02-23 00:36:04 +09:00
Junegunn Choi
b1459c79cf
Make sure that the query before the cursor is not hidden
...
Close #3176
2023-02-19 16:38:26 +09:00
Junegunn Choi
4e305eca26
become: Set stdin to /dev/tty
2023-02-15 23:24:42 +09:00
Junegunn Choi
96c3de12eb
Run 'become' only when the command template is properly evaluated
2023-02-12 22:06:21 +09:00
Junegunn Choi
6ea38b4438
Add become(...) action that replaces current fzf process
...
Close #3159
2023-02-11 20:26:31 +09:00
Junegunn Choi
f7447aece1
Code cleanup
2023-02-01 18:16:58 +09:00
Junegunn Choi
aa2b9ec476
Add 'show-preview' and 'hide-preview'
...
For cases where 'toggle-preview' is not enough
2023-01-31 17:34:11 +09:00
Junegunn Choi
3ee00f8bc2
toggle-preview should not show empty preview window
2023-01-30 22:13:29 +09:00
Junegunn Choi
fccab60a5c
--preview-window 0,hidden
should not execute the preview command
...
Until `toggle-preview` action is triggered
Fix #3149
2023-01-30 21:39:18 +09:00
Junegunn Choi
95a7661bb1
Sanitize input strings that should be a single line
2023-01-24 19:35:29 +09:00
Junegunn Choi
618d317803
Support custom separator of inline info
...
Close #2030
Close #3084
2023-01-24 17:55:06 +09:00
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
2023-01-23 16:38:24 +09:00
Junegunn Choi
826178f1e2
Do not restore terminal state while running an external command
2023-01-23 02:24:13 +09:00
Junegunn Choi
d51980a3f5
Add 'transform-border-label' and 'transform-preview-label'
2023-01-22 02:18:19 +09:00
jpcrs
c3d73e7ecb
Add change-border-label and change-preview-label actions, update man
2023-01-22 02:18:19 +09:00
Junegunn Choi
8b299a29c7
Fix rendering of double-column borders
2023-01-16 19:34:28 +09:00
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`.
2023-01-16 01:26:39 +09:00
Junegunn Choi
e97e925efb
Resume preview following if the user scrolls the window to the bottom
2023-01-12 23:18:41 +09:00
Junegunn Choi
e0f0984da7
Allow re-enabling preview follow on change-preview-window
2023-01-09 11:08:06 +09:00
Junegunn Choi
4d22b5aaef
Disable preview follow after dragging the scrollbar
...
TBD: Should we re-enable follow once the offset reaches the bottom?
2023-01-09 11:07:31 +09:00
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.
2023-01-07 16:11:35 +09:00
Junegunn Choi
23d8b78ce1
Allow toggling of alternative preview window layout that is hidden
...
Fix #3113
2023-01-07 15:12:31 +09:00
Junegunn Choi
3b2244077d
Add scrollbar to the preview window
2023-01-06 15:36:12 +09:00
Junegunn Choi
ee5cdb9713
Reduce flickering of the scroll info panel on the preview window
2023-01-05 01:59:22 +09:00
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'
2023-01-04 22:00:00 +09:00
Junegunn Choi
c1cd0c09a2
Allow dragging of the preview window
2023-01-03 01:46:37 +09:00
Junegunn Choi
3761dc0433
Avoid superfluous update of scrollbar
2023-01-02 01:10:01 +09:00
Junegunn Choi
aa71a07fbe
Fix scrollbar rendering ( #3096 )
2023-01-01 21:18:20 +09:00
Junegunn Choi
7c660aa86e
Allow dragging of scrollbar
2023-01-01 19:01:56 +09:00
Junegunn Choi
435d8fa0a2
Colors for 'separator' and 'scrollbar' will default to that for 'border'
2023-01-01 19:01:56 +09:00
Junegunn Choi
5cd6f1d064
Add scrollbar
...
Close #3096
2023-01-01 14:48:14 +09:00
Junegunn Choi
62c7f59b94
Add transform-prompt(...) action
2022-12-31 09:27:11 +09:00
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
2022-12-30 14:29:17 +09:00
Junegunn Choi
6c37177cf5
Add reload-sync action
...
Close #2816
2022-12-29 20:04:33 +09:00
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
2022-12-29 20:01:50 +09:00
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'
2022-12-28 12:52:19 +09:00
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} {}')
2022-12-28 00:05:31 +09:00
Junegunn Choi
4dbe45640a
Remove $FZF_LISTEN_PORT
...
It is not worth the added complexity.
2022-12-27 22:12:06 +09:00
Junegunn Choi
4b3f0b9f08
Allow put action with an argument i.e. put(...)
2022-12-27 19:54:46 +09:00
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
2022-12-27 01:08:42 +09:00
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.
2022-12-25 20:00:00 +09:00
Junegunn Choi
750b2a6313
Add GET endpoints for getting the state of the finder
...
* GET / (or GET /current)
* GET /query
2022-12-25 16:27:02 +09:00
Junegunn Choi
fd1f7665a7
Abort fzf if --listen port is unavailable
2022-12-21 13:02:25 +09:00
Junegunn Choi
a7a771b92b
Break out of jump mode when any action is submitted to the server
2022-12-21 01:35:08 +09:00
Junegunn Choi
4b055bf260
Rewrite HTTP server without net/http
...
This cuts down the binary size from 5.7MB to 3.3MB.
2022-12-21 01:35:08 +09:00
Junegunn Choi
1ba7484d60
Add --listen=HTTP_PORT option to receive actions
...
Supersedes #2019
See also:
* #1728
* https://github.com/junegunn/fzf.vim/pull/1044
2022-12-21 01:35:08 +09:00
Junegunn Choi
51c518da1e
Add change-query(...) action
2022-12-18 00:26:31 +09:00
Junegunn Choi
18e3b38c69
Add 'next-selected' and 'prev-selected' actions
...
Close #2749
2022-12-11 00:59:34 +09:00
Junegunn Choi
0ad30063ff
Rename previous-history to prev-history
...
previous-history is still supported for backward compatibility
2022-12-10 22:42:56 +09:00
Junegunn Choi
3d2376ab52
Add color name 'preview-label' ( #3053 )
2022-12-09 12:05:27 +09:00
Junegunn Choi
8f4c89f50e
Make 'double-click' behave the same as 'enter' by default
...
Close #3061
2022-11-29 20:27:29 +09:00
Junegunn Choi
2ba68d24f2
Do not erase info separator before redrawing it
2022-11-25 23:51:49 +09:00
Zhizhen He
2a54e3d770
Fix typos in the source code ( #3048 )
2022-11-18 10:23:04 +09:00
Junegunn Choi
8868d7d188
Add --separator to customize the info separator
2022-11-10 16:23:33 +09:00
Junegunn Choi
01ae621f11
Add --border=[bold|double] and --preview-window=border-[bold|double]
2022-11-06 14:38:31 +09:00
Junegunn Choi
c09ec8e4d1
Allow putting border label on the bottom line
...
Related #3022
2022-11-01 13:30:40 +09:00
Junegunn Choi
31bbaad06e
Add --preview-label and --preview-label-pos
...
Close #3022
2022-11-01 13:27:22 +09:00
Junegunn Choi
b9ca1fe830
Add horizontal separator after info panel (counter)
...
Close #3029
2022-11-01 13:27:11 +09:00
Junegunn Choi
e61585f2f3
Add --border-label and --border-label-pos
...
Close #3022
2022-11-01 13:27:00 +09:00