Mini Shell

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

3

�CZ[r�@s�ddlZddlZddlZddlZddlmZmZddljj	Z
ddlmZGdd�d�Z
Gdd�d�ZGd	d
�d
e
j�ZGdd�d�ZGd
d�d�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)�N)�Gdk�Gtk�)�helperc@seZdZdd�ZdS)�NamespacedIdcCs4|sd|_n$|r|d|_nd|_|j|7_dS)N�-zglobal-)�id)�self�	namespacer�r�,/usr/lib64/gedit/plugins/snippets/library.py�__init__szNamespacedId.__init__N)�__name__�
__module__�__qualname__r
rrrrrsrc@s�eZdZdddddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zddifdd�Zd d!�Zd"d#�ZdS)$�SnippetData�zNew snippet)�tag�text�description�acceleratorzdrop-targetscCs,|jjd�|_|j|�d|_|j|�dS)NrF)�attrib�get�priv_id�set_library�valid�set_node)r	�node�libraryrrrr
,s
zSnippetData.__init__cCs|jot|j�t�S)N)r�
isinstance�SnippetsUserFile)r	rrr�
can_modify3szSnippetData.can_modifycCs0|rtj|�|_nd|_t|j�|j�j|_dS)N)�weakref�refrr�languagerr)r	rrrrr6szSnippetData.set_librarycCs$|j�r||_nd|_|j|�dS)N)r!r�init_snippet_data)r	rrrrr>szSnippetData.set_nodecCs
|dkrdS|jjd�|_i|_tjj�}x�|D]�}|j|kr0||j=|jdkr�|jdkr�t	j
|j�\}}t	j||�r�t	j||�|_nd|_|j
�r�||j|j<q0|jp�d|j|j<q0WxD|D]<}|j
�r�tj||�}|||_||j|<q�|||j|<q�W|j�dS)N�overriderr)rrr&�
propertiesr�PROPS�copyrrr�accelerator_parseZaccelerator_validZaccelerator_namer!�et�
SubElement�check_validation)r	rZpropsZchild�keyval�mod�proprrrr%Fs.




zSnippetData.init_snippet_datacCsd|dr"|dr"|dr"dSt�}tj|d�\}}|j|d�o\|dp\|j||�|_dS)Nrrzdrop-targetsF)�Libraryrr*�valid_tab_trigger�valid_acceleratorr)r	rr.r/rrrr-nszSnippetData.check_validationcCs$|dkr|dkrtjd|�S|SdS)Nzdrop-targetsrz
\s*[,;]\s*)�re�split)r	r0�valuerrr�_format_propxszSnippetData._format_propcCsL||jkr@|j�r*|j||j|jp&d�S|j||j|p<d�S|j|d�S)Nr)r'r!r7r)r	r0rrr�__getitem__~s

zSnippetData.__getitem__cCs�||jkrdSt|t�r"dj|�}|j�rB|j||krB|j�|j�r�|j|j|kr�|j�rld|j�_|j|j}||j|_|dks�|dks�|dkr�t	�j
|j��}|j|||�|j
�dS)N�,Trrzdrop-targets)r'r�list�joinr!�	_overriderr�taintedr1�	containerr$�prop_changedr-)r	r0r6�oldvaluer>rrr�__setitem__�s



zSnippetData.__setitem__cCs |jr|j�r|j�jSdSdS)N)rr$)r	rrrr$�s
zSnippetData.languagecCs|jot�j|jS)N)r&r1�
overridden)r	rrr�is_override�szSnippetData.is_overridecCs|j�S)N)�_create_xml)r	rrr�to_xml�szSnippetData.to_xmlNFcCsZ|dkrtj|d|�}n
tjd�}x2|jD](}tj||�}|||_|r*||j|<q*W|S)N�snippet)r+r,�Elementr'r)r	�parent�updater�element�pr0rrrrD�s

zSnippetData._create_xmlcCs|t�j|j��}|j|jdd|ji�}t||j��}|jd�|j|_||_	|j|_
d|_|j|�d|_|t�j
|j
<dS)NTr&)r1�get_user_libraryr$rD�rootrrrrrr&rr=rB)r	�targetrJr&rrrr<�s

zSnippetData._overridecCsF|j�}|j|j��|j|j�|jd�|j|_|j|_d|_dS)N)rr�removerrr'rr&)r	rF�userlibrrr�revert�s
zSnippetData.revert)rrrr(r
r!rrr%r-r7r8rAr$rCrErDr<rQrrrrr(s"
(
	rc@s6eZdZddd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�SnippetsTreeBuilderNcCs$tjj|�|j|�|j|�dS)N)r+�TreeBuilderr
�	set_start�set_end)r	�start�endrrrr
�s
zSnippetsTreeBuilder.__init__cCs
||_dS)N)�	_start_cb)r	rVrrrrT�szSnippetsTreeBuilder.set_startcCs
||_dS)N)�_end_cb)r	rWrrrrU�szSnippetsTreeBuilder.set_endcCs$tjj|||�}|jr |j|�|S)N)r+rSrVrX)r	r�attrs�resultrrrrV�s
zSnippetsTreeBuilder.startcCs"tjj||�}|jr|j|�|S)N)r+rSrWrY)r	rr[rrrrWs
zSnippetsTreeBuilder.end)NN)rrrr
rTrUrVrWrrrrrR�s

rRc@sXeZdZdd�Zddd�Zddd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�ZdS)�LanguageContainercCs.||_g|_iiid�|_tj�|_d|_dS)N)rrzdrop-targetsr)r$�snippets�snippets_by_proprZ
AccelGroup�accel_group�_refs)r	r$rrrr

s

zLanguageContainer.__init__rcCs�|dkr||}|s|dkr"dStjd|d|dt|j��|dkrhtj|�\}}|jj||dt�j	�|j
|}t|t�s�|g}x.|D]&}||kr�||j
|�q�|g||<q�WdS)NrrzAdded � z to r)r�snippets_debug�strr$rr*r_Zconnectr1�accelerator_activatedr^rr:�append)r	rFr0r6r.r/r]�valrrr�	_add_props 



zLanguageContainer._add_propc
Cs�|dkr||}|s|dkr"dStjd|d|dt|j��|dkr`tj|�\}}|jj||�|j|}t	|t
�sz|g}x,|D]$}y||j|�Wq�Yq�Xq�WdS)NrrzRemoved raz from r)rrbrcr$rr*r_Zdisconnect_keyr^rr:rO)r	rFr0r6r.r/r]rfrrr�_remove_prop-s 


zLanguageContainer._remove_propcCs4|jj|�|j|d�|j|d�|j|d�|S)Nrrzdrop-targets)r]rerg)r	rFrrrreEs
zLanguageContainer.appendc	CsFy|jj|�WnYnX|j|d�|j|d�|j|d�dS)Nrrzdrop-targets)r]rOrh)r	rFrrrrONszLanguageContainer.removecCs.tjd|d|�|j|||�|j||�dS)NzPROP CHANGED (�))rrbrhrg)r	rFr0r@rrrr?XszLanguageContainer.prop_changedcCsx|j|}|dkr`g}xD|j�D]8\}}|j|�s4q x"||D]}||kr>|j|�q>Wq W|S||krp||SgSdS)Nzdrop-targets)r^�items�
startswithre)r	r0r6r]�s�keyrfrFrrr�	from_prop^s

zLanguageContainer.from_propcCs|jd7_dS)NrT)r`)r	rrrr#vszLanguageContainer.refcCs"|jdkr|jd8_|jdkS)Nrr)r`)r	rrr�unref{s
zLanguageContainer.unrefN)r)r)rrrr
rgrhrerOr?rnr#rorrrrr\s

	
r\c@speZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�ZdS)�SnippetsSystemFileNcCs"||_d|_d|_d|_d|_dS)NFT)�path�loadedr$�ok�need_id)r	rqrrrr
�s
zSnippetsSystemFile.__init__cCs*tjjd|jd�tjj|d�dS)NzAn error occurred loading z:
zQ
Snippets in this file will not be available, please correct or remove the file.
)�sys�stderr�writerq)r	�messagerrr�
load_error�szSnippetsSystemFile.load_errorcCs$|js|jjd�r |jj|�dS)Nr)rtrr�loading_elementsre)r	rJrrr�_add_snippet�szSnippetsSystemFile._add_snippetcCs$|jjd�|_|jr |jj�|_dS)Nr$)rrr$�lower)r	rJrrr�set_language�szSnippetsSystemFile.set_languagecCs|j|�dS)N)r})r	rJrrr�	_set_root�szSnippetsSystemFile._set_rootcCsf|js6|jdks$|jd|j�dS|j|�d|_n,|jdkr\|jr\|jd|j�dSd|_dS)Nr]z1Root element should be `snippets' instead of `%s'FTrFz+Element should be `snippet' instead of `%s')rrrryr~�	insnippet)r	rJrrr�_preprocess_element�s



z&SnippetsSystemFile._preprocess_elementcCs|jdkr|j|�d|_dS)NrFFT)rr{r)r	rJrrr�_process_element�s

z#SnippetsSystemFile._process_elementcCs|js|jrdS|j�dS)N)rsrr�load)r	rrr�ensure�szSnippetsSystemFile.ensure�@c#s�|js
dSg�t�fdd��fdd��}tj|d�}d|_yt|jddd�}Wntk
rhd|_dSXx�y|j|�}Wntk
r�d|_PYnX|s�Py|j	|�Wnt
k
r�d|_PYnXx�D]
}|Vq�W�dd�=qlW|j�dS)	Ncs�j|df�S)NT)re)r)�elementsrr�<lambda>�sz.SnippetsSystemFile.parse_xml.<locals>.<lambda>cs�j|df�S)NF)re)r)r�rrr��s)rNF�rzutf-8)�encoding)rqrRr+Z	XMLParserr�open�IOErrorrs�readZfeed�	Exception�close)r	�readsizeZbuilder�parser�f�datarJr)r�r�	parse_xml�s<


zSnippetsSystemFile.parse_xmlcCs�|js
dStjdt|j�d|j�d|_d|_g|_xV|j�D]J}|drp|j	|d�s�|jdd�=dSqD|j
|d�sD|jdd�=dSqDWx|jD]}t�j||�q�W|jdd�=d|_dS)NzLoading library (z): FrrT)
rsrrbrcr$rqrrrzr�r�r�r1�add_snippet)r	rJrrrr��s&
zSnippetsSystemFile.loadcCsP|jsLd|_x>|jd�D]0}|dr|djdkrF|j|d�d|_PqWdS)NF�rrr]T)rrrsr�rr})r	rJrrr�ensure_languagesz"SnippetsSystemFile.ensure_languagecCs4tjdt|j�d|j�d|_d|_d|_dS)NzUnloading library (z): FT)rrbrcr$rqrrrs)r	rrr�unloads

zSnippetsSystemFile.unload)N)r�)rrrr
ryr{r}r~r�r�r�r�r�r�r�rrrrrp�s

*rpc@sXeZdZddd�Zdd�Zdd�Zddd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�ZdS)r NcCstj||�d|_d|_dS)NF)rpr
r=rt)r	rqrrrr
szSnippetsUserFile.__init__cCstj||�||_dS)N)rpr~rM)r	rJrrrr~szSnippetsUserFile._set_rootcCs*||r"tj||�}|||_|SdSdS)N)r+r,r)r	rrr�r0rrr�add_prop s

zSnippetsUserFile.add_propcCs`|js|jdkrdStj|jd�}|rLx"|D]}tj||�}|||_q.Wd|_t�j||�S)NrFT)rsrMr+r,rr=r1r�)r	r'rJr0�subrrr�new_snippet)s
zSnippetsUserFile.new_snippetcCs\tj||�tjj|j�j�}|jr6|dkr6d|_n"|jrR||jdkrRd|_nd|_dS)Nz
global.xmlTz.xmlF)rpr}�osrq�basenamer|r$�modifier)r	rJ�filenamerrrr}8szSnippetsUserFile.set_languagecCs�|jrtjd�dS|rFtjdd|i�}tjjt�j	|j
�d�|_ntjd�}tjjt�j	d�|_|j|�d|_d|_d|_
|j�dS)Nz!Not creating root, already loadedr]r$z.xmlz
global.xmlT)rrrrbr+rGr�rqr;r1�userdirr|r~rsr=�save)r	r$rMrrr�create_rootDs


zSnippetsUserFile.create_rootcCsNy|jj|�d|_Wn
dSy|jdWnt�j|�YnXdS)NTr)rMrOr=r1�remove_library)r	rJrrrrOVs
zSnippetsUserFile.removecCs�|js|jdks|jrdStjj|j�}ytjj|�sFtj|d�Wn tk
rht	j
jd�YnXytj
|j|jd�d|_Wn*tk
r�t	j
jd|jd�YnXdS)	Ni�zError in making dirs
rrFz%Could not save user snippets file to �
)rr)rsrMr=r�rq�dirname�isdir�makedirs�OSErrorrurvrwrZ	write_xmlr�)r	rqrrrr�cs
zSnippetsUserFile.savecCstj|�d|_dS)N)rpr�rM)r	rrrr�xs
zSnippetsUserFile.unload)N)N)rrrr
r~r�r�r}r�rOr�r�rrrrr s
	

r cs eZdZdZ�fdd�Z�ZS)�	SingletonNcs0|js*tt|�j|f|�|�|_|jj�|jS)N)�	_instance�superr��__new__�
__init_once__)�cls�args�kwargs)�	__class__rrr�s


zSingleton.__new__)rrrr�r��
__classcell__rr)r�rr�|sr�c@s eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dDdd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�ZdEd:d;�ZdFd<d=�Z dGd>d?�Z!dHd@dA�Z"dIdBdC�Z#dS)Jr1cCsg|_d|_tj�|_dS)NF)�_accelerator_activated_cbrrrZ
TextBufferZcheck_buffer)r	rrrr��szLibrary.__init_once__cCs.||_||_i|_i|_i|_g|_d|_dS)NF)r��
systemdirs�	libraries�
containersrB�
loaded_idsrr)r	r�r�rrr�set_dirs�szLibrary.set_dirscCs|jj|�dS)N)r�re)r	�cbrrr�add_accelerator_callback�sz Library.add_accelerator_callbackcCs|jj|�dS)N)r�rO)r	r�rrr�remove_accelerator_callback�sz#Library.remove_accelerator_callbackcCs,d}x"|jD]}|||||�}|rPqW|S)NF)r�)r	�group�objr.r/Zretr�rrrrd�szLibrary.accelerator_activatedcCs�|j|j�}|j||�}|r<|j|�tjd|d�dSt||�}|j|jkrztjdt	|j�d|dd�dS|j
|�}tjdt	|j�d|d�|r�|jr�|j|�|jr�|jj
|j�|S)NzSnippet is overriden: rzNot added snippet z::z (duplicate)zAdded snippet )
r>r$�	overridedrrrbrrr�rcrer&�add_override)r	rrJr>r�rFrrrr��s&

 


zLibrary.add_snippetcCs,|j|�}||jkr"t|�|j|<|j|S)N)�normalize_languager�r\)r	r$rrrr>�s

zLibrary.containercCsxd}||jkrDx4|j|D]&}t|t�r4|jr4|}qt|t�sPqW|sttjdt|��t�}|j|�|j|�|S)Nz&Creating a new user file for language )	r�rr r�rrbrcr��add_library)r	r$rNrrrrrL�s



zLibrary.get_user_libraryNcCs|j|�}|j|�}|j|�S)N)r�rLr�)r	r$r'rrrrr��s

zLibrary.new_snippetcCsV|j�s|j|jkrdS|j|j}|j|j=|rR|j|�|jrR|jj|j�dS)N)r!r&rBrQrr�re)r	rFZreverttorrr�revert_snippet�s

zLibrary.revert_snippetcCsD|j�s|j�rdS|j�}|j|j�|j|j}|j|�dS)N)r!rCrrOrr�r$)r	rFrPr>rrr�remove_snippet�szLibrary.remove_snippetcCsJt|j|jjd��j}||jkrBt|d�}|jd�||j|<|SdSdS)Nr)rr$rrrrBrr)r	rrJrrFrrrr�s



zLibrary.overridedcCs*tjd|j�|j|jkr&d|j|j<dS)Nz
Add override:)rrbr&rB)r	rFrrrr�szLibrary.add_overridecCs�|j�|jstjd�dStjdt|j�d|j�|j|jkrzt|t	�rf|j|jj
d|�q�|j|jj|�n|g|j|j<dS)Nz!Library in wrong format, ignoringFzAdding library (z): rT)r�rsrrbrcr$rqr�rr �insertre)r	rrrrr�s


zLibrary.add_librarycCs�|js
dS|jr*tjj|j�r*tj|j�y|j|jj|�Wntk
rTYnX|j	|j}x(t
|j�D]}|j�|krn|j|�qnWdS)N)
rsrqr��isfile�unlinkr�r$rO�KeyErrorr�r:r]r)r	rr>rFrrrr�*szLibrary.remove_librarycCst|�}|j|�S)N)r r�)r	rqrrrr�add_user_library<szLibrary.add_user_librarycCst|�}|j|�S)N)rpr�)r	rqrrrr�add_system_library@szLibrary.add_system_librarycCsntjd|�tjj|�s|Stj|�}|j|�x6|D].}tjjtjj||��}tjj	|�r8||�q8W|S)NzFinding in: )
rrbr�rqr��listdirre�realpathr;r�)r	rq�searchedZaddcb�filesr�rrr�find_librariesDs


zLibrary.find_librariescCs|r|j�S|S)N)r|)r	r$rrrr�VszLibrary.normalize_languagecCsRxD|j|jD]4}|j|jkr,|jj|j�|j|jkr|j|j=qW|j|=dS)N)r�r]rr�rOr&rB)r	r$rFrrr�remove_container\szLibrary.remove_containercCs$|j|�}|j|�}|j|�|jS)N)r�r>r�r_)r	r$r>rrr�get_accel_groupfs


zLibrary.get_accel_groupcCsB|j|�}||jkr>x(|j|D]}t|t�r8|j�q Pq WdS)N)r�r�rr r�)r	r$rrrrr�ms



zLibrary.savecCs(|j|�}tjd|�|j|�j�dS)NzRef:)r�rrbr>r#)r	r$rrrr#ws
zLibrary.refcCsd|j|�}tjd|�||jkr`|j|j�r`||jkr`x|j|D]}|j�qFW|j|�dS)NzUnref:)r�rrbr�ror�r�r�)r	r$rrrrro}s


z
Library.unrefcCsX|j�|j|�}x@d|fD]4}||jkr|j|�x|j|D]}|j�q@WqWdS)N)�ensure_filesr�r�r>r�)r	r$Zlangrrrrr��s


zLibrary.ensurecCsJ|jr
dSg}|j|j||j�}x|jD]}|j|||j�}q(Wd|_dS)NT)rrr�r�r�r�r�)r	r��drrrr��s
zLibrary.ensure_filescCs0|tj�M}|o.tj|�p.|ttjtjd�kS)Nr)rZ accelerator_get_default_mod_maskrZkeyval_to_unicode�rangeZKEY_F1ZKEY_F12)r	r.r/rrrr3�szLibrary.valid_acceleratorcCs|sdStj|�S)NT)rZis_tab_trigger)r	Ztriggerrrrr2�szLibrary.valid_tab_triggercCsp|j�g}|j|�}||jkr$gS|j|�|j|j||�}t|�dkrl|rld|jkrl|jdj||�}|S)Nr)r�r�r�r�rn�len)r	r0r6r$r[rrr�
_from_prop�s


zLibrary._from_propcCs:|j�|j|�}||jkr gS|j|�t|j|j�S)N)r�r�r�r�r:r�r])r	r$rrr�get_snippets�s


zLibrary.get_snippetscCs|jd||�S)Nr)r�)r	rr$rrr�from_accelerator�szLibrary.from_acceleratorcCs|jd||�S)Nr)r�)r	rr$rrr�from_tag�szLibrary.from_tagcCs|jd||�S)Nzdrop-targets)r�)r	Zdrop_targetr$rrr�from_drop_target�szLibrary.from_drop_target)N)N)N)N)N)N)$rrrr�r�r�r�rdr�r>rLr�r�r�r�r�r�r�r�r�r�r�r�r�r�r#ror�r�r3r2r�r�r�r�r�rrrrr1�sB







r1)r�r"rur4Z
gi.repositoryrrZxml.etree.ElementTreeZetreeZElementTreer+rrrrrSrRr\rpr �objectr�r1rrrr�<module>s Iuf