diff options
| author | Stephen Blott | 2015-05-27 08:23:01 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2015-05-27 08:23:01 +0100 | 
| commit | 9b9c26a42bffa88584d44526da5e14a5e546fa07 (patch) | |
| tree | 46775f68092a6bd5678c0e7868e04fbedaf0eff5 /background_scripts/completion.coffee | |
| parent | a65d79b810cf4c165c2174ad9893db0ebcc9989f (diff) | |
| download | vimium-9b9c26a42bffa88584d44526da5e14a5e546fa07.tar.bz2 | |
Custom-only: always filter for the custom search engine.
Diffstat (limited to 'background_scripts/completion.coffee')
| -rw-r--r-- | background_scripts/completion.coffee | 39 | 
1 files changed, 13 insertions, 26 deletions
| diff --git a/background_scripts/completion.coffee b/background_scripts/completion.coffee index dc2c9360..7a5f37bf 100644 --- a/background_scripts/completion.coffee +++ b/background_scripts/completion.coffee @@ -472,37 +472,24 @@ class SearchEngineCompleter      # This filter is applied to all of the suggestions from all of the completers, after they have been      # aggregated by the MultiCompleter.      filter = (suggestions) -> -      if custom and haveCompletionEngine -        # We only accept suggestions: -        #   - from this completer, or -        #   - from other completers, but then only if their URL matches this search engine and matches this -        #     query (that is only if their URL could have been generated by this search engine). -        suggestions.filter (suggestion) -> -          suggestion.type == description or -            # This is a suggestion for the same search engine. -            (suggestion.url.startsWith(engine.searchUrlPrefix) and -              # And the URL suffix (which must contain the query part) matches the current query. -              RankingUtils.matches queryTerms, suggestion.url[engine.searchUrlPrefix.length..]) - -      else if not custom -        # Filter out any suggestion which is just what the user would get if they hit <Enter> anyway.  For -        # example, don't offer "https://www.google.com/search?q=vimium" if the query is "vimium". -        defaultUrl = Utils.createSearchUrl queryTerms, searchUrl -        defaultQuery = queryTerms.join " " -        suggestions.filter (suggestion) -> Utils.extractQuery(searchUrl, suggestion.url) != defaultQuery -      else -        suggestions +      suggestions.filter (suggestion) -> +        # We only keep suggestions which either *were* generated by this completion engine, or *could have +        # been* generated by this completion engine. +        suggestion.isSearchSuggestion or suggestion.isCustomSearch or Utils.extractQuery searchUrl, suggestion.url      # If a previous suggestion still matches the query, then we keep it (even if the completion engine may not      # return it for the current query).  This allows the user to pick suggestions by typing fragments of their      # text, without regard to whether the completion engine can complete the actual text of the query.      previousSuggestions = -      for url, suggestion of @previousSuggestions -        continue unless RankingUtils.matches queryTerms, suggestion.title -        # Reset various fields, they may not be correct wrt. the current query. -        extend suggestion, relevancy: null, html: null, highlightTerms: true, queryTerms: queryTerms -        suggestion.relevancy = null -        suggestion +      if queryTerms.length == 0 +        [] +      else +        for url, suggestion of @previousSuggestions +          continue unless RankingUtils.matches queryTerms, suggestion.title +          # Reset various fields, they may not be correct wrt. the current query. +          extend suggestion, relevancy: null, html: null, highlightTerms: true, queryTerms: queryTerms +          suggestion.relevancy = null +          suggestion      primarySuggestion = new Suggestion        queryTerms: queryTerms | 
