3 fl$ @ s d Z ddlZddlZddlZedd\ZZddlmZ ddl m Z ddlmZ ddl Z ejej d ZejZejr|eej7 ZG d d d Zej edkrddlmZ ed dd dS )zComplete either attribute names or file names. Either on demand or after a user-selected delay after a key character, pop up a list of candidates. N )autocomplete_w)idleConf)HyperParser_c @ sv e Zd ZdddZedd Zdd Zddd Zd d Zdd Z dd Z dd Zdd ZdddZ dd Zdd ZdS )AutoCompleteNc C s, || _ |d k r(|j| _d | _d | _d | _d S )N)editwintextautocompletewindow_delayed_completion_id_delayed_completion_index)selfr r 9/opt/alt/python36/lib64/python3.6/idlelib/autocomplete.py__init__ s zAutoComplete.__init__c C s t jdddddd| _d S )N extensionsr popupwaitintr )typedefault)r Z GetOptionr )clsr r r reload) s zAutoComplete.reloadc C s t j| jS )N)r ZAutoCompleteWindowr )r r r r _make_autocomplete_window. s z&AutoComplete._make_autocomplete_windowc C s | j r| j j d | _ d S )N)r Zhide_window)r eventr r r _remove_autocomplete_window1 s z(AutoComplete._remove_autocomplete_windowc C s | j ddd dS )zqHappens when the user really wants to open a completion list, even if a function call is needed. TFbreak)open_completions)r r r r r force_open_completions_event6 s z)AutoComplete.force_open_completions_eventc C sB | j jd}|dkr&| jdddt n|tkr>| jdddt dS )zHappens when it would be nice to open a completion list, but not really necessary, for example after a dot, so function calls won't be made. z insert-1c.FN)r get_open_completions_laterCOMPLETE_ATTRIBUTESSEPSCOMPLETE_FILES)r r Zlastcharr r r try_open_completions_event= s z'AutoComplete.try_open_completions_eventc C sd t |dr|js$| jjddj r(dS | jrF| jj rF| jj dS | jddd}|r\dS dS dS )zHappens when the user wants to complete his word, and if necessary, open a completion list after that (if there is more than one completion) mc_statezinsert linestartinsertNr FT) hasattrr&