diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2016-04-24 03:30:51 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2016-04-24 03:43:24 +0900 |
| commit | 85ef3263fcfe578aecdac2aecd6c949fed921a7f (patch) | |
| tree | ba8ea198c1b9d97800c70177327620c2d0f518b8 | |
| parent | 4bde8de63f187e487ff5bc40c1d7803ca882ff9c (diff) | |
| download | fzf-85ef3263fcfe578aecdac2aecd6c949fed921a7f.tar.gz | |
Fix incorrect cache reference in --exact mode (#547)
When we prepend a single quote to our query in --exact mode, we are not
supposed to limit the scope of the new search to the previous
exact-match result.
| -rw-r--r-- | src/pattern.go | 2 | ||||
| -rw-r--r-- | test/test_go.rb | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/pattern.go b/src/pattern.go index fda5cc9a..42a341b4 100644 --- a/src/pattern.go +++ b/src/pattern.go @@ -227,7 +227,7 @@ func (p *Pattern) CacheKey() string { } cacheableTerms := []string{} for _, termSet := range p.termSets { - if len(termSet) == 1 && !termSet[0].inv { + if len(termSet) == 1 && !termSet[0].inv && (p.fuzzy || termSet[0].typ == termExact) { cacheableTerms = append(cacheableTerms, string(termSet[0].origText)) } } diff --git a/test/test_go.rb b/test/test_go.rb index 2c3ba2eb..2c1324b8 100644 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -1157,6 +1157,16 @@ class TestGoFZF < TestBase end end + def test_partial_caching + tmux.send_keys 'seq 1000 | fzf -e', :Enter + tmux.until { |lines| lines[-2] == ' 1000/1000' } + tmux.send_keys 11 + tmux.until { |lines| lines[-2] == ' 19/1000' } + tmux.send_keys 'C-a', "'" + tmux.until { |lines| lines[-2] == ' 28/1000' } + tmux.send_keys :Enter + end + private def writelines path, lines File.unlink path while File.exists? path |
