From 5d787c84ea27c24e558301875d565395ad028123 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Mon, 2 Oct 2017 11:44:02 -0400 Subject: [PATCH] Show keyhint even with count prefix. The keyhintwidget was not showing up when a keychain was prefixed with a count. For example, 'g' would show a keyhint but '5g' would not. Now keyhints are shown even when a count is given. Resolves #3045. --- qutebrowser/misc/keyhintwidget.py | 2 ++ tests/unit/misc/test_keyhints.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/qutebrowser/misc/keyhintwidget.py b/qutebrowser/misc/keyhintwidget.py index 63b8f017c..ad2ea84a2 100644 --- a/qutebrowser/misc/keyhintwidget.py +++ b/qutebrowser/misc/keyhintwidget.py @@ -26,6 +26,7 @@ It is intended to help discoverability of keybindings. import html import fnmatch +import re from PyQt5.QtWidgets import QLabel, QSizePolicy from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt @@ -85,6 +86,7 @@ class KeyHintView(QLabel): Args: prefix: The current partial keystring. """ + _, prefix = re.match(r'^(\d*)(.*)', prefix).groups() if not prefix: self._show_timer.stop() self.hide() diff --git a/tests/unit/misc/test_keyhints.py b/tests/unit/misc/test_keyhints.py index c40958c86..9c5c735a2 100644 --- a/tests/unit/misc/test_keyhints.py +++ b/tests/unit/misc/test_keyhints.py @@ -92,6 +92,18 @@ def test_suggestions(keyhint, config_stub): ('a', 'yellow', 'c', 'message-info cmd-ac')) +def test_suggestions_with_count(keyhint, config_stub): + """Test that keyhints are shown based on a prefix.""" + bindings = {'normal': {'aa': 'message-info cmd-aa'}} + config_stub.val.bindings.default = bindings + config_stub.val.bindings.commands = bindings + + keyhint.update_keyhint('normal', '2a') + assert keyhint.text() == expected_text( + ('a', 'yellow', 'a', 'message-info cmd-aa'), + ) + + def test_special_bindings(keyhint, config_stub): """Ensure a prefix of '<' doesn't suggest special keys.""" bindings = {'normal': {