3 2a( @sddlZddlmZddlZddlmZmZmZddl m Z ddddd d d d d dddh Z dZ dZ ejdfddZddZGdddZejedkrddlmZedddddS) N)maxsize)TOPXSUNKEN)idleConfclassdefelifelseexceptfinallyforiftrywhilewithasyncdiz ^(\s*)(\w*)cCs|j|jS)N)matchgroups)codelinecr0/opt/alt/python36/lib64/python3.6/codecontext.pyget_spaces_firstwordsrcCsFt|\}}t|}t||ks,||dkr0t}|tko:|}|||fS)N#)rlenINFINITY BLOCKOPENERS)rZspacesZ firstwordindentopenerrrr get_line_infos   r!c@s^eZdZddZeddZddZddd Zdd d ZddZ dddZ ddZ ddZ dS) CodeContextcCs^||_|j|_|jd|_tj|_d|_d|_dg|_|jj t |j |_ |jj t |j|_dS)NfontrF)rr&r%F)editwintexttextfontr"colors contextcolorscontext topvisibleinfoafterUPDATEINTERVAL timer_eventt1CONFIGUPDATEINTERVALconfig_timer_eventt2)selfr'rrr__init__0s zCodeContext.__init__cCs,tjdddddd|_tjtjd|_dS)N extensionsr"Zmaxlinesint)typedefaultr,)rZ GetOption context_depthZ GetHighlightZ CurrentThemer*)clsrrrreloadMszCodeContext.reloadc Cs2y |jj|j|jj|jWn YnXdS)N)r(Z after_cancelr2r5)r6rrr__del__Ts zCodeContext.__del__Nc Cs|js|jj|jjf}d}d}xP|D]H}||jj|jd7}||jj|jd7}||jj|jd7}q$Wtj |jj |j |j d|j ddd||t dd |_|jjd |j|jjttd |jjd n|jjd|_d S) Nrpadxborder background foregroundr$disabled) r#bgZfgheightwidthrArBZreliefstatezF)ZsidefillexpandZbeforebreak)r,r'r(Z text_frameZtkZgetintZ pack_infoZcgettkinterZTexttopr)r+rZbind jumptolinepackrrZdestroy)r6eventZwidgetsrArBZwidgetrrrtoggle_code_context_event\s*    z%CodeContext.toggle_code_context_eventr$rc Csg}t}xt||ddD]x}|jj|d|d}t|\}} } ||kr|}| dkrb|d7}| r||kr||kr|j||| | f||krPqW|j||fS)Nr$z.0z.endr r r&)r r )rranger(getr!appendreverse) r6new_topvisibleZstopline stopindentlines lastindentZlinenumrrr(r rrr get_contexts zCodeContext.get_contextcCsZt|jjdjdd}|j|kr(dS|j|krf|j||j\}}x|jdd|krb|jd=qFWn`|jddd}x,|jdd|kr|jdd}|jd=qzW|j||jddd|\}}|jj|||_dd|j|j dD}|drdnd}t |||j d<d|j d <|j j d d |j j d d j ||dd |j d <dS)Nz@0,0.rr$cSsg|] }|dqS)r).0xrrr sz3CodeContext.update_code_context..rGZnormalrIz1.0end rEr&r&r&r&r&r&r&)r9r(indexsplitr-r[r.extendr=rr,deleteinsertjoin)r6rWrYrZrXZcontext_stringsZ showfirstrrrupdate_code_contexts0       zCodeContext.update_code_contextcCspt|j}|dkrd}n:tt|jjd}td||jd}|j||d}|jj |d|j dS)Nr$rgrz.0) rr.r9floatr,rcmaxr=r(Zyviewri)r6rQrYZnewtopZ contextlineoffsetrrrrOs zCodeContext.jumptolinecCs$|jr|j|jjt|j|_dS)N)r,rir(r/r0r1r2)r6rrrr1szCodeContext.timer_eventcCsv|jd}|jr`||jks&tj|jkr`||_tj|_|j|jd<|jd|jd<|jd|jd<|jjt|j|_ dS)Nr#rCrD) r(r,r)r"r*r+r/r3r4r5)r6Z newtextfontrrrr4s   zCodeContext.config_timer_event)N)r$r)N) __name__ __module__ __qualname__r7 classmethodr?r@rRr[rirOr1r4rrrrr"-s  & ( r"__main__)mainz"idlelib.idle_test.test_codecontextr]F) verbosityexit)resysrrrMZtkinter.constantsrrrZidlelib.configrrr0r3compilerr!r"r?rmZunittestrrrrrr s   =