You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/prompt_toolkit/key_binding/bindings/page_navigation.py

66 lines
2.2 KiB

"""
Key bindings for extra page navigation: bindings for up/down scrolling through
long pages, like in Emacs or Vi.
"""
from __future__ import unicode_literals
from prompt_toolkit.filters import emacs_mode, buffer_has_focus
from .scroll import scroll_forward, scroll_backward, scroll_half_page_up, scroll_half_page_down, scroll_one_line_up, scroll_one_line_down, scroll_page_up, scroll_page_down
from prompt_toolkit.filters import vi_mode
from prompt_toolkit.key_binding.key_bindings import KeyBindings, ConditionalKeyBindings, merge_key_bindings
__all__ = [
'load_page_navigation_bindings',
'load_emacs_page_navigation_bindings',
'load_vi_page_navigation_bindings',
]
def load_page_navigation_bindings():
"""
Load both the Vi and Emacs bindings for page navigation.
"""
# Only enable when a `Buffer` is focused, otherwise, we would catch keys
# when another widget is focused (like for instance `c-d` in a
# ptterm.Terminal).
return ConditionalKeyBindings(
merge_key_bindings([
load_emacs_page_navigation_bindings(),
load_vi_page_navigation_bindings(),
]), buffer_has_focus)
def load_emacs_page_navigation_bindings():
"""
Key bindings, for scrolling up and down through pages.
This are separate bindings, because GNU readline doesn't have them.
"""
key_bindings = KeyBindings()
handle = key_bindings.add
handle('c-v')(scroll_page_down)
handle('pagedown')(scroll_page_down)
handle('escape', 'v')(scroll_page_up)
handle('pageup')(scroll_page_up)
return ConditionalKeyBindings(key_bindings, emacs_mode)
def load_vi_page_navigation_bindings():
"""
Key bindings, for scrolling up and down through pages.
This are separate bindings, because GNU readline doesn't have them.
"""
key_bindings = KeyBindings()
handle = key_bindings.add
handle('c-f')(scroll_forward)
handle('c-b')(scroll_backward)
handle('c-d')(scroll_half_page_down)
handle('c-u')(scroll_half_page_up)
handle('c-e')(scroll_one_line_down)
handle('c-y')(scroll_one_line_up)
handle('pagedown')(scroll_page_down)
handle('pageup')(scroll_page_up)
return ConditionalKeyBindings(key_bindings, vi_mode)