Merge branch 'tex-autocompletion_enhancement'
This commit is contained in:
commit
90ab2a7b38
@ -22,6 +22,7 @@ Added
|
||||
|
||||
- New `--quiet` argument for the `:debug-pyeval` command to not open a tab with
|
||||
the results. Note `:debug-pyeval` is still only intended for debugging.
|
||||
- The completion now matches each entered word separately.
|
||||
|
||||
Changed
|
||||
~~~~~~~
|
||||
|
@ -158,6 +158,7 @@ Contributors, sorted by the number of commits in descending order:
|
||||
* Thorsten Wißmann
|
||||
* Alexey "Averrin" Nabrodov
|
||||
* ZDarian
|
||||
* Milan Svoboda
|
||||
* John ShaggyTwoDope Jenkins
|
||||
* Peter Vilim
|
||||
* Tarcisio Fedrizzi
|
||||
|
@ -198,8 +198,8 @@ class CompletionItemDelegate(QStyledItemDelegate):
|
||||
columns_to_filter = index.model().srcmodel.columns_to_filter
|
||||
if index.column() in columns_to_filter and pattern:
|
||||
repl = r'<span class="highlight">\g<0></span>'
|
||||
text = re.sub(re.escape(pattern), repl, self._opt.text,
|
||||
flags=re.IGNORECASE)
|
||||
text = re.sub(re.escape(pattern).replace(r'\ ', r'.*'),
|
||||
repl, self._opt.text, flags=re.IGNORECASE)
|
||||
self._doc.setHtml(text)
|
||||
else:
|
||||
self._doc.setPlainText(self._opt.text)
|
||||
|
@ -27,6 +27,7 @@ from PyQt5.QtCore import QSortFilterProxyModel, QModelIndex, Qt
|
||||
|
||||
from qutebrowser.utils import log, qtutils, debug
|
||||
from qutebrowser.completion.models import base as completion
|
||||
import re
|
||||
|
||||
|
||||
class CompletionFilterModel(QSortFilterProxyModel):
|
||||
@ -46,6 +47,7 @@ class CompletionFilterModel(QSortFilterProxyModel):
|
||||
super().setSourceModel(source)
|
||||
self.srcmodel = source
|
||||
self.pattern = ''
|
||||
self.pattern_re = None
|
||||
|
||||
dumb_sort = self.srcmodel.DUMB_SORT
|
||||
if dumb_sort is None:
|
||||
@ -69,6 +71,9 @@ class CompletionFilterModel(QSortFilterProxyModel):
|
||||
"""
|
||||
with debug.log_time(log.completion, 'Setting filter pattern'):
|
||||
self.pattern = val
|
||||
val = re.escape(val)
|
||||
val = val.replace(r'\ ', r'.*')
|
||||
self.pattern_re = re.compile(val, re.IGNORECASE)
|
||||
self.invalidateFilter()
|
||||
sortcol = 0
|
||||
try:
|
||||
@ -146,7 +151,7 @@ class CompletionFilterModel(QSortFilterProxyModel):
|
||||
data = self.srcmodel.data(idx)
|
||||
if not data:
|
||||
continue
|
||||
elif self.pattern.casefold() in data.casefold():
|
||||
elif self.pattern_re.search(data):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user