From 2d71c541c675a449909725edd9f4a421b9fbaffb Mon Sep 17 00:00:00 2001 From: Felix Van der Jeugt Date: Mon, 25 Apr 2016 10:48:47 +0200 Subject: [PATCH] allow swapping dict at runtime --- qutebrowser/browser/hints.py | 8 ++++++-- tests/integration/test_hints_html.py | 16 ++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index df1209918..352e592cd 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -1004,11 +1004,14 @@ class WordHinter: def __init__(self): # will be initialized on first use. self.words = set() + self.dictionary = None def ensure_initialized(self): """Generate the used words if yet uninialized.""" - if not self.words: - dictionary = config.get("hints", "dictionary") + dictionary = config.get("hints", "dictionary") + if not self.words or self.dictionary != dictionary: + self.words.clear() + self.dictionary = dictionary try: with open(dictionary, encoding="UTF-8") as wordfile: alphabet = set(string.ascii_lowercase) @@ -1104,3 +1107,4 @@ class WordHinter: used_hints.add(hint) hints.append(hint) return hints + diff --git a/tests/integration/test_hints_html.py b/tests/integration/test_hints_html.py index 3fe08e88e..6ac7bf595 100644 --- a/tests/integration/test_hints_html.py +++ b/tests/integration/test_hints_html.py @@ -62,21 +62,21 @@ def test_hints(test_name, quteproc): def test_word_hints_issue1393(quteproc, tmpdir): dict_file = tmpdir / 'dict' dict_file.write(textwrap.dedent(""" - alpha + alph beta - gamma - delta - epsilon + gamm + delt + epsi """)) targets = [ ('words', 'words.txt'), ('smart', 'smart.txt'), ('hinting', 'hinting.txt'), - ('alpha', 'l33t.txt'), + ('alph', 'l33t.txt'), ('beta', 'l33t.txt'), - ('gamma', 'l33t.txt'), - ('delta', 'l33t.txt'), - ('epsilon', 'l33t.txt'), + ('gamm', 'l33t.txt'), + ('delt', 'l33t.txt'), + ('epsi', 'l33t.txt'), ] quteproc.set_setting('hints', 'mode', 'word')