ó
|Nc           @   sç   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Td  d l m Z d  d l m Z e	 Z
 d „  Z d „  Z e j e ƒ  e j ƒ Z e j d e j ƒ Z e j d ƒ Z d	 e f d
 „  ƒ  YZ d „  Z e d k rã e ƒ  n  d S(   iÿÿÿÿN(   t   *(   t	   Delegator(   t   idleConfc         C   s   d |  d j  | ƒ d S(   s9   Return a named group pattern matching list of alternates.s   (?P<%s>t   |t   )(   t   join(   t   namet
   alternates(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyt   any   s    c    
      C   sÚ   d t  d t j ƒ d }  g  t t ƒ D]! } | j d ƒ s' t | ƒ ^ q' } d t  d | ƒ d } t  d d g ƒ } d } d	 } d
 } d } t  d | | | | g ƒ }	 |  d | d | d |	 d t  d d g ƒ S(   Ns   \bt   KEYWORDt   _s   ([^.'\"\\#]\b|^)t   BUILTINt   COMMENTs   #[^\n]*s&   (\b[rRuU])?'[^'\\\n]*(\\.[^'\\\n]*)*'?s&   (\b[rRuU])?"[^"\\\n]*(\\.[^"\\\n]*)*"?s2   (\b[rRuU])?'''[^'\\]*((\\.|'(?!''))[^'\\]*)*(''')?s2   (\b[rRuU])?"""[^"\\]*((\\.|"(?!""))[^"\\]*)*(""")?t   STRINGR   t   SYNCs   \n(   R   t   keywordt   kwlistt   dirt   __builtin__t
   startswitht   str(
   t   kwR   t   builtinlistt   builtint   commentt   sqstringt   dqstringt	   sq3stringt	   dq3stringt   string(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyt   make_pat   s    !s   \s+(\w+)s   .*?\b(as)\bt   ColorDelegatorc           B   s˜   e  Z d  „  Z d „  Z d „  Z d „  Z d d „ Z d d „ Z d Z	 e
 Z e Z d d „ Z d Z d d „ Z d „  Z d	 „  Z d
 „  Z d „  Z RS(   c         C   s6   t  j |  ƒ t |  _ t |  _ t |  _ |  j ƒ  d  S(   N(   R   t   __init__t   progt   idprogt   asprogt   LoadTagDefs(   t   self(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR    %   s
    			c         C   so   |  j  d  k	 r |  j d ƒ n  t j |  | ƒ | d  k	 rk |  j ƒ  |  j d |  j ƒ |  j d d ƒ n  d  S(   Ns   <<toggle-auto-coloring>>s   1.0t   end(	   t   delegatet   Nonet   unbindR   t   setdelegatet   config_colorst   bindt   toggle_colorize_eventt   notify_range(   R%   R'   (    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR*   ,   s    
c         C   sJ   x6 |  j  j ƒ  D]% \ } } | r |  j | |  q q W|  j d ƒ d  S(   Nt   sel(   t   tagdefst   itemst   tag_configuret	   tag_raise(   R%   t   tagt   cnf(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR+   5   s    c         C   sù   t  j d d d ƒ } i
 t  j | d ƒ d 6t  j | d ƒ d 6t  j | d ƒ d	 6t  j | d
 ƒ d 6t  j | d ƒ d 6i d  d 6d  d 6d 6i d  d 6d  d 6d 6t  j | d ƒ d 6t  j | d ƒ d 6t  j | d ƒ d 6|  _ t rõ d G|  j GHn  d  S(   Nt   maint   ThemeR   R   R   R   R	   R   R   R   R   t
   definitiont
   DEFINITIONt
   backgroundt
   foregroundR   t   TODOt   breakt   BREAKt   errort   ERRORt   hitR0   (   R   t	   GetOptiont   GetHighlightR(   R0   t   DEBUG(   R%   t   theme(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR$   ;   s     c         C   sG   |  j  | ƒ } |  j j | | | ƒ |  j | | d t | ƒ ƒ d  S(   Ns   +%dc(   t   indexR'   t   insertR.   t   len(   R%   RF   t   charst   tags(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyRG   M   s    c         C   s3   |  j  | ƒ } |  j j | | ƒ |  j | ƒ d  S(   N(   RF   R'   t   deleteR.   (   R%   t   index1t   index2(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyRK   R   s    c         C   s‡   |  j  d | | ƒ |  j r. t r* d GHn  d  S|  j rQ t |  _ t rQ d GHqQ n  |  j rƒ t rh d GHn  |  j d |  j ƒ |  _ n  d  S(   NR<   s   colorizing already scheduleds   stop colorizings   schedule colorizingi   (	   t   tag_addt   after_idRD   t
   colorizingt   Truet   stop_colorizingt   allow_colorizingt   aftert
   recolorize(   R%   RL   RM   (    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR.   [   s    	 		 	 c         C   sw   |  j  r9 |  j  } d  |  _  t r) d GHn  |  j | ƒ n  t |  _ t |  _ | rs |  j sg | j	 ƒ  qs | |  _
 n  d  S(   Ns   cancel scheduled recolorizer(   RO   R(   RD   t   after_cancelt   FalseRS   RQ   RR   RP   t   destroyt   close_when_done(   R%   RY   RO   (    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyt   closei   s    			 			c         C   sÅ   |  j  r9 |  j  } d  |  _  t r) d GHn  |  j | ƒ n  |  j re |  j re t rY d GHn  t |  _ n  |  j |  _ |  j r  |  j r  |  j d |  j	 ƒ |  _  n  t rÁ d G|  j r¹ d p¼ d GHn  d S(   Ns   cancel scheduled recolorizers   stop colorizingi   s   auto colorizing turnedt   ont   offR=   (
   RO   R(   RD   RV   RS   RP   RQ   RR   RT   RU   (   R%   t   eventRO   (    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR-   w   s"    			  c         C   s3  d  |  _ |  j s$ t r  d GHn  d  S|  j s? t r; d GHn  d  S|  j rZ t rV d GHn  d  Sz\ t |  _ t |  _ t r} d GHn  t	 j
 ƒ  } |  j ƒ  t	 j
 ƒ  } t rµ d | | GHn  Wd  t |  _ X|  j r|  j d d ƒ rt rì d GHn  |  j d	 |  j ƒ |  _ n  |  j r/|  j } d  |  _ | j ƒ  n  d  S(
   Ns   no delegates   auto colorizing is offs   already colorizings   colorizing...s   %.3f secondsR<   s   1.0s   reschedule colorizingi   (   R(   RO   R'   RD   RS   RP   RW   RR   RQ   t   timet   clockt   recolorize_maint   tag_nextrangeRT   RU   RY   RX   (   R%   t   t0t   t1t   top(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyRU   ˆ   s@    		 	 	 		 
 
 			c         C   sM  d } x@t  rH|  j d | ƒ } | s+ Pn  | \ } } |  j d | | ƒ |  j d | ƒ } | ro | d } n d } d } | } d } t } xµ| sD| } |  j | d | ƒ } t | d d ƒ } d |  j | d	 ƒ k } |  j | | ƒ }	 |	 sû d  Sx* |  j	 j
 ƒ  D] }
 |  j |
 | | ƒ qW| |	 } |  j j | ƒ } xŽ| rÔxf| j ƒ  j ƒ  D]R\ } } | r`| j | ƒ \ } } |  j | | d
 | | d
 | ƒ | d k r|  j j | | ƒ } | r¯| j d ƒ \ } } |  j d | d
 | | d
 | ƒ q¯q²| d k r²d | k r9| j d ƒ } n t | ƒ } xg t  r«|  j j | | | ƒ } | spPn  | j d ƒ \ } } |  j d | d
 | | d
 | ƒ qHWq²q`q`W|  j j | | j ƒ  ƒ } qGWd |  j | d	 ƒ k rý| } d } n t } | s|  j d | ƒ n  |  j ƒ  |  j r t r=d GHn  d  Sq Wq	 Wd  S(   Ns   1.0R<   R   i   t    s   +%d lines linestarti   id   s   -1cs   +%dct   deft   classR9   t   importt   #R	   s   colorizing stopped(   s   defs   class(   RQ   Ra   t
   tag_removet   tag_prevrangeRW   RF   t   mint	   tag_namest   getR0   t   keysR!   t   searcht	   groupdictR1   t   spanRN   R"   t   matchRH   R#   R&   t   updateRR   RD   (   R%   t   nextt   itemt   headt   tailRI   t   lines_to_gett   okt   markt   lineR4   t   mt   keyt   valuet   at   bt   m1t   endpos(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR`   ¥   s„    		
						
	 c         C   s1   x* |  j  j ƒ  D] } |  j | d d ƒ q Wd  S(   Ns   1.0R&   (   R0   Ro   Rj   (   R%   R4   (    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyt   removecolorsö   s    N(   t   __name__t
   __module__R    R*   R+   R$   R(   RG   RK   RO   RQ   RS   RW   RP   R.   RY   RZ   R-   RU   R`   R„   (    (    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR   #   s    								Qc          C   s‹   d d l  m }  t ƒ  } | j d | j ƒ t d d ƒ } | j d d d d	 ƒ | j ƒ  |  | ƒ } t ƒ  } | j	 | ƒ | j
 ƒ  d  S(
   Niÿÿÿÿ(   t
   Percolatort   WM_DELETE_WINDOWR:   t   whitet   expandi   t   fillt   both(   t   idlelib.PercolatorR‡   t   Tkt   wm_protocolt   quitt   Textt   packt	   focus_setR   t   insertfiltert   mainloop(   R‡   t   roott   textt   pt   d(    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyR6   ú   s    	
	t   __main__(   R^   t   reR   R   t   Tkintert   idlelib.DelegatorR   t   idlelib.configHandlerR   RW   RD   R   R   t   compilet   SR!   R"   R#   R   R6   R…   (    (    (    s+   C:\RCS\Python\lib\idlelib\ColorDelegator.pyt   <module>   s    
		×	