File: //usr/lib/python3.5/idlelib/__pycache__/AutoCompleteWindow.cpython-35.pyc
FaKE
@ s d Z d d l Td d l m Z d d l m Z m Z d Z d Z d Z d Z
d Z d Z d Z
d Z d Z Gd d d Z d S)zH
An auto-completion window for IDLE, used by the AutoComplete extension
)*)MC_SHIFT)COMPLETE_FILESCOMPLETE_ATTRIBUTESz<<autocompletewindow-hide>>
<FocusOut>
<ButtonPress>z<<autocompletewindow-keypress>><Key><Key-BackSpace><Key-Return> <Key-Tab><Key-Up>
<Key-Down>
<Key-Home> <Key-End><Key-Prior>
<Key-Next>z!<<autocompletewindow-keyrelease>>z<KeyRelease>z<B1-ButtonRelease>z<Configure>z<B1-Double-ButtonRelease>c @ s e Z d Z d d Z d d Z d d Z d d Z d d
Z d d Z d
d Z d d Z
d d Z d d Z d d Z
d d Z d d Z d d Z d d Z d S) AutoCompleteWindowc C s | | _ d | _ | _ | _ d | _ | _ d | _ d | _ d | _ d | _ d | _
d | _ d | _ d | _
| _ | _ | _ | _ | _ d | _ d S)NF)widgetautocompletewindowlistbox scrollbarorigselforegroundorigselbackgroundcompletionsmorecompletionsmodestart
startindexlasttypedstartuserwantswindowhideid
keypressidlistupdateidwinconfigidkeyreleaseid
doubleclickidlastkey_was_tab)selfr r( 0/usr/lib/python3.5/idlelib/AutoCompleteWindow.py__init__ s ,zAutoCompleteWindow.__init__c C s t t | j t | } d } x1 | | k rW | j | | | k rW | d 7} q' W| t | j k r | j j d | j | f d | j t | j f | t | k r | j j d | j | f | | d | | _ d S)Nr z%s+%dc)minlenr r deleter insert)r' newstartmin_lenir( r( r)
_change_start8 s &z AutoCompleteWindow._change_startc C sv d } t | j } xD | | k r[ | | d } | j | | k rN | } q | d } q Wt | t | j d S)zFind the first index in self.completions where completions[i] is
greater or equal to s, or the last index if there is no such
one.r r+ )r- r r, )r' sr2 jmr( r( r) _binary_searchE s z!AutoCompleteWindow._binary_searchc
C sG | j | } | j | d t | | k r6 | S| d } t | j } xT | | k r | | d } | j | d t | | k r | } qR | d } qR W| d } | | k r | j | S| j | } | j | } t t | t | } t | } x. | | k r8| | | | k r8| d 7} qW| d | S)zAssuming that s is the prefix of a string in self.completions,
return the longest string which is a prefix of all the strings which
s is a prefix of them. If s is not a prefix of a string, return s.Nr+ r4 )r8 r r- r, )
r' r5 firstr2 r6 r7 ZlastZ
first_compZ last_compr1 r( r( r) _complete_stringR s( #
#
#z#AutoCompleteWindow._complete_stringc C s t | j j d } | j j | | j } | j | } | j | | k r] | } nb t t | t | } d } x. | | k r | | | | k r | d 7} q W| d | } | j | | j | d t | j
| j
k r| j j d | j d | j
n | j j d | j j d d | j j d | j r| j | _ d | _ | j j d t x$ | j D] } | j j t | qW| j j | j | j
| j d S)z|Should be called when the selection of the Listbox has changed.
Updates the Listbox display and calls _change_start.r r+ NselectbackgroundselectforegroundbgZfg)intr curselectionseer r r8 r, r- r3 r Z configurer r cgetr r. ENDr/
select_set_selection_changed)r' curselZltsZselstartr0 r1 r2 itemr( r( r) rD q s2
#
)
z%AutoCompleteWindow._selection_changedc C sX | \ | _ | _ | | _ | j j | | _ | j j | j d | _ | r | j | j } | j } | j | | j
| } | j | | k r | t | j d k s | j | d d t | | k r | | k S| | _ | j | _
t | j | _ } | j d | j d y# | j j d d | j d d Wn t k
raYn Xt | d t | _ }
t | d
|
j d d d
d | _ } x! | j D] } | j t | qW| j d | _ | j d | _ |
j! d | j"