
    G@d                     *   d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z
 ddlmZmZ ddlmZ ddlmZ  ej        ed	          Z ee          Ze                    ed	           d
 eD             Z ej        e          Z G d de          ZdS )z'Custom text snippets completion plugin.    N)on_conf_change)_running_under_pytestSNIPPETS)SpyderCompletionProviderSUPPORTED_LANGUAGES)SnippetsActor)SnippetsConfigTabPythonc                 6    h | ]}|                                 S  )lower).0xs     Ulib/python3.11/site-packages/spyder/plugins/completion/providers/snippets/provider.py	<setcomp>r      s     DDD!''))DDD    c                   z    e Zd ZdZdZd eD             ZdZegZ	d Z
d Zd Zd Zd	 Zd
 ZddZed             ZdS )SnippetsProvidersnippets   c                 ,    g | ]}|t           |         fS r   r   )r   langs     r   
<listcomp>zSnippetsProvider.<listcomp>$   s!    AAAdHTN+AAAr   z0.1.0c                     t          j         ||           t                      _         j        j                             j                    j        j                             fd           d _        i  _	        | _
        d S )Nc                 F    j                             j        | |          S N)sig_response_readyemitCOMPLETION_PROVIDER_NAME)_idrespselfs     r   <lambda>z+SnippetsProvider.__init__.<locals>.<lambda>.   s$    d5::-sD: : r   F)r   __init__r
   snippets_actorsig_snippets_readyconnectsignal_provider_readysig_snippets_responsestartedrequestsconfig)r$   parentr.   s   `  r   r&   zSnippetsProvider.__init__(   s     )$???+D11.66&	( 	( 	(199: : : :	; 	; 	; r   c                      t          d          S )NzText snippets)r   r$   s    r   get_namezSnippetsProvider.get_name4   s    !!!r   c                     | j         S r   )r,   )r$   languages     r   &start_completion_services_for_languagez7SnippetsProvider.start_completion_services_for_language7   s
    |r   c                 X    | j         s"| j                                         d| _         d S d S )NT)r,   r'   startr1   s    r   r7   zSnippetsProvider.start:   s6    | 	 %%'''DLLL	  	 r   c                 x    |                      | j                   | j                            | j                   d S r   )update_snippetsr.   sig_provider_readyr    r!   r1   s    r   r*   z&SnippetsProvider.signal_provider_ready?   s8    T[)))$$T%BCCCCCr   c                 X    | j         r"| j                                         d| _         d S d S )NF)r,   r'   stopr1   s    r   shutdownzSnippetsProvider.shutdownC   s6    < 	!$$&&& DLLL	! 	!r   Nc                 h    ||d         ||d}||d<   | j         j                            |           d S )Nfile)typer?   idmsgr4   )r'   sig_mailboxr    )r$   r4   req_typereqreq_idrequests         r   send_requestzSnippetsProvider.send_requestH   sI    K	
 
 #J',,W55555r   c                     t                      r!t          j                            d          sd S || _        i }t
          D ]}|                    |i           ||<   | j        j                            |           d S )NSPY_TEST_USE_INTROSPECTION)	r   osenvirongetr.   SUPPORTED_LANGUAGES_PYr'   sig_update_snippetsr    )r$   r   snippet_infor4   s       r   r9   z SnippetsProvider.update_snippetsR   s    !! 	:>>">?? . 	@ 	@H%-\\(B%?%?L""/44\BBBBBr   r   )__name__
__module____qualname__r!   DEFAULT_ORDERr   CONF_DEFAULTSCONF_VERSIONr   	CONF_TABSr&   r2   r5   r7   r*   r=   rH   r   r9   r   r   r   r   r   !   s        )MAAAAAML"#I
 
 
" " "       
D D D! ! !
6 6 6 6 	C 	C ^	C 	C 	Cr   r   )__doc__rK   bisectloggingspyder.api.config.decoratorsr   spyder.config.baser   r   spyder.config.snippetsr   spyder.plugins.completion.apir   r	   2spyder.plugins.completion.providers.snippets.actorr
   5spyder.plugins.completion.providers.snippets.conftabsr   bisect_left
PYTHON_POSlistrN   insert	getLoggerrQ   loggerr   r   r   r   <module>rg      sl   . - 
			   8 7 7 7 7 7 6 6 6 6 6 6 6 6 + + + + + +@ @ @ @ @ @ @ @ L L L L L L       V 3X>>
122    j( 3 3 3DD-CDDD 		8	$	$;C ;C ;C ;C ;C/ ;C ;C ;C ;C ;Cr   