B YI~d$�@sbddlmZddlmZdddd�ZdZGdd �d �Ze��ed kr^dd l m Z e d d d�dS)�)� HyperParser)�idleConf�(�[�{)�)�]�}�dc@s�eZdZdZdZdd�Zedd��Zdd�Zd d �Z d d �Z d d�Z dd�Z d!dd�Z dd�Zdd�Zdd�Zdd�Zeeeed�Zdd�Zdd �ZdS)"� ParenMatchz<>)z z z zcCs0||_|j|_|j�|j|j�d|_d|_dS)Nr)�editwin�textZbind�RESTORE_VIRTUAL_EVENT_NAME� restore_event�counter�is_restore_active)�selfr �r�7/opt/alt/python37/lib64/python3.7/idlelib/parenmatch.py�__init__(s  zParenMatch.__init__cCsVtjddddd�|_tjdddddd �|_tjddd d d d �|_t�t��d �|_dS)N� extensionsr Zstyle�opener)�defaultz flash-delay�inti�)�typer�bell�bool�Zhilite)rZ GetOption�STYLE� FLASH_DELAY�BELLZ GetHighlightZ CurrentTheme� HILITE_CONFIG)�clsrrr�reload3s zParenMatch.reloadcCs0|js,x|jD]}|j�|j|�qWd|_dS)NT)r�RESTORE_SEQUENCESr Z event_addr)r�seqrrr�activate_restore>s zParenMatch.activate_restorecCs0|jr,x|jD]}|j�|j|�qWd|_dS)NF)rr$r Z event_deleter)rr%rrr�deactivate_restoreEs zParenMatch.deactivate_restorecCst|jd���}|�|�dS)N�insert�break)rr �get_surrounding_brackets�finish_paren_event)r�event�indicesrrr�flash_paren_eventLs zParenMatch.flash_paren_eventcCsN|j�d�}|tkrdSt|jd�}|��s0dS|�t|d�}|�|�dS)Nz insert-1cT)r �get�_openersrr Z is_in_coder*r+)rr,ZcloserZhpr-rrr�paren_closed_eventSs   zParenMatch.paren_closed_eventcCsT|dkr|jr|j��dS|��|j�|j|j�||�|jrH|j n|j �dS)N) r r rr&�tagfuncsr/r�create_tag_expressionr�set_timeout_last�set_timeout_none)rr-rrrr+`s  zParenMatch.finish_paren_eventNcCs&|j�d�|��|jd7_dS)N�parenr)r Z tag_deleter'r)rr,rrrrks zParenMatch.restore_eventcCs||jkr|��dS)N)rr)rZ timer_countrrr�handle_restore_timerqs zParenMatch.handle_restore_timercCs&|j�d|d�|j�d|j�dS)Nr6r)r �tag_add� tag_configr!)rr-rrr�create_tag_openerxszParenMatch.create_tag_openercCsb|j�|d�dkr"|dd}n|d}|j�d|d|dd|d|�|j�d|j�dS)Nr)rrr z+1cr6rz-1c)r r/r8r9r!)rr-� rightindexrrr�create_tag_parens}s $zParenMatch.create_tag_parenscCsR|j�|d�dkr"|dd}n|d}|j�d|d|�|j�d|j�dS)Nr)rrr z+1cr6r)r r/r8r9r!)rr-r;rrrr3�s z ParenMatch.create_tag_expression)rrZparensZ expressioncCs>|jd7_||j|j�d�fdd�}|jj�t||�dS)Nrr(cSs2||j�d�kr|�|�n|jj�t||�dS)Nr()r �indexr7r � text_frame�after� CHECK_DELAY)�callmer�cr=rrrrA�s z+ParenMatch.set_timeout_none..callme)rr r=r r>r?r@)rrArrrr5�szParenMatch.set_timeout_nonecCs0|jd7_|jj�|j||jfdd��dS)NrcSs |�|�S)N)r7)rrBrrr���z-ParenMatch.set_timeout_last..)rr r>r?r)rrrrr4�szParenMatch.set_timeout_last)N)�__name__� __module__� __qualname__rr$r� classmethodr#r&r'r.r1r+rr7r:r<r3r2r5r4rrrrr s(     r �__main__)�mainz!idlelib.idle_test.test_parenmatch�)� verbosityN) Zidlelib.hyperparserrZidlelib.configrr0r@r r#rEZunittestrJrrrr�s   &