diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp index bd7d8028bc3..24c3415b0f3 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp @@ -336,7 +336,7 @@ static QVector toProjectPartContainers( return projectPartContainers; } -void IpcCommunicator::registerEmptyProjectForProjectLessFiles() +void IpcCommunicator::registerFallbackProjectPart() { QTC_CHECK(m_connection.isConnected()); @@ -524,7 +524,7 @@ void IpcCommunicator::onCoreAboutToClose() void IpcCommunicator::initializeBackendWithCurrentData() { - registerEmptyProjectForProjectLessFiles(); + registerFallbackProjectPart(); registerCurrentProjectParts(); registerCurrentCppEditorDocuments(); registerCurrentCodeModelUiHeaders(); diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.h b/src/plugins/clangcodemodel/clangbackendipcintegration.h index eafec7367e9..030976bfbe9 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.h +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.h @@ -144,6 +144,8 @@ public: void requestDiagnostics(Core::IDocument *document); void updateChangeContentStartPosition(const QString &filePath, int position); + void registerFallbackProjectPart(); + public: // for tests IpcSenderInterface *setIpcSender(IpcSenderInterface *ipcSender); void killBackendProcess(); @@ -156,7 +158,6 @@ private: void initializeBackend(); void initializeBackendWithCurrentData(); - void registerEmptyProjectForProjectLessFiles(); void registerCurrentProjectParts(); void registerCurrentCppEditorDocuments(); void registerCurrentCodeModelUiHeaders(); diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 95a2e51065c..d366097624b 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -300,7 +300,9 @@ void ModelManagerSupportClang::onProjectPartsUpdated(ProjectExplorer::Project *p QTC_ASSERT(project, return); const CppTools::ProjectInfo projectInfo = cppModelManager()->projectInfo(project); QTC_ASSERT(projectInfo.isValid(), return); + m_ipcCommunicator.registerProjectsParts(projectInfo.projectParts()); + m_ipcCommunicator.registerFallbackProjectPart(); } void ModelManagerSupportClang::onProjectPartsRemoved(const QStringList &projectPartIds) @@ -308,6 +310,7 @@ void ModelManagerSupportClang::onProjectPartsRemoved(const QStringList &projectP if (!projectPartIds.isEmpty()) { unregisterTranslationUnitsWithProjectParts(projectPartIds); m_ipcCommunicator.unregisterProjectPartsForEditor(projectPartIds); + m_ipcCommunicator.registerFallbackProjectPart(); } }