
    ^h	                        S SK Jr  S SKJr  S SKJrJr  S SKJr  \(       a  SSK	J
r
  SSKJr  / SQr " S	 S
\\5      r " S S5      r " S S5      rg)    )annotations)Enum)TYPE_CHECKINGCallable)ClipboardData   )
TextObject)KeyPressEvent)	InputModeCharacterFindViStatec                  4    \ rS rSr% S\S'   SrSrSrSrSr	S	r
g
)r      strvaluez	vi-insertzvi-insert-multiplezvi-navigationz
vi-replacezvi-replace-single N)__name__
__module____qualname____firstlineno____annotations__INSERTINSERT_MULTIPLE
NAVIGATIONREPLACEREPLACE_SINGLE__static_attributes__r       ]/home/james-whalen/.local/lib/python3.13/site-packages/prompt_toolkit/key_binding/vi_state.pyr   r      s     JF*O JG(Nr   r   c                  "    \ rS rSrSSS jjrSrg)r      c                    Xl         X l        g )N)	character	backwards)selfr#   r$   s      r   __init__CharacterFind.__init__   s    ""r   )r$   r#   N)F)r#   r   r$   boolreturnNone)r   r   r   r   r&   r   r   r   r   r   r      s    # #r   r   c                  h    \ rS rSrSrS	S jr\S
S j5       r\R                  SS j5       rS	S jr	Sr
g)r   #   z7
Mutable class to hold the state of the Vi navigation.
c                    S U l         S U l        S U l        0 U l        [        R
                  U l        SU l        S U l        SU l	        S U l
        SU l        SU l        g )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&   ViState.__init__(   sr     :> 
 TX(, :< &,, $) +/ $ /3&( */&r   c                    U R                   $ )zGet `InputMode`.)r3   r:   s    r   
input_modeViState.input_modeO   s        r   c                b    U[         R                  :X  a  SU l        SU l        SU l        Xl        g)zSet `InputMode`.FN)r   r   r4   r0   r1   r3   )r%   r   s     r   r=   r>   T   s0     I(((',D$!%D $D!r   c                t    [         R                  U l        SU l        SU l        SU l        SU l        SU l        g)z<
Reset state, go back to the given mode. INSERT by default.
FNr.   )r   r   r=   r4   r0   r1   r7   r8   r:   s    r   resetViState.reset^   s;    
 $**#( !  #'!#r   )__input_moder8   r5   r=   r/   r2   r1   r0   r7   r9   r6   r4   N)r)   r*   )r)   r   )r   r   r)   r*   )r   r   r   r   __doc__r&   propertyr=   setterrA   r   r   r   r   r   r   #   s@    %/N ! ! " "$r   r   N)
__future__r   enumr   typingr   r   prompt_toolkit.clipboardr   bindings.vir	   key_processorr
   __all__r   r   r   r   r   r   r   <module>rN      sE    "  * 2',)T )# #H$ H$r   