mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-04 00:14:41 +01:00
abbrevs: add handler for return key
This commit is contained in:
parent
d619127503
commit
32b093b422
1 changed files with 21 additions and 5 deletions
|
@ -1,6 +1,8 @@
|
|||
"""Command abbreviations."""
|
||||
|
||||
import builtins
|
||||
from prompt_toolkit.filters import IsMultiline
|
||||
from prompt_toolkit.keys import Keys
|
||||
from xonsh.platform import ptk_shell_type
|
||||
|
||||
__all__ = ()
|
||||
|
@ -22,12 +24,26 @@ def expand_abbrev(buffer):
|
|||
def custom_keybindings(bindings, **kw):
|
||||
|
||||
if ptk_shell_type() == "prompt_toolkit2":
|
||||
handler = bindings.add
|
||||
else:
|
||||
handler = bindings.registry.add_binding
|
||||
from xonsh.ptk2.key_bindings import carriage_return
|
||||
from prompt_toolkit.filters import EmacsInsertMode, ViInsertMode
|
||||
|
||||
@handler(" ")
|
||||
def space(event):
|
||||
handler = bindings.add
|
||||
insert_mode = ViInsertMode() | EmacsInsertMode()
|
||||
else:
|
||||
from xonsh.ptk.key_bindings import carriage_return
|
||||
|
||||
handler = bindings.registry.add_binding
|
||||
insert_mode = True
|
||||
|
||||
@handler(" ", filter=IsMultiline() & insert_mode)
|
||||
def handle_space(event):
|
||||
buffer = event.app.current_buffer
|
||||
expand_abbrev(buffer)
|
||||
buffer.insert_text(" ")
|
||||
|
||||
@handler(Keys.ControlJ, filter=IsMultiline() & insert_mode)
|
||||
@handler(Keys.ControlM, filter=IsMultiline() & insert_mode)
|
||||
def multiline_carriage_return(event):
|
||||
buffer = event.app.current_buffer
|
||||
expand_abbrev(buffer)
|
||||
carriage_return(buffer, event.cli)
|
||||
|
|
Loading…
Add table
Reference in a new issue