summaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md38
1 files changed, 34 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bbddf86a..662f0d87 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,17 +1,46 @@
CHANGELOG
=========
+0.48.0
+------
+- Added options for customizing the behavior of the built-in walker
+ | Option | Description | Default |
+ | --- | --- | --- |
+ | `--walker=OPTS` | Walker options (`[file][,dir][,follow][,hidden]`) | `file,follow,hidden` |
+ | `--walker-root=DIR` | Root directory from which to start walker | `.` |
+ | `--walker-skip=DIRS` | Comma-separated list of directory names to skip | `.git,node_modules` |
+ - Examples
+ ```sh
+ # Built-in walker is only used by standalone fzf when $FZF_DEFAULT_COMMAND is not set
+ unset FZF_DEFAULT_COMMAND
+
+ fzf # default: --walker=file,follow,hidden --walker-root=. --walker-skip=.git,node_modules
+ fzf --walker=file,dir,hidden,follow --walker-skip=.git,node_modules,target
+
+ # Walker options in $FZF_DEFAULT_OPTS
+ export FZF_DEFAULT_OPTS="--walker=file,dir,hidden,follow --walker-skip=.git,node_modules,target"
+ fzf
+
+ # Reading from STDIN; --walker is ignored
+ seq 100 | fzf --walker=dir
+
+ # Reading from $FZF_DEFAULT_COMMAND; --walker is ignored
+ export FZF_DEFAULT_COMMAND='seq 100'
+ fzf --walker=dir
+ ```
+- The shell extensions (key bindings and fuzzy completion) have been updated to use the built-in walker with these new options and they are now much faster out of the box.
+
0.47.0
------
-- Replaced ["the default find command"][find] with a built-in directory traversal to simplify the code and to achieve better performance and consistent behavior across platforms.
+- Replaced ["the default find command"][find] with a built-in directory walker to simplify the code and to achieve better performance and consistent behavior across platforms.
This doesn't affect you if you have `$FZF_DEFAULT_COMMAND` set.
- Breaking changes:
- Unlike [the previous "find" command][find], the new traversal code will list hidden files, but hidden directories will still be ignored
- No filtering of `devtmpfs` or `proc` types
- Traversal is parallelized, so the order of the entries will be different each time
- - You would wonder why fzf implements directory traversal anyway when it's a filter program following the Unix philosophy.
- But fzf has had [the traversal code for years][walker] to tackle the performance problem on Windows. And I decided to use the same approach on different platforms as well for the benefits listed above.
- - Built-in traversal is now done using the excellent [charlievieth/fastwalk][fastwalk] library, which easily outperforms its competitors and supports safely following symlinks.
+ - You may wonder why fzf implements directory walker anyway when it's a filter program following the [Unix philosophy][unix].
+ But fzf has had [the walker code for years][walker] to tackle the performance problem on Windows. And I decided to use the same approach on different platforms as well for the benefits listed above.
+ - Built-in walker is using the excellent [charlievieth/fastwalk][fastwalk] library, which easily outperforms its competitors and supports safely following symlinks.
- Added `$FZF_DEFAULT_OPTS_FILE` to allow managing default options in a file
- See [#3618](https://github.com/junegunn/fzf/pull/3618)
- Option precedence from lower to higher
@@ -23,6 +52,7 @@ CHANGELOG
[find]: https://github.com/junegunn/fzf/blob/0.46.1/src/constants.go#L60-L64
[walker]: https://github.com/junegunn/fzf/pull/1847
[fastwalk]: https://github.com/charlievieth/fastwalk
+[unix]: https://en.wikipedia.org/wiki/Unix_philosophy
0.46.1
------