diff options
| author | Stephen Blott | 2015-05-08 14:02:21 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2015-05-08 14:15:21 +0100 | 
| commit | b882213019792a7fb47352a920a54d468d352c86 (patch) | |
| tree | 3d74271999b209af9a0c015434e40e2d3be452b6 /background_scripts/completion_engines.coffee | |
| parent | 44378220093ee5bd873b553f5be556921c778663 (diff) | |
| download | vimium-b882213019792a7fb47352a920a54d468d352c86.tar.bz2 | |
Search completion; exclusivity.
If we have a custom search engine with a completer, then exclude
suggestions from other completion engines.
Diffstat (limited to 'background_scripts/completion_engines.coffee')
| -rw-r--r-- | background_scripts/completion_engines.coffee | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/background_scripts/completion_engines.coffee b/background_scripts/completion_engines.coffee index 52db90d0..ff10f4b5 100644 --- a/background_scripts/completion_engines.coffee +++ b/background_scripts/completion_engines.coffee @@ -100,6 +100,7 @@ class DuckDuckGo extends RegexpEngine  # A dummy search engine which is guaranteed to match any search URL, but never produces completions.  This  # allows the rest of the logic to be written knowing that there will always be a completion engine match.  class DummyCompletionEngine +  dummy: true    match: -> true    # We return a useless URL which we know will succeed, but which won't generate any network traffic.    getUrl: -> chrome.runtime.getURL "content_scripts/vimium.css" @@ -140,7 +141,7 @@ CompletionEngines =    # Look up the completion engine for this searchUrl.  Because of DummyCompletionEngine, above, we know there    # will always be a match.  Imagining that there may be many completion engines, and knowing that this is -  # called for every input event in the vomnibar, we cache the result. +  # called for every query, we cache the result.    lookupEngine: (searchUrl) ->      @engineCache ?= new SimpleCache 30 * 60 * 60 * 1000 # 30 hours (these are small, we can keep them longer).      if @engineCache.has searchUrl @@ -150,6 +151,10 @@ CompletionEngines =          engine = new engine()          return @engineCache.set searchUrl, engine if engine.match searchUrl +  # True if we have a completion engine for this search URL, undefined otherwise. +  haveCompletionEngine: (searchUrl) -> +    not @lookupEngine(searchUrl).dummy +    # This is the main entry point.    #  - searchUrl is the search engine's URL, e.g. Settings.get("searchUrl"), or a custome search engine's URL.    #    This is only used as a key for determining the relevant completion engine. | 
