summaryrefslogtreecommitdiffstats
path: root/pgcli
diff options
context:
space:
mode:
authorArtur Balabanov <arturb@mustardsystems.com>2018-07-27 16:44:38 +0100
committerArtur Balabanov <arturb@mustardsystems.com>2018-07-27 16:44:38 +0100
commit205949a79b7909d1ce5bdd8f70afdf219e0336f7 (patch)
tree52aa7aa1a5b2a95581fb64bec7fd2f911bae4237 /pgcli
parentf12b472f4935577611d51b1ce14fb8b67886b5ff (diff)
Tab press on an empty line is interrupted as a \t character insert
Diffstat (limited to 'pgcli')
-rw-r--r--pgcli/key_bindings.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/pgcli/key_bindings.py b/pgcli/key_bindings.py
index 646e6f77..b7dca0f6 100644
--- a/pgcli/key_bindings.py
+++ b/pgcli/key_bindings.py
@@ -58,10 +58,18 @@ def pgcli_bindings(get_vi_mode_enabled, set_vi_mode_enabled):
"""
_logger.debug('Detected <Tab> key.')
b = event.cli.current_buffer
- if b.complete_state:
- b.complete_next()
+
+ line_start = b.document.cursor_position + b.document.get_start_of_line_position()
+ line_end = b.document.cursor_position + b.document.get_end_of_line_position()
+ current_line = b.document.text[line_start:line_end]
+
+ if current_line.strip():
+ if b.complete_state:
+ b.complete_next()
+ else:
+ event.cli.start_completion(select_first=True)
else:
- event.cli.start_completion(select_first=True)
+ b.insert_text('\t', fire_event=False)
@key_binding_manager.registry.add_binding(Keys.ControlSpace)
def _(event):