src/editor/CodeHintManager.js
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);
                    }
                });
            }
        }
    }
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);
                    }
                });
            }
        }
    }
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 ) ; } } ) ; } } }
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).
From an active hinting session get hints from the current provider and render the hint list window .