mς
­fIc           @   s)   d  k  Z  d  k Z d f  d     YZ d  S(   Nt
   AutoExpandc           B   sR   t  Z d d	 g f g Z e i e i d Z d   Z d   Z d   Z	 d   Z
 RS(
   Nt   edits   E_xpand Words   <<expand-word>>t   _c         C   s   | i |  _ d  |  _ d  S(   N(   t   editwint   textt   selft   Nonet   state(   R   R   (    (    t/   /mit/python/lib/python2.4/idlelib/AutoExpand.pyt   __init__   s    c   
      C   s`  |  i i d  } |  i i d d  } |  i p |  i   } d } nF |  i \ } } } }	 | | j p |	 | j o |  i   } d } n | p |  i i   d Sn |  i   } |  i i d t |  d  | | } | d t |  } | d j o |  i i   n |  i i	 d |  |  i i d  } |  i i d d  } | | | | f |  _ d S(   Nt   inserts   insert linestarts   insert lineendi    t   breaks   insert - %d charsi   (   R   R   t   indext	   curinsertt   gett   curlineR   t   getwordst   wordsR
   t   linet   bellt   getprevwordt   wordt   deletet   lent   newword(
   R   t   eventR   R   R   R   R   R
   R   R   (    (    R   t   expand_word_event   s.    



c   	      C   s<  |  i   } | p g  Sn |  i i d d  } t i d | d |  } ~ |  i i d d  } t i d | d |  } ~ | o | o g  Sn g  } h  } | i   x< | D]4 } | i |  o q΄ n | i |  | | | <q΄ Wx< | D]4 } | i |  o qσ n | i |  | | | <qσ W| i |  | S(   Ns   1.0s   insert wordstarts   \bs   \w+\bs   insert wordendt   end(   R   R   R   R   R   t   beforet   ret   findallt   wbeforet   aftert   wafterR   t   dictt   reverset   wt   append(	   R   R   R!   R    R"   R   R$   R   R   (    (    R   R   0   s8    
  c         C   s`   |  i i d d  } t |  } x4 | d j o& | | d |  i j o | d } q$ W| | S(   Ns   insert linestartR
   i    i   (   R   R   R   R   R   t   it	   wordchars(   R   R&   R   (    (    R   R   N   s     %(   s   E_xpand Words   <<expand-word>>(   t   __name__t
   __module__t   menudefst   stringt   ascii_letterst   digitsR'   R	   R   R   R   (    (    (    R   R       s   			(   R+   R   R    (   R   R+   R    (    (    R   t   ?   s   		