
   9j                      d dl Z d dlZd dlZd dlZd dlmZ d dlmZ dZd Z	d Z
 e
            Z ej        d          Zddddd	Zd
 Zd Z G d de          Zd Zedk    r'd dlmZ  eddd           d dlmZ  ee           dS dS )    N)idleConf)	DelegatorFc                 @    	 d| z  d                     |          z   dz   S )Nz(?P<%s>|))join)name
alternatess     _/nix/store/c6yb989sl77467xxwhylnkph1pqyi47p-python3-3.11.15/lib/python3.11/idlelib/colorizer.pyanyr      s&    ?tchhz222S88    c                     dt          dt          j                  z   dz   } dd                    ddd                    t          j                  z   dz   g          z   dz   }d	}d
d                    dddd                    t          j                  z   dz   g          z   dz   }d t	          t
                    D             }dt          d|          z   dz   }t          ddg          }d}|dz   }|dz   }	|dz   }
|dz   }t          d|
|||	g          }t          j        d                    |||| |||t          ddg          g          t          j        t          j	        z            }|S )Nz\bKEYWORDz,^[ \t]*(?P<MATCH_SOFTKW>match)\b(?![ \t]*(?:r   z[:,;=^&|@~)\]}]z\b(?:z)\bz))zB^[ \t]*(?P<CASE_SOFTKW>case)[ \t]+(?P<CASE_DEFAULT_UNDERSCORE>_\b)z+^[ \t]*(?P<CASE_SOFTKW2>case)\b(?![ \t]*(?:z_\bc                 r    g | ]4}|                     d           s|t          j        v%t          |          5S )_)
startswithkeywordkwliststr).0r	   s     r   
<listcomp>zmake_pat.<locals>.<listcomp>-   sH     / / ///#../w~-- t99---r   z([^.'\"\\#]\b|^)BUILTINCOMMENTz#[^\n]*z(?i:r|u|f|fr|rf|b|br|rb)?z'[^'\\\n]*(\\.[^'\\\n]*)*'?z"[^"\\\n]*(\\.[^"\\\n]*)*"?z''''[^'\\]*((\\.|'(?!''))[^'\\]*)*(''')?z'"""[^"\\]*((\\.|"(?!""))[^"\\]*)*(""")?STRINGSYNCz\n)
r   r   r   r   dirbuiltinsrecompileDOTALL	MULTILINE)kwmatch_softkwcase_defaultcase_softkw_and_patternbuiltinlistbuiltincommentstringprefixsqstringdqstring	sq3string	dq3stringstringprogs                 r   make_patr0      s   	Y//	/%	7B	((tyy00069$
  	 		 	2 	((tyy00069	$
  	 		 / /X / / /K "C	;$?$??%GG)j\**G/L<<H<<HIIIIIIIy(HEFFF:chh '&" ,l 7 #FUG 4 4	 ! " " i",.0 0D Kr   z\s+(\w+)r   )MATCH_SOFTKWCASE_SOFTKWCASE_DEFAULT_UNDERSCORECASE_SOFTKW2c                 d    	 d |                                                                  D             S )Nc              3   (   K   | ]\  }}|||fV  d S N )r   kvs      r   	<genexpr>z'matched_named_groups.<locals>.<genexpr>N   s/      CCv1CQFCCCCCCr   )	groupdictitems)re_matchs    r   matched_named_groupsr?   L   s1    BCC!3!3!5!5!;!;!=!=CCCCr   c           	      *   	 t          j                    }t          j        |d          }t          j        |d          d         }t          j        |d          }|                     |d         |d         ||d         |d         |d                    d S )Nnormalcursor
foregroundhilite
background)rC   rE   insertbackgroundselectforegroundselectbackgroundinactiveselectbackground)r   CurrentThemeGetHighlightconfig)textthemenormal_colorscursor_colorselect_colorss        r   color_configrR   Q   s     !##E)%::M(99,GL)%::MKK . .%&|4&|4!.|!<  
 
 
 
 
r   c                   r    e Zd Z	 d Zd Zd Zd Zd ZddZddZ	dd	Z
d
 ZddZd Zd Zd Zd Zd ZdS )ColorDelegatorc                     t          j        |            |                                  t          | _        t          | _        |                                  d S r7   )r   __init__
init_stater/   idprogLoadTagDefsselfs    r   rV   zColorDelegator.__init__v   sI    4   	r   c                 @    	 d | _         d| _        d| _        d| _        d S )NTF)after_idallow_colorizingstop_colorizing
colorizingrZ   s    r   rW   zColorDelegator.init_state}   s'    ; $$r   c                    	 | j         |                     d           t          j        | |           |G|                                  |                     d| j                   |                     dd           d S d| _        d| _	        d S )Nz<<toggle-auto-coloring>>1.0endTF)
delegateunbindr   setdelegateconfig_colorsbindtoggle_colorize_eventnotify_ranger_   r^   )r[   rd   s     r   rf   zColorDelegator.setdelegate   s    		 =$KK2333dH---   II0$2LMMMeU+++++ $(D $)D!!!r   c                     	 | j                                         D ]\  }} | j        |fi | |                     d           d S )Nsel)tagdefsr=   tag_configure	tag_raise)r[   tagcnfs      r   rg   zColorDelegator.config_colors   s\    >**,, 	+ 	+HCDs**c****ur   c                    	 t          j                    }t          j        |d          t          j        |d          t          j        |d          t          j        |d          t          j        |d          d d dd d dt          j        |d          t          j        |d          d		| _        t          rt          d
| j                   d S d S )Nr(   r   r'   r.   
definition)rE   rC   errorhit)	r   r   r   r   
DEFINITIONr   TODOERRORru   rm   )r   rJ   rK   rm   DEBUGprint)r[   rN   s     r   rY   zColorDelegator.LoadTagDefs   s    8%'',UI>>,UI>>,UI>>+E8<<"/|DD#'t<<#'t<<*5'::
 (66  0%	4<0000000r   Nc                     	 |                      |          }| j                            |||           |                     ||dt	          |          z  z              d S )Nz+%dc)indexrd   insertrj   len)r[   r|   charstagss       r   r}   zColorDelegator.insert   s\    D

5!!UE4000%#e**)<!<=====r   c                     	 |                      |          }| j                            ||           |                     |           d S r7   )r|   rd   deleterj   r[   index1index2s      r   r   zColorDelegator.delete   sH    ?F##VV,,,&!!!!!r   c                 6   	 |                      d||           | j        rt          rt          d           d S | j        rd| _        t          rt          d           | j        r6t          rt          d           |                     d| j                  | _        d S )Nrw   zcolorizing already scheduledTstop colorizingzschedule colorizing   )	tag_addr]   ry   rz   r`   r_   r^   after
recolorizer   s      r   rj   zColorDelegator.notify_range   s    MVVV,,,= 	;e:;;;F? 	/#'D .e-...  	;2e1222 JJq$/::DMr   c                     | j         r9| j         }d | _         t          rt          d           |                     |           d| _        d| _        d S )Ncancel scheduled recolorizerFT)r]   ry   rz   after_cancelr^   r_   )r[   r]   s     r   closezColorDelegator.close   sX    = 	(}H DM;e:;;;h''' %#r   c                    	 | j         r9| j         }d | _         t          rt          d           |                     |           | j        r$| j        rt          rt          d           d| _        | j         | _        | j        r'| j        s |                     d| j                  | _         t          rt          d| j        rdnd           dS )	Nr   r   Tr   zauto colorizing turnedonoffbreak)	r]   ry   rz   r   r^   r`   r_   r   r   )r[   eventr]   s      r   ri   z$ColorDelegator.toggle_colorize_event   s    	 = 	(}H DM;e:;;;h'''  	(T_ 	(.e-...#'D $($9 9  	; 	; JJq$/::DM 	<*/:$$U< < <wr   c                    	 d | _         | j        st          rt          d           d S | j        st          rt          d           d S | j        rt          rt          d           d S 	 d| _        d| _        t          rt          d           t          j                    }| 	                                 t          j                    }t          rt          d||z
  z             d| _        n# d| _        w xY w| j        rN| 
                    dd	          r:t          rt          d
           |                     d| j                  | _         d S d S d S )Nzno delegatezauto colorizing is offzalready colorizingFTzcolorizing...z%.3f secondsrw   rb   zreschedule colorizingr   )r]   rd   ry   rz   r^   r`   r_   timeperf_counterrecolorize_maintag_nextranger   r   )r[   t0t1s      r   r   zColorDelegator.recolorize   sk   	 } 	*eM***F$ 	5e4555F? 	1e0111F		$#(D "DO,eO,,,"$$B  """"$$B5eNbe4555#DOOeDO####  	;T%7%7%F%F 	;4e3444 JJq$/::DMMM	; 	; 	; 	;s   'A:C) )	C2c                 >   	 d}|                      d|          x}r|                     d|d         |d                    |                     d|d                   }|r|d         nd}d}|}d}d}|s|}|                     |d|z  z             }t	          |d	z  d
          }d|                     |dz             v }|                     ||          }	|	sd S | j        D ]}
|                     |
||           ||	z  }|                     ||           d|                     |dz             v r|}d}nd}|s| 	                    d|           | 
                                 | j        rt          rt          d           d S ||                      d|          x}~d S d S )Nrb   rw   r   r   r    Fz+%d lines linestart   d   z-1czcolorizing stopped)r   
tag_removetag_prevranger|   min	tag_namesgetrm   _add_tags_in_sectionr   update_idletasksr_   ry   rz   )r[   nexttodo_tag_rangesync_tag_rangeheadr   lines_to_getokmarklinerp   s              r   r   zColorDelegator.recolorize_main  s   2 $ 2 264 @ @@n '	OOFN1$5~a7HIII!//q8IJJN(6A>!$$EDEDLB zz$)>)5*6 #6 7 7"<!#3S99t~~dUl;;;xxd++ F< 5 5COOCt4444))%666T^^D5L9999DEEB / LL...%%'''' 9e$8999F=   !% 2 264 @ @@n '	 '	 '	 '	 '	r   c                     	 t                               ||          }|                     || d|dd| d|dd           d S )N+dc)prog_group_name_to_tagr   r   )r[   startrc   r   matched_group_namerp   s         r   _add_tagzColorDelegator._add_tag>  st    		 %((););= =S))u))))''s''''	) 	) 	) 	) 	)r   c                 n   	 | j                             |          D ]}t          |          D ]\  }}|                    |          \  }}|                     ||||           |dv rM| j                            ||          x}r0|                    d          \  }}|                     |||d           d S )N)defclassr   rv   )r/   finditerr?   spanr   rX   match)	r[   r   r   mr	   matched_textabm1s	            r   r   z#ColorDelegator._add_tags_in_sectionO  s    	 ##E** 	@ 	@A&:1&=&= @ @"lvvd||1aD$///#333![..ua888r @!wwqzz1aD,???@	@ 	@r   c                 J    	 | j         D ]}|                     |dd           d S )Nrb   rc   )rm   r   )r[   rp   s     r   removecolorszColorDelegator.removecolors`  s9    %< 	/ 	/COOC....	/ 	/r   r7   )__name__
__module____qualname__rV   rW   rf   rg   rY   r}   r   rj   r   ri   r   r   r   r   r   r8   r   r   rT   rT   f   s              * * *.  1 1 1(> > > >" " " "   $ $ $   0 ;  ;  ;D* * *X) ) )"@ @ @"/ / / / /r   rT   c                 N   ddl m}m} ddlm} ddlm}  ||           }|                    d           t          t          | 
                                                    d          dd                    \  }}|
                    d|d	z   |d
z   fz              ||d          }|                    dd           |                    d|           |                                 t          |            ||          }	t!                      }
|	                    |
           d S )Nr   )ToplevelText)source)
PercolatorzTest ColorDelegatorr   r   z700x550+%d+%d      white)rE   both)expandfillr}   )tkinterr   r    idlelib.idle_test.test_colorizerr   idlelib.percolatorr   titlemapintgeometrysplitpackr}   	focus_setrR   rT   insertfilter)parentr   r   r   r   topxyrM   pr   s              r   _color_delegatorr   f  sF   &&&&&&&&777777------
(6

CII#$$$sFOO%%++C00455DAqLLAFAG#445554(((DIIQVI$$$KK&!!!NN
4AANN1r   __main__)mainz idlelib.idle_test.test_colorizerr   )	verbosityexit)run)r   r   r   r   idlelib.configr   idlelib.delegatorr   ry   r   r0   r/   r   rX   r   r?   rR   rT   r   r   unittestr   idlelib.idle_test.htestr   r8   r   r   <module>r      ss     				  # # # # # # ' ' ' ' ' '9 9 9
. . .b xzz	K	 	 (	  D D D

 
 
*}/ }/ }/ }/ }/Y }/ }/ }/@  * zD	+quEEEE++++++C r   