<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

Š¹¼]:  ã               @   s€   d  d l  m Z d  d l m Z d d d d d d i Z d	 Z Gd
 d „  d ƒ Z e d k r| d  d l Z e j	 d d d ƒd S)é    )ÚHyperParser)ÚidleConfú)ú(ú]ú[ú}ú{éd   c               @   sB  e  Z d  Z d d0 g f g Z e j d d  d d d ƒZ e j d d  d d	 d
 d d ƒZ e j e j	 ƒ  d ƒ Z
 e j d d  d d	 d d d ƒZ d Z d1 Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d  „  Z d! d" d# „ Z d$ d% „  Z d& d' „  Z d( d) „  Z d* d+ „  Z d, d- „  Z d. d/ „  Z d! S)2Ú
ParenMatchZeditúShow surrounding parensú<<flash-paren>>Ú
extensionsÚstyleÚdefaultÚ
expressionzflash-delayÚtypeÚintiô  ZhiliteÚbellÚboolé   z<<parenmatch-check-restore>>ú
<KeyPress>ú<ButtonPress>ú<Key-Return>ú<Key-BackSpace>c             C   sT   | |  _  | j |  _ | j j |  j |  j ƒ d |  _ d |  _ |  j |  j ƒ d  S)Nr   )	ÚeditwinÚtextÚbindÚRESTORE_VIRTUAL_EVENT_NAMEÚrestore_eventÚcounterÚis_restore_activeÚ	set_styleÚSTYLE)Úselfr   © r%   ú//opt/alt/python35/lib64/python3.5/ParenMatch.pyÚ__init__;   s    	
		zParenMatch.__init__c             C   s@   |  j  s< x' |  j D] } |  j j |  j | ƒ q Wd |  _  d  S)NT)r!   ÚRESTORE_SEQUENCESr   Z	event_addr   )r$   Úseqr%   r%   r&   Úactivate_restoreG   s    	zParenMatch.activate_restorec             C   s@   |  j  r< x' |  j D] } |  j j |  j | ƒ q Wd |  _  d  S)NF)r!   r(   r   Zevent_deleter   )r$   r)   r%   r%   r&   Údeactivate_restoreM   s    	zParenMatch.deactivate_restorec             C   sX   | |  _  | d k r0 |  j |  _ |  j |  _ n$ | d k rT |  j |  _ |  j |  _ d  S)Nr   r   )r#   Úcreate_tag_defaultÚ
create_tagÚset_timeout_lastÚset_timeoutÚcreate_tag_expressionÚset_timeout_none)r$   r   r%   r%   r&   r"   S   s    	zParenMatch.set_stylec             C   sW   t  |  j d ƒ j ƒ  } | d  k r2 |  j ƒ  d  S|  j ƒ  |  j | ƒ |  j ƒ  d  S)NÚinsert)r   r   Úget_surrounding_bracketsÚwarn_mismatchedr*   r-   r.   )r$   ÚeventÚindicesr%   r%   r&   Úflash_paren_event\   s    

zParenMatch.flash_paren_eventc             C   s™   |  j  j d ƒ } | t k r" d  St |  j d ƒ } | j ƒ  sD d  S| j t | d ƒ } | d  k rt |  j ƒ  d  S|  j ƒ  |  j	 | ƒ |  j
 ƒ  d  S)Nz	insert-1cT)r   ÚgetÚ_openersr   r   Z
is_in_coder3   r4   r*   r-   r/   )r$   r5   ZcloserZhpr6   r%   r%   r&   Úparen_closed_eventf   s    

zParenMatch.paren_closed_eventNc             C   s-   |  j  j d ƒ |  j ƒ  |  j d 7_ d  S)NÚparenr   )r   Z
tag_deleter+   r    )r$   r5   r%   r%   r&   r   v   s    
zParenMatch.restore_eventc             C   s   | |  j  k r |  j ƒ  d  S)N)r    r   )r$   Ztimer_countr%   r%   r&   Úhandle_restore_timer{   s    zParenMatch.handle_restore_timerc             C   s   |  j  r |  j j ƒ  d  S)N)ÚBELLr   r   )r$   r%   r%   r&   r4      s    	zParenMatch.warn_mismatchedc             C   s1   |  j  j d | d ƒ |  j  j d |  j ƒ d  S)Nr;   r   )r   Útag_addÚ
tag_configÚHILITE_CONFIG)r$   r6   r%   r%   r&   r,   †   s    zParenMatch.create_tag_defaultc             C   sk   |  j  j | d ƒ d k r- | d d } n
 | d } |  j  j d | d | ƒ |  j  j d |  j ƒ d  S)	Nr   r   r   r   z+1cr;   r   )r   r   r   )r   r8   r>   r?   r@   )r$   r6   Z
rightindexr%   r%   r&   r0   ‹   s
    
z ParenMatch.create_tag_expressionc             C   sP   |  j  d 7_  |  |  j  |  j j d ƒ d d „ } |  j j j t | | ƒ d  S)Nr   r2   c             S   sE   | | j  j d ƒ k r( | j | ƒ n | j j j t |  |  ƒ d  S)Nr2   )r   Úindexr<   r   Ú
text_frameÚafterÚCHECK_DELAY)Úcallmer$   ÚcrA   r%   r%   r&   rE   ž   s    z+ParenMatch.set_timeout_none.<locals>.callme)r    r   rA   r   rB   rC   rD   )r$   rE   r%   r%   r&   r1   —   s    	zParenMatch.set_timeout_nonec             C   s;   |  j  d 7_  |  j j j |  j |  |  j  d d „ ƒ d  S)Nr   c             S   s   |  j  | ƒ S)N)r<   )r$   rF   r%   r%   r&   Ú<lambda>­   s    z-ParenMatch.set_timeout_last.<locals>.<lambda>)r    r   rB   rC   ÚFLASH_DELAY)r$   r%   r%   r&   r.   ¦   s    zParenMatch.set_timeout_last)r   r   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Zmenudefsr   Z	GetOptionr#   rH   ZGetHighlightZCurrentThemer@   r=   r   r(   r'   r*   r+   r"   r7   r:   r   r<   r4   r,   r0   r1   r.   r%   r%   r%   r&   r      s2   	 	
r   Ú__main__Nz!idlelib.idle_test.test_parenmatchÚ	verbosityé   )
Zidlelib.HyperParserr   Zidlelib.configHandlerr   r9   rD   r   rI   ZunittestÚmainr%   r%   r%   r&   Ú<module>   s   ¢