diff options
author | Artur Balabanov <arturb@mustardsystems.com> | 2018-07-27 16:44:38 +0100 |
---|---|---|
committer | Artur Balabanov <arturb@mustardsystems.com> | 2018-07-27 16:44:38 +0100 |
commit | 205949a79b7909d1ce5bdd8f70afdf219e0336f7 (patch) | |
tree | 52aa7aa1a5b2a95581fb64bec7fd2f911bae4237 /pgcli | |
parent | f12b472f4935577611d51b1ce14fb8b67886b5ff (diff) |
Tab press on an empty line is interrupted as a \t character insert
Diffstat (limited to 'pgcli')
-rw-r--r-- | pgcli/key_bindings.py | 14 |
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): |