diff options
| author | Stephen Blott | 2015-05-08 17:28:09 +0100 |
|---|---|---|
| committer | Stephen Blott | 2015-05-08 17:28:09 +0100 |
| commit | 21db0f353257e5e7848d9d884ed93e717120e88d (patch) | |
| tree | 93232c0b97710cf19fe3938fe1d9bc2f73c296d2 /background_scripts | |
| parent | 82d25b5df76c8526d4ccb5352c0905cc28371199 (diff) | |
| download | vimium-21db0f353257e5e7848d9d884ed93e717120e88d.tar.bz2 | |
Search completion; search keyword on SPACE.
Diffstat (limited to 'background_scripts')
| -rw-r--r-- | background_scripts/completion.coffee | 20 | ||||
| -rw-r--r-- | background_scripts/main.coffee | 14 |
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 |
