
from pyreadline.rlmain import Readline

__all__ = [ 'parse_and_bind',
            'get_line_buffer',
            'insert_text',
            'clear_history',
            'read_init_file',
            'read_history_file',
            'write_history_file',
            'get_current_history_length',
            'get_history_length',
            'get_history_item',
            'set_history_length',
            'set_startup_hook',
            'set_pre_input_hook',
            'set_completer',
            'get_completer',
            'get_begidx',
            'get_endidx',
            'set_completer_delims',
            'get_completer_delims',
            'add_history',
            'callback_handler_install',
            'callback_handler_remove',
            'callback_read_char',] #Some other objects are added below


# create a Readline object to contain the state
rl = Readline()

if rl.disable_readline:
    def dummy(completer=""):
        pass
    for funk in __all__:
        globals()[funk] = dummy
else:
    def GetOutputFile():
        '''Return the console object used by readline so that it can be used for printing in color.'''
        return rl.console
    __all__.append("GetOutputFile")

    import pyreadline.console as console

    # make these available so this looks like the python readline module
    read_init_file = rl.read_init_file
    parse_and_bind = rl.parse_and_bind
    clear_history = rl.clear_history
    add_history = rl.add_history
    insert_text = rl.insert_text

    write_history_file = rl.write_history_file
    read_history_file = rl.read_history_file

    get_completer_delims = rl.get_completer_delims
    get_current_history_length = rl.get_current_history_length
    get_history_length = rl.get_history_length
    get_history_item = rl.get_history_item
    get_line_buffer = rl.get_line_buffer
    set_completer = rl.set_completer
    get_completer = rl.get_completer
    get_begidx = rl.get_begidx
    get_endidx = rl.get_endidx

    set_completer_delims = rl.set_completer_delims
    set_history_length = rl.set_history_length
    set_pre_input_hook = rl.set_pre_input_hook
    set_startup_hook = rl.set_startup_hook

    callback_handler_install=rl.callback_handler_install
    callback_handler_remove=rl.callback_handler_remove
    callback_read_char=rl.callback_read_char

    console.install_readline(rl.readline)

__all__.append("rl")