Skip to content

Commit d6b3472

Browse files
committed
Esc + Enter should sumbit the query in safe multiline mode.
1 parent 4a853e7 commit d6b3472

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

pgcli/key_bindings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
vi_mode,
1010
)
1111

12-
from .pgbuffer import buffer_should_be_handled
12+
from .pgbuffer import buffer_should_be_handled, safe_multi_line_mode
1313

1414
_logger = logging.getLogger(__name__)
1515

@@ -114,7 +114,7 @@ def _(event):
114114
_logger.debug("Detected enter key.")
115115
event.current_buffer.validate_and_handle()
116116

117-
@kb.add("escape", "enter", filter=~vi_mode)
117+
@kb.add("escape", "enter", filter=~vi_mode & ~safe_multi_line_mode(pgcli))
118118
def _(event):
119119
"""Introduces a line break regardless of multi-line mode or not."""
120120
_logger.debug("Detected alt-enter key.")

pgcli/pgbuffer.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ def _is_complete(sql):
2222
"""
2323

2424

25+
def safe_multi_line_mode(pgcli):
26+
@Condition
27+
def cond():
28+
_logger.debug('Multi-line mode state: "%s" / "%s"', pgcli.multi_line, pgcli.multiline_mode)
29+
return pgcli.multi_line and (pgcli.multiline_mode == "safe")
30+
return cond
31+
32+
2533
def buffer_should_be_handled(pgcli):
2634
@Condition
2735
def cond():

0 commit comments

Comments
 (0)