summaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md90
1 files changed, 62 insertions, 28 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3de28297..4f6d2602 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,41 +1,74 @@
CHANGELOG
=========
-0.50.0
+0.52.0
------
-- Search performance optimization. You can observe 50%+ improvement in some scenarios.
+- Added `--highlight-line` to highlight the whole current line (à la `set cursorline` of Vim)
+- Added color names for selected lines: `selected-fg`, `selected-bg`, and `selected-hl`
```sh
- $ time wc < $DATA
- 5520118 26862362 897487793
+ fzf --border --multi --info inline-right --layout reverse --marker ▏ --pointer ▌ --prompt '▌ ' \
+ --highlight-line --color gutter:-1,selected-bg:238,selected-fg:146,current-fg:189
+ ```
+- Added `click-header` event that is triggered when the header section is clicked. When the event is triggered, `$FZF_CLICK_HEADER_COLUMN` and `$FZF_CLICK_HEADER_LINE` are set.
+ ```sh
+ fd --type f |
+ fzf --header $'[Files] [Directories]' --header-first \
+ --bind 'click-header:transform:
+ (( FZF_CLICK_HEADER_COLUMN <= 7 )) && echo "reload(fd --type f)"
+ (( FZF_CLICK_HEADER_COLUMN >= 9 )) && echo "reload(fd --type d)"
+ '
+ ```
+- Add `$FZF_COMPLETION_{DIR,PATH}_OPTS` for separately customizing the behavior of fuzzy completion
+ ```sh
+ # Set --walker options without 'follow' not to follow symbolic links
+ FZF_COMPLETION_PATH_OPTS="--walker=file,dir,hidden"
+ FZF_COMPLETION_DIR_OPTS="--walker=dir,hidden"
+ ```
+- Fixed Windows argument escaping
+- Bug fixes and improvements
+- The code was heavily refactored to allow using fzf as a library in Go programs. The API is still experimental and subject to change.
+ - https://gist.github.com/junegunn/193990b65be48a38aac6ac49d5669170
- real 0m1.320s
- user 0m1.236s
- sys 0m0.075s
+0.51.0
+------
+- Added a new environment variable `$FZF_POS` exported to the child processes. It's the vertical position of the cursor in the list starting from 1.
+ ```sh
+ # Toggle selection to the top or to the bottom
+ seq 30 | fzf --multi --bind 'load:pos(10)' \
+ --bind 'shift-up:transform:for _ in $(seq $FZF_POS $FZF_MATCH_COUNT); do echo -n +toggle+up; done' \
+ --bind 'shift-down:transform:for _ in $(seq 1 $FZF_POS); do echo -n +toggle+down; done'
+ ```
+- Added `--with-shell` option to start child processes with a custom shell command and flags
+ ```sh
+ gem list | fzf --with-shell 'ruby -e' \
+ --preview 'pp Gem::Specification.find_by_name({1})' \
+ --bind 'ctrl-o:execute-silent:
+ spec = Gem::Specification.find_by_name({1})
+ [spec.homepage, *spec.metadata.filter { _1.end_with?("uri") }.values].uniq.each do
+ system "open", _1
+ end
+ '
+ ```
+- Added `change-multi` action for dynamically changing `--multi` option
+ - `change-multi` - enable multi-select mode with no limit
+ - `change-multi(NUM)` - enable multi-select mode with a limit
+ - `change-multi(0)` - disable multi-select mode
+- Windows improvements
+ - `become` action is now supported on Windows
+ - Unlike in *nix, this does not use `execve(2)`. Instead it spawns a new process and waits for it to finish, so the exact behavior may differ.
+ - Fixed argument escaping for Windows cmd.exe. No redundant escaping of backslashes.
+- Bug fixes and improvements
- $ time fzf --sync --bind load:abort < $DATA
+0.50.0
+------
+- Search performance optimization. You can observe 50%+ improvement in some scenarios.
+ ```
+ $ rg --line-number --no-heading --smart-case . > $DATA
- real 0m0.479s
- user 0m0.427s
- sys 0m0.176s
+ $ wc < $DATA
+ 5520118 26862362 897487793
$ hyperfine -w 1 -L bin fzf-0.49.0,fzf-7ce6452,fzf-a5447b8,fzf '{bin} --filter "///" < $DATA | head -30'
-
- Benchmark 1: fzf-0.49.0 --filter "///" < $DATA | head -30
- Time (mean ± σ): 2.002 s ± 0.024 s [User: 14.447 s, System: 0.300 s]
- Range (min … max): 1.964 s … 2.042 s 10 runs
-
- Benchmark 2: fzf-7ce6452 --filter "///" < $DATA | head -30
- Time (mean ± σ): 1.627 s ± 0.019 s [User: 10.828 s, System: 0.271 s]
- Range (min … max): 1.596 s … 1.651 s 10 runs
-
- Benchmark 3: fzf-a5447b8 --filter "///" < $DATA | head -30
- Time (mean ± σ): 1.524 s ± 0.025 s [User: 9.818 s, System: 0.269 s]
- Range (min … max): 1.478 s … 1.569 s 10 runs
-
- Benchmark 4: fzf --filter "///" < $DATA | head -30
- Time (mean ± σ): 1.318 s ± 0.025 s [User: 8.005 s, System: 0.262 s]
- Range (min … max): 1.282 s … 1.366 s 10 runs
-
Summary
fzf --filter "///" < $DATA | head -30 ran
1.16 ± 0.03 times faster than fzf-a5447b8 --filter "///" < $DATA | head -30
@@ -60,6 +93,7 @@ CHANGELOG
```sh
fzf --bind 'space:jump,jump:accept,jump-cancel:transform:[[ $FZF_KEY =~ ctrl-c ]] && echo abort'
```
+- fzf can be built with profiling options. See [BUILD.md](BUILD.md) for more information.
- Bug fixes
0.49.0