B YI~d�"�@s�ddlZddlZddlZddlZd\ZZddlmZddlm Z ddl m Z dZ dZ dddefZdddefZejejd Zej�ejr�ejnd ��Zd e��ZGd d �d �Ze��edkr�ddlmZeddd�dS)�N)r�)�autocomplete_w)�idleConf)� HyperParser)TFTN)FTTNF�_��.c@sneZdZddd�Zedd��Zdd�Zddd �Zd d �Zd d �Z ddd�Z dd�Z dd�Z dd�Z dd�ZdS)� AutoCompleteNcCs,||_|dk r|j|_d|_d|_d|_dS)N)�editwin�text�autocompletewindow�_delayed_completion_id�_delayed_completion_index)�selfr �r�9/opt/alt/python37/lib64/python3.7/idlelib/autocomplete.py�__init__!s zAutoComplete.__init__cCstjdddddd�|_dS)N� extensionsr � popupwait�intr)�type�default)rZ GetOptionr)�clsrrr�reload,szAutoComplete.reloadcCs t�|j�S)N)rZAutoCompleteWindowr )rrrr�_make_autocomplete_window1sz&AutoComplete._make_autocomplete_windowcCs|jr|j��d|_dS)N)r Z hide_window)r�eventrrr�_remove_autocomplete_window4s z(AutoComplete._remove_autocomplete_windowcCs|�t�dS)N�break)�open_completions�FORCE)rrrrr�force_open_completions_event9s z)AutoComplete.force_open_completions_eventcCs^t|d�r|js"|j�dd���s&dS|jrD|j��rD|j��dS|�t �}|rVdSdSdS)N�mc_statezinsert linestart�insertr) �hasattrr!r �get�stripr Z is_active�completer�TAB)rrZopenedrrr�autocomplete_event>s  zAutoComplete.autocomplete_eventcCsd|j�d�}|tkr`|dkr tnt}|j�d�|_|jdk rJ|j�|j�|j� |j |j |�|_dS)Nz insert-1crr") r r$�TRIGGERS�TRY_A�TRY_F�indexrr � after_cancelZafterr�_delayed_open_completions)rrZlastchar�argsrrr�try_open_completions_eventLs  z'AutoComplete.try_open_completions_eventcCs&d|_|j�d�|jkr"|�|�dS)Nr")r r r,rr)rr/rrrr.Wsz&AutoComplete._delayed_open_completionsc Cs|\}}}}|jdk r*|j�|j�d|_t|jd�}|j�dd�}t|�}} |��r�|rd|tkr�|� �t}x$|r�||ddt kr�|d8}qrW||| �} |} x |r�||ddkr�|d8}q�W||| �} n�|� ��r�|r�|t k�r�|� �t }x:|�r4||dt k�s*t||d�dk�r4|d8}q�W||| �} |�r�||ddk�r�|�dt|�|d�|��} | �r�|�s�| �d�d k�r�dSnd } ndS|�r�| �s�| �s�dS|�| |�} | d �s�dS|��|_|j�| dt| �|||� S) Nr"zinsert linestartrz'"�rz insert-%dc�(�����rr)r r r-rr r$�lenZ is_in_string�FILESr�SEPSZ is_in_code�ATTRS�ID_CHARS�ordZ set_indexZget_expression�find�fetch_completionsrr Z show_window) rr/Z evalfuncsr&Zwantwin�modeZhpZcurline�i�jZ comp_startZ comp_whatZ comp_listsrrrr]sP       0      zAutoComplete.open_completionsc Cs`y|jjjjj}Wnd}YnX|r<|�dd||fi�S|tkr�|dkr�tjj tj �}t d|�}|� �d|kr�t t d|��}q�dd�|D�}nPy@|� |�}t|�}|� �d|kr�t |j�}ndd�|D�}WnggfSnd|tk�rJ|dk�r�d }y0tj�|�}t�|�}|� �d d�|D�}Wntk �rHggfSX|�sT|}||fSdS) N�execZget_the_completion_listrzdir()�__all__cSs g|]}|dd�dkr|�qS)Nrrr)�.0�srrr� �sz2AutoComplete.fetch_completions..cSs g|]}|dd�dkr|�qS)Nrrr)rArBrrrrC�srcSs g|]}|dd�dkr|�qS)Nrrr)rArBrrrrC�s)r �flistZpyshellZinterp�rpccltZ remotecallr7�__main__� __builtins__�__dict__�eval�sort�sorted� get_entity�dirr@r5�os�path� expanduser�listdir�OSError) rZwhatr<rE� namespaceZbiglZsmalllZentityZ expandedpathrrrr;�sL            zAutoComplete.fetch_completionscCst|tjtj��S)N)rI�sys�modulesrFrH)r�namerrrrL�szAutoComplete.get_entity)N)N)N)�__name__� __module__� __qualname__r� classmethodrrrr r(r0r.rr;rLrrrrr s   <9r rF)�mainz#idlelib.idle_test.test_autocomplete�)� verbosity)rFrN�stringrTr7r5ZidlelibrZidlelib.configrZidlelib.hyperparserrrr'r*r+Z ascii_letters�digitsr8�sep�altsepr6r)r rrWZunittestr[rrrr�s(      9