
                         Z    d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
 dZ G d d	e      Zy
)a  
DEPRECATED:
Use `prompt_toolkit.key_binding.defaults.load_key_bindings` instead.

:class:`KeyBindingManager` is a utility (or shortcut) for loading all the key
bindings in a key binding registry, with a logic set of filters to quickly to
quickly change from Vi to Emacs key bindings at runtime.

You don't have to use this, but it's practical.

Usage::

    manager = KeyBindingManager()
    app = Application(key_bindings_registry=manager.registry)
    )unicode_literals   )load_key_bindings)to_cli_filter)RegistryConditionalRegistryMergedRegistry)KeyBindingManagerc                   H    e Zd ZdZ	 	 	 	 	 	 	 	 	 	 ddZed        Zd Zd Zy)r
   a"  
    Utility for loading all key bindings into memory.

    :param registry: Optional `Registry` instance.
    :param enable_abort_and_exit_bindings: Filter to enable Ctrl-C and Ctrl-D.
    :param enable_system_bindings: Filter to enable the system bindings
            (meta-! prompt and Control-Z suspension.)
    :param enable_search: Filter to enable the search bindings.
    :param enable_open_in_editor: Filter to enable open-in-editor.
    :param enable_open_in_editor: Filter to enable open-in-editor.
    :param enable_extra_page_navigation: Filter for enabling extra page navigation.
        (Bindings for up/down scrolling through long pages, like in Emacs or Vi.)
    :param enable_auto_suggest_bindings: Filter to enable fish-style suggestions.

    :param enable_vi_mode: Deprecated!
    Nc           	          |t        |t              sJ |t        |      sJ t        |      }t	        ||||||	|
      }t        t        ||      g      | _        y )N)get_search_stateenable_abort_and_exit_bindingsenable_system_bindingsenable_searchenable_open_in_editorenable_extra_page_navigationenable_auto_suggest_bindings)
isinstancer   callabler   r   r	   r   registry)selfr   enable_vi_mode
enable_allr   r   r   r   r   r   r   defaultss               5lib/third_party/prompt_toolkit/key_binding/manager.py__init__zKeyBindingManager.__init__+   st     :h#AAA'84D+EEE":.
$.,J$:(#8*F*FH '*5(
     c                 ~    |j                  dd       |j                  dd       |j                  dd        | di |S )z
        Create a ``KeyBindingManager`` with the defaults for an input prompt.
        This activates the key bindings for abort/exit (Ctrl-C/Ctrl-D),
        incremental search and auto suggestions.

        (Not for full screen applications.)
        r   Tr   r    )
setdefault)clskws     r   
for_promptzKeyBindingManager.for_promptK   s<     	6=
ot,
4d;yRyr   c                      y Nr   r   clis     r   resetzKeyBindingManager.resetZ   s    r   c                     |j                   S r%   )vi_stater&   s     r   get_vi_statezKeyBindingManager.get_vi_state^   s    ||r   )
NNTNFFFFFF)	__name__
__module____qualname____doc__r   classmethodr#   r(   r+   r   r   r   r
   r
      sK    "  $ "&05(-$',.3.3@  r   r
   N)r/   
__future__r   r   r   prompt_toolkit.filtersr   #prompt_toolkit.key_binding.registryr   r   r	   __all__objectr
   r   r   r   <module>r6      s0    ( ' 0 ] ]
F Fr   