Junegunn Choi
2aa739be81
Fix bug where occurrence of the pattern in header lines are highlighted
2017-01-11 22:47:26 +09:00
Junegunn Choi
9977a3e9fc
Make preview renderer suspend early on line wrap
2017-01-11 22:13:40 +09:00
Junegunn Choi
340af463cd
Add --min-height option for percent --height
2017-01-10 01:04:36 +09:00
Junegunn Choi
9d545f9578
Fix update of multi-select pointer
2017-01-08 02:29:31 +09:00
Junegunn Choi
1448d631a7
Add --height option
2017-01-08 02:09:56 +09:00
Junegunn Choi
7b0d9e1e07
Apply --tabstop to preview window
2016-12-27 01:35:09 +09:00
Junegunn Choi
a442fe0fd0
Truncate long lines in preview window
...
Add `:wrap` to --preview-window to wrap lines instead
Close #756
2016-12-05 02:13:59 +09:00
Junegunn Choi
3858086047
Always print scroll indicator in preview window
2016-11-26 12:34:16 +09:00
Junegunn Choi
8524ea7441
Do not ignore resize event from ncurses and tcell
2016-11-23 01:58:46 +09:00
Junegunn Choi
4b332d831e
Add --no-bold option
2016-11-15 23:57:32 +09:00
Junegunn Choi
898d8d94c8
Fix issues in tcell renderer and Windows build
...
- Fix display of CJK wide characters
- Fix horizontal offset of header lines
- Add support for keys with ALT modifier, shift-tab, page-up and down
- Fix util.ExecCommand to properly parse command-line arguments
- Fix redraw on resize
- Implement Pause/Resume for execute action
- Remove runtime check of GOOS
- Change exit status to 2 when tcell failed to start
- TBD: Travis CI build for tcell renderer
- Pending. tcell cannot reliably ingest keys from tmux send-keys
2016-11-08 02:06:34 +09:00
Junegunn Choi
0c573b3dff
Prepare for termbox/windows build
...
`TAGS=termbox make` (or `go build -tags termbox`)
2016-11-07 02:32:14 +09:00
Junegunn Choi
9f321cbe13
Fix header lines being cleared on toggle-preview
...
Close #722
2016-10-28 03:13:50 +09:00
Junegunn Choi
0a8d2996dc
Set foreground color without affecting background
...
Close #712
2016-10-21 19:35:59 +09:00
Junegunn Choi
154cf22ffa
Display scroll indicator in preview window
2016-10-04 01:40:45 +09:00
Junegunn Choi
51f532697e
Adjust maximum scroll offset
...
It was possible that a few lines at the bottom may not be visible if
there are lines above that span multiple lines.
2016-10-04 01:39:48 +09:00
Junegunn Choi
3066b206af
Support field index expressions in preview and execute action
...
Also close #679 . The placeholder for the current query is {q}.
2016-10-03 14:33:28 +09:00
Junegunn Choi
957c12e7d7
Fix SEGV when trying to render preview but the window is closed
...
Close #677
2016-09-29 02:53:05 +09:00
Junegunn Choi
1fc5659842
Add support for more ANSI color attributes ( #674 )
...
Dim, underline, blink, reverse
2016-09-29 00:54:27 +09:00
Junegunn Choi
8c8b5b313e
Add preview-page-up and preview-page-down actions
2016-09-25 04:12:44 +09:00
Junegunn Choi
66d55fd893
Make preview windows scrollable
...
Close #669
You can use your mouse or binadble preview-up and preview-down actions
to scroll the content of the preview window.
fzf --preview 'highlight -O ansi {}' --bind alt-j:preview-down,alt-k:preview-up
2016-09-25 02:02:00 +09:00
Junegunn Choi
00f96aae76
Avoid rendering delay when displaying extremely long lines
...
Related #666
2016-09-21 01:23:41 +09:00
Junegunn Choi
37f43fbb35
Add --print0 option
...
Related: #660
2016-09-19 01:15:38 +09:00
Junegunn Choi
401a5fd5ff
Printable character in --expect set should not affect --print-query
2016-09-18 14:34:50 +09:00
Junegunn Choi
1854922f0c
Truncate the query string if it's too long
...
Use hard-coded limit to keep it simple. An alternative is to dynamically
calculate the width of the visible area and use it as the limit, but it
can cause unwanted truncation of the query on screen resize/split.
2016-09-18 14:34:48 +09:00
Junegunn Choi
2fc7c18747
Revise ranking algorithm
2016-09-18 14:34:46 +09:00
Junegunn Choi
827a83efbc
Remove Offset slice from Result struct
2016-08-20 01:53:32 +09:00
Junegunn Choi
37dc273148
Micro-optimizations
...
- Make structs smaller
- Introduce Result struct and use it to represent matched items instead of
reusing Item struct for that purpose
- Avoid unnecessary memory allocation
- Avoid growing slice from the initial capacity
- Code cleanup
2016-08-19 02:39:32 +09:00
Junegunn Choi
8df7d962e6
Improve rendering time of long lines
2016-08-14 17:44:11 +09:00
Junegunn Choi
1d4057c209
[perf] Avoid allocating rune array for ascii string
...
In the best case (all ascii), this reduces the memory footprint by 60%
and the response time by 15% to 20%. In the worst case (every line has
non-ascii characters), 3 to 4% overhead is observed.
2016-08-14 00:41:30 +09:00
Junegunn Choi
e455836cc9
Fix race condition where preview window is not properly cleared
2016-06-15 13:15:17 +09:00
Junegunn Choi
24e1fabf2e
Do not process ANSI codes in --preview output at once
...
Close #598
2016-06-14 21:52:47 +09:00
Junegunn Choi
2bbc12063c
Add --preview and --preview-window
...
Close #587
2016-06-11 19:59:12 +09:00
Junegunn Choi
56fb2f00b3
Use single-quoted strings in execute action
...
Close #590
2016-06-08 00:54:21 +09:00
Junegunn Choi
13330738b8
Do not match jump labels beyond the screen limit
2016-05-18 22:45:34 +09:00
Junegunn Choi
6d235bceee
Add jump and jump-accept actions for --bind
...
jump and jump-accept implement EasyMotion-like movement in fzf.
Suggested by @mhrebenyuk. Close #569 .
2016-05-18 02:10:03 +09:00
Junegunn Choi
9078688baf
Add print-query action for --bind
...
Close #571
2016-05-13 00:51:15 +09:00
Junegunn Choi
74d1694be9
Fix #541 - Print double-click when --expect=double-click is set
2016-04-14 04:18:59 +09:00
Junegunn Choi
2ccdf21a1f
Add --hscroll-off=COL option
...
Close #513
2016-03-02 03:14:35 +09:00
Junegunn Choi
e72a360337
Minor refactoring
...
- Slightly more efficient processing of Options
- Do not return reference type arguments that are mutated inside the
function
- Use util.Constrain function when appropriate
2016-02-18 01:46:18 +09:00
Junegunn Choi
e95d82748f
Use $SHELL to start $FZF_DEFAULT_COMMAND ( #481 )
2016-02-07 01:49:29 +09:00
Junegunn Choi
30bd0b53db
Fix #481 - Use $SHELL instead of sh in execute action
...
Note that $SHELL only points to the default shell instead of the current
shell. If you're on a non-default shell, you might want to override the
value like follows.
SHELL=zsh fzf --bind 'enter:execute:echo $ZSH_VERSION; sleep 1'
2016-02-03 04:46:02 +09:00
Junegunn Choi
1893eca41a
Handle SIGTERM gracefully ( #482 )
2016-02-02 17:51:21 +09:00
Junegunn Choi
8695b5e319
Reduce the initial delay when --tac is not given
...
fzf defers the initial rendering of the screen up to 100ms if the input
stream is ongoing to prevent unnecessary redraw during the initial
phase. However, 100ms delay is quite noticeable and might give the
impression that fzf is not snappy enough. This commit reduces the
maximum delay down to 20ms when --tac is not specified, in which case
the input list quickly fills the entire screen.
2016-01-16 18:07:50 +09:00
Junegunn Choi
f6c6e59a50
Add toggle-in and toggle-out for --bind
...
Related: #452
When `--multi` is set, tab key will bring your cursor down, and
shift-tab up. But since fzf by default draws the screen in bottom-up
fashion, one may feel that the opposite of the behavior is more
desirable and choose to customize the key bindings as follows.
export FZF_DEFAULT_OPTS="--bind tab:toggle-up,shift-tab:toggle-down"
This configuration, however, becomes no longer straightforward when
`--reverse` is set and fzf switches to top-down layout. To address the
requirement, this commit adds `toggle-in` and `toggle-out` option which
switch direction depending on `--reverse`-ness.
export FZF_DEFAULT_OPTS="--bind tab:toggle-out,shift-tab:toggle-in"
2016-01-14 02:35:43 +09:00
Junegunn Choi
8d3a302a17
Simplify Item structure
...
This commit compensates for the performance overhead from the
extended tiebreak option.
2016-01-14 01:12:49 +09:00
Junegunn Choi
1d2d32c847
Accept comma-separated list of sort criteria
2016-01-13 21:27:43 +09:00
Junegunn Choi
99ea1056ac
Add --tabstop option
...
Related: https://github.com/junegunn/fzf.vim/issues/49
2015-11-30 17:35:03 +09:00
Junegunn Choi
a89d8995c3
Add execute-multi action
...
Close #413
2015-11-09 23:58:19 +09:00
Junegunn Choi
dbc854d5f4
Handle wide unicode characters in --prompt
2015-11-09 22:01:40 +09:00
Junegunn Choi
6bddffbca4
Setup signal handlers before ncurses initialization
...
This prevents fzf from missing SIGWINCH during startup which
occasionally happens with fzf-tmux
2015-11-03 23:00:34 +09:00
Junegunn Choi
ae04f56dbd
Fix --bind "double-click:execute(...)" ( #374 )
2015-10-13 02:36:11 +09:00
Junegunn Choi
f80ff8c917
Add bindable double-click event ( #374 )
2015-10-13 02:24:38 +09:00
Junegunn Choi
86bc9d506f
Fix invalid interrupt handler during execute action
...
Interrupt handling during execute action was not serialized and often
caused crash, failed to restore the terminal state.
2015-10-05 23:19:26 +09:00
Junegunn Choi
ca19762e58
Exit status 130 when fzf is terminated by the user
...
Related: #345
2015-09-18 10:25:07 +09:00
Junegunn Choi
2022a3ad96
Replace --header-file with --header ( #346 )
...
and allow using --header and --header-lines at the same time.
Close #346 .
2015-09-15 19:04:53 +09:00
Junegunn Choi
65d9d416b4
Change exit status (0: OK, 1: No match, 2: Error/Interrupted)
...
A la grep. Close #345
2015-09-15 13:21:51 +09:00
Junegunn Choi
90b0cd44ac
Should not strip ANSI codes when --ansi is not set
2015-08-28 21:23:10 +09:00
Junegunn Choi
15c49a3e08
Fix race condition
2015-08-03 00:14:34 +09:00
Junegunn Choi
0ea66329b8
Performance tuning - eager rune array conversion
...
> wc -l /tmp/list2
2594098 /tmp/list2
> time cat /tmp/list2 | fzf-0.10.1-darwin_amd64 -fqwerty > /dev/null
real 0m5.418s
user 0m10.990s
sys 0m1.302s
> time cat /tmp/list2 | fzf-head -fqwerty > /dev/null
real 0m4.862s
user 0m6.619s
sys 0m0.982s
2015-08-02 14:00:18 +09:00
Junegunn Choi
634670e3ea
Lint
2015-08-02 13:11:59 +09:00
Junegunn Choi
7231acd442
Fix mouse scroll when --margin is set
2015-07-27 00:06:44 +09:00
Junegunn Choi
ee0c8a2635
Add --margin option
...
Close #299
2015-07-26 23:02:04 +09:00
Junegunn Choi
fdbf3d3fec
Replace eof action with cancel ( #289 )
2015-07-23 21:05:33 +09:00
Junegunn Choi
13e040baee
Bind CTRL-D to the new delete-char/eof action
...
- CTRL-D - delete-char/eof
- DEL - delete-char
2015-07-23 00:56:03 +09:00
Junegunn Choi
cc0d5539ba
Add "eof" action which closes the finder only when input is empty
...
Close #289
2015-07-22 22:57:48 +09:00
Junegunn Choi
928fccc15b
Fix header not shown when the lines go beyond the screen limit
2015-07-22 21:22:59 +09:00
Junegunn Choi
5e3cb3a4ea
Fix ANSI processor to handle multi-line regions
2015-07-22 14:19:45 +09:00
Junegunn Choi
f71ea5f3ea
Add test cases for header and fix corner cases
2015-07-22 13:45:38 +09:00
Junegunn Choi
f469c25730
Add --header-lines option
2015-07-22 03:21:20 +09:00
Junegunn Choi
8b2adba8d6
Redraw of header on resize
2015-07-22 00:47:14 +09:00
Junegunn Choi
d459e9abce
Add --header-file option
2015-07-22 00:38:38 +09:00
Junegunn Choi
a8b2c257cd
Improve handling of key names
...
Remember the exact string given as the key name so that it's possible to
correctly handle synonyms and print the original string.
2015-06-19 00:31:48 +09:00
Junegunn Choi
d261c36cde
Keep the spinner spinning even when the source stream is idle
2015-06-18 00:42:38 +09:00
Junegunn Choi
fe4e452d68
Add --cycle option for cyclic scrolling
...
Close #266
2015-06-16 23:16:34 +09:00
Junegunn Choi
d54a4fa223
Add key name "bspace" for --bind (bspace != ctrl-h)
2015-06-16 02:18:49 +09:00
Junegunn Choi
6c99cc1700
Add bind action for executing arbitrary command ( #265 )
...
e.g. fzf --bind "ctrl-m:execute(less {})"
fzf --bind "ctrl-t:execute[tmux new-window -d 'vim {}']"
2015-06-14 12:25:08 +09:00
Junegunn Choi
77bab51696
GoLint fix
2015-06-14 03:19:18 +09:00
Junegunn Choi
6ad1736832
Fix ignore action
2015-06-14 02:11:27 +09:00
Junegunn Choi
9fca611c4a
Add ignore
action for --bind
2015-06-14 01:54:56 +09:00
Junegunn Choi
3b52811796
Add support for search history
...
- Add `--history` option (e.g. fzf --history ~/.fzf.history)
- Add `--history-max` option for limiting the size of the file (default 1000)
- Add `previous-history` and `next-history` actions for `--bind`
- CTRL-P and CTRL-N are automatically remapped to these actions when
`--history` is used
Closes #249 , #251
2015-06-14 00:48:48 +09:00
Junegunn Choi
eaa3c67a5e
Add actions for --bind: select-all / deselect-all / toggle-all
...
Close #257
2015-06-09 23:44:54 +09:00
Junegunn Choi
443a80f254
Always use the same color for multi-select markers
2015-06-07 23:32:07 +09:00
Junegunn Choi
801cf9ac62
Add unbound "toggle" action for customization
2015-05-21 01:37:16 +09:00
Junegunn Choi
1592bedbe8
Custom key binding support ( #238 )
2015-05-21 00:32:03 +09:00
Junegunn Choi
5d9107fd15
Print info after prompt on redraw
...
This fixes the issue where "inline-info" is not immediately rendered
when the terminal is resized.
2015-04-25 23:20:40 +09:00
Junegunn Choi
651a8f8cc2
Add --inline-info option
...
Close #202
2015-04-21 23:50:53 +09:00
Junegunn Choi
9f64a00549
Fix double-click result when scroll offset is positive
2015-04-21 23:23:39 +09:00
Junegunn Choi
f66d94c6b0
Add --color=[dark|light|16|bw]
option
...
- dark: the current default for 256-color terminal
- light: color scheme for 256-color terminal with light background
- 16: the default color scheme for 16-color terminal (`+2`)
- bw: no colors (`+c`)
2015-04-18 02:55:17 +09:00
Junegunn Choi
2fe1e28220
Improvements in performance and memory usage
...
I profiled fzf and it turned out that it was spending significant amount
of time repeatedly converting character arrays into Unicode codepoints.
This commit greatly improves search performance after the initial scan
by memoizing the converted results.
This commit also addresses the problem of unbounded memory usage of fzf.
fzf is a short-lived process that usually processes small input, so it
was implemented to cache the intermediate results very aggressively with
no notion of cache expiration/eviction. I still think a proper
implementation of caching scheme is definitely an overkill. Instead this
commit introduces limits to the maximum size (or minimum selectivity) of
the intermediate results that can be cached.
2015-04-17 22:23:52 +09:00
Junegunn Choi
f9225f98e7
Fix sort control from Terminal
2015-04-16 22:13:31 +09:00
Junegunn Choi
d1d59272a2
Add visual indication of --toggle-sort
...
Close #194
2015-04-16 14:46:10 +09:00
Junegunn Choi
48ab87294b
Add --no-hscroll option to disable horizontal scroll
...
Close #193
2015-04-16 12:56:01 +09:00
Junegunn Choi
50292adacb
Implement --toggle-sort option ( #173 )
2015-03-31 22:05:16 +09:00
Junegunn Choi
2a167aa030
Implement --expect option to support simple key bindings ( #163 )
2015-03-29 02:59:32 +09:00
Junegunn Choi
f8c49effd4
Respect "boldness" of input string
2015-03-22 17:43:28 +09:00
Junegunn Choi
b431e227da
Code cleanup
2015-03-22 16:05:54 +09:00
Junegunn Choi
3dddbfd8fa
Fix string truncation
2015-03-19 12:14:26 +09:00
Junegunn Choi
e70a2a5817
Add support for ANSI color codes
2015-03-19 01:59:14 +09:00
Junegunn Choi
c1aa5c5f33
Add --tac option and reverse display order of --no-sort
...
DISCLAIMER: This is a backward incompatible change
2015-02-26 01:42:15 +09:00
Junegunn Choi
e808151c28
Make --select-1 and --exit-0 asynchronous
2015-02-18 00:08:17 +09:00
Junegunn Choi
448132c46c
Fix error when --query contains wide-length characters
2015-01-24 13:26:33 +09:00
Junegunn Choi
71a7b3a26f
Improve rendering performance by caching rune widths
...
Related: 8bead4a
2015-01-24 12:28:00 +09:00
Junegunn Choi
48e16edb47
Redraw and adjust upon terminal resize
2015-01-23 20:30:50 +09:00
Junegunn Choi
8bead4ae34
Improved handling of tab characters
2015-01-18 16:59:04 +09:00
Junegunn Choi
5c0dc79ffa
Print selected items in the order they are selected
2015-01-17 11:07:04 +09:00
Junegunn Choi
ae3180f919
Fix CTRL-Y key binding
...
With tmux-based test cases
2015-01-17 06:04:59 +09:00
Junegunn Choi
62acb9adc4
Fix error with empty list and release 0.9.1-dev
2015-01-15 06:06:22 +09:00
Junegunn Choi
cd847affb7
Reorganize source code
2015-01-12 12:56:17 +09:00
Junegunn Choi
7a2bc2cada
Lint
2015-01-12 03:18:40 +09:00
Junegunn Choi
1db68a3976
Avoid unnecessary update of search progress
2015-01-11 21:56:55 +09:00
Junegunn Choi
f670f4f076
Make sure that cy is properly limited
2015-01-10 14:50:24 +09:00
Junegunn Choi
2d9b38b93e
Constrain cy in vmove()
2015-01-10 14:22:00 +09:00
Junegunn Choi
b8a9861f95
Fix double click on an empty row not to close fzf
2015-01-10 12:26:11 +09:00
Junegunn Choi
188c90bf25
Fix incorrect behaviors of mouse events when --multi enabled
2015-01-10 12:21:17 +09:00
Junegunn Choi
b7bb100810
Improve response time by only looking at top-N items
2015-01-10 01:06:18 +09:00
Junegunn Choi
aa05bf5206
Reduce memory footprint
2015-01-09 10:42:12 +09:00
Junegunn Choi
efec9acd6f
Fix missing mutex unlock
2015-01-08 22:04:12 +09:00
Junegunn Choi
f99f66570b
Add small initial delay to screen update
...
To avoid flickering when the input is small
2015-01-07 12:46:45 +09:00
Junegunn Choi
383f908cf7
Remove unnecessary event dispatch
2015-01-06 02:04:27 +09:00
Junegunn Choi
dee0909d2b
Fix mouse click offset when list is scrolled
2015-01-05 01:40:19 +09:00
Junegunn Choi
606d33e77e
Remove race conditions from screen update
2015-01-04 05:09:40 +09:00
Junegunn Choi
f3177305d5
Rewrite fzf in Go
2015-01-04 00:37:29 +09:00