forked from qt-creator/qt-creator
LanguageClient/ClangCodeModel: Reimplement matchers()
Don't assert when ClientRequestTask::preStartCheck() failed. Change-Id: I157fe8fc15aa055b70823d6a54454c6eec692f88 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -47,6 +47,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// TODO: Remove this class, it's used only internally by ClangGlobalSymbolFilter
|
||||
class LspWorkspaceFilter : public WorkspaceLocatorFilter
|
||||
{
|
||||
public:
|
||||
@@ -81,6 +82,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// TODO: Remove this class, it's used only internally by ClangClassesFilter
|
||||
class LspClassesFilter : public WorkspaceClassLocatorFilter
|
||||
{
|
||||
public:
|
||||
@@ -114,6 +116,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// TODO: Remove this class, it's used only internally by ClangFunctionsFilter
|
||||
class LspFunctionsFilter : public WorkspaceMethodLocatorFilter
|
||||
{
|
||||
public:
|
||||
@@ -156,6 +159,13 @@ ClangGlobalSymbolFilter::~ClangGlobalSymbolFilter()
|
||||
delete m_lspFilter;
|
||||
}
|
||||
|
||||
LocatorMatcherTasks ClangGlobalSymbolFilter::matchers()
|
||||
{
|
||||
return CppEditor::cppMatchers(MatcherType::AllSymbols)
|
||||
+ LanguageClient::workspaceMatchers(MatcherType::AllSymbols,
|
||||
ClangModelManagerSupport::clientsForOpenProjects(), MaxResultCount);
|
||||
}
|
||||
|
||||
void ClangGlobalSymbolFilter::prepareSearch(const QString &entry)
|
||||
{
|
||||
m_cppFilter->prepareSearch(entry);
|
||||
@@ -178,6 +188,13 @@ ClangClassesFilter::ClangClassesFilter()
|
||||
setDefaultIncludedByDefault(false);
|
||||
}
|
||||
|
||||
LocatorMatcherTasks ClangClassesFilter::matchers()
|
||||
{
|
||||
return CppEditor::cppMatchers(MatcherType::Classes)
|
||||
+ LanguageClient::workspaceMatchers(MatcherType::Classes,
|
||||
ClangModelManagerSupport::clientsForOpenProjects(), MaxResultCount);
|
||||
}
|
||||
|
||||
ClangFunctionsFilter::ClangFunctionsFilter()
|
||||
: ClangGlobalSymbolFilter(new CppFunctionsFilter, new LspFunctionsFilter)
|
||||
{
|
||||
@@ -188,6 +205,13 @@ ClangFunctionsFilter::ClangFunctionsFilter()
|
||||
setDefaultIncludedByDefault(false);
|
||||
}
|
||||
|
||||
LocatorMatcherTasks ClangFunctionsFilter::matchers()
|
||||
{
|
||||
return CppEditor::cppMatchers(MatcherType::Functions)
|
||||
+ LanguageClient::workspaceMatchers(MatcherType::Functions,
|
||||
ClangModelManagerSupport::clientsForOpenProjects(), MaxResultCount);
|
||||
}
|
||||
|
||||
class LspCurrentDocumentFilter : public DocumentLocatorFilter
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -19,6 +19,7 @@ public:
|
||||
~ClangGlobalSymbolFilter() override;
|
||||
|
||||
private:
|
||||
Core::LocatorMatcherTasks matchers() override;
|
||||
void prepareSearch(const QString &entry) override;
|
||||
QList<Core::LocatorFilterEntry> matchesFor(QFutureInterface<Core::LocatorFilterEntry> &future,
|
||||
const QString &entry) override;
|
||||
@@ -26,16 +27,24 @@ private:
|
||||
Core::ILocatorFilter * const m_lspFilter;
|
||||
};
|
||||
|
||||
// TODO: Don't derive, flatten the hierarchy
|
||||
class ClangClassesFilter : public ClangGlobalSymbolFilter
|
||||
{
|
||||
public:
|
||||
ClangClassesFilter();
|
||||
|
||||
private:
|
||||
Core::LocatorMatcherTasks matchers() final;
|
||||
};
|
||||
|
||||
// TODO: Don't derive, flatten the hierarchy
|
||||
class ClangFunctionsFilter : public ClangGlobalSymbolFilter
|
||||
{
|
||||
public:
|
||||
ClangFunctionsFilter();
|
||||
|
||||
private:
|
||||
Core::LocatorMatcherTasks matchers() final;
|
||||
};
|
||||
|
||||
class ClangdCurrentDocumentFilter : public Core::ILocatorFilter
|
||||
|
||||
Reference in New Issue
Block a user