code: function _handleChange(event, editor, changeList) {
          if (lastChar && editor === keyDownEditor) {
              keyDownEditor = null;
              if (_inSession(editor)) {
                  var charToRetest = lastChar;
                  _updateHintList();
  
                  // _updateHintList() may end a hinting session and clear lastChar, but a
                  // different provider may want to start a new session with the same character.
                  // So check whether current provider terminates the current hinting
                  // session. If so, then restore lastChar and restart a new session.
                  if (!_inSession(editor)) {
                      lastChar = charToRetest;
                      _beginSession(editor);
                  }
              } else {
                  _beginSession(editor);
              }
  
              // Pending Text is used in hintList._keydownHook()
              if (hintList && changeList[0] && changeList[0].text.length && changeList[0].text[0].length) {
                  var expectedLength = editor.getCursorPos().ch - changeList[0].from.ch,
                      newText = changeList[0].text[0];
                  // We may get extra text in newText since some features like auto
                  // close braces can append some text automatically.
                  // See https://github.com/adobe/brackets/issues/6345#issuecomment-32548064
                  // as an example of this scenario.
                  if (newText.length > expectedLength) {
                      // Strip off the extra text before calling removePendingText.
                      newText = newText.substr(0, expectedLength);
                  }
                  hintList.removePendingText(newText);
              }
          }
      }
docs: Start a new implicit hinting session, or update the existing hint list.
  Called by the editor after handleKeyEvent, which is responsible for setting
  the lastChar.
  
  @param {Event} event
  @param {Editor} editor
  @param {{from: Pos, to: Pos, text: Array, origin: string}} changeList