3 2a$@sbddlmZddlmZddddZdZGdd d Zejed kr^dd l m Z e d d ddS)) HyperParser)idleConf([{))]}dc@seZdZdZd$ZddZedd Zd d Zd d Z ddZ ddZ ddZ d%ddZ ddZddZddZddZeeeedZd d!Zd"d#ZdS)& ParenMatchz<> cCs0||_|j|_|jj|j|jd|_d|_dS)Nr)editwintextZbindRESTORE_VIRTUAL_EVENT_NAME restore_eventcounteris_restore_active)selfrr//opt/alt/python36/lib64/python3.6/parenmatch.py__init__(s  zParenMatch.__init__cCsVtjddddd|_tjdddddd |_tjddd d d d |_tjtjd |_dS)N extensionsr Zstyleopener)defaultz flash-delayinti)typerbellboolZhilite)rZ GetOptionSTYLE FLASH_DELAYBELLZ GetHighlightZ CurrentTheme HILITE_CONFIG)clsrrrreload3s zParenMatch.reloadcCs0|js,x|jD]}|jj|j|qWd|_dS)NT)rRESTORE_SEQUENCESrZ event_addr)rseqrrractivate_restore>s zParenMatch.activate_restorecCs0|jr,x|jD]}|jj|j|qWd|_dS)NF)rr(rZ event_deleter)rr)rrrdeactivate_restoreEs zParenMatch.deactivate_restorecCst|jdj}|j|dS)Ninsertbreak)rrget_surrounding_bracketsfinish_paren_event)reventindicesrrrflash_paren_eventLs zParenMatch.flash_paren_eventcCsN|jjd}|tkrdSt|jd}|js0dS|jt|d}|j|dS)Nz insert-1cT)rget_openersrrZ is_in_coder.r/)rr0ZcloserZhpr1rrrparen_closed_eventSs   zParenMatch.paren_closed_eventcCsT|dkr|jr|jjdS|j|jj|j|j|||jrH|j n|j dS)N) r$rrr*tagfuncsr3r"create_tag_expressionr#set_timeout_lastset_timeout_none)rr1rrrr/`s  zParenMatch.finish_paren_eventNcCs&|jjd|j|jd7_dS)Nparenr!)rZ tag_deleter+r)rr0rrrrks zParenMatch.restore_eventcCs||jkr|jdS)N)rr)rZ timer_countrrrhandle_restore_timerqs zParenMatch.handle_restore_timercCs&|jjd|d|jjd|jdS)Nr:r)rtag_add tag_configr%)rr1rrrcreate_tag_openerxszParenMatch.create_tag_openercCsb|jj|dd kr"|dd}n|d}|jjd|d|dd|d||jjd|jdS) Nr!rrr z+1cr:rz-1c)rrr )rr3r<r=r%)rr1 rightindexrrrcreate_tag_parens}s $zParenMatch.create_tag_parenscCsR|jj|ddkr"|dd}n|d}|jjd|d||jjd|jdS) Nr!rrr z+1cr:r)rrr )rr3r<r=r%)rr1r?rrrr7s z ParenMatch.create_tag_expression)rrZparensZ expressioncCs>|jd7_||j|jjdfdd}|jjjt||dS)Nr!r,cSs2||jjdkr|j|n|jjjt||dS)Nr,)rindexr;r text_frameafter CHECK_DELAY)callmercrArrrrEs z+ParenMatch.set_timeout_none..callme)rrrArrBrCrD)rrErrrr9szParenMatch.set_timeout_nonecCs0|jd7_|jjj|j||jfdddS)Nr!cSs |j|S)N)r;)rrFrrrsz-ParenMatch.set_timeout_last..)rrrBrCr#)rrrrr8szParenMatch.set_timeout_last)r r rr)N)__name__ __module__ __qualname__rr(r classmethodr'r*r+r2r5r/rr;r>r@r7r6r9r8rrrrr s*     r __main__)mainz!idlelib.idle_test.test_parenmatch) verbosityN) Zidlelib.hyperparserrZidlelib.configrr4rDr r'rHZunittestrMrrrrs   &