diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.cpp b/src/plugins/qmljstools/qmljsfunctionfilter.cpp index b5f37e4c105..293e8962f48 100644 --- a/src/plugins/qmljstools/qmljsfunctionfilter.cpp +++ b/src/plugins/qmljstools/qmljsfunctionfilter.cpp @@ -18,9 +18,8 @@ using namespace Utils; Q_DECLARE_METATYPE(LocatorData::Entry) -FunctionFilter::FunctionFilter(LocatorData *data, QObject *parent) - : ILocatorFilter(parent) - , m_data(data) +QmlJSFunctionsFilter::QmlJSFunctionsFilter(LocatorData *data) + : m_data(data) { setId("Functions"); setDisplayName(Tr::tr("QML Functions")); @@ -76,7 +75,7 @@ static void matches(QPromise &promise, const LocatorStorage &storage, LocatorFilterEntries())); } -LocatorMatcherTasks FunctionFilter::matchers() +LocatorMatcherTasks QmlJSFunctionsFilter::matchers() { using namespace Tasking; @@ -89,47 +88,3 @@ LocatorMatcherTasks FunctionFilter::matchers() return {{AsyncTask(onSetup), storage}}; } - -QList FunctionFilter::matchesFor(QFutureInterface &future, - const QString &entry) -{ - QList entries[int(MatchLevel::Count)]; - const Qt::CaseSensitivity caseSensitivityForPrefix = caseSensitivity(entry); - - const QRegularExpression regexp = createRegExp(entry); - if (!regexp.isValid()) - return {}; - - const QHash> locatorEntries = m_data->entries(); - for (const QList &items : locatorEntries) { - if (future.isCanceled()) - break; - - for (const LocatorData::Entry &info : items) { - if (info.type != LocatorData::Function) - continue; - - const QRegularExpressionMatch match = regexp.match(info.symbolName); - if (match.hasMatch()) { - LocatorFilterEntry filterEntry; - filterEntry.displayName = info.displayName; - filterEntry.linkForEditor = {info.fileName, info.line, info.column}; - filterEntry.extraInfo = info.extraInfo; - filterEntry.highlightInfo = highlightInfo(match); - - if (filterEntry.displayName.startsWith(entry, caseSensitivityForPrefix)) - entries[int(MatchLevel::Best)].append(filterEntry); - else if (filterEntry.displayName.contains(entry, caseSensitivityForPrefix)) - entries[int(MatchLevel::Better)].append(filterEntry); - else - entries[int(MatchLevel::Good)].append(filterEntry); - } - } - } - - for (auto &entry : entries) { - if (entry.size() < 1000) - Utils::sort(entry, LocatorFilterEntry::compareLexigraphically); - } - return std::accumulate(std::begin(entries), std::end(entries), QList()); -} diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.h b/src/plugins/qmljstools/qmljsfunctionfilter.h index 71b3d0b5dd6..3775259fb27 100644 --- a/src/plugins/qmljstools/qmljsfunctionfilter.h +++ b/src/plugins/qmljstools/qmljsfunctionfilter.h @@ -5,25 +5,19 @@ #include -namespace QmlJSTools { -namespace Internal { +namespace QmlJSTools::Internal { class LocatorData; -class FunctionFilter : public Core::ILocatorFilter +class QmlJSFunctionsFilter : public Core::ILocatorFilter { - Q_OBJECT - public: - explicit FunctionFilter(LocatorData *data, QObject *parent = nullptr); + QmlJSFunctionsFilter(LocatorData *data); - QList matchesFor(QFutureInterface &future, - const QString &entry) override; private: Core::LocatorMatcherTasks matchers() final; LocatorData *m_data = nullptr; }; -} // namespace Internal -} // namespace QmlJSTools +} // namespace QmlJSTools::Internal diff --git a/src/plugins/qmljstools/qmljstoolsplugin.cpp b/src/plugins/qmljstools/qmljstoolsplugin.cpp index 574c73190b5..88c72b29e64 100644 --- a/src/plugins/qmljstools/qmljstoolsplugin.cpp +++ b/src/plugins/qmljstools/qmljstoolsplugin.cpp @@ -38,7 +38,7 @@ public: QAction resetCodeModelAction{Tr::tr("Reset Code Model"), nullptr}; LocatorData locatorData; - FunctionFilter functionFilter{&locatorData}; + QmlJSFunctionsFilter functionsFilter{&locatorData}; QmlJSCodeStyleSettingsPage codeStyleSettingsPage; BasicBundleProvider basicBundleProvider; };