<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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rÐd 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ÚintéH   )Ú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r´t||d … ƒs´|d }|  d| d| ¡}qzW d| }|d }|  d| d| ¡}xJ|dkr$t|ƒ|kr$t||d … ƒs$|d }|  d| d| ¡}qÜW 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|| ¡}	xŒtdt|	ƒdƒD ]x}
|	|
 }|sàqÎt||  ¡ ƒ|kr||kr| | ¡ ¡ |}|| d }|
d t|	ƒk rÎ|	|
d  dkrÎ|d }qÎW |d }q”W | | ¡ ¡ | 	||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rÌt| j dƒsÌx*| d	¡d
krÊ| d¡dkrÊ| d¡ q¢W | ¡  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%$

 $ 