diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 8de88af08a4..b6c0ff9890f 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -27,6 +27,7 @@ #include "clangcompletioncontextanalyzer.h" #include "clangconstants.h" +#include "clangdlocatorfilters.h" #include "clangdqpropertyhighlighter.h" #include "clangmodelmanagersupport.h" #include "clangpreprocessorassistproposalitem.h" @@ -1558,6 +1559,9 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir) }); connect(this, &Client::initialized, this, [this] { + auto currentDocumentFilter = static_cast( + CppEditor::CppModelManager::instance()->currentDocumentFilter()); + currentDocumentFilter->updateCurrentClient(); // If we get this signal while there are pending searches, it means that // the client was re-initialized, i.e. clangd crashed. diff --git a/src/plugins/clangcodemodel/clangdlocatorfilters.cpp b/src/plugins/clangcodemodel/clangdlocatorfilters.cpp index 6a8fd4f6bab..425025ae54b 100644 --- a/src/plugins/clangcodemodel/clangdlocatorfilters.cpp +++ b/src/plugins/clangcodemodel/clangdlocatorfilters.cpp @@ -287,6 +287,11 @@ ClangdCurrentDocumentFilter::ClangdCurrentDocumentFilter() : d(new Private) ClangdCurrentDocumentFilter::~ClangdCurrentDocumentFilter() { delete d; } +void ClangdCurrentDocumentFilter::updateCurrentClient() +{ + d->lspFilter.updateCurrentClient(); +} + void ClangdCurrentDocumentFilter::prepareSearch(const QString &entry) { const auto doc = TextEditor::TextDocument::currentTextDocument(); diff --git a/src/plugins/clangcodemodel/clangdlocatorfilters.h b/src/plugins/clangcodemodel/clangdlocatorfilters.h index bf3f6792820..2f695a4c97c 100644 --- a/src/plugins/clangcodemodel/clangdlocatorfilters.h +++ b/src/plugins/clangcodemodel/clangdlocatorfilters.h @@ -66,6 +66,8 @@ public: ClangdCurrentDocumentFilter(); ~ClangdCurrentDocumentFilter() override; + void updateCurrentClient(); + private: void prepareSearch(const QString &entry) override; QList matchesFor(QFutureInterface &future,