CppEditor filters: Reimplement matchers()

They are used only when ClangCodeModel plugin is disabled.
Activated with '.', ':', 'c' and 'm' shortcuts.

Change-Id: I131473c419e0cb302492cc6d4263bd8ad80769e4
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Jarek Kobus
2023-04-13 07:30:32 +02:00
parent c2ea7bc415
commit 08f3d57aa1
6 changed files with 37 additions and 2 deletions

View File

@@ -32,6 +32,7 @@ namespace Internal {
const int MaxResultCount = 10000; const int MaxResultCount = 10000;
// TODO: Remove this class, it's used only internally by ClangGlobalSymbolFilter
class CppLocatorFilter : public CppEditor::CppLocatorFilter class CppLocatorFilter : public CppEditor::CppLocatorFilter
{ {
public: public:
@@ -65,7 +66,7 @@ public:
} }
}; };
// TODO: Remove this class, it's used only internally by ClangClassesFilter
class CppClassesFilter : public CppEditor::CppClassesFilter class CppClassesFilter : public CppEditor::CppClassesFilter
{ {
public: public:
@@ -98,6 +99,7 @@ public:
} }
}; };
// TODO: Remove this class, it's used only internally by ClangFunctionsFilter
class CppFunctionsFilter : public CppEditor::CppFunctionsFilter class CppFunctionsFilter : public CppEditor::CppFunctionsFilter
{ {
public: public:

View File

@@ -5,6 +5,7 @@
#include "cppeditorconstants.h" #include "cppeditorconstants.h"
#include "cppeditortr.h" #include "cppeditortr.h"
#include "cpplocatorfilter.h"
#include "cppmodelmanager.h" #include "cppmodelmanager.h"
#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editormanager.h>
@@ -42,6 +43,11 @@ CppCurrentDocumentFilter::CppCurrentDocumentFilter()
this, &CppCurrentDocumentFilter::onEditorAboutToClose); this, &CppCurrentDocumentFilter::onEditorAboutToClose);
} }
LocatorMatcherTasks CppCurrentDocumentFilter::matchers()
{
return CppEditor::cppMatchers(MatcherType::CurrentDocumentSymbols);
}
void CppCurrentDocumentFilter::makeAuxiliary() void CppCurrentDocumentFilter::makeAuxiliary()
{ {
setId({}); setId({});

View File

@@ -15,6 +15,7 @@ class CppModelManager;
namespace Internal { namespace Internal {
// TODO: Move the class into cpplocatorfilter.h
class CppCurrentDocumentFilter : public Core::ILocatorFilter class CppCurrentDocumentFilter : public Core::ILocatorFilter
{ {
Q_OBJECT Q_OBJECT
@@ -28,6 +29,7 @@ public:
QList<Core::LocatorFilterEntry> matchesFor(QFutureInterface<Core::LocatorFilterEntry> &future, QList<Core::LocatorFilterEntry> matchesFor(QFutureInterface<Core::LocatorFilterEntry> &future,
const QString &entry) override; const QString &entry) override;
private: private:
Core::LocatorMatcherTasks matchers() final;
void onDocumentUpdated(CPlusPlus::Document::Ptr doc); void onDocumentUpdated(CPlusPlus::Document::Ptr doc);
void onCurrentEditorChanged(Core::IEditor *currentEditor); void onCurrentEditorChanged(Core::IEditor *currentEditor);
void onEditorAboutToClose(Core::IEditor *currentEditor); void onEditorAboutToClose(Core::IEditor *currentEditor);

View File

@@ -339,6 +339,11 @@ CppLocatorFilter::CppLocatorFilter()
setDefaultIncludedByDefault(false); setDefaultIncludedByDefault(false);
} }
LocatorMatcherTasks CppLocatorFilter::matchers()
{
return {allSymbolsMatcher()};
}
LocatorFilterEntry CppLocatorFilter::filterEntryFromIndexItem(IndexItem::Ptr info) LocatorFilterEntry CppLocatorFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{ {
LocatorFilterEntry filterEntry; LocatorFilterEntry filterEntry;
@@ -437,6 +442,11 @@ CppClassesFilter::CppClassesFilter()
setDefaultIncludedByDefault(false); setDefaultIncludedByDefault(false);
} }
LocatorMatcherTasks CppClassesFilter::matchers()
{
return {classMatcher()};
}
LocatorFilterEntry CppClassesFilter::filterEntryFromIndexItem(IndexItem::Ptr info) LocatorFilterEntry CppClassesFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{ {
LocatorFilterEntry filterEntry; LocatorFilterEntry filterEntry;
@@ -459,6 +469,11 @@ CppFunctionsFilter::CppFunctionsFilter()
setDefaultIncludedByDefault(false); setDefaultIncludedByDefault(false);
} }
LocatorMatcherTasks CppFunctionsFilter::matchers()
{
return {functionMatcher()};
}
LocatorFilterEntry CppFunctionsFilter::filterEntryFromIndexItem(IndexItem::Ptr info) LocatorFilterEntry CppFunctionsFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{ {
QString name = info->symbolName(); QString name = info->symbolName();

View File

@@ -24,8 +24,12 @@ public:
protected: protected:
virtual IndexItem::ItemType matchTypes() const { return IndexItem::All; } virtual IndexItem::ItemType matchTypes() const { return IndexItem::All; }
virtual Core::LocatorFilterEntry filterEntryFromIndexItem(IndexItem::Ptr info); virtual Core::LocatorFilterEntry filterEntryFromIndexItem(IndexItem::Ptr info);
private:
Core::LocatorMatcherTasks matchers() override;
}; };
// TODO: Don't derive, flatten the hierarchy
class CPPEDITOR_EXPORT CppClassesFilter : public CppLocatorFilter class CPPEDITOR_EXPORT CppClassesFilter : public CppLocatorFilter
{ {
Q_OBJECT Q_OBJECT
@@ -36,8 +40,12 @@ public:
protected: protected:
IndexItem::ItemType matchTypes() const override { return IndexItem::Class; } IndexItem::ItemType matchTypes() const override { return IndexItem::Class; }
Core::LocatorFilterEntry filterEntryFromIndexItem(IndexItem::Ptr info) override; Core::LocatorFilterEntry filterEntryFromIndexItem(IndexItem::Ptr info) override;
private:
Core::LocatorMatcherTasks matchers() final;
}; };
// TODO: Don't derive, flatten the hierarchy
class CPPEDITOR_EXPORT CppFunctionsFilter : public CppLocatorFilter class CPPEDITOR_EXPORT CppFunctionsFilter : public CppLocatorFilter
{ {
Q_OBJECT Q_OBJECT
@@ -48,6 +56,9 @@ public:
protected: protected:
IndexItem::ItemType matchTypes() const override { return IndexItem::Function; } IndexItem::ItemType matchTypes() const override { return IndexItem::Function; }
Core::LocatorFilterEntry filterEntryFromIndexItem(IndexItem::Ptr info) override; Core::LocatorFilterEntry filterEntryFromIndexItem(IndexItem::Ptr info) override;
private:
Core::LocatorMatcherTasks matchers() final;
}; };
} // namespace CppEditor } // namespace CppEditor

View File

@@ -25,7 +25,6 @@
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
#include <cppeditor/cpplocatordata.h> #include <cppeditor/cpplocatordata.h>
#include <cppeditor/cpplocatorfilter.h>
#include <cppeditor/indexitem.h> #include <cppeditor/indexitem.h>
#include <cppeditor/searchsymbols.h> #include <cppeditor/searchsymbols.h>
#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editormanager.h>