<!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>
3
2a$                 @   sb   d dl mZ d dlmZ ddddZdZG dd	 d	Zej  ed
kr^d dl	m
Z
 e
ddd dS )    )HyperParser)idleConf([{))]}d   c               @   s   e Zd ZdZd$Zdd Ze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eeeedZd d! Zd"d# ZdS )&
ParenMatchz<<parenmatch-check-restore>>
<KeyPress><ButtonPress><Key-Return><Key-BackSpace>c             C   s0   || _ |j| _|jj| j| j d| _d| _d S )Nr   )editwintextZbindRESTORE_VIRTUAL_EVENT_NAMErestore_eventcounteris_restore_active)selfr    r   //opt/alt/python36/lib64/python3.6/parenmatch.py__init__(   s    
zParenMatch.__init__c             C   sV   t jddddd| _t jdddddd	| _t jddd
ddd	| _t jt j d| _d S )N
extensionsr   Zstyleopener)defaultzflash-delayinti  )typer   bellbool   Zhilite)r   Z	GetOptionSTYLEFLASH_DELAYBELLZGetHighlightZCurrentThemeHILITE_CONFIG)clsr   r   r   reload3   s    
zParenMatch.reloadc             C   s0   | j s,x| jD ]}| jj| j| qW d| _ d S )NT)r   RESTORE_SEQUENCESr   Z	event_addr   )r   seqr   r   r   activate_restore>   s    zParenMatch.activate_restorec             C   s0   | j r,x| jD ]}| jj| j| qW d| _ d S )NF)r   r(   r   Zevent_deleter   )r   r)   r   r   r   deactivate_restoreE   s    zParenMatch.deactivate_restorec             C   s   t | jdj }| j| dS )Ninsertbreak)r   r   get_surrounding_bracketsfinish_paren_event)r   eventindicesr   r   r   flash_paren_eventL   s    
zParenMatch.flash_paren_eventc             C   sN   | j jd}|tkrd S t| jd}|j s0d S |jt| d}| j| d S )Nz	insert-1cT)r   get_openersr   r   Z
is_in_coder.   r/   )r   r0   ZcloserZhpr1   r   r   r   paren_closed_eventS   s    
zParenMatch.paren_closed_eventc             C   sT   |d kr| j r| jj  d S | j  | jj| j| j| | | jrH| j	n| j
  d S )N)r$   r   r   r*   tagfuncsr3   r"   create_tag_expressionr#   set_timeout_lastset_timeout_none)r   r1   r   r   r   r/   `   s    
zParenMatch.finish_paren_eventNc             C   s&   | j jd | j  |  jd7  _d S )Nparenr!   )r   Z
tag_deleter+   r   )r   r0   r   r   r   r   k   s    zParenMatch.restore_eventc             C   s   || j kr| j  d S )N)r   r   )r   Ztimer_countr   r   r   handle_restore_timerq   s    
zParenMatch.handle_restore_timerc             C   s&   | j jd|d  | j jd| j d S )Nr:   r   )r   tag_add
tag_configr%   )r   r1   r   r   r   create_tag_openerx   s    zParenMatch.create_tag_openerc             C   sb   | j j|d d	kr"|d d }n|d }| j jd|d |d d |d | | j jd| j d S )
Nr!   r   r   r	   z+1cr:   r   z-1c)r   r   r	   )r   r3   r<   r=   r%   )r   r1   
rightindexr   r   r   create_tag_parens}   s
    $zParenMatch.create_tag_parensc             C   sR   | 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   r3   r<   r=   r%   )r   r1   r?   r   r   r   r7      s
    z ParenMatch.create_tag_expression)r   r   ZparensZ
expressionc             C   s>   |  j d7  _ | | j | jjdfdd}| jjjt|| d S )Nr!   r,   c             S   s2   ||j jdkr|j| n|jjjt| |  d S )Nr,   )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   r9      s    zParenMatch.set_timeout_nonec             C   s0   |  j d7  _ | jjj| j| | j f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   r#   )r   r   r   r   r8      s    zParenMatch.set_timeout_last)r   r   r   r   )N)__name__
__module____qualname__r   r(   r   classmethodr'   r*   r+   r2   r5   r/   r   r;   r>   r@   r7   r6   r9   r8   r   r   r   r   r      s*    
	
r   __main__)mainz!idlelib.idle_test.test_parenmatch   )	verbosityN)Zidlelib.hyperparserr   Zidlelib.configr   r4   rD   r   r'   rH   ZunittestrM   r   r   r   r   <module>   s    &