diff options
Diffstat (limited to 'lib/completion.js')
| -rw-r--r-- | lib/completion.js | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/lib/completion.js b/lib/completion.js index f713eaa0..c7ac0417 100644 --- a/lib/completion.js +++ b/lib/completion.js @@ -146,7 +146,7 @@ var completion = (function() { var AsyncFuzzyUrlCompleter = function() { this.completions = null; this.id = utils.createUniqueId(); - this.readyCallback = function(results) { + this.readyCallback = this.fallbackReadyCallback = function(results) { this.completions = results; } } @@ -164,7 +164,7 @@ var completion = (function() { var handler = function(results) { var filtered = []; fuzzyMatcher.filter(query, - self.completions, function(comp) { return comp.str }, + results, function(comp) { return comp.str }, self.id, function(match) { filtered.push(createHighlightingCompletion( @@ -180,12 +180,11 @@ var completion = (function() { // yes: call the callback synchronously handler(this.completions); } else { - // no: push our handler to the handling chain - var oldReadyCallback = this.readyCallback; + // no: register the handler as a callback this.readyCallback = function(results) { handler(results); - this.readyCallback = oldReadyCallback; - oldReadyCallback(results); + this.readyCallback = this.fallbackReadyCallback; + this.readyCallback(results); } } }, @@ -339,11 +338,7 @@ var completion = (function() { all.sort(function(a,b) { return a.relevancy - b.relevancy; }); - for (var i = 0; i < all.length; ++i) { - if (!callback(all[i])) - // the caller doesn't want any more results - return; - } + callback(all); }); } } |
