[~] Refactor
This commit is contained in:
parent
1530fcf108
commit
d4ed93961b
@ -210,6 +210,11 @@ class TerminalInteractiveShell(InteractiveShell):
|
||||
help="Shortcut style to use at the prompt. 'vi' or 'emacs'.",
|
||||
).tag(config=True)
|
||||
|
||||
fast_prompt = Bool(
|
||||
False,
|
||||
help="fast prompt with dynamic slow down",
|
||||
).tag(config=True)
|
||||
|
||||
emacs_bindings_in_vi_insert_mode = Bool(
|
||||
True,
|
||||
help="Add shortcuts from 'emacs' insert mode to 'vi' insert mode.",
|
||||
@ -430,8 +435,10 @@ class TerminalInteractiveShell(InteractiveShell):
|
||||
return
|
||||
|
||||
# Set up keyboard shortcuts
|
||||
key_bindings = create_ipython_shortcuts(self)
|
||||
|
||||
key_bindings = create_ipython_shortcuts(
|
||||
self,
|
||||
enable_escape_shortcuts=not self.fast_prompt,
|
||||
)
|
||||
|
||||
# Pre-populate history from IPython's history database
|
||||
history = PtkHistoryAdapter(self)
|
||||
@ -601,9 +608,12 @@ class TerminalInteractiveShell(InteractiveShell):
|
||||
policy.set_event_loop(self.pt_loop)
|
||||
try:
|
||||
with patch_stdout(raw=True):
|
||||
extra_options = self._extra_prompt_options()
|
||||
|
||||
text = self.pt_app.prompt(
|
||||
default=default,
|
||||
**self._extra_prompt_options())
|
||||
**extra_options
|
||||
)
|
||||
finally:
|
||||
# Restore the original event loop.
|
||||
if old_loop is not None and old_loop is not self.pt_loop:
|
||||
|
@ -48,7 +48,13 @@ def _apply_autosuggest(event):
|
||||
else:
|
||||
nc.end_of_line(event)
|
||||
|
||||
def create_ipython_shortcuts(shell):
|
||||
def create_ipython_shortcuts(
|
||||
shell,
|
||||
enable_escape_shortcuts=None,
|
||||
):
|
||||
if enable_escape_shortcuts is None:
|
||||
enable_escape_shortcuts = True
|
||||
|
||||
"""Set up the prompt_toolkit keyboard shortcuts for IPython"""
|
||||
|
||||
kb = KeyBindings()
|
||||
@ -64,6 +70,7 @@ def create_ipython_shortcuts(shell):
|
||||
& insert_mode
|
||||
))(return_handler)
|
||||
|
||||
if enable_escape_shortcuts:
|
||||
def reformat_and_execute(event):
|
||||
reformat_text_before_cursor(event.current_buffer, event.current_buffer.document, shell)
|
||||
event.current_buffer.validate_and_handle()
|
||||
|
@ -5,3 +5,4 @@ c.InteractiveShell.history_load_length = 100 * 1000 * 1000
|
||||
c.InteractiveShell.pdb = True
|
||||
c.TerminalInteractiveShell.editing_mode = 'vi'
|
||||
c.TerminalInteractiveShell.modal_cursor = False
|
||||
c.TerminalInteractiveShell.fast_prompt = True
|
||||
|
Loading…
Reference in New Issue
Block a user