diff options
author | Florian Bruhin <me@the-compiler.org> | 2024-01-12 10:40:04 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2024-01-12 18:53:22 +0100 |
commit | f8df682b90381f16b3459dadf9321ba8de8c6443 (patch) | |
tree | 51d1e51b24c6c14e1e1f5ab35a889c272f7bf0f9 /qutebrowser | |
parent | 0a82ae407336fe7750a48b9695d956ff64582ade (diff) | |
download | qutebrowser-f8df682b90381f16b3459dadf9321ba8de8c6443.tar.gz qutebrowser-f8df682b90381f16b3459dadf9321ba8de8c6443.zip |
Reapply "Merge pull request #7955 from arza-zara/search_any_order"
This reverts commit 45d483479aebb6af5a53aea97d65228d8621ad86.
Diffstat (limited to 'qutebrowser')
-rw-r--r-- | qutebrowser/completion/models/listcategory.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/qutebrowser/completion/models/listcategory.py b/qutebrowser/completion/models/listcategory.py index edf24f5a4..e46f18c69 100644 --- a/qutebrowser/completion/models/listcategory.py +++ b/qutebrowser/completion/models/listcategory.py @@ -48,9 +48,11 @@ class ListCategory(QSortFilterProxyModel): log.completion.warning(f"Trimming {len(val)}-char pattern to 5000") val = val[:5000] self._pattern = val - val = re.sub(r' +', r' ', val) # See #1919 - val = re.escape(val) - val = val.replace(r'\ ', '.*') + + # 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())) + ')' rx = QRegularExpression(val, QRegularExpression.PatternOption.CaseInsensitiveOption) qtutils.ensure_valid(rx) self.setFilterRegularExpression(rx) |