summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro Ferrari <ferrari_pedro@yahoo.com>2019-07-29 17:00:33 -0300
committerIrina Truong <i.chernyavska@gmail.com>2019-07-29 13:00:33 -0700
commit19c3e0eeb81f4a231d0ebfd2c18c47215f85e572 (patch)
tree136144b9b5762ffa4556cd70233ac28c9d9b3800
parentf85642da67285a2b1d991d1d0970d261a715efb1 (diff)
Add key bindings to consistently move up and down in history (#1084)
-rw-r--r--AUTHORS1
-rw-r--r--changelog.rst2
-rw-r--r--pgcli/key_bindings.py16
3 files changed, 18 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index 4bf482de..33d77fa2 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -99,6 +99,7 @@ Contributors:
* Alexander Zawadzki
* Pablo A. Bianchi (pabloab)
* Sebastian Janko (sebojanko)
+ * Pedro Ferrari (petobens)
Creator:
--------
diff --git a/changelog.rst b/changelog.rst
index 4947bd02..571f88cd 100644
--- a/changelog.rst
+++ b/changelog.rst
@@ -11,6 +11,7 @@ Bug fixes:
* Error connecting to PostgreSQL 12beta1 (#1058). (Thanks: `Irina Truong`_)
* Empty query caused error message (Thanks: `Sebastian Janko`_)
+* History navigation bindings in multiline queries (#1004) (Thanks: `Pedro Ferrari`_)
2.1.1
=====
@@ -995,3 +996,4 @@ Improvements:
.. _`Telmo "Trooper"`: https://github.com/telmotrooper
.. _`Alexander Zawadzki`: https://github.com/zadacka
.. _`Sebastian Janko`: https://github.com/sebojanko
+.. _`Pedro Ferrari`: https://github.com/petobens
diff --git a/pgcli/key_bindings.py b/pgcli/key_bindings.py
index 626cd142..c839256e 100644
--- a/pgcli/key_bindings.py
+++ b/pgcli/key_bindings.py
@@ -3,7 +3,11 @@ from __future__ import unicode_literals
import logging
from prompt_toolkit.enums import EditingMode
from prompt_toolkit.key_binding import KeyBindings
-from prompt_toolkit.filters import completion_is_selected, has_completions
+from prompt_toolkit.filters import (
+ completion_is_selected,
+ has_completions,
+ has_selection,
+)
_logger = logging.getLogger(__name__)
@@ -96,4 +100,14 @@ def pgcli_bindings(pgcli):
_logger.debug("Detected alt-enter key.")
event.app.current_buffer.insert_text("\n")
+ @kb.add("c-p", filter=~has_selection)
+ def _(event):
+ """Move up in history."""
+ event.current_buffer.history_backward(count=event.arg)
+
+ @kb.add("c-n", filter=~has_selection)
+ def _(event):
+ """Move down in history."""
+ event.current_buffer.history_forward(count=event.arg)
+
return kb