ž
©ÿfE c
@ 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( uH
An auto-completion window for IDLE, used by the AutoComplete extension
i ( u *( u MC_SHIFT( u COMPLETE_FILESu COMPLETE_ATTRIBUTESu <>u
u
u <>u u u u u u
u
u u u
u! <>u u u u c B sÈ | Ee 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( u AutoCompleteWindowc C s¨ | | _ d | _ | _ | _ d | _ | _ d | _ d | _ d | _ d | _
d | _ d | _ d | _
d | _ | _ | _ | _ | _ | _ d | _ d S( NF( u widgetu Noneu autocompletewindowu listboxu scrollbaru origselforegroundu origselbackgroundu completionsu morecompletionsu modeu startu
startindexu lasttypedstartu userwantswindowu hideidu
keypressidu listupdateidu winconfigidu keyreleaseidu
doubleclickidu Falseu lastkey_was_tab( u selfu widget( ( u? /opt/alt/python33/lib64/python3.3/idlelib/AutoCompleteWindow.pyu __init__ s ,u AutoCompleteWindow.__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 ƒ n | t | ƒ k rå | j j d | j | f | | d … ƒ n | | _ d S( Ni i u %s+%dc( u minu lenu startu widgetu deleteu
startindexu insert( u selfu newstartu min_lenu i( ( u? /opt/alt/python33/lib64/python3.3/idlelib/AutoCompleteWindow.pyu
_change_start8 s & u AutoCompleteWindow._change_startc C sv d } t | j ƒ } xD | | k r[ | | d } | j | | k rN | } q | d } q Wt | t | j ƒ d ƒ S( u’ Find 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.i i i ( u lenu completionsu min( u selfu su iu ju m( ( u? /opt/alt/python33/lib64/python3.3/idlelib/AutoCompleteWindow.pyu _binary_searchE s u! 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( uÖ Assuming 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.Ni i ( u _binary_searchu completionsu lenu min(
u selfu su firstu iu ju mu lastu
first_compu last_compu min_len( ( u? /opt/alt/python33/lib64/python3.3/idlelib/AutoCompleteWindow.pyu _complete_stringR s( #
#
#u# 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 | ƒ qƒW| j j | j | j
ƒ ƒ | j ƒ n d S( u| Should be called when the selection of the Listbox has changed.
Updates the Listbox display and calls _change_start.i i Nu selectbackgroundu selectforegroundu bgu fg( u intu listboxu curselectionu seeu lasttypedstartu completionsu _binary_searchu minu lenu
_change_startu startu configureu origselbackgroundu origselforegroundu cgetu morecompletionsu Noneu deleteu ENDu insertu
select_setu _selection_changed( u selfu curselu ltsu selstartu newstartu min_lenu iu item( ( u? /opt/alt/python33/lib64/python3.3/idlelib/AutoCompleteWindow.pyu _selection_changedq s2
#
)
u% AutoCompleteWindow._selection_changedc C sQ | \ | _ | _ | | _ | 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 Sn | | _ | j | _
t | j ƒ | _ } | j d ƒ | j d ƒ y# | j j d d | j d d ƒ Wn t k
rdYn Xt | d t ƒ| _ }
t | d
|
j d d d d
ƒ| _ } x! | j D] } | j t | ƒ q°W| j d ƒ | _ | j d ƒ | _! |
j" d | j# ƒ |
j$ d t% d t&