Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/idlelib/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/idlelib/__pycache__/undo.cpython-310.pyc

o

0�i&+�@s�ddlZddlmZGdd�de�ZGdd�d�ZGdd�de�ZGd	d
�d
e�ZGdd�de�Zd
d�Ze	dkrRddl
mZedddd�ddlm
Z
e
e�dSdS)�N)�	Delegatorc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dZ
dd�ZdZdd�Z
d#dd�Zd#dd�Zdd�Zdd�Zd$dd�Zdd �Zd!d"�ZdS)%�
UndoDelegatori�cCst�|�|��dS�N)r�__init__�
reset_undo��self�r	�3/opt/alt/python310/lib64/python3.10/idlelib/undo.pyrs
zUndoDelegator.__init__cCsn|jdur|�d�|�d�|�d�t�||�|dur5|�d|j�|�d|j�|�d|j�dSdS)Nz<<undo>>z<<redo>>z<<dump-undo-state>>)�delegateZunbindr�setdelegateZbind�
undo_event�
redo_event�
dump_event)rrr	r	r
rs



�zUndoDelegator.setdelegatecCsvddlm}||jd|j��td|jdd�td|jdd�td|jdd�td|���||j|jd��d	S)
Nr)�pprintzpointer:� )�endzsaved:z
can_merge:zget_saved():�break)r�undolist�pointer�print�saved�	can_merge�	get_saved)r�eventrr	r	r
r(szUndoDelegator.dump_eventcCs&d|_d|_g|_d|_|�d�dS�N���r�)�	was_savedrr�	undoblock�	set_savedrr	r	r
r2s
zUndoDelegator.reset_undocCs&|r|j|_nd|_d|_|��dS)NrF)rrr�check_saved)r�flagr	r	r
r 9s

zUndoDelegator.set_savedcCs|j|jkSr)rrrr	r	r
rAszUndoDelegator.get_savedNcCs
||_dSr)�saved_change_hook)r�hookr	r	r
�set_saved_change_hookF�
z#UndoDelegator.set_saved_change_hookrcCs2|��}||jkr||_|jr|��dSdSdSr)rrr#)rZis_savedr	r	r
r!Ks
�zUndoDelegator.check_savedcCs|�t|||��dSr)�addcmd�
InsertCommand)r�index�chars�tagsr	r	r
�insertR�zUndoDelegator.insertcCs|�t||��dSr)r'�
DeleteCommand�r�index1�index2r	r	r
�deleteUszUndoDelegator.deletecCs |jdkr	t�|_|j��dS�Nr)r�CommandSequence�
bump_depthrr	r	r
�undo_block_startcs
zUndoDelegator.undo_block_startcCsV|j�d�dkr'|j}d|_t|�dkr)t|�dkr|�d�}|�|d�dSdSdSr)rr5�len�getcmdr'�r�cmdr	r	r
�undo_block_stophs
�zUndoDelegator.undo_block_stopTcCs�|r|�|j�|jdkr|j�|�dS|jr,|jdkr,|j|jd}|�|�r,dS|g|j|jd�<|j|jkr>d|_|jd|_t	|j�|j
kra|jd=|jd|_|jdkra|jd|_d|_|��dS)NrrrT)�dorr�appendrrr�mergerr7�max_undor!)rr:ZexecuteZlastcmdr	r	r
r'ts(


zUndoDelegator.addcmdcCsP|jdkr|��dS|j|jd}|�|j�|jd|_d|_|��dS)NrrrF)r�bellr�undorrr!�rrr:r	r	r
r
�s
zUndoDelegator.undo_eventcCsR|jt|j�kr|��dS|j|j}|�|j�|jd|_d|_|��dS)NrrF)rr7rr@�redorrr!rBr	r	r
r�szUndoDelegator.redo_eventr)T)�__name__�
__module__�__qualname__r?rrrrr rr#r%rr!r,r2r6r;r'r
rr	r	r	r
rs&



rc@sReZdZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�CommandNcCs0i|_i|_||_||_||_|r||_dSdSr)�marks_before�marks_afterr0r1r*r+)rr0r1r*r+r	r	r
r�s
�zCommand.__init__cCs>|jj}|j|j|j|jf}|jdur|dd�}|t|�S)Nr)�	__class__rDr0r1r*r+�repr)r�s�tr	r	r
�__repr__�s

zCommand.__repr__cC�dSrr	�r�textr	r	r
r<��z
Command.docCrOrr	rPr	r	r
rC�rRzCommand.redocCrOrr	rPr	r	r
rA�rRzCommand.undocCsdSr3r	r9r	r	r
r>�rRz
Command.mergecCs4i}|��D]}|dkr|dkr|�|�||<q|S)Nr,Zcurrent)Z
mark_namesr))rrQ�marks�namer	r	r
�
save_marks�s�zCommand.save_markscCs"|��D]
\}}|�||�qdSr)�items�mark_set)rrQrSrTr)r	r	r
�	set_marks�s�zCommand.set_marksr)rDrErFr+rrNr<rCrAr>rUrXr	r	r	r
rG�s
	rGc@sNeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zej	ej
dZd
d�ZdS)r(NcCst�||d||�dSr�rGr)rr0r*r+r	r	r
r�r-zInsertCommand.__init__cCsv|�|�|_|�|j�|_|�|jdd�r|�d�|_|�|j|j|j�|�d|jt|j�f�|_	|�|�|_
dS)N�>�end-1cz%s+%dc)rUrHr)r0�comparer,r*r+r7r1rIrPr	r	r
r<�szInsertCommand.docCs>|�d|j�|�|j|j|j�|�||j�|�d�dS�Nr,)rWr0r,r*r+rXrI�seerPr	r	r
rC�szInsertCommand.redocC�:|�d|j�|�|j|j�|�||j�|�d�dSr])rWr0r2r1rXrHr^rPr	r	r
rA��zInsertCommand.undocCs�|j|jurdS|j|jkrdS|j|jkrdSt|j�dkr!dS|jr4|�|jd�|�|j�kr4dS|j|_|j|j|_dS)NFrrT)rJr1r0r+r7r*�classifyr9r	r	r
r>�szInsertCommand.merge�_cCs||jvrdS|dkr
dSdS)N�alphanumeric�
�newlineZpunctuation)rc)r�cr	r	r
ras

zInsertCommand.classifyr)
rDrErFrr<rCrAr>�stringZ
ascii_lettersZdigitsrcrar	r	r	r
r(�s
r(c@s.eZdZd
dd�Zdd�Zdd�Zdd	�ZdS)r.NcCst�|||dd�dSrrYr/r	r	r
rr-zDeleteCommand.__init__cCs�|�|�|_|�|j�|_|jr|�|j�|_n	|�|jd�|_|�|jdd�r/|�d�|_|�|j|j�|_|�|j|j�|�|�|_	dS)Nz +1crZr[)
rUrHr)r0r1r\�getr*r2rIrPr	r	r
r<szDeleteCommand.docCr_r])rWr0r2r1rXrIr^rPr	r	r
rCr`zDeleteCommand.redocCr_r])rWr0r,r*rXrHr^rPr	r	r
rA$r`zDeleteCommand.undor)rDrErFrr<rCrAr	r	r	r
r.s

r.c@sNeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	ddd�Z
dS)r4cCsg|_d|_dSr3)�cmds�depthrr	r	r
r0s
zCommandSequence.__init__cCs>|jj}g}|jD]
}|�d|f�q	|dd�|�dS)Nz    %rz(
z,
z
))rJrDrir=�join)rrLZstrsr:r	r	r
rN4s

zCommandSequence.__repr__cCs
t|j�Sr)r7rirr	r	r
�__len__;r&zCommandSequence.__len__cCs|j�|�dSr)rir=r9r	r	r
r=>szCommandSequence.appendcCs
|j|Sr)ri)r�ir	r	r
r8Ar&zCommandSequence.getcmdcCs|jD]}|�|�qdSr)rirC)rrQr:r	r	r
rCDs
�zCommandSequence.redocCs.|jdd�}|��|D]}|�|�q
dSr)ri�reverserA)rrQrir:r	r	r
rAHs
�zCommandSequence.undorcCs|j||_|jSr)rj)rZincrr	r	r
r5NszCommandSequence.bump_depthN)r)rDrErFrrNrlr=r8rCrAr5r	r	r	r
r4,sr4c
sddlm}m}m}ddlm}||�}|�d�tt|�	��
d�dd��\}}|�	d||df�||d	d
�}|��|��||�}	t
��|	���||d�fdd
�d�}
|
jdd�||d�fdd
�d�}|jdd�||d�fdd
�d�}|jdd�dS)Nr)�Toplevel�Text�Button)�
PercolatorzTest UndoDelegator�+rz+%d+%d��
)ZheightZUndoc�
��d�Sr)r
r	��dr	r
�<lambda>b�
z!_undo_delegator.<locals>.<lambda>)rQZcommand�left)ZsideZRedocrvr)rr	rwr	r
rydrzZDumpcrvr)rr	rwr	r
ryfrz)ZtkinterrorprqZidlelib.percolatorrr�title�map�intZgeometry�splitZpackZ	focus_setrZinsertfilter)
�parentrorprqrrZundowin�x�yrQ�prArC�dumpr	rwr
�_undo_delegatorSs$
 
r��__main__)�mainzidlelib.idle_test.test_undo�F)�	verbosity�exit)�run)rgZidlelib.delegatorrrrGr(r.r4r�rDZunittestr�Zidlelib.idle_test.htestr�r	r	r	r
�<module>s-9$'�