Commit Graph

101 Commits (a749e6bd16a4fa1374dd454868a4084288ff78dd)

Author SHA1 Message Date
Junegunn Choi 37f43fbb35
Add --print0 option
Related: #660
8 years ago
Junegunn Choi 401a5fd5ff
Printable character in --expect set should not affect --print-query 8 years ago
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.
8 years ago
Junegunn Choi 2fc7c18747
Revise ranking algorithm 8 years ago
Junegunn Choi 827a83efbc
Remove Offset slice from Result struct 8 years ago
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
8 years ago
Junegunn Choi 8df7d962e6
Improve rendering time of long lines 8 years ago
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.
8 years ago
Junegunn Choi e455836cc9
Fix race condition where preview window is not properly cleared 8 years ago
Junegunn Choi 24e1fabf2e
Do not process ANSI codes in --preview output at once
Close #598
8 years ago
Junegunn Choi 2bbc12063c
Add --preview and --preview-window
Close #587
8 years ago
Junegunn Choi 56fb2f00b3
Use single-quoted strings in execute action
Close #590
8 years ago
Junegunn Choi 13330738b8
Do not match jump labels beyond the screen limit 8 years ago
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.
8 years ago
Junegunn Choi 9078688baf Add print-query action for --bind
Close #571
8 years ago
Junegunn Choi 74d1694be9 Fix #541 - Print double-click when --expect=double-click is set 8 years ago
Junegunn Choi 2ccdf21a1f Add --hscroll-off=COL option
Close #513
8 years ago
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
8 years ago
Junegunn Choi e95d82748f Use $SHELL to start $FZF_DEFAULT_COMMAND (#481) 8 years ago
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'
8 years ago
Junegunn Choi 1893eca41a Handle SIGTERM gracefully (#482) 8 years ago
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.
9 years ago
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"
9 years ago
Junegunn Choi 8d3a302a17 Simplify Item structure
This commit compensates for the performance overhead from the
extended tiebreak option.
9 years ago
Junegunn Choi 1d2d32c847 Accept comma-separated list of sort criteria 9 years ago
Junegunn Choi 99ea1056ac Add --tabstop option
Related: https://github.com/junegunn/fzf.vim/issues/49
9 years ago
Junegunn Choi a89d8995c3 Add execute-multi action
Close #413
9 years ago
Junegunn Choi dbc854d5f4 Handle wide unicode characters in --prompt 9 years ago
Junegunn Choi 6bddffbca4 Setup signal handlers before ncurses initialization
This prevents fzf from missing SIGWINCH during startup which
occasionally happens with fzf-tmux
9 years ago
Junegunn Choi ae04f56dbd Fix --bind "double-click:execute(...)" (#374) 9 years ago
Junegunn Choi f80ff8c917 Add bindable double-click event (#374) 9 years ago
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.
9 years ago
Junegunn Choi ca19762e58 Exit status 130 when fzf is terminated by the user
Related: #345
9 years ago
Junegunn Choi 2022a3ad96 Replace --header-file with --header (#346)
and allow using --header and --header-lines at the same time.

Close #346.
9 years ago
Junegunn Choi 65d9d416b4 Change exit status (0: OK, 1: No match, 2: Error/Interrupted)
A la grep. Close #345
9 years ago
Junegunn Choi 90b0cd44ac Should not strip ANSI codes when --ansi is not set 9 years ago
Junegunn Choi 15c49a3e08 Fix race condition 9 years ago
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
9 years ago
Junegunn Choi 634670e3ea Lint 9 years ago
Junegunn Choi 7231acd442 Fix mouse scroll when --margin is set 9 years ago
Junegunn Choi ee0c8a2635 Add --margin option
Close #299
9 years ago
Junegunn Choi fdbf3d3fec Replace eof action with cancel (#289) 9 years ago
Junegunn Choi 13e040baee Bind CTRL-D to the new delete-char/eof action
- CTRL-D - delete-char/eof
- DEL - delete-char
9 years ago
Junegunn Choi cc0d5539ba Add "eof" action which closes the finder only when input is empty
Close #289
9 years ago
Junegunn Choi 928fccc15b Fix header not shown when the lines go beyond the screen limit 9 years ago
Junegunn Choi 5e3cb3a4ea Fix ANSI processor to handle multi-line regions 9 years ago
Junegunn Choi f71ea5f3ea Add test cases for header and fix corner cases 9 years ago
Junegunn Choi f469c25730 Add --header-lines option 9 years ago
Junegunn Choi 8b2adba8d6 Redraw of header on resize 9 years ago
Junegunn Choi d459e9abce Add --header-file option 9 years ago