code: def invokeCompletionIfAvailable(self, requestedByUser=False):
          
          if self._qpart.completionEnabled and self._wordSet is not None:
              wordBeforeCursor = self._wordBeforeCursor()
              wholeWord = wordBeforeCursor + self._wordAfterCursor()
  
              forceShow = requestedByUser or self._completionOpenedManually
              if wordBeforeCursor:
                  if len(wordBeforeCursor) >= self._qpart.completionThreshold or forceShow:
                      if self._widget is None:
                          model = _CompletionModel(self._wordSet)
                          model.setData(wordBeforeCursor, wholeWord)
                          if self._shouldShowModel(model, forceShow):
                              self._createWidget(model)
                              return True
                      else:
                          self._widget.model().setData(wordBeforeCursor, wholeWord)
                          if self._shouldShowModel(self._widget.model(), forceShow):
                              self._widget.updateGeometry()
  
                              return True
  
          self._closeCompletion()
          return False
docs: Invoke completion, if available. Called after text has been typed in qpart
          Returns True, if invoked