£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d=                 @   s   d dl Z d dlmZ d dlmZ d dlmZ G dd dZe  dd Z	d	d
 Z
dd Zdd Zdd Zdd Ze dZdd ZG dd dZG dd dZG dd dZedkrd dlmZ eddd d! dS )"    N)askyesno)
askinteger)idleConfc               @   s2   e Zd Zdd Zedd Zdd Zd
dd	ZdS )FormatParagraphc             C   s
   || _ d S )N)editwin)selfr    r   3/opt/alt/python37/lib64/python3.7/idlelib/format.py__init__   s    zFormatParagraph.__init__c             C   s   t jdddddd| _d S )N
extensionsr   z	max-widthintH   )typedefault)r   Z	GetOption	max_width)clsr   r   r	   reload"   s    zFormatParagraph.reloadc             C   s
   d | _ d S )N)r   )r   r   r   r	   close'   s    zFormatParagraph.closeNc       	      C   s   |d kr| j n|}| jj}| j \}}|rF|rF|||}t|}nt||d\}}}}|rpt|||}n
t	||}|
ddd ||kr|d| |  ||| ||| |  n|d| |d dS )Ninsertselz1.0endbreak)r   r   textget_selection_indicesgetget_comment_headerfind_paragraphindexreformat_commentreformat_paragraph
tag_removemark_setundo_block_startdeleter   undo_block_stopZsee)	r   eventlimitr   firstlastdatacomment_headernewdatar   r   r	   format_paragraph_event*   s(    



z&FormatParagraph.format_paragraph_event)N)__name__
__module____qualname__r
   classmethodr   r   r,   r   r   r   r	   r      s   r   c       
      C   sF  t t|d\}}| d| d| }x:| d| ddrbt|rb|d }| d| d| }q*W |}t|}t|}x<t||krt||d  s|d }| d| d| }qzW d| }|d }| d| d| }xJ|dkr$t||kr$t||d  s$|d }| d| d| }qW d|d  }	|	||| |	|fS )N.z%d.0z%d.end<r      r   )mapr   splitr   Zcompareis_all_whiter   len)
r   ZmarklinenocollineZfirst_linenor*   Zcomment_header_lenr(   r'   r   r   r	   r   S   s,    r   c             C   s  |  d}d}t|}x ||k r6t|| r6|d }qW ||krD| S t|| }|d |k r~t||d  s~t||d  }n|}|d | }|}x||k rTt|| sTt d|| }	xtdt|	dD ]x}
|	|
 }|sqt||  |kr||kr||  |}|| d }|
d t|	k r|	|
d  dkr|d }qW |d }qW ||  |	||d   d
|S )N
r   r3   z(\s+)    )r5   r7   r6   
get_indentrerange
expandtabsappendrstripextendjoin)r)   r&   linesinZindent1Zindent2newpartialZwordsjZwordr   r   r	   r   x   s<    

 r   c                s   t  dfdd| dD } t|t   d}t| |}|d}d}|d shd}|d d }d fdd|D | S )Nr;   c             3   s   | ]}| d  V  qd S )Nr   ).0r:   )lcr   r	   	<genexpr>   s    z#reformat_comment.<locals>.<genexpr>    c             3   s   | ]} | V  qd S )Nr   )rL   r:   )r*   r   r	   rN      s    )r7   rE   r5   maxr   )r)   r&   r*   Zformat_widthr+   Zblock_suffixr   )r*   rM   r	   r      s    

r   c             C   s   t d| d k	S )Nz^\s*$)r?   match)r:   r   r   r	   r6      s    r6   c             C   s   t d|  S )Nz	^([ \t]*))r?   rS   group)r:   r   r   r	   r>      s    r>   c             C   s"   t d| }|d krdS |dS )Nz^([ \t]*#*)rP   r3   )r?   rS   rT   )r:   mr   r   r	   r      s     r   z[ \t]*c             C   s$   t | }| t| |fS )N)_line_indent_rerS   r   r7   rT   rA   )r:   tabwidthrU   r   r   r	   get_line_indent   s    
rX   c               @   sh   e Zd Zdd Zdd Zdd Zddd	Zdd
dZdddZdddZ	dddZ
dddZdd ZdS )FormatRegionc             C   s
   || _ d S )N)r   )r   r   r   r   r	   r
      s    zFormatRegion.__init__c             C   sr   | j j}| j  \}}|r<|r<||d }||d }n|d}|d}|||}|d}||||fS )Nz
 linestartz-1c lineend +1czinsert linestartzinsert lineend +1cr;   )r   r   r   r   r   r5   )r   r   r'   r(   headtailcharsrF   r   r   r	   
get_region   s    



zFormatRegion.get_regionc             C   sz   | j j}d|}||kr&|  d S |ddd |d| |  ||| ||| |	  |
d|d d S )Nr;   r   z1.0r   r   )r   r   rE   Zbellr    r!   r"   r#   r   r$   Ztag_add)r   rZ   r[   r\   rF   r   newcharsr   r   r	   
set_region   s    
zFormatRegion.set_regionNc       
      C   s   |   \}}}}xZtt|D ]J}|| }|rt|| jj\}}	|	| jj }	| j|	||d   ||< qW | |||| dS )Nr   )	r]   r@   r7   rX   r   rW   indentwidth_make_blanksr_   )
r   r%   rZ   r[   r\   rF   posr:   raw	effectiver   r   r	   indent_region_event  s     z FormatRegion.indent_region_eventc       
      C   s   |   \}}}}x`tt|D ]P}|| }|rt|| jj\}}	t|	| jj d}	| j|	||d   ||< qW | 	|||| dS )Nr   r   )
r]   r@   r7   rX   r   rW   rR   r`   ra   r_   )
r   r%   rZ   r[   r\   rF   rb   r:   rc   rd   r   r   r	   dedent_region_event  s     z FormatRegion.dedent_region_eventc             C   sR   |   \}}}}x,tt|d D ]}|| }d| ||< q"W | |||| dS )Nr3   z##r   )r]   r@   r7   r_   )r   r%   rZ   r[   r\   rF   rb   r:   r   r   r	   comment_region_event   s    z!FormatRegion.comment_region_eventc             C   s   |   \}}}}xdtt|D ]T}|| }|s0q|d d dkrN|dd  }n|d d dkrj|dd  }|||< qW | |||| dS )Nr<   z##r3   #r   )r]   r@   r7   r_   )r   r%   rZ   r[   r\   rF   rb   r:   r   r   r	   uncomment_region_event,  s    z#FormatRegion.uncomment_region_eventc             C   s   |   \}}}}|  }|d kr$d S x\tt|D ]L}|| }|r2t||\}	}
t|
|\}}d| d|  ||	d   ||< q2W | |||| dS )N	r=   r   )r]   _asktabwidthr@   r7   rX   divmodr_   )r   r%   rZ   r[   r\   rF   rW   rb   r:   rc   rd   ZntabsZnspacesr   r   r	   tabify_region_event?  s    $z FormatRegion.tabify_region_eventc             C   s`   |   \}}}}|  }|d kr$d S x&tt|D ]}|| |||< q2W | |||| dS )Nr   )r]   rk   r@   r7   rA   r_   )r   r%   rZ   r[   r\   rF   rW   rb   r   r   r	   untabify_region_eventN  s    z"FormatRegion.untabify_region_eventc             C   s   t dd| jj| jjdddS )Nz	Tab widthzColumns per tab? (2-16)r<      )parentinitialvalueminvaluemaxvalue)r   r   r   r`   )r   r   r   r	   rk   Y  s    zFormatRegion._asktabwidth)N)N)N)N)N)N)r-   r.   r/   r
   r]   r_   re   rf   rg   ri   rm   rn   rk   r   r   r   r	   rY      s   





rY   c               @   s$   e Zd Zdd Zdd Zdd ZdS )Indentsc             C   s
   || _ d S )N)r   )r   r   r   r   r	   r
   g  s    zIndents.__init__c             C   sJ   | j }|j}tddd|  d d|  d d |jdrF| |_d	|_d
S )NzToggle tabsz
Turn tabs )ZonZoffz?
Indent width )zwill bez
remains atz 8.z!
 Note: a tab is always 8 columns)rp      r   )r   usetabsr   r   r`   )r   r%   r   rv   r   r   r	   toggle_tabs_eventj  s    
zIndents.toggle_tabs_eventc             C   s<   | j }tdd|j|jddd}|r8||jkr8|js8||_dS )NzIndent widthz6New indent width (2-16)
(Always use 8 when using tabs)r<   ro   )rp   rq   rr   rs   r   )r   r   r   r`   rv   )r   r%   r   rI   r   r   r	   change_indentwidth_eventz  s    z Indents.change_indentwidth_eventN)r-   r.   r/   r
   rw   rx   r   r   r   r	   rt   d  s   rt   c               @   s   e Zd Zdd ZdddZdS )Rstripc             C   s
   || _ d S )N)r   )r   r   r   r   r	   r
     s    zRstrip.__init__Nc       	      C   s   | j j}| j j}|  tt|d}xZtd|D ]L}|d| d| }t	|}t	|
 }||k r6|d||f d|  q6W |ddkrt| j dsx*|d	d
kr|ddkr|d qW |  d S )Nr   r3   z%i.0z%i.endz%i.%izend-2cr;   Zinterpzend-1cz1.0zend-3c)r   r   undor"   r   floatr   r@   r   r7   rC   r#   hasattrr$   )	r   r%   r   rz   Zend_lineZcurZtxtrc   Zcutr   r   r	   	do_rstrip  s     zRstrip.do_rstrip)N)r-   r.   r/   r
   r}   r   r   r   r	   ry     s   ry   __main__)mainzidlelib.idle_test.test_formatr<   F)	verbosityexit)r?   Ztkinter.messageboxr   Ztkinter.simpledialogr   Zidlelib.configr   r   r   r   r   r   r6   r>   r   compilerV   rX   rY   rt   ry   r-   Zunittestr   r   r   r   r	   <module>   s(   C%$

 $ 