summaryrefslogtreecommitdiff
path: root/src/core.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2015-01-10 01:06:08 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2015-01-10 01:06:18 +0900
commitb7bb1008107fb079e68f9ebeeca699c65cc966c9 (patch)
tree845096d80fc4ef12d8fa3cdea1ccf352623a3fc3 /src/core.go
parentaa05bf5206768965e575b6032543745c830e6eea (diff)
downloadfzf-b7bb1008107fb079e68f9ebeeca699c65cc966c9.tar.gz
Improve response time by only looking at top-N items
Diffstat (limited to 'src/core.go')
-rw-r--r--src/core.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/core.go b/src/core.go
index e5bdb129..98973f8b 100644
--- a/src/core.go
+++ b/src/core.go
@@ -93,17 +93,18 @@ func Run(options *Options) {
}
snapshot, _ := chunkList.Snapshot()
- matches, cancelled := matcher.scan(MatchRequest{
+ merger, cancelled := matcher.scan(MatchRequest{
chunks: snapshot,
pattern: pattern}, limit)
if !cancelled && (filtering ||
- opts.Exit0 && len(matches) == 0 || opts.Select1 && len(matches) == 1) {
+ opts.Exit0 && merger.Length() == 0 ||
+ opts.Select1 && merger.Length() == 1) {
if opts.PrintQuery {
fmt.Println(patternString)
}
- for _, item := range matches {
- item.Print()
+ for i := 0; i < merger.Length(); i++ {
+ merger.Get(i).Print()
}
os.Exit(0)
}
@@ -147,7 +148,7 @@ func Run(options *Options) {
case EVT_SEARCH_FIN:
switch val := value.(type) {
- case []*Item:
+ case *Merger:
terminal.UpdateList(val)
}
}