
    f                        d dl mZ d dlmZ d dlmZmZ d dlmZ erddl	m
Z
 ddlmZ g dZ G d	 d
ee      Z G d d      Z G d d      Zy)    )annotations)Enum)TYPE_CHECKINGCallable)ClipboardData   )
TextObject)KeyPressEvent)	InputModeCharacterFindViStatec                  ,    e Zd ZU ded<   dZdZdZdZdZy)	r   strvaluez	vi-insertzvi-insert-multiplezvi-navigationz
vi-replacezvi-replace-singleN)	__name__
__module____qualname____annotations__INSERTINSERT_MULTIPLE
NAVIGATIONREPLACEREPLACE_SINGLE     ^/var/www/cvtools/html/venv/lib/python3.12/site-packages/prompt_toolkit/key_binding/vi_state.pyr   r      s     JF*O JG(Nr   r   c                      e Zd ZdddZy)r   c                     || _         || _        y )N)	character	backwards)selfr   r    s      r   __init__zCharacterFind.__init__   s    ""r   N)F)r   r   r    boolreturnNone)r   r   r   r"   r   r   r   r   r      s    #r   r   c                  X    e Zd ZdZddZedd       Zej                  d	d       ZddZy)
r   z?
    Mutable class to hold the state of the Vi navigation.
    c                    d | _         d | _        d | _        i | _        t        j
                  | _        d| _        d | _        d| _	        d | _
        d| _        d| _        y )NF )last_character_findoperator_funcoperator_argnamed_registersr   r   _ViState__input_modewaiting_for_digraphdigraph_symbol1tilde_operatorrecording_registercurrent_recordingtemporary_navigation_moder!   s    r   r"   zViState.__init__(   sr     :> 
 TX(, :< &,, $) +/ $ /3&( */&r   c                    | j                   S )zGet `InputMode`.)r-   r4   s    r   
input_modezViState.input_modeO   s        r   c                b    |t         j                  k(  rd| _        d| _        d| _        || _        y)zSet `InputMode`.FN)r   r   r.   r*   r+   r-   )r!   r   s     r   r6   zViState.input_modeT   s2     I(((',D$!%D $D!r   c                t    t         j                  | _        d| _        d| _        d| _        d| _        d| _        y)zL
        Reset state, go back to the given mode. INSERT by default.
        FNr(   )r   r   r6   r.   r*   r+   r1   r2   r4   s    r   resetzViState.reset^   s;    
 $**#( !  #'!#r   N)r$   r%   )r$   r   )r   r   r$   r%   )	r   r   r   __doc__r"   propertyr6   setterr9   r   r   r   r   r   #   s@    %/N ! ! " "$r   r   N)
__future__r   enumr   typingr   r   prompt_toolkit.clipboardr   key_bindings.vir	   key_processorr
   __all__r   r   r   r   r   r   r   <module>rD      sE    "  * 2+,)T )# #H$ H$r   