     # TODO: Should we *always* focus the editor? Probably not...
     @suggestionList?.hideAndFocusOn(@editorView)
 
+  requestHideSuggestionList: (command) ->
+    @hideTimeout = setTimeout(@hideSuggestionList, 0)
+
+  cancelHideSuggestionListRequest: ->
+    clearTimeout(@hideTimeout)
+
   # Private: Replaces the current prefix with the given match.
   #
   # match - The match to replace the current prefix with

  #
  # data - An {Object} containing information on why the cursor has been moved
  cursorMoved: ({textChanged}) =>
    @hideSuggestionList() unless textChanged

  # Private: Gets called when the user saves the document. Cancels the
  # autocompletion.

  # event - The change {Event}
  bufferChanged: ({newText, oldText}) =>
    return if @suggestionList.compositionInProgress

    autoActivationEnabled = atom.config.get('autocomplete-plus.enableAutoActivation')
    wouldAutoActivate = newText.trim().length is 1 or (@suggestionList.isActive() and oldText.trim().length is 1)

    if autoActivationEnabled and wouldAutoActivate
      @cancelHideSuggestionListRequest()
      @contentsModified()
    else
      @hideSuggestionList()
