summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Roden-Corrent <ryan@rcorre.net>2016-08-09 08:23:31 -0400
committerFlorian Bruhin <git@the-compiler.org>2016-11-05 22:18:56 +0100
commit1222394efdcfa7337109a6fa09424dc379bc2848 (patch)
tree35c79369d1f49761e21324caa532862971ae23ab
parenta7ff4075de891660e67bfbe035949fed9e637f63 (diff)
downloadqutebrowser-1222394efdcfa7337109a6fa09424dc379bc2848.tar.gz
qutebrowser-1222394efdcfa7337109a6fa09424dc379bc2848.zip
Update command completion on setting an alias.
Wire up the config change event to update command completion on changing aliases, so the new aliases will be included. Fixes #1814. Currently we do not have tests at a high enough level to test whether signals are wired up correctly to update completions.
-rw-r--r--qutebrowser/completion/models/instances.py10
-rw-r--r--tests/unit/config/test_config.py3
2 files changed, 11 insertions, 2 deletions
diff --git a/qutebrowser/completion/models/instances.py b/qutebrowser/completion/models/instances.py
index c92225539..bf29b09f8 100644
--- a/qutebrowser/completion/models/instances.py
+++ b/qutebrowser/completion/models/instances.py
@@ -30,7 +30,7 @@ import functools
from qutebrowser.completion.models import (miscmodels, urlmodel, configmodel,
base)
from qutebrowser.utils import objreg, usertypes, log, debug
-from qutebrowser.config import configdata
+from qutebrowser.config import configdata, config
_instances = {}
@@ -164,6 +164,12 @@ def update(completions):
did_run.append(func)
+@config.change_filter('aliases', function=True)
+def _update_aliases():
+ """Update completions that include command aliases."""
+ update([usertypes.Completion.command])
+
+
def init():
"""Initialize completions. Note this only connects signals."""
quickmark_manager = objreg.get('quickmark-manager')
@@ -185,3 +191,5 @@ def init():
keyconf = objreg.get('key-config')
keyconf.changed.connect(
functools.partial(update, [usertypes.Completion.command]))
+
+ objreg.get('config').changed.connect(_update_aliases)
diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py
index 81635a4d5..e4c9b6a9c 100644
--- a/tests/unit/config/test_config.py
+++ b/tests/unit/config/test_config.py
@@ -214,7 +214,7 @@ class TestKeyConfigParser:
"""Test config.parsers.keyconf.KeyConfigParser."""
- def test_cmd_binding(self, cmdline_test):
+ def test_cmd_binding(self, cmdline_test, config_stub):
"""Test various command bindings.
See https://github.com/The-Compiler/qutebrowser/issues/615
@@ -222,6 +222,7 @@ class TestKeyConfigParser:
Args:
cmdline_test: A pytest fixture which provides testcases.
"""
+ config_stub.data = {'aliases': []}
kcp = keyconf.KeyConfigParser(None, None)
kcp._cur_section = 'normal'
if cmdline_test.valid: