summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-04-13 07:30:32 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-04-25 08:49:55 +0000
commit08f3d57aa1f902fe513410d25c4f47eb977d9984 (patch)
treed1fa9579682affd6f108bd473e251f1d46867657
parentc2ea7bc41598d4943363ac2bf4633369e25cb0a2 (diff)
downloadqt-creator-08f3d57aa1f902fe513410d25c4f47eb977d9984.tar.gz
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>
-rw-r--r--src/plugins/clangcodemodel/clangdlocatorfilters.cpp4
-rw-r--r--src/plugins/cppeditor/cppcurrentdocumentfilter.cpp6
-rw-r--r--src/plugins/cppeditor/cppcurrentdocumentfilter.h2
-rw-r--r--src/plugins/cppeditor/cpplocatorfilter.cpp15
-rw-r--r--src/plugins/cppeditor/cpplocatorfilter.h11
-rw-r--r--src/plugins/modeleditor/elementtasks.cpp1
6 files changed, 37 insertions, 2 deletions
diff --git a/src/plugins/clangcodemodel/clangdlocatorfilters.cpp b/src/plugins/clangcodemodel/clangdlocatorfilters.cpp
index 973156c038..e785402084 100644
--- a/src/plugins/clangcodemodel/clangdlocatorfilters.cpp
+++ b/src/plugins/clangcodemodel/clangdlocatorfilters.cpp
@@ -32,6 +32,7 @@ namespace Internal {
const int MaxResultCount = 10000;
+// TODO: Remove this class, it's used only internally by ClangGlobalSymbolFilter
class CppLocatorFilter : public CppEditor::CppLocatorFilter
{
public:
@@ -65,7 +66,7 @@ public:
}
};
-
+// TODO: Remove this class, it's used only internally by ClangClassesFilter
class CppClassesFilter : public CppEditor::CppClassesFilter
{
public:
@@ -98,6 +99,7 @@ public:
}
};
+// TODO: Remove this class, it's used only internally by ClangFunctionsFilter
class CppFunctionsFilter : public CppEditor::CppFunctionsFilter
{
public:
diff --git a/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp b/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp
index f75eb203b8..ba7cdfda71 100644
--- a/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp
+++ b/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp
@@ -5,6 +5,7 @@
#include "cppeditorconstants.h"
#include "cppeditortr.h"
+#include "cpplocatorfilter.h"
#include "cppmodelmanager.h"
#include <coreplugin/editormanager/editormanager.h>
@@ -42,6 +43,11 @@ CppCurrentDocumentFilter::CppCurrentDocumentFilter()
this, &CppCurrentDocumentFilter::onEditorAboutToClose);
}
+LocatorMatcherTasks CppCurrentDocumentFilter::matchers()
+{
+ return CppEditor::cppMatchers(MatcherType::CurrentDocumentSymbols);
+}
+
void CppCurrentDocumentFilter::makeAuxiliary()
{
setId({});
diff --git a/src/plugins/cppeditor/cppcurrentdocumentfilter.h b/src/plugins/cppeditor/cppcurrentdocumentfilter.h
index cd53f37b81..5327851e6f 100644
--- a/src/plugins/cppeditor/cppcurrentdocumentfilter.h
+++ b/src/plugins/cppeditor/cppcurrentdocumentfilter.h
@@ -15,6 +15,7 @@ class CppModelManager;
namespace Internal {
+// TODO: Move the class into cpplocatorfilter.h
class CppCurrentDocumentFilter : public Core::ILocatorFilter
{
Q_OBJECT
@@ -28,6 +29,7 @@ public:
QList<Core::LocatorFilterEntry> matchesFor(QFutureInterface<Core::LocatorFilterEntry> &future,
const QString &entry) override;
private:
+ Core::LocatorMatcherTasks matchers() final;
void onDocumentUpdated(CPlusPlus::Document::Ptr doc);
void onCurrentEditorChanged(Core::IEditor *currentEditor);
void onEditorAboutToClose(Core::IEditor *currentEditor);
diff --git a/src/plugins/cppeditor/cpplocatorfilter.cpp b/src/plugins/cppeditor/cpplocatorfilter.cpp
index c7373d86bd..6ec6602f62 100644
--- a/src/plugins/cppeditor/cpplocatorfilter.cpp
+++ b/src/plugins/cppeditor/cpplocatorfilter.cpp
@@ -339,6 +339,11 @@ CppLocatorFilter::CppLocatorFilter()
setDefaultIncludedByDefault(false);
}
+LocatorMatcherTasks CppLocatorFilter::matchers()
+{
+ return {allSymbolsMatcher()};
+}
+
LocatorFilterEntry CppLocatorFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{
LocatorFilterEntry filterEntry;
@@ -437,6 +442,11 @@ CppClassesFilter::CppClassesFilter()
setDefaultIncludedByDefault(false);
}
+LocatorMatcherTasks CppClassesFilter::matchers()
+{
+ return {classMatcher()};
+}
+
LocatorFilterEntry CppClassesFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{
LocatorFilterEntry filterEntry;
@@ -459,6 +469,11 @@ CppFunctionsFilter::CppFunctionsFilter()
setDefaultIncludedByDefault(false);
}
+LocatorMatcherTasks CppFunctionsFilter::matchers()
+{
+ return {functionMatcher()};
+}
+
LocatorFilterEntry CppFunctionsFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{
QString name = info->symbolName();
diff --git a/src/plugins/cppeditor/cpplocatorfilter.h b/src/plugins/cppeditor/cpplocatorfilter.h
index 2328fc06f8..65bc5fa2d1 100644
--- a/src/plugins/cppeditor/cpplocatorfilter.h
+++ b/src/plugins/cppeditor/cpplocatorfilter.h
@@ -24,8 +24,12 @@ public:
protected:
virtual IndexItem::ItemType matchTypes() const { return IndexItem::All; }
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
{
Q_OBJECT
@@ -36,8 +40,12 @@ public:
protected:
IndexItem::ItemType matchTypes() const override { return IndexItem::Class; }
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
{
Q_OBJECT
@@ -48,6 +56,9 @@ public:
protected:
IndexItem::ItemType matchTypes() const override { return IndexItem::Function; }
Core::LocatorFilterEntry filterEntryFromIndexItem(IndexItem::Ptr info) override;
+
+private:
+ Core::LocatorMatcherTasks matchers() final;
};
} // namespace CppEditor
diff --git a/src/plugins/modeleditor/elementtasks.cpp b/src/plugins/modeleditor/elementtasks.cpp
index 620ee66d2c..d54cc2e6c8 100644
--- a/src/plugins/modeleditor/elementtasks.cpp
+++ b/src/plugins/modeleditor/elementtasks.cpp
@@ -25,7 +25,6 @@
#include <extensionsystem/pluginmanager.h>
#include <cppeditor/cpplocatordata.h>
-#include <cppeditor/cpplocatorfilter.h>
#include <cppeditor/indexitem.h>
#include <cppeditor/searchsymbols.h>
#include <coreplugin/editormanager/editormanager.h>