
                         z    S SK Jr  S SKJr  S SKJrJr  S SKJr  SSK	J
r
  SSKJrJr  Sr " S	 S
\5      rS rS rg)    )unicode_literals)	text_type)IncrementalSearchDirectionSEARCH_BUFFER)Token   )token_list_len)	ProcessorTransformation)DefaultPromptc                   >    \ rS rSrSrS r\S	S j5       rS rS r	Sr
g)
r      a  
Default prompt. This one shows the 'arg' and reverse search like
Bash/readline normally do.

There are two ways to instantiate a ``DefaultPrompt``. For a prompt
with a static message, do for instance::

    prompt = DefaultPrompt.from_message('prompt> ')

For a dynamic prompt, generated from a token list function::

    def get_tokens(cli):
        return [(Token.A, 'text'), (Token.B, 'text2')]

    prompt = DefaultPrompt(get_tokens)
c                 4    [        U5      (       d   eXl        g N)callable
get_tokens)selfr   s     /lib/third_party/prompt_toolkit/layout/prompt.py__init__DefaultPrompt.__init__!   s    
####$    c                 N   ^ [        T[        5      (       d   eU4S jnU " U5      $ )z5
Create a default prompt with a static message text.
c                 *   > [         R                  T4/$ r   )r   Prompt)climessages    r   get_message_tokens6DefaultPrompt.from_message.<locals>.get_message_tokens,   s    \\7+,,r   )
isinstancer   )clsr   r   s    ` r   from_messageDefaultPrompt.from_message%   s)    
 '9----	-%&&r   c                   ^ UR                   (       a  [        U5      nO4UR                  R                  b  [	        U5      nOU R                  U5      n[        U5      mUS:w  a  [        R                  ST-  4/n[        Xe-   U4S jU4S jS9$ )Nr    c                    > U T-   $ r    ishift_positions    r   <lambda>4DefaultPrompt.apply_transformation.<locals>.<lambda>E   
    A,>r   c                    > U T-
  $ r   r&   r'   s    r   r*   r+   F   r,   r   )tokenssource_to_displaydisplay_to_source)
is_searching_get_isearch_tokensinput_processorarg_get_arg_tokensr   r	   r   r   r   )r   r   documentlinenor/   r.   beforer)   s          @r   apply_transformation"DefaultPrompt.apply_transformation0   s    (-F  $$0$S)F __S)F (/ Q;||S>%9:;F">">@ 	@r   c                     UR                   $ r   )r1   )r   r   s     r   	has_focusDefaultPrompt.has_focusH   s     r   )r   N)z> )__name__
__module____qualname____firstlineno____doc__r   classmethodr!   r9   r<   __static_attributes__r&   r   r   r   r      s+     % ' '@0 r   r   c                 P   ^  U 4S jnU 4S jnS nU" 5       U" 5       -   U" 5       -   $ )Nc                     > TR                   R                  [        R                  :X  a  Sn OSn [        R
                  R                  SU -  4/$ )Nzreverse-i-searchzi-searchz(%s)`)search_state	directionr   BACKWARDr   r   Search)textr   s    r   r8   #_get_isearch_tokens.<locals>.beforeT   sD    %%)C)L)LL%DD$$gn566r   c                     > [         R                  R                  R                  T R                  [
           R                  4/$ r   )r   r   rJ   Textbuffersr   rK   )r   s   r   rK   !_get_isearch_tokens.<locals>.text\   s0    $$))3;;}+E+J+JKLLr   c                  <    [         R                  R                  S4/$ )Nz`: )r   r   rJ   r&   r   r   after"_get_isearch_tokens.<locals>.after_   s    $$e,--r   r&   )r   r8   rK   rR   s   `   r   r2   r2   S   s+    7M. 8dfuw&&r   c                     U R                   R                  n[        R                  R                  S4[        R                  R                  R
                  [        U5      4[        R                  R                  S4/$ )z
Tokens for the arg-prompt.
z(arg: z) )r3   r4   r   r   ArgrN   str)r   r4   s     r   r5   r5   e   sa     


!
!C 
		8$					C)			4  r   N)
__future__r   sixr   prompt_toolkit.enumsr   r   prompt_toolkit.tokenr   utilsr	   
processorsr
   r   __all__r   r2   r5   r&   r   r   <module>r^      s7    '  J & ! 1
@ I @ F'$
r   