m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-16 15:23:48 -05:00

Defer resetting multi-selection on reload

This commit is contained in:
Junegunn Choi
2019-12-09 21:32:58 +09:00
parent af1a5f130b
commit 2b725a4db5
4 changed files with 41 additions and 10 deletions

View File

@@ -224,12 +224,14 @@ func Run(opts *Options, revision string) {
// Event coordination
reading := true
clearCache := false
clearCache := util.Once(false)
clearSelection := util.Once(false)
ticks := 0
var nextCommand *string
restart := func(command string) {
reading = true
clearCache = true
clearCache = util.Once(true)
clearSelection = util.Once(true)
chunkList.Clear()
header = make([]string, 0, opts.HeaderLines)
go reader.restart(command)
@@ -262,10 +264,10 @@ func Run(opts *Options, revision string) {
snapshot, count := chunkList.Snapshot()
terminal.UpdateCount(count, !reading, value.(*string))
if opts.Sync {
terminal.UpdateList(PassMerger(&snapshot, opts.Tac))
opts.Sync = false
terminal.UpdateList(PassMerger(&snapshot, opts.Tac), false)
}
matcher.Reset(snapshot, input(), false, !reading, sort, clearCache)
clearCache = false
matcher.Reset(snapshot, input(), false, !reading, sort, clearCache())
case EvtSearchNew:
var command *string
@@ -284,8 +286,7 @@ func Run(opts *Options, revision string) {
break
}
snapshot, _ := chunkList.Snapshot()
matcher.Reset(snapshot, input(), true, !reading, sort, clearCache)
clearCache = false
matcher.Reset(snapshot, input(), true, !reading, sort, clearCache())
delay = false
case EvtSearchProgress:
@@ -327,7 +328,7 @@ func Run(opts *Options, revision string) {
terminal.startChan <- true
}
}
terminal.UpdateList(val)
terminal.UpdateList(val, clearSelection())
}
}
}