aboutsummaryrefslogtreecommitdiffstats
path: root/background_scripts
diff options
context:
space:
mode:
authorStephen Blott2015-05-27 08:23:01 +0100
committerStephen Blott2015-05-27 08:23:01 +0100
commit9b9c26a42bffa88584d44526da5e14a5e546fa07 (patch)
tree46775f68092a6bd5678c0e7868e04fbedaf0eff5 /background_scripts
parenta65d79b810cf4c165c2174ad9893db0ebcc9989f (diff)
downloadvimium-9b9c26a42bffa88584d44526da5e14a5e546fa07.tar.bz2
Custom-only: always filter for the custom search engine.
Diffstat (limited to 'background_scripts')
-rw-r--r--background_scripts/completion.coffee39
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