Mini Shell

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

3

6nZ��@s�ddlZddlZddlmZmZmZmZmZmZddl	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZdd
lmZy&ddlZejd�ejd�ejZWndd
�ZYnXGdd�de�ZGdd�dejeje�ZdS)�N)�Gtk�Gdk�Gio�GLib�Gedit�GObject�)�Library)�Snippet)�PlaceholderEnd)�
completion)�Signals)�
SharedData)�helperZgeditcCs|S)N�)�srr�-/usr/lib64/gedit/plugins/snippets/document.py�<lambda>%src@seZdZdd�ZdS)�DynamicSnippetcCs||d<d|_dS)N�textT)�valid)�selfrrrr�__init__(szDynamicSnippet.__init__N)�__name__�
__module__�__qualname__rrrrrr'src@seZdZejejfZejfZe	j
ejd�Z
dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Z d(d)�Z!d*d+�Z"d,d-�Z#d.d/�Z$d0d1�Z%d2d3�Z&d4d5�Z'd6d7�Z(d8d9�Z)d:d;�Z*d<d=�Z+d>d?�Z,d@dA�Z-dBdC�Z.dDdDifdEdF�Z/dxdGdH�Z0dIdJ�Z1dKdL�Z2dMdN�Z3dydPdQ�Z4dRdS�Z5dTdU�Z6dVdW�Z7dXdY�Z8dZd[�Z9d\d]�Z:gfd^d_�Z;d`da�Z<dbdc�Z=ddde�Z>dfdg�Z?dhdi�Z@djdk�ZAdldm�ZBdndo�ZCdpdq�ZDdrds�ZEdtdu�ZFdvdw�ZGdDS)z�Document)�typecCsbtjj|�tj|�g|_g|_d|_g|_g|_g|_	d|_
d|_tj
td�|j
|j�|_dS)Nr�Snippets)r�Objectrr
�placeholders�active_snippets�active_placeholder�ordered_placeholders�update_placeholders�jump_placeholders�language_id�timeout_update_idr�Provider�_�on_proposal_activated�provider)rrrrr2s
zDocument.__init__cCs�t�jd�|jj�}|j|jd|j�|j|d|j�|j|jd|j�|j|jd|j	�|j
�|jj�}|j|j
�t�j|j|�dS)Nzkey-press-eventznotify::languagezdrag-data-receivedZdraw)r	�ref�view�
get_buffer�connect_signal�on_view_key_press�on_notify_language�on_drag_data_received�connect_signal_after�on_draw�update_language�get_completionZadd_providerr+rZregister_controller)r�bufrrrr�do_activateBs

zDocument.do_activatecCs�|jdkr4tj|j�d|_|jdd�=|jdd�=t�jd�d|_|j|j	�|j|j	j
��xt|j�D]}|j
|d�qnW|j	j�}|r�|j|j�|jdkr�t�j|j�t�j|j	|�dS)NrT)r'rZ
source_remover$r%r	�unrefr"Zdisconnect_signalsr-r.�listr!�deactivate_snippetr6Zremove_providerr+r&rZunregister_controller)r�snippetrrrr�
do_deactivateUs"


zDocument.do_deactivatecCs�|jj�j�}|dkr$|jdkr$dS|r:|j�|jkr:dS|j}|rP|j�|_nd|_|dkrjt�j|�t�j|j�|j|j_t	�j
|jj��dS)Nr)r-r.Zget_languager&Zget_idr	r9r,r+rZupdate_state�get_toplevel)rZlangZlangidrrrr5ts
zDocument.update_languagecCs�|js|jj�rdStj||�}t�j||j�}t|�dkrDdSt|�dkr`|j|d�n>t	j
td�|j|j�}|j
|�|jj�}|j|g|jd��dS)NFrrrT)r-�get_editablerZaccelerator_namer	Zfrom_acceleratorr&�len�
apply_snippetrr(r)r*�
set_proposalsr6�show�create_context)r�keyval�modZaccelerator�snippetsr+�cmrrr�accelerator_activate�s

zDocument.accelerator_activatecCs>|jj�}|j|d|j�|j|d|j�|j|d|j�dS)N�changedzcursor-movedzinsert-text)r-r.r/�on_buffer_changed�on_buffer_cursor_movedr3�on_buffer_insert_text)rr7rrr�first_snippet_inserted�s
zDocument.first_snippet_insertedcCs2|jj�}|j|d�|j|d�|j|d�dS)NrJzcursor-movedzinsert-text)r-r.Zdisconnect_signal)rr7rrr�last_snippet_removed�s
zDocument.last_snippet_removedcCs�|jj�}|j|j��}g}xD|jD]:}|j�}|j�}|j|�dkr$|j|�dkr$|j|�q$W|j	|krr|j	St
|�dkr�|dSdSdS)Nr)r-r.�get_iter_at_mark�
get_insertr �
begin_iter�end_iter�compare�appendr"r@)rr7�piter�found�placeholder�begin�endrrr�current_placeholder�s

zDocument.current_placeholdercs�|jj�}|j|j��}d}}}t|j��t|j�}|jr�|jj�}|jj	�}	|j
|�dkr�|j
|	�dkr�|j}|j|j�}
|dkr�dd�}�fdd�}ndd�}dd�}xhtd��D]Z}
||
}|j�}|j	�}	||||	|�r�|}|j
|�dkr�|j
|	�dkr�|dkr�|
}
|}q�W|�r�||k�r�|j�j
|j��dk�sX|j	�j
|j��dk�r�|j�r�|j�j
|jj��dk�r�|j}|j|�}
|�r�||
��r�||
|}n |�r�|}n�dk�r�|jd}||fS)NrrcSs&|j|�dko$|p$|j|j��dkS)Nr)rTrR)�w�x�y�zrrrr�sz.Document.advance_placeholder.<locals>.<lambda>cs|�dkS)Nrr)r])�lengthrrr�scSs&|j|�dko$|p$|j|j��dkS)Nr)rTrR)r\r]r^r_rrrr�scSs|dkS)Nrr)r]rrrr�s)
r-r.rPrQr@r r:r"rRrSrT�index�range)r�	directionr7rVrW�current�nextr rYrZZcurrentIndexZnearestZindexerrarXr)r`r�advance_placeholder�sT








zDocument.advance_placeholdercCs
|jd�S)Nr)rf)rrrr�next_placeholderszDocument.next_placeholdercCs
|jd�S)Nr���)rf)rrrr�previous_placeholderszDocument.previous_placeholdercCs|jj�}|jj|j��dS)N)r-r.�scroll_mark_onscreenrQ)rr7rrr�cursor_on_screen	s
zDocument.cursor_on_screencCs
||_dS)N)r")rrXrrr�set_active_placeholder
szDocument.set_active_placeholdercCs�d}|r,|jj�j�|j�|jtkr,|}|j|�|r�|j�|jtkrR|}nRt|j	�dkr�|j
�|jkr�tj
|j�}|j|j	�|jj�}|j|g|jd��|r�x,t|j�D]}|jd|kr�|j|�Pq�W|j�|dkS)Nrr)r-r6Zhide�leave�	__class__rrlZenterr@Zdefaults�get_text�defaultrZDefaults�on_default_activatedZset_defaultsrCrDr:r!r r;rk)rrdre�lastr+rHr<rrr�goto_placeholders.




zDocument.goto_placeholdercCs|j�\}}|j||�S)N)rgrs)rrdrerrr�skip_to_next_placeholder4sz!Document.skip_to_next_placeholdercCs|j�\}}|j||�S)N)rirs)rrd�prevrrr�skip_to_previous_placeholder8sz%Document.skip_to_previous_placeholdercCsZ|j�j�}|s|j�dkr"|Sytj|d|j�d�}|dStjk
rTYnX|S)NzUTF-8rrrh)Zget_fileZget_encodingZget_charsetrZconvertZGError)rr7r�encZcvrrr�string_in_native_doc_encoding<sz&Document.string_in_native_doc_encodingcCs<|j�}|r4|j|d|dd�}||j||�d�SdSdS)NrrF)�utf8�noenc�)�get_selection_boundsrorx)rr7�bounds�u8rrr�env_get_selected_textJs
zDocument.env_get_selected_textcCs.tj|�\}}|j||d�}||j||�d�S)NF)ryrz)r�buffer_word_boundaryrorx)rr7�startrZr~rrr�env_get_current_wordTszDocument.env_get_current_wordcCs.tj|�\}}|j||d�}||j||�d�S)NF)ryrz)r�buffer_line_boundaryrorx)rr7r�rZr~rrr�env_get_current_line[szDocument.env_get_current_linecCstj|�\}}t|j�d�S)Nr)rr��str�get_line)rr7r�rZrrr�env_get_current_line_numberbsz$Document.env_get_current_line_numbercCs6|sddd�S|j�}|jd�r(d|}||j�d�S)Nr{)ryrz�filezfile://)�get_parse_name�has_uri_schemeZget_uri)r�locationr~rrr�location_uri_for_envgs

zDocument.location_uri_for_envc
CsF|r>y|jddd�}|j�}Wnd}YnX||j�d�SdSdS)Nzstandard::display-namerr{)ryrz)Z
query_infoZget_display_nameZget_basename)rr��infoZdisplay_namerrr�location_name_for_envrs
zDocument.location_name_for_envcCs|r|j�SdSdS)Nr{)Zget_uri_scheme)rr�rrr�location_scheme_for_envsz Document.location_scheme_for_envcCs(|r |jd�r |j�|j�d�SdSdS)Nr�)ryrzr{)r�r��get_path)rr�rrr�location_path_for_env�szDocument.location_path_for_envcCs0|r,|j�}|r,|jd�r,|j�|j�d�SdS)Nr�)ryrzr{)Z
get_parentr�r�r�)rr��parentrrr�location_dir_for_env�szDocument.location_dir_for_envcCs�|j|j|j|j|jd�}xl|D]d}|||�}|d|}t|t�rh|d|d|<|d|d|<q ||d|<t|�|d|<q W|S)N)ZURI�NAMEZSCHEME�PATHZDIRr)ryrz)r�r�r�r�r��
isinstance�dictr�)r�environr��prefix�parts�k�v�keyrrr�env_add_for_location�s


zDocument.env_add_for_locationcCs|j�}|r|SdSdS)Nr{)Z
get_mime_type)rr7�typrrr�env_get_document_type�szDocument.env_get_document_typecCs�|jj�}ggd�}t|tj�r�xn|j�D]b}|j|j��}t|t�rl|dj	|d�|dj	|d�q*|dj	|�|dj	t
|��q*Wdj|d�dj|d�d�S)N)ryrzryrz� )r-r>r�r�Window�
get_documentsr��get_locationr�rUr��join)rr7�toplevelZ
documents_uri�doc�rrrr�env_get_documents_uri�s


zDocument.env_get_documents_uricCs�|jj�}ggd�}t|tj�r�xn|j�D]b}|j|j��}t|t�rl|dj	|d�|dj	|d�q*|dj	|�|dj	t
|��q*Wdj|d�dj|d�d�S)N)ryrzryrzr�)r-r>r�rr�r�r�r�r�rUr�r�)rr7r�Zdocuments_pathr�r�rrr�env_get_documents_path�s


zDocument.env_get_documents_pathcCs�|jj�}iid�}x<tjD]2}tj|}||d|<tj|jd�|d|<qW|j|j|j|j|j	|j
|jd�}x`|D]X}|||�}t|t
�r�|d|d|<|d|d|<qz||d|<t|�|d|<qzW|j||j�d�|S)N)ryrzrzzutf-8ry)ZGEDIT_SELECTED_TEXTZGEDIT_CURRENT_WORDZGEDIT_CURRENT_LINEZGEDIT_CURRENT_LINE_NUMBERZGEDIT_CURRENT_DOCUMENT_TYPEZGEDIT_DOCUMENTS_URIZGEDIT_DOCUMENTS_PATHZGEDIT_CURRENT_DOCUMENT)r-r.�osr��encoderr�r�r�r�r�r�r�r�r�r�r�)rr7r�r�r��	variables�varrrr�get_environment�s,





zDocument.get_environmentcCs6tjd|d�}x |D]}t|�ddkrdSqWdS)Nz(\\*)\$GEDIT_CURRENT_WORDr�rTF)�re�findallr@)rr<�matches�matchrrr�uses_current_word�s

zDocument.uses_current_wordcCs6tjd|d�}x |D]}t|�ddkrdSqWdS)Nz(\\*)\$GEDIT_CURRENT_LINErr�rTF)r�r�r@)rr<r�r�rrr�uses_current_lines

zDocument.uses_current_lineNcCsj|js
dS|j�}|rbx$|dD]}|d||d|<q Wx$|dD]}|d||d|<qFW|jj�}t||�}|s�|j|j��}|s�|j|j��}|j|�r�|j	|�r�t
j|�\}}n"|j|�r�|j|�r�t
j
|�\}}|j�\}	}
|	o�|	jtk�r|j|	d�t|j�dk�r$|j|d�|j�|j||�t|j�dk�r\|j�|j|d�|j||�}|jj|�dd�|jj�D�}t|�dk�r�d|jk�r�|j|j|jd�n|j|j��n|j|j|j|d�|j|d�||jk�rT|j|j��}
|j �}|jj!|
�}|jj!|�}|j"|j#|j"|jj$�j#k�rT|jj%|j&�|j'�|jj(�dS)	NFryrzrzcursor-movedcSsg|]}|dkr|�qS)rr)�.0r]rrr�
<listcomp>Bsz*Document.apply_snippet.<locals>.<listcomp>T))rr�r-r.r
rPrQZget_selection_bound�equalr�rr�r�r�rgrnrrsr@r!Zblock_signal�begin_user_action�deleterNZinsert_intorUr �keysr"Zplace_cursorrRZunblock_signalrS�get_iter_locationr^�height�get_visible_rectrj�end_mark�end_user_action�
grab_focus)rr<r�rZr��envr�r7rrdreZsnr�ZcurrrZcurlocZlastlocrrrrA
s`


zDocument.apply_snippetcCs�|s|j|j��}|j�}d}d}x^|j�r�|j�}tj|�sz|rNtj|�rNPx(|j|�rvtj	|j��rv|j
�qPWPd}q$W|j|�s�|j||d�}|r�|dkr�|||fSdS)NTFr{)NNN)rPrQ�copyZ
backward_charZget_charrZis_tab_trigger_characterZis_tab_triggerr�Zis_first_tab_trigger_characterZforward_charro)rr7rZr��word�first�crrr�get_tab_tag`s(



zDocument.get_tab_tagcCs$|jj�sdS|jt|�||�dS)N)r-r?rAr)r�data�iterrrr�parse_and_run_snippet�s
zDocument.parse_and_run_snippetcCs�|js
dS|jj�sdS|jj�}|j�r.dSt�j||j�}|r�t|�dkrh|j|d|d|d�St	j
td�|j|j�}|j
|�|jj�}|j|g|jd��dSdS)NFrrrT)r-r?r.Zget_has_selectionr	Zfrom_tagr&r@rArr(r)r*rBr6rCrD)rZtriggerr}r7rGr+rHrrr�run_snippet_trigger�s"



zDocument.run_snippet_triggercCs^|js
dS|jj�sdS|jj�}|j|�\}}}|s>|j�S|j|||f�sV|j�SdSdS)NFT)r-r?r.r�rtr�)rr7r�r�rZrrr�run_snippet�s

zDocument.run_snippetFcCsDg}g}x�|jD]�}|dkr(|jd}n|j|g}xl|D]d}||jkr�||jkrh|j�|jj|�n||jkr~|dj�|j|�q:||jkr:|j|�q:WqWx>|D]6}||jkr�d|_|jj|�|jj|�|j|�q�Wx"|D]}|jj|�|j|�q�W|j	�|j
j|�t|j
�dk�r6|j�|j
j�dS)Nrrrhrh)r r$�update_contents�remover%rmrUr#r"�
deactivater!r@rOr-Z
queue_draw)rr<Zforcer�Zordered_remove�tabstopr rXrrrr;�s<







zDocument.deactivate_snippetcCs^d|_x|jD]}|j�qWx"|jD]}|j|d|d�q&W|jdd�=|jdd�=dS)NrrF)r'r$r�r%rs)rrXrrr�update_snippet_contents�sz Document.update_snippet_contentscCs�|j|j��}xht|j�D]Z}|jj�s2|jj�r>|j|�q|j�}|j	�}|j
|�dksj|j
|�dkr|j|�qW|j�}||j
kr�|jj|j
|f�|jdkr�tjd|j�|_dS)Nr)rPrQr:r!Z
begin_markZget_deletedr�r�rRrSrTr;r[r"r%rUr'r�timeout_addr�)rr7rVr<rYrZrdrrrrL�s

zDocument.on_buffer_cursor_movedcCs|x:t|j�D],}|j�}|j�}|j|�dkr|j|�qW|j�}|rx||jkr^|jj|�|j	dkrxt
jd|j�|_	dS)Nr)
r:r!rRrSrTr;r[r$rUr'rr�r�)rr7r<rYrZrdrrrrKs

zDocument.on_buffer_changedc
CsZtj|�}|r|jrdS|s&|j}||jkr4dS|j�}|j�}|jj|�}�x|jD]�}	|	|krhqZ|	j�}
|	j�}|
j|�dkr�|s�|j|�dkr�|jj|	�}||kr�|
r�|j|	j	|�n||kr�|r�|j|	j
|�qZ|
j|�dk�r$|
j|�dk�r$|�r$|j|�dk�r$|j|	j	|�qZ|rZ|j|�dkrZ|
j|�dkrZ|j|	j
|�qZWdS)Nr)rZget_buffer_contextr"r#rRrSrarTZ	move_markrYrZ)
rr7rVrr`�ctxrYrZ�idxrX�obZoeZoidxrrrrMs2

"6 zDocument.on_buffer_insert_textcCs|j�dS)N)r5)rr7�specrrrr1EszDocument.on_notify_languagecCs�t�}|j�}|jj�sdS|tjj@rb|tjj@rb|j|j	krb|tjj
@sX|j�S|j�Sn@|j
r�|j|j|�r�|j�|j|j�|j|j|tj�@�dS)NF)r	Z	get_stater-r?rZModifierTypeZCONTROL_MASKZ	MOD1_MASKrE�TAB_KEY_VALZ
SHIFT_MASKr�rvZloadedZvalid_acceleratorZensure_filesZensurer&rIrZ accelerator_get_default_mod_mask)rr-Zevent�library�staterrrr0Hs"

zDocument.on_view_key_presscCsBtjj|�\}}|r$|r$|g|S|r:|j||g|�S|SdS)N)r��path�split�
path_split)rr�Z
components�head�tailrrrr�`s

zDocument.path_splitcCs�tj|�}d|jd�id|id�}|j||d�|jj�}|j�}|j|�}|jd�|dd<||dd<|jd�}	|	s�|j	�}	|j
|	�}
|j||
|
|�dS)	NZGEDIT_DROP_DOCUMENT_TYPEzutf-8)ryrzZGEDIT_DROP_DOCUMENTryZ!GEDIT_DROP_DOCUMENT_RELATIVE_PATHrzZgtk_drag_target)rZfile_new_for_urir�r�r-r.r�Zget_relative_pathZget_markrQrPrA)rr<�mime�uriZgfiler�r7r��relpathZmarkrVrrr�apply_uri_snippetjs




zDocument.apply_uri_snippetcCs`|jj�}|jjtjj|j|j�\|_|_||jkp\||j|jkp\||jkp\||j|j	kS)N)
r-r��buffer_to_window_coordsr�TextWindowTypeZWIDGETr]r^�widthr�)rr]r^�rectrrr�	in_bounds�s
 zDocument.in_boundsc
Cs�|jj�sdStj|�}|s dS|j||�s0dS|j�d}	x\|D]T}
ytj|
�}Wnd}YnX|slqBt�j	||j
�}|rBd}	|j|d||
�qBW|	r�|jdd|�|j
d�|j�j�|j�dS)NFTrzdrag-data-received)r-r?rZ
drop_get_urisr��reverserZcontent_type_guessr	Zfrom_drop_targetr&r�ZfinishZ
stop_emissionr>Zpresentr�)
rr-�contextr]r^r�r�Z	timestampZuris�stopr�r�rGrrrr2�s2




zDocument.on_drag_data_receivedcCstjfd�}|jj||�S)Nr)rZtarget_list_add_uri_targetsr-Zdrag_dest_find_target)rr�Zlstrrr�find_uri_target�szDocument.find_uri_targetcCs`|jj�sdS|jj�}|j�}|r8|j|j�dd�n$|j||�\}}}|j|j�||�dS)NFT)r-r?r.r|rAr<r�)r�proposalrVr7r}r�r�rZrrrr*�s

zDocument.on_proposal_activatedcCsZ|jj�}|j�}|rR|j�|j|d|d�|j|d|jj�|j�dSdSdS)NrrTF)	r-r.r|r�r��insertZpropsZlabelr�)rr�rVr7r}rrrrq�s
zDocument.on_default_activatedcCs0|jj|�}|jjtjj|j|j�\|_|_|S)N)r-r�r�rr��TEXTr]r^)rrVr�rrr�iter_coords�s zDocument.iter_coordscCsX|j�}|j�}|s|r dS|j|�}|j|�}|j|j|jkoV|j|j|jkS)NF)rRrSr�r^r�)rrXZarear�rZ�
start_rect�end_rectrrr�placeholder_in_area�s

zDocument.placeholder_in_areacCsz|j�}|j|�}|j�}|j�}|j|�}|j�}|j�}	|	jd�|jjtj	j
�j�}
|jdd��x|	j�|k�rt|jj
|	�\}}|jjtj	j
d|�\}
}|	j�|kr�|	j�|kr�|j|j|j|j|j|jd�|j�n�|	j�|ks�|	j�|k�rh|	j�|k�r|}n|}|jd|j|jd�|j|jd�|jd|jd�|j|
dd�|j�|	j�sjPqjWdS)Nrg�?rr�)rRr�r�rSr�Zset_line_offsetr-�
get_windowrr�r�Zget_geometry�	translateZget_line_yrangeZwindow_to_buffer_coordsZ	rectangler]r^r��stroke�move_to�rel_line_toZforward_line)rr�rXr�r�Z
start_linerZr�Zend_line�lineZgeomZyposr�Zx_r�rrr�draw_placeholder_rect�s6


"
zDocument.draw_placeholder_rectcCs�|j�}|j|�}|jdd�d}|j|j||j�|j|dd�|j|j|j�|jd|jd�|j|d�|j|dd�|j	�dS)Ng�?g@r�rr)
rRr�r�r�r]r^r�r�Zrel_move_tor�)rr�rXr�r�Zextend_widthrrr�draw_placeholder_bar	s
zDocument.draw_placeholder_barcCs�t|t�rdS|jj�jtjj�}d|_t	j
||�|jdkrL|jgd�n|jdgd�|j
�}|j�}|j|�r�|j||�n|j||�dS)Ng�?rr�)r�rr-Zget_style_contextZ	get_colorrZ
StateFlagsZINSENSITIVEZalpharZcairo_set_source_rgbar�Zset_dashrRrSr�r�r�)rr�rX�colr�rZrrr�draw_placeholders


zDocument.draw_placeholdercCs�|jtjj�}tj||�sdS|jd�tj|||�tj|�\}}|sLdSx8|j	D].}|j
||�sfqT|j�|j||�|j
�qTWdS)NFg�?)r�rr�r�Zcairo_should_draw_windowZset_line_widthZcairo_transform_to_windowrZcairo_get_clip_rectangler#r�Zsaver�Zrestore)rr-r�ZwindowZclippedZcliprXrrrr4/s
zDocument.on_draw)N)F)HrrrrZKEY_TabZKEY_ISO_Left_Tabr�Z	KEY_spaceZ
SPACE_KEY_VALrZPropertyrZViewr-rr8r=r5rIrNrOr[rfrgrirkrlrsrtrvrxrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rAr�r�r�r�r;r�rLrKrMr1r0r�r�r�r2r�r*rqr�r�r�r�r�r4rrrrr,szA$


 		V
"
,'
#&r)r�r�Z
gi.repositoryrrrrrrr�r	r<r
rXrr{rZsignalsr
Z
shareddatarr�gettext�bindtextdomain�
textdomainr)r�rrZViewActivatablerrrrr�<module>s$