diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp index b15e8470a03..f7c7eecf3e6 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp @@ -30,10 +30,10 @@ #include "clangeditordocumentprocessor.h" +#include "clangbackendipcintegration.h" #include "clangfixitoperation.h" #include "clangfixitoperationsextractor.h" #include "clanghighlightingmarksreporter.h" -#include "clangmodelmanagersupport.h" #include "clangutils.h" #include @@ -62,11 +62,11 @@ namespace ClangCodeModel { namespace Internal { ClangEditorDocumentProcessor::ClangEditorDocumentProcessor( - ModelManagerSupportClang *modelManagerSupport, + IpcCommunicator &ipcCommunicator, TextEditor::TextDocument *document) : BaseEditorDocumentProcessor(document) , m_diagnosticManager(document) - , m_modelManagerSupport(modelManagerSupport) + , m_ipcCommunicator(ipcCommunicator) , m_parser(new ClangEditorDocumentParser(document->filePath().toString())) , m_parserRevision(0) , m_semanticHighlighter(document) @@ -86,8 +86,7 @@ ClangEditorDocumentProcessor::~ClangEditorDocumentProcessor() m_parserWatcher.waitForFinished(); if (m_projectPart) { - QTC_ASSERT(m_modelManagerSupport, return); - m_modelManagerSupport->ipcCommunicator().unregisterTranslationUnitsForEditor( + m_ipcCommunicator.unregisterTranslationUnitsForEditor( {ClangBackEnd::FileContainer(filePath(), m_projectPart->id())}); } } @@ -281,16 +280,13 @@ void ClangEditorDocumentProcessor::onParserFinished() void ClangEditorDocumentProcessor::registerTranslationUnitForEditor(CppTools::ProjectPart *projectPart) { - QTC_ASSERT(m_modelManagerSupport, return); - IpcCommunicator &ipcCommunicator = m_modelManagerSupport->ipcCommunicator(); - if (m_projectPart) { if (projectPart->id() != m_projectPart->id()) { - ipcCommunicator.unregisterTranslationUnitsForEditor({fileContainerWithArguments()}); - ipcCommunicator.registerTranslationUnitsForEditor({fileContainerWithArguments(projectPart)}); + m_ipcCommunicator.unregisterTranslationUnitsForEditor({fileContainerWithArguments()}); + m_ipcCommunicator.registerTranslationUnitsForEditor({fileContainerWithArguments(projectPart)}); } } else { - ipcCommunicator.registerTranslationUnitsForEditor({{fileContainerWithArguments(projectPart)}}); + m_ipcCommunicator.registerTranslationUnitsForEditor({{fileContainerWithArguments(projectPart)}}); } } @@ -299,7 +295,7 @@ void ClangEditorDocumentProcessor::updateTranslationUnitIfProjectPartExists() if (m_projectPart) { const ClangBackEnd::FileContainer fileContainer = fileContainerWithDocumentContent(m_projectPart->id()); - m_modelManagerSupport->ipcCommunicator().updateTranslationUnitWithRevisionCheck(fileContainer); + m_ipcCommunicator.updateTranslationUnitWithRevisionCheck(fileContainer); } } @@ -307,9 +303,8 @@ void ClangEditorDocumentProcessor::requestDocumentAnnotations(const QString &pro { const auto fileContainer = fileContainerWithDocumentContent(projectpartId); - auto &ipcCommunicator = m_modelManagerSupport->ipcCommunicator(); - ipcCommunicator.requestDiagnostics(fileContainer); - ipcCommunicator.requestHighlighting(fileContainer); + m_ipcCommunicator.requestDiagnostics(fileContainer); + m_ipcCommunicator.requestHighlighting(fileContainer); } static CppTools::ProjectPart projectPartForLanguageOption(CppTools::ProjectPart *projectPart) diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h index 323f0f54a62..a269f4f6ce3 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h @@ -34,12 +34,10 @@ #include "clangdiagnosticmanager.h" #include "clangeditordocumentparser.h" -#include #include #include #include -#include namespace ClangBackEnd { class DiagnosticContainer; @@ -50,14 +48,14 @@ class FileContainer; namespace ClangCodeModel { namespace Internal { -class ModelManagerSupportClang; +class IpcCommunicator; class ClangEditorDocumentProcessor : public CppTools::BaseEditorDocumentProcessor { Q_OBJECT public: - ClangEditorDocumentProcessor(ModelManagerSupportClang *modelManagerSupport, + ClangEditorDocumentProcessor(IpcCommunicator &ipcCommunicator, TextEditor::TextDocument *document); ~ClangEditorDocumentProcessor(); @@ -103,7 +101,7 @@ private: private: ClangDiagnosticManager m_diagnosticManager; - QPointer m_modelManagerSupport; + IpcCommunicator &m_ipcCommunicator; QSharedPointer m_parser; CppTools::ProjectPart::Ptr m_projectPart; QFutureWatcher m_parserWatcher; diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 0154366990a..4025f6b92a7 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -100,7 +100,7 @@ CppTools::CppCompletionAssistProvider *ModelManagerSupportClang::completionAssis CppTools::BaseEditorDocumentProcessor *ModelManagerSupportClang::editorDocumentProcessor( TextEditor::TextDocument *baseTextDocument) { - return new ClangEditorDocumentProcessor(this, baseTextDocument); + return new ClangEditorDocumentProcessor(m_ipcCommunicator, baseTextDocument); } void ModelManagerSupportClang::onCurrentEditorChanged(Core::IEditor *)