From 45d483479aebb6af5a53aea97d65228d8621ad86 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 11 Jan 2024 17:28:24 +0100 Subject: Revert "Merge pull request #7955 from arza-zara/search_any_order" This reverts commit fe1faa14b91253db99e9b4451ffb1a479feff1db, reversing changes made to 04af4c657d3725fd2d3b556d9b88b44d3ada0be1. For my setup with 310 quickmarks and 94 bookmarks, this makes qutebrowser hang for around a minute on every keypress. --- qutebrowser/completion/models/listcategory.py | 8 +++----- tests/unit/completion/test_listcategory.py | 5 ----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/qutebrowser/completion/models/listcategory.py b/qutebrowser/completion/models/listcategory.py index e46f18c69..edf24f5a4 100644 --- a/qutebrowser/completion/models/listcategory.py +++ b/qutebrowser/completion/models/listcategory.py @@ -48,11 +48,9 @@ class ListCategory(QSortFilterProxyModel): log.completion.warning(f"Trimming {len(val)}-char pattern to 5000") val = val[:5000] self._pattern = val - - # Positive lookahead per search term. This means that all search terms must - # be matched but they can be matched anywhere in the string, so they can be - # in any order. For example "foo bar" -> "(?=.*foo)(?=.*bar)" - val = '(?=.*' + ')(?=.*'.join(map(re.escape, val.split())) + ')' + val = re.sub(r' +', r' ', val) # See #1919 + val = re.escape(val) + val = val.replace(r'\ ', '.*') rx = QRegularExpression(val, QRegularExpression.PatternOption.CaseInsensitiveOption) qtutils.ensure_valid(rx) self.setFilterRegularExpression(rx) diff --git a/tests/unit/completion/test_listcategory.py b/tests/unit/completion/test_listcategory.py index 80bcb5c39..b91f391bb 100644 --- a/tests/unit/completion/test_listcategory.py +++ b/tests/unit/completion/test_listcategory.py @@ -32,11 +32,6 @@ from qutebrowser.completion.models import listcategory [('foo', 'bar'), ('bar', 'foo'), ('bar', 'bar')], [('foo', 'bar'), ('bar', 'foo')], [('foo', 'bar'), ('bar', 'foo')]), - - ('foo bar', - [('foobar', ''), ('barfoo', ''), ('foobaz', '')], - [('barfoo', ''), ('foobar', '')], - [('foobar', ''), ('barfoo', '')]), ]) def test_set_pattern(pattern, before, after, after_nosort, model_validator): """Validate the filtering and sorting results of set_pattern.""" -- cgit v1.2.3-54-g00ecf