Clang: Clean up some IPC names

This is long overdue since some names were simply wrong and/or
misleading. Also, some of the old names were long enough to almost get
crazy.

The renaming starts from ClangCodeModelServerInterface and
ClangCodeModelClientInterface and affects usages and related functions.

For the ClangCodeModelServerInterface, categorize the messages in
 - messages that require a response (request*)
 - notification messages (the remaining ones)

Change-Id: I5342ed8e0d87404ee72f3c3766fd8ef7505defb1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Nikolai Kosjar
2018-05-31 15:21:53 +02:00
parent 4e4bd4909a
commit f01fbcb789
96 changed files with 1229 additions and 1194 deletions

View File

@@ -74,19 +74,23 @@ class DummyBackendSender : public ClangBackEnd::ClangCodeModelServerInterface
{
public:
void end() override {}
void registerTranslationUnitsForEditor(const RegisterTranslationUnitForEditorMessage &) override {}
void updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &) override {}
void unregisterTranslationUnitsForEditor(const UnregisterTranslationUnitsForEditorMessage &) override {}
void registerProjectPartsForEditor(const RegisterProjectPartsForEditorMessage &) override {}
void unregisterProjectPartsForEditor(const UnregisterProjectPartsForEditorMessage &) override {}
void registerUnsavedFilesForEditor(const RegisterUnsavedFilesForEditorMessage &) override {}
void unregisterUnsavedFilesForEditor(const UnregisterUnsavedFilesForEditorMessage &) override {}
void completeCode(const CompleteCodeMessage &) override {}
void requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &) override {}
void documentsOpened(const DocumentsOpenedMessage &) override {}
void documentsChanged(const DocumentsChangedMessage &) override {}
void documentsClosed(const DocumentsClosedMessage &) override {}
void documentVisibilityChanged(const DocumentVisibilityChangedMessage &) override {}
void projectPartsUpdated(const ProjectPartsUpdatedMessage &) override {}
void projectPartsRemoved(const ProjectPartsRemovedMessage &) override {}
void unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &) override {}
void unsavedFilesRemoved(const UnsavedFilesRemovedMessage &) override {}
void requestCompletions(const RequestCompletionsMessage &) override {}
void requestAnnotations(const RequestAnnotationsMessage &) override {}
void requestReferences(const RequestReferencesMessage &) override {}
void requestFollowSymbol(const RequestFollowSymbolMessage &) override {}
void requestToolTip(const RequestToolTipMessage &) override {}
void updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &) override {}
};
BackendCommunicator::BackendCommunicator()
@@ -161,12 +165,12 @@ static QVector<ProjectPartContainer> toProjectPartContainers(
return projectPartContainers;
}
void BackendCommunicator::registerFallbackProjectPart()
void BackendCommunicator::projectPartsUpdatedForFallback()
{
const auto projectPart = CppTools::CppModelManager::instance()->fallbackProjectPart();
const auto projectPartContainer = toProjectPartContainer(projectPart);
registerProjectPartsForEditor({projectPartContainer});
projectPartsUpdated({projectPartContainer});
}
namespace {
@@ -232,36 +236,36 @@ Utf8StringVector visibleCppEditorDocumentsFilePaths()
}
void BackendCommunicator::updateTranslationUnitVisiblity()
void BackendCommunicator::documentVisibilityChanged()
{
updateTranslationUnitVisiblity(currentCppEditorDocumentFilePath(), visibleCppEditorDocumentsFilePaths());
documentVisibilityChanged(currentCppEditorDocumentFilePath(), visibleCppEditorDocumentsFilePaths());
}
bool BackendCommunicator::isNotWaitingForCompletion() const
{
return !m_receiver.isExpectingCodeCompletedMessage();
return !m_receiver.isExpectingCompletionsMessage();
}
void BackendCommunicator::updateTranslationUnitVisiblity(const Utf8String &currentEditorFilePath,
const Utf8StringVector &visibleEditorsFilePaths)
void BackendCommunicator::documentVisibilityChanged(const Utf8String &currentEditorFilePath,
const Utf8StringVector &visibleEditorsFilePaths)
{
const UpdateVisibleTranslationUnitsMessage message(currentEditorFilePath, visibleEditorsFilePaths);
m_sender->updateVisibleTranslationUnits(message);
const DocumentVisibilityChangedMessage message(currentEditorFilePath, visibleEditorsFilePaths);
m_sender->documentVisibilityChanged(message);
}
void BackendCommunicator::registerCurrentProjectParts()
void BackendCommunicator::projectPartsUpdatedForCurrentProjects()
{
using namespace CppTools;
const QList<ProjectInfo> projectInfos = CppModelManager::instance()->projectInfos();
foreach (const ProjectInfo &projectInfo, projectInfos)
registerProjectsParts(projectInfo.projectParts());
projectPartsUpdated(projectInfo.projectParts());
}
void BackendCommunicator::restoreCppEditorDocuments()
{
resetCppEditorDocumentProcessors();
registerVisibleCppEditorDocumentAndMarkInvisibleDirty();
CppTools::CppModelManager::instance()->updateCppEditorDocuments();
}
void BackendCommunicator::resetCppEditorDocumentProcessors()
@@ -273,12 +277,7 @@ void BackendCommunicator::resetCppEditorDocumentProcessors()
cppEditorDocument->resetProcessor();
}
void BackendCommunicator::registerVisibleCppEditorDocumentAndMarkInvisibleDirty()
{
CppTools::CppModelManager::instance()->updateCppEditorDocuments();
}
void BackendCommunicator::registerCurrentCodeModelUiHeaders()
void BackendCommunicator::unsavedFilesUpdatedForUiHeaders()
{
using namespace CppTools;
@@ -286,53 +285,55 @@ void BackendCommunicator::registerCurrentCodeModelUiHeaders()
foreach (const AbstractEditorSupport *es, editorSupports) {
const QString mappedPath
= ModelManagerSupportClang::instance()->dummyUiHeaderOnDiskPath(es->fileName());
updateUnsavedFile(mappedPath, es->contents(), es->revision());
unsavedFilesUpdated(mappedPath, es->contents(), es->revision());
}
}
void BackendCommunicator::registerProjectsParts(const QVector<CppTools::ProjectPart::Ptr> projectParts)
void BackendCommunicator::projectPartsUpdated(const QVector<CppTools::ProjectPart::Ptr> projectParts)
{
const auto projectPartContainers = toProjectPartContainers(projectParts);
registerProjectPartsForEditor(projectPartContainers);
projectPartsUpdated(projectPartContainers);
}
void BackendCommunicator::updateTranslationUnitFromCppEditorDocument(const QString &filePath)
void BackendCommunicator::documentsChangedFromCppEditorDocument(const QString &filePath)
{
const CppTools::CppEditorDocumentHandle *document = ClangCodeModel::Utils::cppDocument(filePath);
updateTranslationUnit(filePath, document->contents(), document->revision());
documentsChanged(filePath, document->contents(), document->revision());
}
void BackendCommunicator::updateUnsavedFileFromCppEditorDocument(const QString &filePath)
void BackendCommunicator::unsavedFielsUpdatedFromCppEditorDocument(const QString &filePath)
{
const CppTools::CppEditorDocumentHandle *document = ClangCodeModel::Utils::cppDocument(filePath);
updateUnsavedFile(filePath, document->contents(), document->revision());
unsavedFilesUpdated(filePath, document->contents(), document->revision());
}
void BackendCommunicator::updateTranslationUnit(const QString &filePath,
const QByteArray &contents,
uint documentRevision)
void BackendCommunicator::documentsChanged(const QString &filePath,
const QByteArray &contents,
uint documentRevision)
{
const bool hasUnsavedContent = true;
updateTranslationUnitsForEditor({{filePath,
Utf8String(),
Utf8String::fromByteArray(contents),
hasUnsavedContent,
documentRevision}});
documentsChanged({{filePath,
Utf8String(),
Utf8String::fromByteArray(contents),
hasUnsavedContent,
documentRevision}});
}
void BackendCommunicator::updateUnsavedFile(const QString &filePath, const QByteArray &contents, uint documentRevision)
void BackendCommunicator::unsavedFilesUpdated(const QString &filePath,
const QByteArray &contents,
uint documentRevision)
{
const bool hasUnsavedContent = true;
// TODO: Send new only if changed
registerUnsavedFilesForEditor({{filePath,
Utf8String(),
Utf8String::fromByteArray(contents),
hasUnsavedContent,
documentRevision}});
unsavedFilesUpdated({{filePath,
Utf8String(),
Utf8String::fromByteArray(contents),
hasUnsavedContent,
documentRevision}});
}
static bool documentHasChanged(const QString &filePath, uint revision)
@@ -349,19 +350,19 @@ static void setLastSentDocumentRevision(const QString &filePath, uint revision)
document->sendTracker().setLastSentRevision(int(revision));
}
void BackendCommunicator::updateTranslationUnitWithRevisionCheck(const FileContainer &fileContainer)
void BackendCommunicator::documentsChangedWithRevisionCheck(const FileContainer &fileContainer)
{
if (documentHasChanged(fileContainer.filePath, fileContainer.documentRevision)) {
updateTranslationUnitsForEditor({fileContainer});
documentsChanged({fileContainer});
setLastSentDocumentRevision(fileContainer.filePath,
fileContainer.documentRevision);
}
}
void BackendCommunicator::requestDocumentAnnotations(const FileContainer &fileContainer)
void BackendCommunicator::requestAnnotations(const FileContainer &fileContainer)
{
const RequestDocumentAnnotationsMessage message(fileContainer);
m_sender->requestDocumentAnnotations(message);
const RequestAnnotationsMessage message(fileContainer);
m_sender->requestAnnotations(message);
}
QFuture<CppTools::CursorInfo> BackendCommunicator::requestReferences(
@@ -401,24 +402,22 @@ QFuture<CppTools::SymbolInfo> BackendCommunicator::requestFollowSymbol(
quint32 line,
quint32 column)
{
const RequestFollowSymbolMessage message(curFileContainer,
line,
column);
const RequestFollowSymbolMessage message(curFileContainer, line, column);
m_sender->requestFollowSymbol(message);
return m_receiver.addExpectedRequestFollowSymbolMessage(message.ticketNumber);
}
void BackendCommunicator::updateTranslationUnitWithRevisionCheck(Core::IDocument *document)
void BackendCommunicator::documentsChangedWithRevisionCheck(Core::IDocument *document)
{
const auto textDocument = qobject_cast<TextDocument*>(document);
const auto filePath = textDocument->filePath().toString();
const QString projectPartId = CppTools::CppToolsBridge::projectPartIdForFile(filePath);
updateTranslationUnitWithRevisionCheck(FileContainer(filePath,
projectPartId,
Utf8StringVector(),
textDocument->document()->revision()));
documentsChangedWithRevisionCheck(FileContainer(filePath,
projectPartId,
Utf8StringVector(),
textDocument->document()->revision()));
}
void BackendCommunicator::updateChangeContentStartPosition(const QString &filePath, int position)
@@ -427,23 +426,23 @@ void BackendCommunicator::updateChangeContentStartPosition(const QString &filePa
document->sendTracker().applyContentChange(position);
}
void BackendCommunicator::updateTranslationUnitIfNotCurrentDocument(Core::IDocument *document)
void BackendCommunicator::documentsChangedIfNotCurrentDocument(Core::IDocument *document)
{
QTC_ASSERT(document, return);
if (Core::EditorManager::currentDocument() != document)
updateTranslationUnit(document);
documentsChanged(document);
}
void BackendCommunicator::updateTranslationUnit(Core::IDocument *document)
void BackendCommunicator::documentsChanged(Core::IDocument *document)
{
updateTranslationUnitFromCppEditorDocument(document->filePath().toString());
documentsChangedFromCppEditorDocument(document->filePath().toString());
}
void BackendCommunicator::updateUnsavedFile(Core::IDocument *document)
void BackendCommunicator::unsavedFilesUpdated(Core::IDocument *document)
{
QTC_ASSERT(document, return);
updateUnsavedFileFromCppEditorDocument(document->filePath().toString());
unsavedFielsUpdatedFromCppEditorDocument(document->filePath().toString());
}
void BackendCommunicator::onConnectedToBackend()
@@ -511,70 +510,74 @@ void BackendCommunicator::logError(const QString &text)
void BackendCommunicator::initializeBackendWithCurrentData()
{
registerFallbackProjectPart();
registerCurrentProjectParts();
registerCurrentCodeModelUiHeaders();
projectPartsUpdatedForFallback();
projectPartsUpdatedForCurrentProjects();
unsavedFilesUpdatedForUiHeaders();
restoreCppEditorDocuments();
updateTranslationUnitVisiblity();
documentVisibilityChanged();
}
void BackendCommunicator::registerTranslationUnitsForEditor(const FileContainers &fileContainers)
void BackendCommunicator::documentsOpened(const FileContainers &fileContainers)
{
const RegisterTranslationUnitForEditorMessage message(fileContainers,
currentCppEditorDocumentFilePath(),
visibleCppEditorDocumentsFilePaths());
m_sender->registerTranslationUnitsForEditor(message);
const DocumentsOpenedMessage message(fileContainers,
currentCppEditorDocumentFilePath(),
visibleCppEditorDocumentsFilePaths());
m_sender->documentsOpened(message);
}
void BackendCommunicator::updateTranslationUnitsForEditor(const FileContainers &fileContainers)
void BackendCommunicator::documentsChanged(const FileContainers &fileContainers)
{
const UpdateTranslationUnitsForEditorMessage message(fileContainers);
m_sender->updateTranslationUnitsForEditor(message);
const DocumentsChangedMessage message(fileContainers);
m_sender->documentsChanged(message);
}
void BackendCommunicator::unregisterTranslationUnitsForEditor(const FileContainers &fileContainers)
void BackendCommunicator::documentsClosed(const FileContainers &fileContainers)
{
const UnregisterTranslationUnitsForEditorMessage message(fileContainers);
m_sender->unregisterTranslationUnitsForEditor(message);
const DocumentsClosedMessage message(fileContainers);
m_sender->documentsClosed(message);
}
void BackendCommunicator::registerProjectPartsForEditor(
void BackendCommunicator::projectPartsUpdated(
const ProjectPartContainers &projectPartContainers)
{
const RegisterProjectPartsForEditorMessage message(projectPartContainers);
m_sender->registerProjectPartsForEditor(message);
const ProjectPartsUpdatedMessage message(projectPartContainers);
m_sender->projectPartsUpdated(message);
}
void BackendCommunicator::unregisterProjectPartsForEditor(const QStringList &projectPartIds)
void BackendCommunicator::projectPartsRemoved(const QStringList &projectPartIds)
{
const UnregisterProjectPartsForEditorMessage message((Utf8StringVector(projectPartIds)));
m_sender->unregisterProjectPartsForEditor(message);
const ProjectPartsRemovedMessage message((Utf8StringVector(projectPartIds)));
m_sender->projectPartsRemoved(message);
}
void BackendCommunicator::registerUnsavedFilesForEditor(const FileContainers &fileContainers)
void BackendCommunicator::unsavedFilesUpdated(const FileContainers &fileContainers)
{
const RegisterUnsavedFilesForEditorMessage message(fileContainers);
m_sender->registerUnsavedFilesForEditor(message);
const UnsavedFilesUpdatedMessage message(fileContainers);
m_sender->unsavedFilesUpdated(message);
}
void BackendCommunicator::unregisterUnsavedFilesForEditor(const FileContainers &fileContainers)
void BackendCommunicator::unsavedFilesRemoved(const FileContainers &fileContainers)
{
const UnregisterUnsavedFilesForEditorMessage message(fileContainers);
m_sender->unregisterUnsavedFilesForEditor(message);
const UnsavedFilesRemovedMessage message(fileContainers);
m_sender->unsavedFilesRemoved(message);
}
void BackendCommunicator::completeCode(ClangCompletionAssistProcessor *assistProcessor,
const QString &filePath,
quint32 line,
quint32 column,
const QString &projectFilePath,
qint32 funcNameStartLine,
qint32 funcNameStartColumn)
void BackendCommunicator::requestCompletions(ClangCompletionAssistProcessor *assistProcessor,
const QString &filePath,
quint32 line,
quint32 column,
const QString &projectFilePath,
qint32 funcNameStartLine,
qint32 funcNameStartColumn)
{
const CompleteCodeMessage message(filePath, line, column, projectFilePath, funcNameStartLine,
funcNameStartColumn);
m_sender->completeCode(message);
m_receiver.addExpectedCodeCompletedMessage(message.ticketNumber, assistProcessor);
const RequestCompletionsMessage message(filePath,
line,
column,
projectFilePath,
funcNameStartLine,
funcNameStartColumn);
m_sender->requestCompletions(message);
m_receiver.addExpectedCompletionsMessage(message.ticketNumber, assistProcessor);
}
} // namespace Internal

View File

@@ -63,14 +63,40 @@ public:
BackendCommunicator();
~BackendCommunicator();
void registerTranslationUnitsForEditor(const FileContainers &fileContainers);
void updateTranslationUnitsForEditor(const FileContainers &fileContainers);
void unregisterTranslationUnitsForEditor(const FileContainers &fileContainers);
void registerProjectPartsForEditor(const ProjectPartContainers &projectPartContainers);
void unregisterProjectPartsForEditor(const QStringList &projectPartIds);
void registerUnsavedFilesForEditor(const FileContainers &fileContainers);
void unregisterUnsavedFilesForEditor(const FileContainers &fileContainers);
void requestDocumentAnnotations(const ClangBackEnd::FileContainer &fileContainer);
void documentsOpened(const FileContainers &fileContainers);
void documentsChanged(Core::IDocument *document);
void documentsChanged(const QString &filePath,
const QByteArray &contents,
uint documentRevision);
void documentsChanged(const FileContainers &fileContainers);
void documentsChangedFromCppEditorDocument(const QString &filePath);
void documentsChangedIfNotCurrentDocument(Core::IDocument *document);
void documentsChangedWithRevisionCheck(const ClangBackEnd::FileContainer &fileContainer);
void documentsChangedWithRevisionCheck(Core::IDocument *document);
void documentsClosed(const FileContainers &fileContainers);
void documentVisibilityChanged();
void projectPartsUpdated(const QVector<CppTools::ProjectPart::Ptr> projectParts);
void projectPartsUpdated(const ProjectPartContainers &projectPartContainers);
void projectPartsUpdatedForFallback();
void projectPartsRemoved(const QStringList &projectPartIds);
void unsavedFilesUpdated(Core::IDocument *document);
void unsavedFilesUpdated(const QString &filePath,
const QByteArray &contents,
uint documentRevision);
void unsavedFilesUpdated(const FileContainers &fileContainers);
void unsavedFielsUpdatedFromCppEditorDocument(const QString &filePath);
void unsavedFilesRemoved(const FileContainers &fileContainers);
void requestCompletions(ClangCompletionAssistProcessor *assistProcessor,
const QString &filePath,
quint32 line,
quint32 column,
const QString &projectFilePath,
qint32 funcNameStartLine = -1,
qint32 funcNameStartColumn = -1);
void requestAnnotations(const ClangBackEnd::FileContainer &fileContainer);
QFuture<CppTools::CursorInfo> requestReferences(
const FileContainer &fileContainer,
quint32 line,
@@ -86,39 +112,17 @@ public:
QFuture<CppTools::SymbolInfo> requestFollowSymbol(const FileContainer &curFileContainer,
quint32 line,
quint32 column);
void completeCode(ClangCompletionAssistProcessor *assistProcessor, const QString &filePath,
quint32 line,
quint32 column,
const QString &projectFilePath,
qint32 funcNameStartLine = -1,
qint32 funcNameStartColumn = -1);
void registerProjectsParts(const QVector<CppTools::ProjectPart::Ptr> projectParts);
void updateTranslationUnitIfNotCurrentDocument(Core::IDocument *document);
void updateTranslationUnit(Core::IDocument *document);
void updateUnsavedFile(Core::IDocument *document);
void updateTranslationUnitFromCppEditorDocument(const QString &filePath);
void updateUnsavedFileFromCppEditorDocument(const QString &filePath);
void updateTranslationUnit(const QString &filePath, const QByteArray &contents, uint documentRevision);
void updateUnsavedFile(const QString &filePath, const QByteArray &contents, uint documentRevision);
void updateTranslationUnitWithRevisionCheck(const ClangBackEnd::FileContainer &fileContainer);
void updateTranslationUnitWithRevisionCheck(Core::IDocument *document);
void updateChangeContentStartPosition(const QString &filePath, int position);
void registerFallbackProjectPart();
void updateTranslationUnitVisiblity();
bool isNotWaitingForCompletion() const;
private:
void initializeBackend();
void initializeBackendWithCurrentData();
void registerCurrentProjectParts();
void projectPartsUpdatedForCurrentProjects();
void restoreCppEditorDocuments();
void resetCppEditorDocumentProcessors();
void registerVisibleCppEditorDocumentAndMarkInvisibleDirty();
void registerCurrentCodeModelUiHeaders();
void unsavedFilesUpdatedForUiHeaders();
void setupDummySender();
@@ -131,8 +135,8 @@ private:
void logStartTimeOut();
void logError(const QString &text);
void updateTranslationUnitVisiblity(const Utf8String &currentEditorFilePath,
const Utf8StringVector &visibleEditorsFilePaths);
void documentVisibilityChanged(const Utf8String &currentEditorFilePath,
const Utf8StringVector &visibleEditorsFilePaths);
private:
BackendReceiver m_receiver;

View File

@@ -77,7 +77,7 @@ void BackendReceiver::setAliveHandler(const BackendReceiver::AliveHandler &handl
m_aliveHandler = handler;
}
void BackendReceiver::addExpectedCodeCompletedMessage(
void BackendReceiver::addExpectedCompletionsMessage(
quint64 ticket,
ClangCompletionAssistProcessor *processor)
{
@@ -138,7 +138,7 @@ QFuture<CppTools::ToolTipInfo> BackendReceiver::addExpectedToolTipMessage(quint6
return futureInterface.future();
}
bool BackendReceiver::isExpectingCodeCompletedMessage() const
bool BackendReceiver::isExpectingCompletionsMessage() const
{
return !m_assistProcessorsTable.isEmpty();
}
@@ -180,9 +180,9 @@ void BackendReceiver::echo(const EchoMessage &message)
qCDebugIpc() << message;
}
void BackendReceiver::codeCompleted(const CodeCompletedMessage &message)
void BackendReceiver::completions(const CompletionsMessage &message)
{
qCDebugIpc() << "CodeCompletedMessage with" << message.codeCompletions.size()
qCDebugIpc() << "CompletionsMessage with" << message.codeCompletions.size()
<< "items";
const quint64 ticket = message.ticketNumber;
@@ -193,9 +193,9 @@ void BackendReceiver::codeCompleted(const CodeCompletedMessage &message)
}
}
void BackendReceiver::documentAnnotationsChanged(const DocumentAnnotationsChangedMessage &message)
void BackendReceiver::annotations(const AnnotationsMessage &message)
{
qCDebugIpc() << "DocumentAnnotationsChangedMessage with"
qCDebugIpc() << "AnnotationsMessage with"
<< message.diagnostics.size() << "diagnostics"
<< message.tokenInfos.size() << "highlighting marks"
<< message.skippedPreprocessorRanges.size() << "skipped preprocessor ranges";

View File

@@ -51,7 +51,7 @@ public:
using AliveHandler = std::function<void ()>;
void setAliveHandler(const AliveHandler &handler);
void addExpectedCodeCompletedMessage(quint64 ticket, ClangCompletionAssistProcessor *processor);
void addExpectedCompletionsMessage(quint64 ticket, ClangCompletionAssistProcessor *processor);
void deleteProcessorsOfEditorWidget(TextEditor::TextEditorWidget *textEditorWidget);
QFuture<CppTools::CursorInfo>
@@ -60,16 +60,16 @@ public:
= CppTools::SemanticInfo::LocalUseMap());
QFuture<CppTools::SymbolInfo> addExpectedRequestFollowSymbolMessage(quint64 ticket);
QFuture<CppTools::ToolTipInfo> addExpectedToolTipMessage(quint64 ticket);
bool isExpectingCodeCompletedMessage() const;
bool isExpectingCompletionsMessage() const;
void reset();
private:
void alive() override;
void echo(const ClangBackEnd::EchoMessage &message) override;
void codeCompleted(const ClangBackEnd::CodeCompletedMessage &message) override;
void completions(const ClangBackEnd::CompletionsMessage &message) override;
void documentAnnotationsChanged(const ClangBackEnd::DocumentAnnotationsChangedMessage &message) override;
void annotations(const ClangBackEnd::AnnotationsMessage &message) override;
void references(const ClangBackEnd::ReferencesMessage &message) override;
void tooltip(const ClangBackEnd::ToolTipMessage &message) override;
void followSymbol(const ClangBackEnd::FollowSymbolMessage &message) override;

View File

@@ -50,67 +50,67 @@ void BackendSender::end()
m_connection->sendEndMessage();
}
void BackendSender::registerTranslationUnitsForEditor(const RegisterTranslationUnitForEditorMessage &message)
void BackendSender::documentsOpened(const DocumentsOpenedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().registerTranslationUnitsForEditor(message);
m_connection->serverProxy().documentsOpened(message);
}
void BackendSender::updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &message)
void BackendSender::documentsChanged(const DocumentsChangedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().updateTranslationUnitsForEditor(message);
m_connection->serverProxy().documentsChanged(message);
}
void BackendSender::unregisterTranslationUnitsForEditor(const UnregisterTranslationUnitsForEditorMessage &message)
void BackendSender::documentsClosed(const DocumentsClosedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().unregisterTranslationUnitsForEditor(message);
m_connection->serverProxy().documentsClosed(message);
}
void BackendSender::registerProjectPartsForEditor(const RegisterProjectPartsForEditorMessage &message)
void BackendSender::projectPartsUpdated(const ProjectPartsUpdatedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().registerProjectPartsForEditor(message);
m_connection->serverProxy().projectPartsUpdated(message);
}
void BackendSender::unregisterProjectPartsForEditor(const UnregisterProjectPartsForEditorMessage &message)
void BackendSender::projectPartsRemoved(const ProjectPartsRemovedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().unregisterProjectPartsForEditor(message);
m_connection->serverProxy().projectPartsRemoved(message);
}
void BackendSender::registerUnsavedFilesForEditor(const RegisterUnsavedFilesForEditorMessage &message)
void BackendSender::unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().registerUnsavedFilesForEditor(message);
m_connection->serverProxy().unsavedFilesUpdated(message);
}
void BackendSender::unregisterUnsavedFilesForEditor(const UnregisterUnsavedFilesForEditorMessage &message)
void BackendSender::unsavedFilesRemoved(const UnsavedFilesRemovedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().unregisterUnsavedFilesForEditor(message);
m_connection->serverProxy().unsavedFilesRemoved(message);
}
void BackendSender::completeCode(const CompleteCodeMessage &message)
void BackendSender::requestCompletions(const RequestCompletionsMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().completeCode(message);
m_connection->serverProxy().requestCompletions(message);
}
void BackendSender::requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &message)
void BackendSender::requestAnnotations(const RequestAnnotationsMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().requestDocumentAnnotations(message);
m_connection->serverProxy().requestAnnotations(message);
}
void BackendSender::requestReferences(const RequestReferencesMessage &message)
@@ -134,11 +134,11 @@ void BackendSender::requestFollowSymbol(const RequestFollowSymbolMessage &messag
m_connection->serverProxy().requestFollowSymbol(message);
}
void BackendSender::updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &message)
void BackendSender::documentVisibilityChanged(const DocumentVisibilityChangedMessage &message)
{
QTC_CHECK(m_connection->isConnected());
qCDebugIpc() << message;
m_connection->serverProxy().updateVisibleTranslationUnits(message);
m_connection->serverProxy().documentVisibilityChanged(message);
}
} // namespace Internal

View File

@@ -38,19 +38,23 @@ public:
BackendSender(ClangBackEnd::ClangCodeModelConnectionClient *connectionClient);
void end() override;
void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &message) override;
void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &message) override;
void unregisterTranslationUnitsForEditor(const ClangBackEnd::UnregisterTranslationUnitsForEditorMessage &message) override;
void registerProjectPartsForEditor(const ClangBackEnd::RegisterProjectPartsForEditorMessage &message) override;
void unregisterProjectPartsForEditor(const ClangBackEnd::UnregisterProjectPartsForEditorMessage &message) override;
void registerUnsavedFilesForEditor(const ClangBackEnd::RegisterUnsavedFilesForEditorMessage &message) override;
void unregisterUnsavedFilesForEditor(const ClangBackEnd::UnregisterUnsavedFilesForEditorMessage &message) override;
void completeCode(const ClangBackEnd::CompleteCodeMessage &message) override;
void requestDocumentAnnotations(const ClangBackEnd::RequestDocumentAnnotationsMessage &message) override;
void documentsOpened(const ClangBackEnd::DocumentsOpenedMessage &message) override;
void documentsChanged(const ClangBackEnd::DocumentsChangedMessage &message) override;
void documentsClosed(const ClangBackEnd::DocumentsClosedMessage &message) override;
void documentVisibilityChanged(const ClangBackEnd::DocumentVisibilityChangedMessage &message) override;
void projectPartsUpdated(const ClangBackEnd::ProjectPartsUpdatedMessage &message) override;
void projectPartsRemoved(const ClangBackEnd::ProjectPartsRemovedMessage &message) override;
void unsavedFilesUpdated(const ClangBackEnd::UnsavedFilesUpdatedMessage &message) override;
void unsavedFilesRemoved(const ClangBackEnd::UnsavedFilesRemovedMessage &message) override;
void requestCompletions(const ClangBackEnd::RequestCompletionsMessage &message) override;
void requestAnnotations(const ClangBackEnd::RequestAnnotationsMessage &message) override;
void requestReferences(const ClangBackEnd::RequestReferencesMessage &message) override;
void requestToolTip(const ClangBackEnd::RequestToolTipMessage &message) override;
void requestFollowSymbol(const ClangBackEnd::RequestFollowSymbolMessage &message) override;
void updateVisibleTranslationUnits(const ClangBackEnd::UpdateVisibleTranslationUnitsMessage &message) override;
private:
ClangBackEnd::ClangCodeModelConnectionClient *m_connection = nullptr;

View File

@@ -494,11 +494,11 @@ void ClangCompletionAssistProcessor::sendFileContent(const QByteArray &customFil
const UnsavedFileContentInfo info = unsavedFileContent(customFileContent);
BackendCommunicator &communicator = m_interface->communicator();
communicator.updateTranslationUnitsForEditor({{m_interface->fileName(),
Utf8String(),
Utf8String::fromByteArray(info.unsavedContent),
info.isDocumentModified,
uint(m_interface->textDocument()->revision())}});
communicator.documentsChanged({{m_interface->fileName(),
Utf8String(),
Utf8String::fromByteArray(info.unsavedContent),
info.isDocumentModified,
uint(m_interface->textDocument()->revision())}});
}
namespace {
bool shouldSendDocumentForCompletion(const QString &filePath,
@@ -577,9 +577,13 @@ bool ClangCompletionAssistProcessor::sendCompletionRequest(int position,
const Position cursorPosition = extractLineColumn(position);
const Position functionNameStart = extractLineColumn(functionNameStartPosition);
const QString projectPartId = CppTools::CppToolsBridge::projectPartIdForFile(filePath);
communicator.completeCode(this, filePath, uint(cursorPosition.line),
uint(cursorPosition.column), projectPartId,
functionNameStart.line, functionNameStart.column);
communicator.requestCompletions(this,
filePath,
uint(cursorPosition.line),
uint(cursorPosition.column),
projectPartId,
functionNameStart.line,
functionNameStart.column);
setLastCompletionPosition(filePath, position);
return true;
}

View File

@@ -88,7 +88,7 @@ ClangEditorDocumentProcessor::ClangEditorDocumentProcessor(
m_updateTranslationUnitTimer.setSingleShot(true);
m_updateTranslationUnitTimer.setInterval(350);
connect(&m_updateTranslationUnitTimer, &QTimer::timeout,
this, &ClangEditorDocumentProcessor::updateTranslationUnitIfProjectPartExists);
this, &ClangEditorDocumentProcessor::updateBackendDocumentIfProjectPartExists);
connect(m_parser.data(), &ClangEditorDocumentParser::projectPartInfoUpdated,
this, &BaseEditorDocumentProcessor::projectPartInfoUpdated);
@@ -109,7 +109,7 @@ ClangEditorDocumentProcessor::~ClangEditorDocumentProcessor()
m_parserWatcher.waitForFinished();
if (m_projectPart)
unregisterTranslationUnitForEditor();
closeBackendDocument();
}
void ClangEditorDocumentProcessor::runImpl(
@@ -143,7 +143,7 @@ void ClangEditorDocumentProcessor::semanticRehighlight()
m_semanticHighlighter.updateFormatMapFromFontSettings();
if (m_projectPart)
requestDocumentAnnotations(m_projectPart->id());
requestAnnotationsFromBackend(m_projectPart->id());
}
CppTools::SemanticInfo ClangEditorDocumentProcessor::recalculateSemanticInfo()
@@ -427,12 +427,12 @@ static bool isProjectPartLoadedOrIsFallback(CppTools::ProjectPart::Ptr projectPa
&& (projectPart->id().isEmpty() || ClangCodeModel::Utils::isProjectPartLoaded(projectPart));
}
void ClangEditorDocumentProcessor::updateProjectPartAndTranslationUnitForEditor()
void ClangEditorDocumentProcessor::updateBackendProjectPartAndDocument()
{
const CppTools::ProjectPart::Ptr projectPart = m_parser->projectPartInfo().projectPart;
if (isProjectPartLoadedOrIsFallback(projectPart)) {
registerTranslationUnitForEditor(*projectPart.data());
updateBackendDocument(*projectPart.data());
m_projectPart = projectPart;
m_isProjectFile = m_parser->projectPartInfo().hints
@@ -445,7 +445,7 @@ void ClangEditorDocumentProcessor::onParserFinished()
if (revision() != m_parserRevision)
return;
updateProjectPartAndTranslationUnitForEditor();
updateBackendProjectPartAndDocument();
}
namespace {
@@ -592,7 +592,7 @@ private:
};
} // namespace
void ClangEditorDocumentProcessor::registerTranslationUnitForEditor(
void ClangEditorDocumentProcessor::updateBackendDocument(
CppTools::ProjectPart &projectPart)
{
// On registration we send the document content immediately as an unsaved
@@ -611,32 +611,31 @@ void ClangEditorDocumentProcessor::registerTranslationUnitForEditor(
const FileOptionsBuilder fileOptions(filePath(), projectPart);
m_diagnosticConfigId = fileOptions.diagnosticConfigId();
m_communicator.registerTranslationUnitsForEditor(
m_communicator.documentsOpened(
{fileContainerWithOptionsAndDocumentContent(projectPart, fileOptions.options())});
ClangCodeModel::Utils::setLastSentDocumentRevision(filePath(), revision());
}
void ClangEditorDocumentProcessor::unregisterTranslationUnitForEditor()
void ClangEditorDocumentProcessor::closeBackendDocument()
{
QTC_ASSERT(m_projectPart, return);
m_communicator.unregisterTranslationUnitsForEditor(
{ClangBackEnd::FileContainer(filePath(), m_projectPart->id())});
m_communicator.documentsClosed({ClangBackEnd::FileContainer(filePath(), m_projectPart->id())});
}
void ClangEditorDocumentProcessor::updateTranslationUnitIfProjectPartExists()
void ClangEditorDocumentProcessor::updateBackendDocumentIfProjectPartExists()
{
if (m_projectPart) {
const ClangBackEnd::FileContainer fileContainer = fileContainerWithDocumentContent(m_projectPart->id());
m_communicator.updateTranslationUnitWithRevisionCheck(fileContainer);
const ClangBackEnd::FileContainer fileContainer = fileContainerWithDocumentContent(
m_projectPart->id());
m_communicator.documentsChangedWithRevisionCheck(fileContainer);
}
}
void ClangEditorDocumentProcessor::requestDocumentAnnotations(const QString &projectpartId)
void ClangEditorDocumentProcessor::requestAnnotationsFromBackend(const QString &projectpartId)
{
const auto fileContainer = fileContainerWithDocumentContent(projectpartId);
m_communicator.requestDocumentAnnotations(fileContainer);
m_communicator.requestAnnotations(fileContainer);
}
CppTools::BaseEditorDocumentProcessor::HeaderErrorDiagnosticWidgetCreator

View File

@@ -97,7 +97,7 @@ public:
int line,
int column) override;
void unregisterTranslationUnitForEditor();
void closeBackendDocument();
void clearDiagnosticsWithFixIts();
@@ -114,10 +114,12 @@ signals:
private:
void onParserFinished();
void updateProjectPartAndTranslationUnitForEditor();
void registerTranslationUnitForEditor(CppTools::ProjectPart &projectPart);
void updateTranslationUnitIfProjectPartExists();
void requestDocumentAnnotations(const QString &projectpartId);
void updateBackendProjectPartAndDocument();
void updateBackendDocument(CppTools::ProjectPart &projectPart);
void updateBackendDocumentIfProjectPartExists();
void requestAnnotationsFromBackend(const QString &projectpartId);
HeaderErrorDiagnosticWidgetCreator creatorForHeaderErrorDiagnosticWidget(
const ClangBackEnd::DiagnosticContainer &firstHeaderErrorDiagnostic);
ClangBackEnd::FileContainer simpleFileContainer(const QByteArray &codecName = QByteArray()) const;

View File

@@ -49,9 +49,9 @@
#include <projectexplorer/project.h>
#include <projectexplorer/session.h>
#include <clangsupport/cmbregisterprojectsforeditormessage.h>
#include <clangsupport/filecontainer.h>
#include <clangsupport/projectpartcontainer.h>
#include <clangsupport/projectpartsupdatedmessage.h>
#include <utils/algorithm.h>
#include <utils/qtcassert.h>
@@ -108,7 +108,7 @@ ModelManagerSupportClang::ModelManagerSupportClang()
connect(settings, &CppTools::CppCodeModelSettings::clangDiagnosticConfigsInvalidated,
this, &ModelManagerSupportClang::onDiagnosticConfigsInvalidated);
m_communicator.registerFallbackProjectPart();
m_communicator.projectPartsUpdatedForFallback();
}
ModelManagerSupportClang::~ModelManagerSupportClang()
@@ -150,7 +150,7 @@ CppTools::BaseEditorDocumentProcessor *ModelManagerSupportClang::createEditorDoc
void ModelManagerSupportClang::onCurrentEditorChanged(Core::IEditor *editor)
{
m_communicator.updateTranslationUnitVisiblity();
m_communicator.documentVisibilityChanged();
// Update task hub issues for current CppEditorDocument
ClangEditorDocumentProcessor::clearTaskHubIssues();
@@ -232,7 +232,7 @@ void ModelManagerSupportClang::onEditorOpened(Core::IEditor *editor)
void ModelManagerSupportClang::onEditorClosed(const QList<Core::IEditor *> &)
{
m_communicator.updateTranslationUnitVisiblity();
m_communicator.documentVisibilityChanged();
}
void ModelManagerSupportClang::onCppDocumentAboutToReloadOnTranslationUnit()
@@ -247,7 +247,7 @@ void ModelManagerSupportClang::onCppDocumentReloadFinishedOnTranslationUnit(bool
if (success) {
TextEditor::TextDocument *textDocument = qobject_cast<TextEditor::TextDocument *>(sender());
connectToTextDocumentContentsChangedForTranslationUnit(textDocument);
m_communicator.updateTranslationUnitWithRevisionCheck(textDocument);
m_communicator.documentsChangedWithRevisionCheck(textDocument);
}
}
@@ -268,7 +268,7 @@ void ModelManagerSupportClang::onCppDocumentContentsChangedOnTranslationUnit(int
m_communicator.updateChangeContentStartPosition(document->filePath().toString(),
position);
m_communicator.updateTranslationUnitIfNotCurrentDocument(document);
m_communicator.documentsChangedIfNotCurrentDocument(document);
clearDiagnosticFixIts(document->filePath().toString());
}
@@ -285,14 +285,14 @@ void ModelManagerSupportClang::onCppDocumentReloadFinishedOnUnsavedFile(bool suc
if (success) {
TextEditor::TextDocument *textDocument = qobject_cast<TextEditor::TextDocument *>(sender());
connectToTextDocumentContentsChangedForUnsavedFile(textDocument);
m_communicator.updateUnsavedFile(textDocument);
m_communicator.unsavedFilesUpdated(textDocument);
}
}
void ModelManagerSupportClang::onCppDocumentContentsChangedOnUnsavedFile()
{
Core::IDocument *document = qobject_cast<Core::IDocument *>(sender());
m_communicator.updateUnsavedFile(document);
m_communicator.unsavedFilesUpdated(document);
}
void ModelManagerSupportClang::onAbstractEditorSupportContentsUpdated(const QString &filePath,
@@ -301,7 +301,7 @@ void ModelManagerSupportClang::onAbstractEditorSupportContentsUpdated(const QStr
QTC_ASSERT(!filePath.isEmpty(), return);
const QString mappedPath = m_uiHeaderOnDiskManager.createIfNeeded(filePath);
m_communicator.updateUnsavedFile(mappedPath, content, 0);
m_communicator.unsavedFilesUpdated(mappedPath, content, 0);
}
void ModelManagerSupportClang::onAbstractEditorSupportRemoved(const QString &filePath)
@@ -311,7 +311,7 @@ void ModelManagerSupportClang::onAbstractEditorSupportRemoved(const QString &fil
if (!cppModelManager()->cppEditorDocument(filePath)) {
const QString mappedPath = m_uiHeaderOnDiskManager.remove(filePath);
const QString projectPartId = Utils::projectPartIdForFile(filePath);
m_communicator.unregisterUnsavedFilesForEditor({{mappedPath, projectPartId}});
m_communicator.unsavedFilesRemoved({{mappedPath, projectPartId}});
}
}
@@ -411,16 +411,16 @@ void ModelManagerSupportClang::onProjectPartsUpdated(ProjectExplorer::Project *p
const CppTools::ProjectInfo projectInfo = cppModelManager()->projectInfo(project);
QTC_ASSERT(projectInfo.isValid(), return);
m_communicator.registerProjectsParts(projectInfo.projectParts());
m_communicator.registerFallbackProjectPart();
m_communicator.projectPartsUpdated(projectInfo.projectParts());
m_communicator.projectPartsUpdatedForFallback();
}
void ModelManagerSupportClang::onProjectPartsRemoved(const QStringList &projectPartIds)
{
if (!projectPartIds.isEmpty()) {
unregisterTranslationUnitsWithProjectParts(projectPartIds);
m_communicator.unregisterProjectPartsForEditor(projectPartIds);
m_communicator.registerFallbackProjectPart();
closeBackendDocumentsWithProjectParts(projectPartIds);
m_communicator.projectPartsRemoved(projectPartIds);
m_communicator.projectPartsUpdatedForFallback();
}
}
@@ -445,12 +445,12 @@ clangProcessorsWithProjectParts(const QStringList &projectPartIds)
});
}
void ModelManagerSupportClang::unregisterTranslationUnitsWithProjectParts(
void ModelManagerSupportClang::closeBackendDocumentsWithProjectParts(
const QStringList &projectPartIds)
{
const auto processors = clangProcessorsWithProjectParts(projectPartIds);
foreach (ClangEditorDocumentProcessor *processor, processors) {
processor->unregisterTranslationUnitForEditor();
processor->closeBackendDocument();
processor->clearProjectPart();
processor->run();
}

View File

@@ -109,7 +109,7 @@ private:
void onDiagnosticConfigsInvalidated(const QVector<Core::Id> &configIds);
void unregisterTranslationUnitsWithProjectParts(const QStringList &projectPartIds);
void closeBackendDocumentsWithProjectParts(const QStringList &projectPartIds);
void connectTextDocumentToTranslationUnit(TextEditor::TextDocument *textDocument);
void connectTextDocumentToUnsavedFiles(TextEditor::TextDocument *textDocument);