a  ze,@sddlZddlmZddlmZmZmZddlm Z m Z ddl m Z hdZ edfdd Zd d ZGd d d ZeedkrddlmZedddddS)N)maxsize)FrameTextTclError)NSEWSUNKEN)idleConf> finallywhiledefasyncexceptelifelsewithclassfortryifz ^(\s*)(\w*)cCs||SN)matchgroups)codelinecrG/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/codecontext.pyget_spaces_firstwordsrcCsFt|\}}t|}t||ks,||dkr0t}|tvo:|}|||fS)N#)rlenINFINITY BLOCKOPENERS)rspacesZ firstwordindentopenerrrr get_line_infos   r$c@sreZdZdZddZddZeddZdd Zdd d Z dddZ ddZ dddZ ddZ ddZddZd S) CodeContextdcCs||_|j|_|dSr)editwintext_reset)selfr'rrr__init__1szCodeContext.__init__cCs$d|_d|_d|_d|_dg|_dS)N)rF)contextcell00t1 topvisibleinfor*rrrr)Fs zCodeContext._resetcCstjdddddd|_dS)N extensionsr%Zmaxlinesint)typedefault)rZ GetOption context_depth)clsrrrreloadMszCodeContext.reloadcCs:|jdur6z|j|jWnty.Yn0d|_dSr)r1r( after_cancelrr4rrr__del__Ts   zCodeContext.__del__Nc Csv|jdur |jj|jjf}d}d}|D]`}||jjur@|n|}||j|d7}||j|d7}||j|d7}q(t |jjddd||t dd}|_| | | d|j||jddtdttd }t|jj|d d |_|jjddtdd } n:|jd|_|jd|_|j|j|d } |jjdd| dddS)Nrpadxborderr,disabled)heightwidthZhighlightthicknessr?r@Zreliefstatez)rowcolumnZsticky linenumber backgroundbgZHideZShowoptionsz *ode*ontextz Code Context)ZmenuindexZlabelbreak)r/r'r(Z text_frameZ grid_infoZ pack_infoZtkZgetintZcgetrr update_fontupdate_highlight_colorsbind jumptoline timer_eventZgridrr GetHighlight CurrentThemerr0Zdestroyr=r1r)Zupdate_menu_label) r*eventZwidgetsr?r@Zwidgetr3r/line_number_colorsZ menu_statusrrrtoggle_code_context_event]sV       z%CodeContext.toggle_code_context_eventr,rc Csg}t}t||ddD]z}|j|d|d}t|\}} } ||kr|}| dvr`|d7}| r||kr||kr|||| | f||krqq|||fS)Nr,r-.0z.end)rr)rranger(getr$appendreverse) r*new_topvisibleZstopline stopindentlines lastindentZlinenumrr"r(r#rrr get_contexts zCodeContext.get_contextcCsB|jd}|j|krdS|j|krT|||j\}}|jdd|kr|jd=q6n\|jddd}|jdd|kr|jdd}|jd=qf|||jddd|\}}|j|||_dd|j|j dD}|drdnd}t|||jd<d|jd <|j d d |j d d ||dd |jd <dS)Nz@0,0r-r,rcSsg|] }|dqS)r).0xrrr z3CodeContext.update_code_context..rBZnormalrDz1.0end rA) r'Z getlinenor2rar3extendr:rr/deleteinsertjoin)r*r]r_r`r^Zcontext_stringsZ showfirstrrrupdate_code_contexts4       zCodeContext.update_code_contextcCsz|jdWn~tyt|j}|dkr6d}n:tt|jd}td||jd}|j||d}|j |d| Yn0dS)Nz sel.firstr,rkrrX) r/rLrrr3r6floatmaxr:r(Zyviewrm)r*rUr_ZnewtopZ contextlineoffsetrrrrQs  zCodeContext.jumptolinecCs*|jdur&||j|j|j|_dSr)r/rmr(ZafterUPDATEINTERVALrRr1r4rrrrRs zCodeContext.timer_eventcCs(|jdur$t|jdd}||jd<dS)NmainZ EditorWindowfont)r/rZGetFontr()r*rsrrrrNs zCodeContext.update_fontcCsf|jdur6ttd}|d|jd<|d|jd<|jdurbttd}|jj|dddS)Nr/rHZ foregroundrGrI)r/rrSrTr0Zconfig)r*ZcolorsrVrrrrOs   z#CodeContext.update_highlight_colors)N)r,r)N)__name__ __module__ __qualname__rqr+r) classmethodr<r>rWrarmrQrRrNrOrrrrr%-s  8 ( r%__main__)rrz"idlelib.idle_test.test_codecontextrbF) verbosityexit)resysrrtkinterrrrZtkinter.constantsrrZidlelib.configrr compilerr$r%r<rtZunittestrrrrrrs  [