diff options
author | Ryan Roden-Corrent <ryan@rcorre.net> | 2016-08-09 08:23:31 -0400 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2016-11-05 22:18:56 +0100 |
commit | 1222394efdcfa7337109a6fa09424dc379bc2848 (patch) | |
tree | 35c79369d1f49761e21324caa532862971ae23ab | |
parent | a7ff4075de891660e67bfbe035949fed9e637f63 (diff) | |
download | qutebrowser-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.py | 10 | ||||
-rw-r--r-- | tests/unit/config/test_config.py | 3 |
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: |