261021.4 · 2adb741c33b276990f55e4b9f5c33d316070dc3c
Respect --no-sort in non-streaming filter mode
- --sync, --tac, --bench disable streaming filter, and the result was sorted
- Matcher.scan already checks pattern.sortable
Problem analyzed and patch submitted by @NavpreetSSidhu
Fix #4940
Co-authored-by: NavpreetSSidhu <116211004+NavpreetSSidhu@users.noreply.github.com>
reading declarations
@@ -26,6 +26,7 @@ CHANGELOG ``` - nushell - The completion integration now requires nushell 0.116.1 or above, where an interactive completer can take the terminal through the `@interactive` attribute (#4934) (@sim590)+- Fixed `--no-sort` being ignored in filter mode with `--sync`, `--tac`, or `--bench` (#4940) (@NavpreetSSidhu) - Vim plugin: Fixed garbage text on screen in Neovim with `set title` when the fzf command contains ANSI escape sequences (#4941) 0.74.5
@@ -264,7 +264,6 @@ func Run(opts *Options) (int, error) { } pattern := patternBuilder([]rune(*opts.Filter))- matcher.sort = pattern.sortable transformer := buildItemTransformer(opts)
@@ -25,6 +25,15 @@ class TestFilter < TestBase assert_equal 1, `echo Foo bar | #{FZF} -x -f "foo Fbar" | wc -l`.to_i end + def test_filter_no_sort+ input = "printf 'abz\\nab\\nzab\\n'"+ ['', '--sync'].each do |opts|+ assert_equal %w[ab abz zab], `#{input} | #{FZF} -f ab #{opts}`.lines(chomp: true)+ assert_equal %w[abz ab zab], `#{input} | #{FZF} -f ab --no-sort #{opts}`.lines(chomp: true)+ assert_equal %w[zab ab abz], `#{input} | #{FZF} -f ab --no-sort --tac #{opts}`.lines(chomp: true)+ end+ end+ def test_filter_exitstatus # filter / streaming filter ['', '--no-sort'].each do |opts|