o
    ÞË·e3	  ã                   @   sŽ   d Z ddlmZmZmZ ddlmZmZmZm	Z	 ddl
mZmZmZmZmZmZmZmZ g d¢Zdefdd	„Zdefd
d„Zdefdd„ZdS )zq
Key bindings for extra page navigation: bindings for up/down scrolling through
long pages, like in Emacs or Vi.
é    )Úbuffer_has_focusÚ
emacs_modeÚvi_mode)ÚConditionalKeyBindingsÚKeyBindingsÚKeyBindingsBaseÚmerge_key_bindingsé   )Úscroll_backwardÚscroll_forwardÚscroll_half_page_downÚscroll_half_page_upÚscroll_one_line_downÚscroll_one_line_upÚscroll_page_downÚscroll_page_up)Úload_page_navigation_bindingsÚ#load_emacs_page_navigation_bindingsÚ load_vi_page_navigation_bindingsÚreturnc                   C   s   t ttƒ tƒ gƒtƒS )zB
    Load both the Vi and Emacs bindings for page navigation.
    )r   r   r   r   r   © r   r   új/var/www/ideatree/venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/page_navigation.pyr      s   þÿùr   c                  C   sH   t ƒ } | j}|dƒtƒ |dƒtƒ |ddƒtƒ |dƒtƒ t| tƒS )úˆ
    Key bindings, for scrolling up and down through pages.
    This are separate bindings, because GNU readline doesn't have them.
    zc-vÚpagedownÚescapeÚvÚpageup)r   Úaddr   r   r   r   ©Úkey_bindingsÚhandler   r   r   r   1   s   
r   c                  C   sv   t ƒ } | j}|dƒtƒ |dƒtƒ |dƒtƒ |dƒtƒ |dƒtƒ |dƒtƒ |dƒtƒ |dƒt	ƒ t
| tƒS )	r   zc-fzc-bzc-dzc-uzc-ezc-yr   r   )r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   A   s   
r   N)Ú__doc__Úprompt_toolkit.filtersr   r   r   Ú'prompt_toolkit.key_binding.key_bindingsr   r   r   r   Úscrollr
   r   r   r   r   r   r   r   Ú__all__r   r   r   r   r   r   r   Ú<module>   s    (