U
    ‰d  ã                   @  s”   d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 erXddlmZ ddlmZ dd	d
g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ÚDictÚOptional)Ú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__ÚINSERTZINSERT_MULTIPLEÚ
NAVIGATIONZREPLACEZREPLACE_SINGLE© r   r   úG/tmp/pip-unpacked-wheel-4x_7prb2/prompt_toolkit/key_binding/vi_state.pyr      s   
c                   @  s    e Zd Zd	ddddœdd„ZdS )
r   Fr   ÚboolÚNone)Ú	characterÚ	backwardsÚreturnc                 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      s   c                   @  sT   e Zd ZdZddœdd„Zeddœdd„ƒZejddd	œd
d„ƒZd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Ú )Zlast_character_findÚoperator_funcÚoperator_argZnamed_registersr   r   Ú_ViState__input_modeÚwaiting_for_digraphZdigraph_symbol1Ztilde_operatorÚrecording_registerÚcurrent_recordingZ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_mode)r   r   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   Ú__doc__r   Úpropertyr(   Úsetterr)   r   r   r   r   r   #   s   '	N)Ú
__future__r   Úenumr   Útypingr   r   r   r   Zprompt_toolkit.clipboardr   Zkey_bindings.vir
   Zkey_processorr   Ú__all__r   r   r   r   r   r   r   r   Ú<module>   s   ý
