summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2024-01-11 17:28:24 +0100
committerFlorian Bruhin <me@the-compiler.org>2024-01-11 17:30:27 +0100
commit45d483479aebb6af5a53aea97d65228d8621ad86 (patch)
treeae0e5cd8bcbc64b04c9385da969bb525be146956
parent4b11776f76a7f8a02bef9fb1644752da51928bc1 (diff)
downloadqutebrowser-45d483479aebb6af5a53aea97d65228d8621ad86.tar.gz
qutebrowser-45d483479aebb6af5a53aea97d65228d8621ad86.zip
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.
-rw-r--r--qutebrowser/completion/models/listcategory.py8
-rw-r--r--tests/unit/completion/test_listcategory.py5
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."""