o
    i	                     @  s   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
 d
eeZG dd dZG dd dZdS )    )annotations)Enum)TYPE_CHECKINGCallable)ClipboardData   )
TextObject)KeyPressEvent)	InputModeCharacterFindViStatec                   @  s*   e Zd ZU ded< dZdZdZdZdZdS )	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 r   r   `/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/vi_state.pyr
      s   
 r
   c                   @  s   e Zd Zdddd	Zd
S )r   F	characterr   	backwardsboolreturnNonec                 C  s   || _ || _d S )N)r   r   )selfr   r   r   r   r   __init__   s   
zCharacterFind.__init__N)F)r   r   r   r   r   r   )r   r   r   r    r   r   r   r   r      s    r   c                   @  sB   e Zd ZdZdddZedddZejdd
dZdddZdS )r   z?
    Mutable class to hold the state of the Vi navigation.
    r   r   c                 C  sH   d | _ d | _d | _i | _tj| _d| _d | _d| _	d | _
d| _d| _d S )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   r   r   r   r    (   s   
zViState.__init__r
   c                 C  s   | j S )zGet `InputMode`.)r&   r-   r   r   r   
input_modeO   s   zViState.input_moder   c                 C  s&   |t jkrd| _d| _d| _|| _dS )zSet `InputMode`.FN)r
   r   r'   r#   r$   r&   )r   r   r   r   r   r.   T   s
   

c                 C  s*   t j| _d| _d| _d| _d| _d| _dS )zL
        Reset state, go back to the given mode. INSERT by default.
        FNr!   )r
   r   r.   r'   r#   r$   r*   r+   r-   r   r   r   reset^   s   
zViState.resetN)r   r   )r   r
   )r   r
   r   r   )	r   r   r   __doc__r    propertyr.   setterr/   r   r   r   r   r   #   s    
'	r   N)
__future__r   enumr   typingr   r   prompt_toolkit.clipboardr   bindings.vir   key_processorr	   __all__r   r
   r   r   r   r   r   r   <module>   s    
