diff --git a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp index 65489d7363f..6704ddc02cc 100644 --- a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp +++ b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp @@ -32,6 +32,7 @@ #include "tasktimers.h" #include +#include #include #include #include @@ -381,7 +382,7 @@ void doSemanticHighlighting( const Position startPos(r.line - 1, r.column - 1); virtualRanges << Range(startPos, startPos.withOffset(r.length, &doc)); } - QMetaObject::invokeMethod(ClangModelManagerSupport::instance(), + QMetaObject::invokeMethod(LanguageClientManager::instance(), [filePath, virtualRanges, docRevision] { if (ClangdClient * const client = ClangModelManagerSupport::clientForFile(filePath)) client->setVirtualRanges(filePath, virtualRanges, docRevision); diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index fb93e56fc72..b4a22887618 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -79,8 +79,6 @@ using namespace LanguageClient; namespace ClangCodeModel { namespace Internal { -static ClangModelManagerSupport *m_instance = nullptr; - static CppEditor::CppModelManager *cppModelManager() { return CppEditor::CppModelManager::instance(); @@ -162,9 +160,6 @@ static void checkSystemForClangdSuitability() ClangModelManagerSupport::ClangModelManagerSupport() { - QTC_CHECK(!m_instance); - m_instance = this; - watchForExternalChanges(); watchForInternalChanges(); setupClangdConfigFile(); @@ -214,7 +209,6 @@ ClangModelManagerSupport::ClangModelManagerSupport() ClangModelManagerSupport::~ClangModelManagerSupport() { m_generatorSynchronizer.waitForFinished(); - m_instance = nullptr; } void ClangModelManagerSupport::followSymbol(const CppEditor::CursorInEditor &data, @@ -806,10 +800,5 @@ void ClangModelManagerSupport::reinitializeBackendDocuments(const QStringList &p } } -ClangModelManagerSupport *ClangModelManagerSupport::instance() -{ - return m_instance; -} - } // Internal } // ClangCodeModel diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.h b/src/plugins/clangcodemodel/clangmodelmanagersupport.h index b2d09341c87..fdfe5acbe3b 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.h +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.h @@ -52,7 +52,7 @@ namespace Internal { class ClangdClient; -class ClangModelManagerSupport: +class ClangModelManagerSupport : public QObject, public CppEditor::ModelManagerSupport { @@ -69,8 +69,6 @@ public: static ClangdClient *clientForProject(const ProjectExplorer::Project *project); static ClangdClient *clientForFile(const Utils::FilePath &file); - static ClangModelManagerSupport *instance(); - private: void followSymbol(const CppEditor::CursorInEditor &data, const Utils::LinkHandler &processLinkCallback, bool resolveTarget,