code: function _updateHintList(callMoveUpEvent) {
  
          callMoveUpEvent = typeof callMoveUpEvent === "undefined" ? false : callMoveUpEvent;
  
          if (deferredHints) {
              deferredHints.reject();
              deferredHints = null;
          }
  
          if (callMoveUpEvent) {
              return hintList.callMoveUp(callMoveUpEvent);
          }
  
          var response = sessionProvider.getHints(lastChar);
          lastChar = null;
  
          if (!response) {
              // the provider wishes to close the session
              _endSession();
          } else {
              // if the response is true, end the session and begin another
              if (response === true) {
                  var previousEditor = sessionEditor;
  
                  _endSession();
                  _beginSession(previousEditor);
              } else if (response.hasOwnProperty("hints")) { // a synchronous response
                  if (hintList.isOpen()) {
                      // the session is open
                      hintList.update(response);
                  } else {
                      hintList.open(response);
                  }
              } else { // response is a deferred
                  deferredHints = response;
                  response.done(function (hints) {
                      // Guard against timing issues where the session ends before the
                      // response gets a chance to execute the callback.  If the session
                      // ends first while still waiting on the response, then hintList
                      // will get cleared up.
                      if (!hintList) {
                          return;
                      }
  
                      if (hintList.isOpen()) {
                          // the session is open
                          hintList.update(hints);
                      } else {
                          hintList.open(hints);
                      }
                  });
              }
          }
      }
docs: From an active hinting session, get hints from the current provider and
  render the hint list window.
  
  Assumes that it is called when a session is active (i.e. sessionProvider is not null).