ILocatorFilter: Introduce LocatorMatcher

This machinery is going to replace
ILocatorFilter::matchesFor() and filter usages outside
of locator scope, e.g. in find unused functions.

In contrary to LocatorWidget, which calls
Core::Internal::runSearch() in a separate thread
and the latter executes matchesFor() sequentially for all filters,
this patch offers a possibility to run all filters in parallel.

Change-Id: Ia59463c95294299090173f3d510d57c9f8c7f993
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Jarek Kobus
2023-03-21 21:15:26 +01:00
parent d8de6c88e9
commit 2eba3584a1
4 changed files with 444 additions and 1 deletions

View File

@@ -8,6 +8,7 @@
#include <extensionsystem/iplugin.h>
#include <utils/environment.h>
#include <utils/futuresynchronizer.h>
QT_BEGIN_NAMESPACE
class QMenu;
@@ -46,13 +47,14 @@ public:
const QString &workingDirectory,
const QStringList &args) override;
static Utils::FutureSynchronizer *futureSynchronizer();
static Utils::Environment startupSystemEnvironment();
static Utils::EnvironmentItems environmentChanges();
static void setEnvironmentChanges(const Utils::EnvironmentItems &changes);
static QString msgCrashpadInformation();
public slots:
void fileOpenRequest(const QString&);
void fileOpenRequest(const QString &);
#if defined(WITH_TESTS)
private slots:
@@ -77,6 +79,7 @@ private:
FolderNavigationWidgetFactory *m_folderNavigationWidgetFactory = nullptr;
Utils::Environment m_startupSystemEnvironment;
Utils::EnvironmentItems m_environmentChanges;
Utils::FutureSynchronizer m_futureSynchronizer;
};
} // namespace Internal