Hacked By AnonymousFox

Current Path : /opt/alt/python37/lib64/python3.7/idlelib/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/idlelib/__pycache__/parenmatch.cpython-37.pyc

B

� f$�@sfdZddlmZddlmZdddd�ZdZGd	d
�d
�Ze��e	dkrbddl
mZed
dd�dS)z�ParenMatch -- for parenthesis matching.

When you hit a right paren, the cursor should move briefly to the left
paren.  Paren here is used generically; the matching applies to
parentheses, square brackets, and curly braces.
�)�HyperParser)�idleConf�(�[�{)�)�]�}�dc@s�eZdZdZdZdZdd�Zedd��Zdd	�Z	d
d�Z
dd
�Zdd�Zdd�Z
d"dd�Zdd�Zdd�Zdd�Zdd�Zeeeed�Zdd�Zd d!�ZdS)#�
ParenMatcha'Highlight matching openers and closers, (), [], and {}.

    There are three supported styles of paren matching.  When a right
    paren (opener) is typed:

    opener -- highlight the matching left paren (closer);
    parens -- highlight the left and right parens (opener and closer);
    expression -- highlight the entire expression from opener to closer.
    (For back compatibility, 'default' is a synonym for 'opener').

    Flash-delay is the maximum milliseconds the highlighting remains.
    Any cursor movement (key press or click) before that removes the
    highlight.  If flash-delay is 0, there is no maximum.

    TODO:
    - Augment bell() with mismatch warning in status window.
    - Highlight when cursor is moved to the right of a closer.
      This might be too expensive to check.
    z<<parenmatch-check-restore>>)z
<KeyPress>z
<ButtonPress>z<Key-Return>z<Key-BackSpace>cCs0||_|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
ddd	�|_t�t��d
�|_dS)N�
extensionsrZstyle�opener)�defaultzflash-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)z5Activate mechanism to restore text from highlighting.TN)r�RESTORE_SEQUENCESr
Z	event_addr)r�seqrrr�activate_restore>szParenMatch.activate_restorecCs0|jr,x|jD]}|j�|j|�qWd|_dS)zRemove restore event bindings.FN)rr$r
Zevent_deleter)rr%rrr�deactivate_restoreEszParenMatch.deactivate_restorecCst|jd���}|�|�dS)zAHandle editor 'show surrounding parens' event (menu or shortcut).�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)zHandle user input of closer.z	insert-1cNT)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)zRemove effect of doing match.�parenrN)r
Z
tag_deleter'r)rr,rrrrkszParenMatch.restore_eventcCs||jkr|��dS)N)rr)rZtimer_countrrr�handle_restore_timerqs
zParenMatch.handle_restore_timercCs&|j�d|d�|j�d|j�dS)z'Highlight the single paren that matchesr6rN)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)z#Highlight the left and right parensr)rrr	z+1cr6rz-1cN)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)zHighlight the entire expressionr)rrr	z+1cr6rN)r
r/r8r9r!)rr-r;rrrr3�s
z ParenMatch.create_tag_expression)rrZparensZ
expressioncCs>|jd7_||j|j�d�fdd�}|jj�t||�dS)zSHighlight will remain until user input turns it off
        or the insert has movedrr(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.<locals>.callmeN)rr
r=rr>r?r@)rrArrrr5�szParenMatch.set_timeout_nonecCs0|jd7_|jj�|j||jfdd��dS)zFThe last highlight created will be removed after FLASH_DELAY millisecsrcSs
|�|�S)N)r7)rrBrrr�<lambda>��z-ParenMatch.set_timeout_last.<locals>.<lambda>N)rrr>r?r)rrrrr4�szParenMatch.set_timeout_last)N)�__name__�
__module__�__qualname__�__doc__rr$r�classmethodr#r&r'r.r1r+rr7r:r<r3r2r5r4rrrrr
s*

	
r�__main__)�mainz!idlelib.idle_test.test_parenmatch�)�	verbosityN)rHZidlelib.hyperparserrZidlelib.configrr0r@rr#rEZunittestrKrrrr�<module>s&

Hacked By AnonymousFox1.0, Coded By AnonymousFox