Mini Shell

Direktori : /lib64/gedit/plugins/snippets/__pycache__/
Upload File :
Current File : //lib64/gedit/plugins/snippets/__pycache__/placeholder.cpython-36.opt-1.pyc

3

6nZGR�
@sddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZy&ddl
Z
e
jd�e
jd�e
j
ZWndd�ZYnXGd	d
�d
�ZGdd�de�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)�N)�GObject�Gtk�)�helper)�SubstitutionParserZgeditcCs|S)N�)�srr�0/usr/lib64/gedit/plugins/snippets/placeholder.py�<lambda>#sr
c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zd/dd�Zdd�Zd d!�Zd0d"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.S)1�PlaceholdercCs�d|_d|_|j�|_||_d|_g|_g|_||_||_	|j
|�|j|_|j
�|rr|jjd||jd�|_nd|_d|_dS)NTFr)�ok�doneZ
get_buffer�buf�view�has_references�mirrors�
leave_mirrors�tabstop�environ�set_default�default�
prev_contents�set_mark_gravity�create_mark�mark_gravity�begin�end)�selfrrr�defaultsrrrr	�__init__'s 

zPlaceholder.__init__cCs
|jdS)N�utf8)r)rrrr	�get_environ<szPlaceholder.get_environcCsdt|j�t|j�fS)Nz%s (%s))�str�	__class__r)rrrr	�__str__?szPlaceholder.__str__cCsddg|_dS)NTF)r)rrrr	rBszPlaceholder.set_mark_gravitycCsVd|_g|_|sdSx<|D]4}|j|�}|r|jj|�|jsD||_||krPqWdS)N)rr�expand_environment�append)rr�dZdmrrr	rEs

zPlaceholder.set_defaultcCst|�S)N)�repr)rrrrr	�literalXszPlaceholder.literalcCs|S)Nr)rrrrr	�format_environment[szPlaceholder.format_environmentcCsF|j�}|jd�s |jd�|kr.d|jd�S|j||jd��SdS)Nr��$)r!�groupr*)r�m�envrrr	�re_environment^szPlaceholder.re_environmentcCs|s|Stjd|j|�S)Nz(\\)?\$([A-Z_]+))�re�subr0)r�textrrr	r%fszPlaceholder.expand_environmentcCs"|r|j�r|jj|�SdSdS)N)�get_deletedrZget_iter_at_mark)rZmarkrrr	�get_iterlszPlaceholder.get_itercCs|j|j�S)N)r5r)rrrr	�
begin_iterrszPlaceholder.begin_itercCs|j|j�S)N)r5r)rrrr	�end_iteruszPlaceholder.end_itercCs@|j�}|jjd||jd�|_|jr<tj|j||jd|�dS)NrF)	r6rrrrrr�insert_with_indentr)r�placeholdersrrrr	�run_lastxszPlaceholder.run_lastFcCsD|jr |jj�r |jj|j�|jr@|jj�r@|jj|j�dS)N)rr4r�delete_markr)r�forcerrr	�removeszPlaceholder.removecCsj|js|jj�rdS|jj|jj�|j��|jrN|jj|jj�|j��n|jj|jj�|j��dS)N)	rr4r�	move_mark�
get_insertr6r�get_selection_boundr7)rrrr	�enter�szPlaceholder.entercCsJ|jrB|jrB|j�}|j�}|r<|r<|jj|j�|j�d�SdSndSdS)NF�)rrr6r7r�get_text)rZbiterZeiterrrr	rC�szPlaceholder.get_textcCs(d|_|r|jj|�n|jj|�dS)NT)rrr&r)r�mirrorZonleaverrr	�
add_mirror�szPlaceholder.add_mirrorcCsf|jj�s|jj�rdS|jj�|j�}|jj||j��tj	|j
||d|�|jj�|j�dS)NT)
rr4rrZbegin_user_actionr6�deleter7rr8rZend_user_action�update_contents)rr3rrrr	�set_text�s

zPlaceholder.set_textcCs>|j}|j�|_||j�kr:x|jD]}|j|�s$dSq$WdS)N)rrCr�update)r�prevrDrrr	rG�s

zPlaceholder.update_contentscCs"x|jD]}|j|�sdSqWdS)N)rrI)rrDrrr	�update_leave_mirrors�s
z Placeholder.update_leave_mirrorscCs|j�dS)N)rK)rrrr	�leave�szPlaceholder.leavecCs�g}x�tjd|�}|sP|jd�r4||j�d�}qt|jd�pH|jd��}||krx||krf|j|�||j�d�}qd|_dSqW|S)Nz(\\)?\$(?:{([0-9]+)}|([0-9]+))rr+�F)r1�searchr-r�intr&r)rr3r9rr.rrrr	�find_mirrors�s 

zPlaceholder.find_mirrorsN)F)F)�__name__�
__module__�__qualname__rr!r$rrr)r*r0r%r5r6r7r:r=rArCrErHrGrKrLrPrrrr	r&s,

	rc@s$eZdZdd�Zdd�Zdd�ZdS)�PlaceholderMirrorcCstj||d|d|�||_dS)Nr���)rr�mirror_stop)rrrrrrrr	r�szPlaceholderMirror.__init__cCs|j|j��dS)NT)rHrC)rrDrrr	rI�szPlaceholderMirror.updatecCsHtj||�|j|kr>||j}|j|�|jrD|j|j�nd|_dS)NF)rr:rVrErrHr)rr9rDrrr	r:�s


zPlaceholderMirror.run_lastN)rQrRrSrrIr:rrrr	rT�srTc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�PlaceholderEndcCstj||d|||�dS)Nr)rr)rrrrrrrr	r�szPlaceholderEnd.__init__cCsJtj||�|jsFd|jd<|jj|j�|jjd|j�|jd�|_dS)NFr)	rr:rrrr;rrr7)rr9rrr	r:s

zPlaceholderEnd.run_lastcCsX|jr*|jj�r*|jj|jj�|j��|jrT|jj�rT|jj|jj�|j��dS)N)	rr4rr>r?r6rr@r7)rrrr	rAszPlaceholderEnd.entercCs|j�dS)N)rA)rrrr	rLszPlaceholderEnd.leaveN)rQrRrSrr:rArLrrrr	rW�srWc@sveZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zddd�Zdd�Z
dd�Zdd�ZdS)�PlaceholderExpandcCs4tj||||d|�ddi|_d|_||_d|_dS)NrrBF)rr�mirror_text�
timeout_id�cmd�instant_update)rrrrrrrrr	rs

zPlaceholderExpand.__init__cCstj|�}|d|jS)N� )rr$r[)rrrrr	r$ s
zPlaceholderExpand.__str__cCs|j|j|�S)N)rPr[)rr9rrr	�get_mirrors%szPlaceholderExpand.get_mirrorscCs�tj||�d|_|j|�}|r�d}xJ|D]B}||}|j||j�|j|j|j<|jr*t	|t
�r*d}q*W|r�|jd�|j�p�d|_n(|jd�|j�p�d|_|jdkr�d|_
dS)NTFrrU)rr:rr^rEr\rrYr�
isinstancerXrIrCr
)rr9rZ
allDefaultrD�prrr	r:)s$




zPlaceholderExpand.run_lastcCsV|jd�rd|jd�dS|jd�r6t|jd��}nt|jd��}||j|�SdS)Nrz"$r+�"rM�)r-rOrY)rr.�	formatter�indexrrr	�re_placeholderDs

z PlaceholderExpand.re_placeholdercCs |jdkrtj|j�d|_dS)N)rZr�
source_remove)rrrr	�remove_timeoutOs
z PlaceholderExpand.remove_timeoutcCs|j�tjd|j�|_dS)Ni�)rgrZtimeout_add�
timeout_cbrZ)rrrr	�install_timeoutTsz!PlaceholderExpand.install_timeoutcCs
d|_dS)NF)rZ)rrrr	rhXszPlaceholderExpand.timeout_cbcCs
|j|�S)N)r))rr3rrr	r*]sz$PlaceholderExpand.format_environmentNcs,�p�j�tjd��fdd�|�}�j|�S)Nz(\\)?\$({([0-9]+)}|([0-9]+))cs�j|��S)N)re)r.)rcrrr	r
dsz.PlaceholderExpand.substitute.<locals>.<lambda>)r)r1r2r%)rr3rcr)rcrr	�
substitute`s
zPlaceholderExpand.substitutecCs0|j|j�}|r(|j|�}|r,|j�nd}|S)NT)rjr[�expandrK)rr3Zretrrr	�
run_updateis

zPlaceholderExpand.run_updatecCsH|r@|j�|j|j<x*|jD] }|dkr*q|j|dkrdSqW|j�S)NrF)rCrYrrl)rrDrrrr	rIvszPlaceholderExpand.updatecCsdS)NTr)rr3rrr	rk�szPlaceholderExpand.expand)N)rQrRrSrr$r^r:rergrirhr*rjrlrIrkrrrr	rXs
	
rXc@s^eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zddd�ZdS)�PlaceholderShellcCs$tj||||||�d|_d|_dS)NF)rXr�shell�	remove_me)rrrrrrrrr	r�szPlaceholderShell.__init__cCs
|jdS)NZnoenc)r)rrrr	r!�szPlaceholderShell.get_environcCs|jjj�d|_dS)N)rn�stdout�close)rrrr	�close_shell�szPlaceholderShell.close_shellcCs\tj|�|j�|jsdStj|j�|j�|jr@tj	|�t
jdtj
jd|j�dS)NFzQExecution of the shell command (%s) exceeded the maximum time; execution aborted.)rXrhrgrnrrf�watch_idrrror=r�message_dialogr�MessageType�ERROR�command)rrrr	rh�s


zPlaceholderShell.timeout_cbcCs\|j�|j�|jtjd|j�jd��|jdkrF|j�|_|j	�|j
rXtj|d�dS)NrB�
T)
rrrgrHr"�join�shell_output�rstriprrCrLrorXr=)rrrr	�
process_close�s

zPlaceholderShell.process_closecCs~|tj@rr|j�}t|�dkrry|jd�}Wn*tk
rV|jtj�ddd�}YnX|j|7_|j	�dS|j
�dS)Nrzutf-8r�replace)�errorsTF)r�IO_IN�readline�len�decode�UnicodeDecodeError�localeZgetdefaultlocalerzrir|)r�sourceZ	condition�linerrr	�
process_cb�s
zPlaceholderShell.process_cbcCsd|jd�S)Nz\%sr)r-)r�matchrrr	�literal_replace�sz PlaceholderShell.literal_replacecCsdtjd|j|�dS)Nraz([\\"]))r1r2r�)rr3rrr	r)�szPlaceholderShell.literalcCs||j�|jr"tj|j�|j�dd|j�tjd�}||_	tj
|f|�|_d|_tj|jj
tjtjB|j�|_|j�dS)NT)�cwdrnr/rprB)rgrnrrfrsrrr!�
subprocess�PIPErw�PopenrzZio_add_watchrprZIO_HUPr�ri)rr3Z
popen_argsrrr	rk�s
zPlaceholderShell.expandFcCs>|r|jrd|_n&|r.|j�|jr.|j�tj||�dS)NT)rnrorgrrrXr=)rr<rrr	r=�szPlaceholderShell.removeN)F)
rQrRrSrr!rrrhr|r�r�r)rkr=rrrr	rm�s
rmc@seZdZdd�Zdd�ZdS)�TimeoutErrorcCs
||_dS)N)�value)rr�rrr	r�szTimeoutError.__init__cCs
t|j�S)N)r(r�)rrrr	r$�szTimeoutError.__str__N)rQrRrSrr$rrrr	r��sr�c@sFeZdZdd�Zdd�Zdd�Zddd	�Zd
d�Zdd
�Zdd�Z	dS)�PlaceholderEvalc	CsVtj||||||�d|_d|_||_g|_|rRx |D]}|jjt|j���q6WdS)NrF)	rXrZfdreadro�	namespace�refsr&rO�strip)	rrrrr�rrr��refrrr	r�s
zPlaceholderEval.__init__cCsPtj||�}|jsdSx4|jD]*}||kr>||krH|j|�qd|_dSqW|S)NF)rXr^rr�r&)rr9rr�rrr	r^szPlaceholderEval.get_mirrorscCs
ttd�S)N�SIGALRM)�hasattr�signal)rrrr	�timeout_supportedsz!PlaceholderEval.timeout_supportedrcCstd��dS)Nz Operation timed out (>2 seconds))r�)rZsignum�framerrr	rh szPlaceholderEval.timeout_cbcCs>|j�sdS|jdkr|j�tjtj|j�|_tjd�dS)Nr+)r�rZrgr�r�rh�alarm)rrrr	ri#s
zPlaceholderEval.install_timeoutcCs:|j�sdS|jdkr6tjd�tjtj|j�d|_dS)Nr)r�rZr�r�r�)rrrr	rg-s

zPlaceholderEval.remove_timeoutcCsP|j�|j�}||_|js(|jdkr6|jd�dSddj|jd��}d|jkr\|jd=yt||j�Wntj	�YnXd|jk�rLy |j
�|jd�}|j�Wn�tk
r�|j�tj
dtjjtd�|j�dStk
�r.}z,|j�tj
dtjjtd�|j|f�dSd}~XnX|dk�r>d}|jt|��d	S)
NrBzdef process_snippet():
	z
	rxZprocess_snippetzQExecution of the Python command (%s) exceeds the maximum time, execution aborted.Fz/Execution of the Python command (%s) failed: %sT)rgr�rwrHry�splitr��exec�	traceback�	print_excrir�rrtrrurv�_�	Exceptionr")rr3�resultZdetailrrr	rk8sD

	

zPlaceholderEval.expandN)rr)
rQrRrSrr^r�rhrirgrkrrrr	r��s


r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�PlaceholderRegexc		Cs:tj|||||d�d|_||_||_||_|j|�dS)NrBT)rXrr\�inp�pattern�substitution�init_modifiers)	rrrrrr�r�r��	modifiersrrr	rtszPlaceholderRegex.__init__cCsPtjtjtjtjtjtjd�}d|_x&|D]}||kr*|j||O_q*WdS)N)�I�L�M�S�U�Xr)r1r�r�r�r�r�r�r�)rr�ZmodsZmodifierrrr	r�~s

zPlaceholderRegex.init_modifierscCsV|j|j|�|j|j|�}t|jt�rR|j|kr<d|_dS|j|krR|j|j�|S)NF)rPr�r�r_r�rOrr&)rr9rrrr	r^�s

zPlaceholderRegex.get_mirrorscCs
tj|�S)N)r1�escape)rrrrr	r)�szPlaceholderRegex.literalcCs<|j�}t|jt�r |j|jS|j|kr4||jSdSdS)NrB)r!r_r�rOrY)rr/rrr	�	get_input�s

zPlaceholderRegex.get_inputcCs0|j|j�}|j|jtj�}|r,|j||�SdS)NT)rjr�r�rZescape_substitutionrk)rr�r�rrr	rl�s
zPlaceholderRegex.run_updatecCs�ytj||j�}Wn6tjk
rH}ztjjd||f�dSd}~XnX|j�}|j|�}|sl|j	|�n\|j
�}d}x(|j�D]}	|	|t|d�<|d7}q�W|j
d�|d<t||�}
|j	|
j��dS)Nz,Could not compile regular expression: %s
%s
Frr�0T)r1�compiler��error�sys�stderr�writer�rNrH�	groupdict�groupsr"r-r�parse)rr�r�Zregex�messager�r�r��idxr-�parserrrr	rk�s$

zPlaceholderRegex.expandN)
rQrRrSrr�r^r)r�rlrkrrrr	r�ss

	r�)r�r1r�r�r�r�Z
gi.repositoryrrrBrZsubstitutionparserr�gettext�bindtextdomain�
textdomainr�rrTrWrXrmr�r�r�r�rrrr	�<module>s0


@qjy