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  | 
