a  ze=@sddlZddlmZddlmZddlmZGdddZeddZ d d Z d d Z d dZ ddZ ddZedZddZGdddZGdddZGdddZedkrddlmZeddd d!dS)"N)askyesno) askinteger)idleConfc@s2eZdZddZeddZddZd dd ZdS) FormatParagraphcCs ||_dSNeditwinselfrr B/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/format.py__init__szFormatParagraph.__init__cCstjdddddd|_dS)N extensionsrz max-widthintH)typedefault)rZ GetOption max_width)clsr r r reload"szFormatParagraph.reloadcCs d|_dSrrr r r r close'szFormatParagraph.closeNc Cs|dur|jn|}|jj}|j\}}|rF|rF|||}t|}nt||d\}}}}|rpt|||}n t ||}| ddd||kr| d|| | ||||||n | d||ddS)Ninsertsel1.0endbreak)rrtextget_selection_indicesgetget_comment_headerfind_paragraphindexreformat_commentreformat_paragraph tag_removemark_setundo_block_startdeleterundo_block_stopZsee) r eventlimitrfirstlastdatacomment_headernewdatar r r format_paragraph_event*s*           z&FormatParagraph.format_paragraph_event)N)__name__ __module__ __qualname__r classmethodrrr1r r r r rs  rc Cs:tt|d\}}|d|d|}|d|ddr`t|r`|d}|d|d|}q(|}t|}t|}t||krt||ds|d}|d|d|}qtd|}|d}|d|d|}|dkrt||krt||ds|d}|d|d|}qd|d} | |||| |fS)N.z%d.0z%d.end        r$cstdfdd|dD}t|td}t||}|d}d}|dshd}|dd}dfdd|D|S)Nr@c3s|]}|dVqdSrr .0r?)lcr r z#reformat_comment..c3s|]}|VqdSrr rR)r/r r rUrV)r<rJr:maxr$)r.r+r/Z format_widthr0Z block_suffixr )r/rTr r#s   r#cCstd|duS)Nz^\s*$)rDmatchr?r r r r;sr;cCstd|S)Nz ^([ \t]*)rDr[groupr\r r r rCsrCcCs"td|}|durdS|dS)Nz ^([ \t]*#*)rXr8r])r?mr r r r s  r z[ \t]*cCs$t|}|t||fSr)_line_indent_rer[rr<r^rF)r?tabwidthr_r r r get_line_indents rbc@sheZdZddZddZddZddd Zdd d Zdd d ZdddZ dddZ dddZ ddZ dS) FormatRegioncCs ||_dSrrr r r r r szFormatRegion.__init__cCsr|jj}|j\}}|r<|r<||d}||d}n|d}|d}|||}|d}||||fS)Nz linestartz-1c lineend +1czinsert linestartzinsert lineend +1cr@)rrrr"rr:)r rr,r-headtailcharsrKr r r get_regions     zFormatRegion.get_regioncCsz|jj}d|}||kr&|dS|ddd|d||||||||| | d|ddS)Nr@rrrr) rrrJZbellr%r&r'r(rr)Ztag_add)r rdrerfrKrnewcharsr r r set_regions     zFormatRegion.set_regionNc Cs||\}}}}tt|D]J}||}|rt||jj\}} | |jj} |j| ||d||<q|||||dSNr) rgrEr<rbrra indentwidth _make_blanksri r r*rdrerfrKposr?raw effectiver r r indent_region_events z FormatRegion.indent_region_eventc Cs|\}}}}tt|D]P}||}|rt||jj\}} t| |jjd} |j| ||d||<q| ||||dS)Nrr) rgrEr<rbrrarZrkrlrirmr r r dedent_region_eventsz FormatRegion.dedent_region_eventcCsN|\}}}}tt|dD]}||}d|||<q |||||dS)Nr8##rrgrEr<rir r*rdrerfrKrnr?r r r comment_region_event s z!FormatRegion.comment_region_eventcCs|\}}}}tt|D]T}||}|s.q|dddkrL|dd}n|dddkrh|dd}|||<q|||||dS)NrArsr8#rrtrur r r uncomment_region_event,s  z#FormatRegion.uncomment_region_eventc Cs|\}}}}|}|dur$dStt|D]L}||}|r0t||\} } t| |\} } d| d| || d||<q0|||||dS)N rBr)rg _asktabwidthrEr<rbdivmodri) r r*rdrerfrKrarnr?rorpZntabsZnspacesr r r tabify_region_event?s"z FormatRegion.tabify_region_eventcCs\|\}}}}|}|dur$dStt|D]}|||||<q0|||||dSrj)rgrzrEr<rFri)r r*rdrerfrKrarnr r r untabify_region_eventNsz"FormatRegion.untabify_region_eventcCstdd|jj|jjdddS)Nz Tab widthzColumns per tab? (2-16)rAparentZ initialvalueZminvaluemaxvalue)rrrrkrr r r rzYszFormatRegion._asktabwidth)N)N)N)N)N)N) r2r3r4r rgrirqrrrvrxr|r}rzr r r r rcs   rcc@s$eZdZddZddZddZdS)IndentscCs ||_dSrrr r r r r gszIndents.__init__cCsJ|j}|j}tddd|dd|dd|jdrF| |_d |_d S) Nz Toggle tabsz Turn tabs )ZonZoffz? Indent width )zwill bez remains atz 8.z! Note: a tab is always 8 columns)rr)rusetabsrrrk)r r*rrr r r toggle_tabs_eventjs$ zIndents.toggle_tabs_eventcCs<|j}tdd|j|jddd}|r8||jkr8|js8||_dS)Nz Indent widthz6New indent width (2-16) (Always use 8 when using tabs)rAr~rr)rrrrkr)r r*rrNr r r change_indentwidth_eventzsz Indents.change_indentwidth_eventN)r2r3r4r rrr r r r rdsrc@seZdZddZdddZdS)RstripcCs ||_dSrrr r r r r szRstrip.__init__Nc Cs|jj}|jj}|tt|d}td|D]L}|d|d|}t |}t | }||kr4| d||fd|q4|ddkrt |jds|d d kr|d dkr| d q| dS) Nrr8z%i.0z%i.endz%i.%izend-2cr@Zinterpzend-1crzend-3c)rrundor'rfloatr"rErr<rHr(hasattrr)) r r*rrZend_lineZcurZtxtroZcutr r r do_rstrips$    zRstrip.do_rstrip)N)r2r3r4r rr r r r rsr__main__)mainzidlelib.idle_test.test_formatrAF) verbosityexit)rDZtkinter.messageboxrZtkinter.simpledialogrZidlelib.configrrrr!r$r#r;rCr compiler`rbrcrrr2Zunittestrr r r r s(   C%$  $