aboutsummaryrefslogtreecommitdiffstats
path: root/background_scripts
diff options
context:
space:
mode:
authorStephen Blott2015-05-08 17:28:09 +0100
committerStephen Blott2015-05-08 17:28:09 +0100
commit21db0f353257e5e7848d9d884ed93e717120e88d (patch)
tree93232c0b97710cf19fe3938fe1d9bc2f73c296d2 /background_scripts
parent82d25b5df76c8526d4ccb5352c0905cc28371199 (diff)
downloadvimium-21db0f353257e5e7848d9d884ed93e717120e88d.tar.bz2
Search completion; search keyword on SPACE.
Diffstat (limited to 'background_scripts')
-rw-r--r--background_scripts/completion.coffee20
-rw-r--r--background_scripts/main.coffee14
2 files changed, 19 insertions, 15 deletions
diff --git a/background_scripts/completion.coffee b/background_scripts/completion.coffee
index ba19970f..dc5b2737 100644
--- a/background_scripts/completion.coffee
+++ b/background_scripts/completion.coffee
@@ -359,6 +359,13 @@ class SearchEngineCompleter
cancel: ->
CompletionEngines.cancel()
+ refresh: (port) ->
+ @searchEngines = SearchEngineCompleter.getSearchEngines()
+ # Let the vomnibar know the custom search engine keywords.
+ port.postMessage
+ handler: "customSearchEngineKeywords"
+ keywords: key for own key of @searchEngines
+
filter: (queryTerms, onComplete) ->
suggestions = []
@@ -385,7 +392,7 @@ class SearchEngineCompleter
# Always reset the selection to this suggestion on query change. The UX is weird otherwise.
forceAutoSelect: true
# Suppress the "w" from "w query terms" in the vomnibar input.
- suppressLeadingQueryTerm: true
+ suppressLeadingKeyword: true
# We filter out the empty strings late so that we can distinguish between, for example, "w" and "w ".
queryTerms = queryTerms.filter (t) -> 0 < t.length
@@ -436,9 +443,6 @@ class SearchEngineCompleter
count = Math.min 6, Math.max 3, MultiCompleter.maxResults - existingSuggestions.length
onComplete suggestions[...count]
- refresh: ->
- @searchEngines = SearchEngineCompleter.getSearchEngines()
-
getSearchEngineMatches: (queryTerms) ->
(1 < queryTerms.length and @searchEngines[queryTerms[0]]) or {}
@@ -473,11 +477,11 @@ class MultiCompleter
constructor: (@completers) ->
@maxResults = MultiCompleter.maxResults
- refresh: ->
- completer.refresh?() for completer in @completers
+ refresh: (port) ->
+ completer.refresh? port for completer in @completers
- cancel: ->
- completer.cancel?() for completer in @completers
+ cancel: (port) ->
+ completer.cancel? port for completer in @completers
filter: do ->
defaultCallbackOptions =
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index 1a3281bf..34db5a20 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -60,15 +60,15 @@ completers =
tabs: new MultiCompleter [completionSources.tabs]
completionHandlers =
- filter: (completer, args, port) ->
- completer.filter args.queryTerms, (response) ->
- port.postMessage extend args, response
+ filter: (completer, request, port) ->
+ completer.filter request.queryTerms, (response) ->
+ port.postMessage extend request, extend response, handler: "completions"
- refresh: (completer) -> completer.refresh()
- cancel: (completer) -> completer.cancel()
+ refresh: (completer, _, port) -> completer.refresh port
+ cancel: (completer, _, port) -> completer.cancel port
-handleCompletions = (args, port) ->
- completionHandlers[args.handler] completers[args.name], args, port
+handleCompletions = (request, port) ->
+ completionHandlers[request.handler] completers[request.name], request, port
chrome.runtime.onConnect.addListener (port, name) ->
senderTabId = if port.sender.tab then port.sender.tab.id else null