diff options
| author | Stephen Blott | 2015-05-06 05:18:59 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2015-05-06 05:46:20 +0100 | 
| commit | 1f97221aef5cfe28200df81a68a139a3f2b07784 (patch) | |
| tree | 62b6031f5d384d69d353976b6eb5e3a246c4fd81 /background_scripts/main.coffee | |
| parent | 7d11b1699454366bf99e8e5033ba39b127687fcb (diff) | |
| download | vimium-1f97221aef5cfe28200df81a68a139a3f2b07784.tar.bz2 | |
Search completion; move all filter messages to a single port.
Diffstat (limited to 'background_scripts/main.coffee')
| -rw-r--r-- | background_scripts/main.coffee | 26 | 
1 files changed, 12 insertions, 14 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 09a6b89f..066e4cb6 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -60,6 +60,17 @@ completers =    bookmarks: new MultiCompleter([completionSources.bookmarks])    tabs: new MultiCompleter([completionSources.tabs]) +completionHandlers = +  filter: (completer, args, port) -> +      queryTerms = args.query.split(/\s+/).filter (s) -> 0 < s.length +      completer.filter queryTerms, (results) -> port.postMessage id: args.id, results: results + +  refreshCompleter: (completer) -> completer.refresh() +  userIsTyping: (completer) -> completer.userIsTyping() + +handleCompletions = (args, port) -> +  completionHandlers[args.handler] completers[args.name], args, port +  chrome.runtime.onConnect.addListener (port, name) ->    senderTabId = if port.sender.tab then port.sender.tab.id else null    # If this is a tab we've been waiting to open, execute any "tab loaded" handlers, e.g. to restore @@ -217,18 +228,6 @@ handleSettings = (request, port) ->        values[key] = Settings.get key for own key of values        port.postMessage { values } -refreshCompleter = (request) -> completers[request.name].refresh() - -whitespaceRegexp = /\s+/ -filterCompleter = (args, port) -> -  if args.name? and args.userIsTyping -    completers[args.name].userIsTyping?() - -  if args.id? and args.name? and args.query? -    queryTerms = if (args.query == "") then [] else args.query.split(whitespaceRegexp) -    completers[args.name].filter queryTerms, (results) -> -      port.postMessage id: args.id, results: results -  chrome.tabs.onSelectionChanged.addListener (tabId, selectionInfo) ->    if (selectionChangedHandlers.length > 0)      selectionChangedHandlers.pop().call() @@ -643,7 +642,7 @@ bgLog = (request, sender) ->  portHandlers =    keyDown: handleKeyDown,    settings: handleSettings, -  filterCompleter: filterCompleter +  completions: handleCompletions  sendRequestHandlers =    getCompletionKeys: getCompletionKeysRequest @@ -661,7 +660,6 @@ sendRequestHandlers =    pasteFromClipboard: pasteFromClipboard    isEnabledForUrl: isEnabledForUrl    selectSpecificTab: selectSpecificTab -  refreshCompleter: refreshCompleter    createMark: Marks.create.bind(Marks)    gotoMark: Marks.goto.bind(Marks)    setIcon: setIcon  | 
