forked from qt-creator/qt-creator
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:
@@ -25,7 +25,7 @@ HEADERS += \
|
||||
$$PWD/clangjobs.h \
|
||||
$$PWD/clangparsesupportivetranslationunitjob.h \
|
||||
$$PWD/clangreferencescollector.h \
|
||||
$$PWD/clangrequestdocumentannotationsjob.h \
|
||||
$$PWD/clangrequestannotationsjob.h \
|
||||
$$PWD/clangrequestreferencesjob.h \
|
||||
$$PWD/clangrequesttooltipjob.h \
|
||||
$$PWD/clangresumedocumentjob.h \
|
||||
@@ -38,8 +38,8 @@ HEADERS += \
|
||||
$$PWD/clangtranslationunitupdater.h \
|
||||
$$PWD/clangtype.h \
|
||||
$$PWD/clangunsavedfilesshallowarguments.h \
|
||||
$$PWD/clangupdatedocumentannotationsjob.h \
|
||||
$$PWD/clangupdateextradocumentannotationsjob.h \
|
||||
$$PWD/clangupdateannotationsjob.h \
|
||||
$$PWD/clangupdateextraannotationsjob.h \
|
||||
$$PWD/codecompleter.h \
|
||||
$$PWD/codecompletionchunkconverter.h \
|
||||
$$PWD/codecompletionsextractor.h \
|
||||
@@ -84,7 +84,7 @@ SOURCES += \
|
||||
$$PWD/clangparsesupportivetranslationunitjob.cpp \
|
||||
$$PWD/clangresumedocumentjob.cpp \
|
||||
$$PWD/clangreferencescollector.cpp \
|
||||
$$PWD/clangrequestdocumentannotationsjob.cpp \
|
||||
$$PWD/clangrequestannotationsjob.cpp \
|
||||
$$PWD/clangrequestreferencesjob.cpp \
|
||||
$$PWD/clangrequesttooltipjob.cpp \
|
||||
$$PWD/clangsuspenddocumentjob.cpp \
|
||||
@@ -95,8 +95,8 @@ SOURCES += \
|
||||
$$PWD/clangtranslationunitupdater.cpp \
|
||||
$$PWD/clangtype.cpp \
|
||||
$$PWD/clangunsavedfilesshallowarguments.cpp \
|
||||
$$PWD/clangupdatedocumentannotationsjob.cpp \
|
||||
$$PWD/clangupdateextradocumentannotationsjob.cpp \
|
||||
$$PWD/clangupdateannotationsjob.cpp \
|
||||
$$PWD/clangupdateextraannotationsjob.cpp \
|
||||
$$PWD/codecompleter.cpp \
|
||||
$$PWD/codecompletionchunkconverter.cpp \
|
||||
$$PWD/codecompletionsextractor.cpp \
|
||||
|
||||
@@ -57,8 +57,8 @@ namespace ClangBackEnd {
|
||||
ClangCodeModelServer::ClangCodeModelServer()
|
||||
: documents(projects, unsavedFiles)
|
||||
{
|
||||
updateDocumentAnnotationsTimer.setSingleShot(true);
|
||||
QObject::connect(&updateDocumentAnnotationsTimer,
|
||||
updateAnnotationsTimer.setSingleShot(true);
|
||||
QObject::connect(&updateAnnotationsTimer,
|
||||
&QTimer::timeout,
|
||||
[this]() {
|
||||
processJobsForDirtyAndVisibleDocuments();
|
||||
@@ -75,7 +75,7 @@ ClangCodeModelServer::ClangCodeModelServer()
|
||||
&ClangFileSystemWatcher::fileChanged,
|
||||
[this](const Utf8String &filePath) {
|
||||
if (!documents.hasDocumentWithFilePath(filePath))
|
||||
updateDocumentAnnotationsTimer.start(0);
|
||||
updateAnnotationsTimer.start(0);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -92,11 +92,10 @@ static std::vector<Document> operator+(const std::vector<Document> &a,
|
||||
return result;
|
||||
}
|
||||
|
||||
// TODO: Rename to createOrUpdate...
|
||||
void ClangCodeModelServer::registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &message)
|
||||
void ClangCodeModelServer::documentsOpened(const ClangBackEnd::DocumentsOpenedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## registerTranslationUnitsForEditor";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::registerTranslationUnitsForEditor");
|
||||
qCDebug(serverLog) << "########## documentsOpened";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::documentsOpened");
|
||||
|
||||
try {
|
||||
DocumentResetInfos toReset;
|
||||
@@ -115,14 +114,14 @@ void ClangCodeModelServer::registerTranslationUnitsForEditor(const ClangBackEnd:
|
||||
processSuspendResumeJobs(documents.documents());
|
||||
processInitialJobsForDocuments(createdDocuments + resetDocuments_);
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::registerTranslationUnitsForEditor:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::documentsOpened:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &message)
|
||||
void ClangCodeModelServer::documentsChanged(const DocumentsChangedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## updateTranslationUnitsForEditor";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::updateTranslationUnitsForEditor");
|
||||
qCDebug(serverLog) << "########## documentsChanged";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::documentsChanged");
|
||||
|
||||
try {
|
||||
const auto newerFileContainers = documents.newerFileContainers(message.fileContainers);
|
||||
@@ -138,17 +137,17 @@ void ClangCodeModelServer::updateTranslationUnitsForEditor(const UpdateTranslati
|
||||
// Start the jobs on the next event loop iteration since otherwise
|
||||
// we might block the translation unit for a completion request
|
||||
// that comes right after this message.
|
||||
updateDocumentAnnotationsTimer.start(0);
|
||||
updateAnnotationsTimer.start(0);
|
||||
}
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::updateTranslationUnitsForEditor:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::documentsChanged:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::unregisterTranslationUnitsForEditor(const ClangBackEnd::UnregisterTranslationUnitsForEditorMessage &message)
|
||||
void ClangCodeModelServer::documentsClosed(const ClangBackEnd::DocumentsClosedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## unregisterTranslationUnitsForEditor";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::unregisterTranslationUnitsForEditor");
|
||||
qCDebug(serverLog) << "########## documentsClosed";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::documentsClosed");
|
||||
|
||||
try {
|
||||
for (const auto &fileContainer : message.fileContainers) {
|
||||
@@ -158,7 +157,7 @@ void ClangCodeModelServer::unregisterTranslationUnitsForEditor(const ClangBackEn
|
||||
documents.remove(message.fileContainers);
|
||||
unsavedFiles.remove(message.fileContainers);
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::unregisterTranslationUnitsForEditor:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::documentsClosed:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,10 +169,10 @@ static DocumentResetInfos toDocumentResetInfos(const std::vector<Document> &docu
|
||||
return infos;
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::registerProjectPartsForEditor(const RegisterProjectPartsForEditorMessage &message)
|
||||
void ClangCodeModelServer::projectPartsUpdated(const ProjectPartsUpdatedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## registerProjectPartsForEditor";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::registerProjectPartsForEditor");
|
||||
qCDebug(serverLog) << "########## projectPartsUpdated";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::projectPartsUpdated");
|
||||
|
||||
try {
|
||||
projects.createOrUpdate(message.projectContainers);
|
||||
@@ -183,60 +182,60 @@ void ClangCodeModelServer::registerProjectPartsForEditor(const RegisterProjectPa
|
||||
|
||||
processJobsForDirtyAndVisibleDocuments();
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::registerProjectPartsForEditor:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::projectPartsUpdated:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::unregisterProjectPartsForEditor(const UnregisterProjectPartsForEditorMessage &message)
|
||||
void ClangCodeModelServer::projectPartsRemoved(const ProjectPartsRemovedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## unregisterProjectPartsForEditor";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::unregisterProjectPartsForEditor");
|
||||
qCDebug(serverLog) << "########## projectPartsRemoved";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::projectPartsRemoved");
|
||||
|
||||
try {
|
||||
projects.remove(message.projectPartIds);
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::unregisterProjectPartsForEditor:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::projectPartsRemoved:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::registerUnsavedFilesForEditor(const RegisterUnsavedFilesForEditorMessage &message)
|
||||
void ClangCodeModelServer::unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## registerUnsavedFilesForEditor";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::registerUnsavedFilesForEditor");
|
||||
qCDebug(serverLog) << "########## unsavedFilesUpdated";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::unsavedFilesUpdated");
|
||||
|
||||
try {
|
||||
unsavedFiles.createOrUpdate(message.fileContainers);
|
||||
documents.updateDocumentsWithChangedDependencies(message.fileContainers);
|
||||
|
||||
updateDocumentAnnotationsTimer.start(updateDocumentAnnotationsTimeOutInMs);
|
||||
updateAnnotationsTimer.start(updateAnnotationsTimeOutInMs);
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::registerUnsavedFilesForEditor:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::unsavedFilesUpdated:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::unregisterUnsavedFilesForEditor(const UnregisterUnsavedFilesForEditorMessage &message)
|
||||
void ClangCodeModelServer::unsavedFilesRemoved(const UnsavedFilesRemovedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## registerUnsavedFilesForEditor";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::unregisterUnsavedFilesForEditor");
|
||||
qCDebug(serverLog) << "########## unsavedFilesRemoved";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::unsavedFilesRemoved");
|
||||
|
||||
try {
|
||||
unsavedFiles.remove(message.fileContainers);
|
||||
documents.updateDocumentsWithChangedDependencies(message.fileContainers);
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::unregisterUnsavedFilesForEditor:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::unsavedFilesRemoved:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::completeCode(const ClangBackEnd::CompleteCodeMessage &message)
|
||||
void ClangCodeModelServer::requestCompletions(const ClangBackEnd::RequestCompletionsMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## completeCode";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::completeCode");
|
||||
qCDebug(serverLog) << "########## requestCompletions";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::requestCompletions");
|
||||
|
||||
try {
|
||||
Document document = documents.document(message.filePath, message.projectPartId);
|
||||
DocumentProcessor processor = documentProcessors().processor(document);
|
||||
|
||||
JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::CompleteCode);
|
||||
JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::RequestCompletions);
|
||||
jobRequest.line = message.line;
|
||||
jobRequest.column = message.column;
|
||||
jobRequest.funcNameStartLine = message.funcNameStartLine;
|
||||
@@ -246,25 +245,25 @@ void ClangCodeModelServer::completeCode(const ClangBackEnd::CompleteCodeMessage
|
||||
processor.addJob(jobRequest);
|
||||
processor.process();
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::completeCode:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::requestCompletions:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &message)
|
||||
void ClangCodeModelServer::requestAnnotations(const RequestAnnotationsMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## requestDocumentAnnotations";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::requestDocumentAnnotations");
|
||||
qCDebug(serverLog) << "########## requestAnnotations";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::requestAnnotations");
|
||||
|
||||
try {
|
||||
auto document = documents.document(message.fileContainer.filePath,
|
||||
message.fileContainer.projectPartId);
|
||||
|
||||
DocumentProcessor processor = documentProcessors().processor(document);
|
||||
processor.addJob(JobRequest::Type::RequestDocumentAnnotations);
|
||||
processor.addJob(JobRequest::Type::UpdateExtraDocumentAnnotations);
|
||||
processor.addJob(JobRequest::Type::RequestAnnotations);
|
||||
processor.addJob(JobRequest::Type::UpdateExtraAnnotations);
|
||||
processor.process();
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::requestDocumentAnnotations:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::requestAnnotations:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,7 +309,7 @@ void ClangCodeModelServer::requestFollowSymbol(const RequestFollowSymbolMessage
|
||||
Document document = documents.document(message.fileContainer.filePath, projectPartId);
|
||||
DocumentProcessor processor = documentProcessors().processor(document);
|
||||
|
||||
JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::FollowSymbol);
|
||||
JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::RequestFollowSymbol);
|
||||
fillJobRequest(jobRequest, message);
|
||||
processor.addJob(jobRequest);
|
||||
processor.process();
|
||||
@@ -338,19 +337,19 @@ void ClangCodeModelServer::requestToolTip(const RequestToolTipMessage &message)
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &message)
|
||||
void ClangCodeModelServer::documentVisibilityChanged(const DocumentVisibilityChangedMessage &message)
|
||||
{
|
||||
qCDebug(serverLog) << "########## updateVisibleTranslationUnits";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::updateVisibleTranslationUnits");
|
||||
qCDebug(serverLog) << "########## documentVisibilityChanged";
|
||||
TIME_SCOPE_DURATION("ClangCodeModelServer::documentVisibilityChanged");
|
||||
|
||||
try {
|
||||
documents.setUsedByCurrentEditor(message.currentEditorFilePath);
|
||||
documents.setVisibleInEditors(message.visibleEditorFilePaths);
|
||||
processSuspendResumeJobs(documents.documents());
|
||||
|
||||
updateDocumentAnnotationsTimer.start(0);
|
||||
updateAnnotationsTimer.start(0);
|
||||
} catch (const std::exception &exception) {
|
||||
qWarning() << "Error in ClangCodeModelServer::updateVisibleTranslationUnits:" << exception.what();
|
||||
qWarning() << "Error in ClangCodeModelServer::documentVisibilityChanged:" << exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -371,7 +370,7 @@ int ClangCodeModelServer::queueSizeForTestsOnly()
|
||||
|
||||
bool ClangCodeModelServer::isTimerRunningForTestOnly() const
|
||||
{
|
||||
return updateDocumentAnnotationsTimer.isActive();
|
||||
return updateAnnotationsTimer.isActive();
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::processJobsForDirtyAndVisibleDocuments()
|
||||
@@ -396,9 +395,9 @@ void ClangCodeModelServer::addAndRunUpdateJobs(std::vector<Document> documents)
|
||||
DocumentProcessor processor = documentProcessors().processor(document);
|
||||
|
||||
// Run the regular edit-reparse-job
|
||||
processor.addJob(JobRequest::Type::UpdateDocumentAnnotations,
|
||||
processor.addJob(JobRequest::Type::UpdateAnnotations,
|
||||
PreferredTranslationUnit::PreviouslyParsed);
|
||||
processor.addJob(JobRequest::Type::UpdateExtraDocumentAnnotations,
|
||||
processor.addJob(JobRequest::Type::UpdateExtraAnnotations,
|
||||
PreferredTranslationUnit::RecentlyParsed);
|
||||
processor.process();
|
||||
|
||||
@@ -429,7 +428,7 @@ void ClangCodeModelServer::processSuspendResumeJobs(const std::vector<Document>
|
||||
DocumentProcessor processor = documentProcessors().processor(entry.document);
|
||||
processor.addJob(entry.jobRequestType, entry.preferredTranslationUnit);
|
||||
if (entry.jobRequestType == JobRequest::Type::ResumeDocument) {
|
||||
processor.addJob(JobRequest::Type::UpdateExtraDocumentAnnotations,
|
||||
processor.addJob(JobRequest::Type::UpdateExtraAnnotations,
|
||||
PreferredTranslationUnit::RecentlyParsed);
|
||||
}
|
||||
processor.process();
|
||||
@@ -479,15 +478,15 @@ void ClangCodeModelServer::processInitialJobsForDocuments(const std::vector<Docu
|
||||
{
|
||||
for (const auto &document : documents) {
|
||||
DocumentProcessor processor = documentProcessors().processor(document);
|
||||
processor.addJob(JobRequest::Type::UpdateDocumentAnnotations);
|
||||
processor.addJob(JobRequest::Type::UpdateExtraDocumentAnnotations);
|
||||
processor.addJob(JobRequest::Type::UpdateAnnotations);
|
||||
processor.addJob(JobRequest::Type::UpdateExtraAnnotations);
|
||||
processor.process();
|
||||
}
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::setUpdateDocumentAnnotationsTimeOutInMsForTestsOnly(int value)
|
||||
void ClangCodeModelServer::setUpdateAnnotationsTimeOutInMsForTestsOnly(int value)
|
||||
{
|
||||
updateDocumentAnnotationsTimeOutInMs = value;
|
||||
updateAnnotationsTimeOutInMs = value;
|
||||
}
|
||||
|
||||
void ClangCodeModelServer::setUpdateVisibleButNotCurrentDocumentsTimeOutInMsForTestsOnly(int value)
|
||||
|
||||
@@ -55,16 +55,20 @@ public:
|
||||
ClangCodeModelServer();
|
||||
|
||||
void end() override;
|
||||
void registerTranslationUnitsForEditor(const RegisterTranslationUnitForEditorMessage &message) override;
|
||||
void updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &message) override;
|
||||
void unregisterTranslationUnitsForEditor(const UnregisterTranslationUnitsForEditorMessage &message) override;
|
||||
void registerProjectPartsForEditor(const RegisterProjectPartsForEditorMessage &message) override;
|
||||
void unregisterProjectPartsForEditor(const UnregisterProjectPartsForEditorMessage &message) override;
|
||||
void registerUnsavedFilesForEditor(const RegisterUnsavedFilesForEditorMessage &message) override;
|
||||
void unregisterUnsavedFilesForEditor(const UnregisterUnsavedFilesForEditorMessage &message) override;
|
||||
void completeCode(const CompleteCodeMessage &message) override;
|
||||
void updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &message) override;
|
||||
void requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &message) override;
|
||||
|
||||
void documentsOpened(const DocumentsOpenedMessage &message) override;
|
||||
void documentsChanged(const DocumentsChangedMessage &message) override;
|
||||
void documentsClosed(const DocumentsClosedMessage &message) override;
|
||||
void documentVisibilityChanged(const DocumentVisibilityChangedMessage &message) override;
|
||||
|
||||
void projectPartsUpdated(const ProjectPartsUpdatedMessage &message) override;
|
||||
void projectPartsRemoved(const ProjectPartsRemovedMessage &message) override;
|
||||
|
||||
void unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message) override;
|
||||
void unsavedFilesRemoved(const UnsavedFilesRemovedMessage &message) override;
|
||||
|
||||
void requestCompletions(const RequestCompletionsMessage &message) override;
|
||||
void requestAnnotations(const RequestAnnotationsMessage &message) override;
|
||||
void requestReferences(const RequestReferencesMessage &message) override;
|
||||
void requestFollowSymbol(const RequestFollowSymbolMessage &message) override;
|
||||
void requestToolTip(const RequestToolTipMessage &message) override;
|
||||
@@ -74,7 +78,7 @@ public: // for tests
|
||||
QList<Jobs::RunningJob> runningJobsForTestsOnly();
|
||||
int queueSizeForTestsOnly();
|
||||
bool isTimerRunningForTestOnly() const;
|
||||
void setUpdateDocumentAnnotationsTimeOutInMsForTestsOnly(int value);
|
||||
void setUpdateAnnotationsTimeOutInMsForTestsOnly(int value);
|
||||
void setUpdateVisibleButNotCurrentDocumentsTimeOutInMsForTestsOnly(int value);
|
||||
DocumentProcessors &documentProcessors();
|
||||
|
||||
@@ -99,8 +103,8 @@ private:
|
||||
|
||||
QScopedPointer<DocumentProcessors> documentProcessors_; // Delayed initialization
|
||||
|
||||
QTimer updateDocumentAnnotationsTimer;
|
||||
int updateDocumentAnnotationsTimeOutInMs = 1500;
|
||||
QTimer updateAnnotationsTimer;
|
||||
int updateAnnotationsTimeOutInMs = 1500;
|
||||
|
||||
QTimer updateVisibleButNotCurrentDocumentsTimer;
|
||||
int updateVisibleButNotCurrentDocumentsTimeOutInMs = 2000;
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
#include <clangsupport/clangsupportdebugutils.h>
|
||||
#include <clangsupport/clangcodemodelclientinterface.h>
|
||||
#include <clangsupport/cmbcodecompletedmessage.h>
|
||||
#include <clangsupport/completionsmessage.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace ClangBackEnd {
|
||||
IAsyncJob::AsyncPrepareResult CompleteCodeJob::prepareAsyncRun()
|
||||
{
|
||||
const JobRequest jobRequest = context().jobRequest;
|
||||
QTC_ASSERT(jobRequest.type == JobRequest::Type::CompleteCode, return AsyncPrepareResult());
|
||||
QTC_ASSERT(jobRequest.type == JobRequest::Type::RequestCompletions, return AsyncPrepareResult());
|
||||
QTC_ASSERT(acquireDocument(), return AsyncPrepareResult());
|
||||
|
||||
const TranslationUnit translationUnit = *m_translationUnit;
|
||||
@@ -69,10 +69,10 @@ void CompleteCodeJob::finalizeAsyncRun()
|
||||
if (context().isDocumentOpen()) {
|
||||
const AsyncResult result = asyncResult();
|
||||
|
||||
const CodeCompletedMessage message(result.completions,
|
||||
result.correction,
|
||||
context().jobRequest.ticketNumber);
|
||||
context().client->codeCompleted(message);
|
||||
const CompletionsMessage message(result.completions,
|
||||
result.correction,
|
||||
context().jobRequest.ticketNumber);
|
||||
context().client->completions(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace ClangBackEnd {
|
||||
IAsyncJob::AsyncPrepareResult FollowSymbolJob::prepareAsyncRun()
|
||||
{
|
||||
const JobRequest jobRequest = context().jobRequest;
|
||||
QTC_ASSERT(jobRequest.type == JobRequest::Type::FollowSymbol,
|
||||
QTC_ASSERT(jobRequest.type == JobRequest::Type::RequestFollowSymbol,
|
||||
return AsyncPrepareResult());
|
||||
QTC_ASSERT(acquireDocument(), return AsyncPrepareResult());
|
||||
|
||||
|
||||
@@ -28,16 +28,16 @@
|
||||
#include "clangcompletecodejob.h"
|
||||
#include "clangfollowsymboljob.h"
|
||||
#include "clangparsesupportivetranslationunitjob.h"
|
||||
#include "clangrequestdocumentannotationsjob.h"
|
||||
#include "clangrequestannotationsjob.h"
|
||||
#include "clangrequestreferencesjob.h"
|
||||
#include "clangrequesttooltipjob.h"
|
||||
#include "clangresumedocumentjob.h"
|
||||
#include "clangsuspenddocumentjob.h"
|
||||
#include "clangupdatedocumentannotationsjob.h"
|
||||
#include "clangupdateextradocumentannotationsjob.h"
|
||||
#include "clangupdateannotationsjob.h"
|
||||
#include "clangupdateextraannotationsjob.h"
|
||||
|
||||
#include <clangsupport/clangcodemodelclientinterface.h>
|
||||
#include <clangsupport/cmbcodecompletedmessage.h>
|
||||
#include <clangsupport/completionsmessage.h>
|
||||
#include <clangsupport/followsymbolmessage.h>
|
||||
#include <clangsupport/referencesmessage.h>
|
||||
#include <clangsupport/tooltipmessage.h>
|
||||
@@ -55,13 +55,13 @@ static const char *JobRequestTypeToText(JobRequest::Type type)
|
||||
{
|
||||
switch (type) {
|
||||
RETURN_TEXT_FOR_CASE(Invalid);
|
||||
RETURN_TEXT_FOR_CASE(UpdateDocumentAnnotations);
|
||||
RETURN_TEXT_FOR_CASE(UpdateExtraDocumentAnnotations);
|
||||
RETURN_TEXT_FOR_CASE(UpdateAnnotations);
|
||||
RETURN_TEXT_FOR_CASE(UpdateExtraAnnotations);
|
||||
RETURN_TEXT_FOR_CASE(ParseSupportiveTranslationUnit);
|
||||
RETURN_TEXT_FOR_CASE(CompleteCode);
|
||||
RETURN_TEXT_FOR_CASE(RequestDocumentAnnotations);
|
||||
RETURN_TEXT_FOR_CASE(RequestCompletions);
|
||||
RETURN_TEXT_FOR_CASE(RequestAnnotations);
|
||||
RETURN_TEXT_FOR_CASE(RequestReferences);
|
||||
RETURN_TEXT_FOR_CASE(FollowSymbol);
|
||||
RETURN_TEXT_FOR_CASE(RequestFollowSymbol);
|
||||
RETURN_TEXT_FOR_CASE(RequestToolTip);
|
||||
RETURN_TEXT_FOR_CASE(SuspendDocument);
|
||||
RETURN_TEXT_FOR_CASE(ResumeDocument);
|
||||
@@ -123,13 +123,13 @@ static JobRequest::ExpirationConditions expirationConditionsForType(JobRequest::
|
||||
using Conditions = JobRequest::ExpirationConditions;
|
||||
|
||||
switch (type) {
|
||||
case Type::UpdateDocumentAnnotations:
|
||||
case Type::UpdateExtraDocumentAnnotations:
|
||||
case Type::UpdateAnnotations:
|
||||
case Type::UpdateExtraAnnotations:
|
||||
return Conditions(Condition::AnythingChanged);
|
||||
case Type::RequestReferences:
|
||||
case Type::RequestDocumentAnnotations:
|
||||
case Type::RequestAnnotations:
|
||||
case Type::RequestToolTip:
|
||||
case Type::FollowSymbol:
|
||||
case Type::RequestFollowSymbol:
|
||||
return Conditions(Condition::DocumentClosed)
|
||||
| Conditions(Condition::DocumentRevisionChanged);
|
||||
default:
|
||||
@@ -156,12 +156,12 @@ static JobRequest::RunConditions conditionsForType(JobRequest::Type type)
|
||||
Conditions conditions = Conditions(Condition::DocumentUnsuspended)
|
||||
| Conditions(Condition::DocumentVisible);
|
||||
|
||||
if (type == Type::RequestReferences || type == Type::FollowSymbol
|
||||
|| type == Type::RequestToolTip || type == Type::UpdateExtraDocumentAnnotations) {
|
||||
if (type == Type::RequestReferences || type == Type::RequestFollowSymbol
|
||||
|| type == Type::RequestToolTip || type == Type::UpdateExtraAnnotations) {
|
||||
conditions |= Condition::CurrentDocumentRevision;
|
||||
}
|
||||
|
||||
if (type != Type::UpdateDocumentAnnotations && type != Type::ParseSupportiveTranslationUnit)
|
||||
if (type != Type::UpdateAnnotations && type != Type::ParseSupportiveTranslationUnit)
|
||||
conditions |= Condition::DocumentParsed;
|
||||
|
||||
return conditions;
|
||||
@@ -174,14 +174,14 @@ bool JobRequest::isTakeOverable() const
|
||||
|
||||
switch (type) {
|
||||
// Never discard these as the client side might wait for a response.
|
||||
case Type::CompleteCode:
|
||||
case Type::RequestCompletions:
|
||||
case Type::RequestReferences:
|
||||
case Type::FollowSymbol:
|
||||
case Type::RequestFollowSymbol:
|
||||
case Type::RequestToolTip:
|
||||
return true;
|
||||
|
||||
// Discard this one as UpdateDocumentAnnotations will have the same effect.
|
||||
case Type::RequestDocumentAnnotations:
|
||||
// Discard this one as UpdateAnnotations will have the same effect.
|
||||
case Type::RequestAnnotations:
|
||||
|
||||
// Discard Suspend because the document will be cleared anyway.
|
||||
// Discard Resume because a (re)parse will happen on demand.
|
||||
@@ -190,8 +190,8 @@ bool JobRequest::isTakeOverable() const
|
||||
|
||||
// Discard these as they are initial jobs that will be recreated on demand
|
||||
// anyway.
|
||||
case Type::UpdateDocumentAnnotations:
|
||||
case Type::UpdateExtraDocumentAnnotations:
|
||||
case Type::UpdateAnnotations:
|
||||
case Type::UpdateExtraAnnotations:
|
||||
|
||||
// Discard these as they only make sense in a row. Avoid splitting them up.
|
||||
case Type::ParseSupportiveTranslationUnit:
|
||||
@@ -219,21 +219,21 @@ IAsyncJob *JobRequest::createJob() const
|
||||
case JobRequest::Type::Invalid:
|
||||
QTC_CHECK(false && "Cannot create job for invalid job request.");
|
||||
break;
|
||||
case JobRequest::Type::UpdateDocumentAnnotations:
|
||||
return new UpdateDocumentAnnotationsJob();
|
||||
case JobRequest::Type::UpdateExtraDocumentAnnotations:
|
||||
return new UpdateExtraDocumentAnnotationsJob();
|
||||
case JobRequest::Type::UpdateAnnotations:
|
||||
return new UpdateAnnotationsJob();
|
||||
case JobRequest::Type::UpdateExtraAnnotations:
|
||||
return new UpdateExtraAnnotationsJob();
|
||||
case JobRequest::Type::ParseSupportiveTranslationUnit:
|
||||
return new ParseSupportiveTranslationUnitJob();
|
||||
case JobRequest::Type::CompleteCode:
|
||||
case JobRequest::Type::RequestCompletions:
|
||||
return new CompleteCodeJob();
|
||||
case JobRequest::Type::RequestDocumentAnnotations:
|
||||
return new RequestDocumentAnnotationsJob();
|
||||
case JobRequest::Type::RequestAnnotations:
|
||||
return new RequestAnnotationsJob();
|
||||
case JobRequest::Type::RequestReferences:
|
||||
return new RequestReferencesJob();
|
||||
case JobRequest::Type::RequestToolTip:
|
||||
return new RequestToolTipJob();
|
||||
case JobRequest::Type::FollowSymbol:
|
||||
case JobRequest::Type::RequestFollowSymbol:
|
||||
return new FollowSymbolJob();
|
||||
case JobRequest::Type::SuspendDocument:
|
||||
return new SuspendDocumentJob();
|
||||
@@ -251,10 +251,10 @@ void JobRequest::cancelJob(ClangCodeModelClientInterface &client) const
|
||||
|
||||
switch (type) {
|
||||
case JobRequest::Type::Invalid:
|
||||
case JobRequest::Type::UpdateDocumentAnnotations:
|
||||
case JobRequest::Type::UpdateExtraDocumentAnnotations:
|
||||
case JobRequest::Type::UpdateAnnotations:
|
||||
case JobRequest::Type::UpdateExtraAnnotations:
|
||||
case JobRequest::Type::ParseSupportiveTranslationUnit:
|
||||
case JobRequest::Type::RequestDocumentAnnotations:
|
||||
case JobRequest::Type::RequestAnnotations:
|
||||
case JobRequest::Type::SuspendDocument:
|
||||
case JobRequest::Type::ResumeDocument:
|
||||
break;
|
||||
@@ -265,19 +265,15 @@ void JobRequest::cancelJob(ClangCodeModelClientInterface &client) const
|
||||
ticketNumber));
|
||||
break;
|
||||
case JobRequest::Type::RequestToolTip:
|
||||
client.tooltip(ToolTipMessage(FileContainer(),
|
||||
ToolTipInfo(),
|
||||
ticketNumber));
|
||||
client.tooltip(ToolTipMessage(FileContainer(), ToolTipInfo(), ticketNumber));
|
||||
break;
|
||||
case JobRequest::Type::CompleteCode:
|
||||
client.codeCompleted(CodeCompletedMessage(CodeCompletions(),
|
||||
CompletionCorrection::NoCorrection,
|
||||
ticketNumber));
|
||||
case JobRequest::Type::RequestCompletions:
|
||||
client.completions(
|
||||
CompletionsMessage(CodeCompletions(), CompletionCorrection::NoCorrection, ticketNumber));
|
||||
break;
|
||||
case JobRequest::Type::FollowSymbol:
|
||||
client.followSymbol(FollowSymbolMessage(FileContainer(),
|
||||
SourceRangeContainer(),
|
||||
ticketNumber));
|
||||
case JobRequest::Type::RequestFollowSymbol:
|
||||
client.followSymbol(
|
||||
FollowSymbolMessage(FileContainer(), SourceRangeContainer(), ticketNumber));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,15 +49,15 @@ public:
|
||||
enum class Type {
|
||||
Invalid,
|
||||
|
||||
UpdateDocumentAnnotations,
|
||||
UpdateExtraDocumentAnnotations,
|
||||
UpdateAnnotations,
|
||||
UpdateExtraAnnotations,
|
||||
|
||||
ParseSupportiveTranslationUnit,
|
||||
|
||||
CompleteCode,
|
||||
RequestDocumentAnnotations,
|
||||
RequestCompletions,
|
||||
RequestAnnotations,
|
||||
RequestReferences,
|
||||
FollowSymbol,
|
||||
RequestFollowSymbol,
|
||||
RequestToolTip,
|
||||
|
||||
SuspendDocument,
|
||||
|
||||
@@ -23,48 +23,47 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "clangrequestdocumentannotationsjob.h"
|
||||
#include "clangrequestannotationsjob.h"
|
||||
|
||||
#include <clangsupport/annotationsmessage.h>
|
||||
#include <clangsupport/clangsupportdebugutils.h>
|
||||
#include <clangsupport/documentannotationschangedmessage.h>
|
||||
#include <clangsupport/clangcodemodelclientinterface.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
IAsyncJob::AsyncPrepareResult RequestDocumentAnnotationsJob::prepareAsyncRun()
|
||||
IAsyncJob::AsyncPrepareResult RequestAnnotationsJob::prepareAsyncRun()
|
||||
{
|
||||
const JobRequest jobRequest = context().jobRequest;
|
||||
QTC_ASSERT(jobRequest.type == JobRequest::Type::RequestDocumentAnnotations,
|
||||
QTC_ASSERT(jobRequest.type == JobRequest::Type::RequestAnnotations,
|
||||
return AsyncPrepareResult());
|
||||
QTC_ASSERT(acquireDocument(), return AsyncPrepareResult());
|
||||
|
||||
const TranslationUnit translationUnit = *m_translationUnit;
|
||||
setRunner([translationUnit]() {
|
||||
TIME_SCOPE_DURATION("RequestDocumentAnnotationsJobRunner");
|
||||
TIME_SCOPE_DURATION("RequestAnnotationsJobRunner");
|
||||
|
||||
RequestDocumentAnnotationsJob::AsyncResult asyncResult;
|
||||
translationUnit.extractDocumentAnnotations(asyncResult.firstHeaderErrorDiagnostic,
|
||||
asyncResult.diagnostics,
|
||||
asyncResult.tokenInfos,
|
||||
asyncResult.skippedSourceRanges);
|
||||
RequestAnnotationsJob::AsyncResult asyncResult;
|
||||
translationUnit.extractAnnotations(asyncResult.firstHeaderErrorDiagnostic,
|
||||
asyncResult.diagnostics,
|
||||
asyncResult.tokenInfos,
|
||||
asyncResult.skippedSourceRanges);
|
||||
return asyncResult;
|
||||
});
|
||||
|
||||
return AsyncPrepareResult{translationUnit.id()};
|
||||
}
|
||||
|
||||
void RequestDocumentAnnotationsJob::finalizeAsyncRun()
|
||||
void RequestAnnotationsJob::finalizeAsyncRun()
|
||||
{
|
||||
if (context().isDocumentOpen()) {
|
||||
const AsyncResult result = asyncResult();
|
||||
context().client->documentAnnotationsChanged(
|
||||
DocumentAnnotationsChangedMessage(m_pinnedFileContainer,
|
||||
result.diagnostics,
|
||||
result.firstHeaderErrorDiagnostic,
|
||||
result.tokenInfos,
|
||||
result.skippedSourceRanges));
|
||||
context().client->annotations(AnnotationsMessage(m_pinnedFileContainer,
|
||||
result.diagnostics,
|
||||
result.firstHeaderErrorDiagnostic,
|
||||
result.tokenInfos,
|
||||
result.skippedSourceRanges));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
struct RequestDocumentAnnotationsJobResult
|
||||
struct RequestAnnotationsJobResult
|
||||
{
|
||||
ClangBackEnd::DiagnosticContainer firstHeaderErrorDiagnostic;
|
||||
QVector<ClangBackEnd::DiagnosticContainer> diagnostics;
|
||||
@@ -41,10 +41,10 @@ struct RequestDocumentAnnotationsJobResult
|
||||
QVector<SourceRangeContainer> skippedSourceRanges;
|
||||
};
|
||||
|
||||
class RequestDocumentAnnotationsJob : public DocumentJob<RequestDocumentAnnotationsJobResult>
|
||||
class RequestAnnotationsJob : public DocumentJob<RequestAnnotationsJobResult>
|
||||
{
|
||||
public:
|
||||
using AsyncResult = RequestDocumentAnnotationsJobResult;
|
||||
using AsyncResult = RequestAnnotationsJobResult;
|
||||
|
||||
AsyncPrepareResult prepareAsyncRun() override;
|
||||
void finalizeAsyncRun() override;
|
||||
@@ -36,7 +36,7 @@ void ResumeDocumentJob::finalizeAsyncRun()
|
||||
m_pinnedDocument.setIsSuspended(false);
|
||||
}
|
||||
|
||||
UpdateDocumentAnnotationsJob::finalizeAsyncRun();
|
||||
UpdateAnnotationsJob::finalizeAsyncRun();
|
||||
}
|
||||
|
||||
bool ResumeDocumentJob::isExpectedJobRequestType(const JobRequest &jobRequest) const
|
||||
@@ -46,7 +46,7 @@ bool ResumeDocumentJob::isExpectedJobRequestType(const JobRequest &jobRequest) c
|
||||
|
||||
TranslationUnitUpdateInput ResumeDocumentJob::createUpdateInput(const Document &document) const
|
||||
{
|
||||
TranslationUnitUpdateInput input = UpdateDocumentAnnotationsJob::createUpdateInput(document);
|
||||
TranslationUnitUpdateInput input = UpdateAnnotationsJob::createUpdateInput(document);
|
||||
input.reparseNeeded = true;
|
||||
return input;
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
|
||||
#include "clangasyncjob.h"
|
||||
#include "clangdocument.h"
|
||||
#include "clangupdatedocumentannotationsjob.h"
|
||||
#include "clangupdateannotationsjob.h"
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
class ResumeDocumentJob : public UpdateDocumentAnnotationsJob
|
||||
class ResumeDocumentJob : public UpdateAnnotationsJob
|
||||
{
|
||||
public:
|
||||
void finalizeAsyncRun() override;
|
||||
|
||||
@@ -128,7 +128,7 @@ TranslationUnit::CodeCompletionResult TranslationUnit::complete(
|
||||
return CodeCompletionResult{completions, correction};
|
||||
}
|
||||
|
||||
void TranslationUnit::extractDocumentAnnotations(
|
||||
void TranslationUnit::extractAnnotations(
|
||||
DiagnosticContainer &firstHeaderErrorDiagnostic,
|
||||
QVector<DiagnosticContainer> &mainFileDiagnostics,
|
||||
QVector<TokenInfoContainer> &tokenInfos,
|
||||
|
||||
@@ -82,10 +82,10 @@ public:
|
||||
|
||||
void extractDiagnostics(DiagnosticContainer &firstHeaderErrorDiagnostic,
|
||||
QVector<DiagnosticContainer> &mainFileDiagnostics) const;
|
||||
void extractDocumentAnnotations(DiagnosticContainer &firstHeaderErrorDiagnostic,
|
||||
QVector<DiagnosticContainer> &mainFileDiagnostics,
|
||||
QVector<TokenInfoContainer> &tokenInfos,
|
||||
QVector<SourceRangeContainer> &skippedSourceRanges) const;
|
||||
void extractAnnotations(DiagnosticContainer &firstHeaderErrorDiagnostic,
|
||||
QVector<DiagnosticContainer> &mainFileDiagnostics,
|
||||
QVector<TokenInfoContainer> &tokenInfos,
|
||||
QVector<SourceRangeContainer> &skippedSourceRanges) const;
|
||||
|
||||
ReferencesResult references(uint line, uint column, bool localReferences = false) const;
|
||||
ToolTipInfo tooltip(UnsavedFiles &unsavedFiles,
|
||||
|
||||
@@ -23,17 +23,17 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "clangupdatedocumentannotationsjob.h"
|
||||
#include "clangupdateannotationsjob.h"
|
||||
|
||||
#include <clangsupport/annotationsmessage.h>
|
||||
#include <clangsupport/clangsupportdebugutils.h>
|
||||
#include <clangsupport/clangcodemodelclientinterface.h>
|
||||
#include <clangsupport/documentannotationschangedmessage.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
IAsyncJob::AsyncPrepareResult UpdateDocumentAnnotationsJob::prepareAsyncRun()
|
||||
IAsyncJob::AsyncPrepareResult UpdateAnnotationsJob::prepareAsyncRun()
|
||||
{
|
||||
const JobRequest jobRequest = context().jobRequest;
|
||||
QTC_ASSERT(isExpectedJobRequestType(jobRequest), return AsyncPrepareResult());
|
||||
@@ -42,17 +42,17 @@ IAsyncJob::AsyncPrepareResult UpdateDocumentAnnotationsJob::prepareAsyncRun()
|
||||
const TranslationUnit translationUnit = *m_translationUnit;
|
||||
const TranslationUnitUpdateInput updateInput = createUpdateInput(m_pinnedDocument);
|
||||
setRunner([translationUnit, updateInput]() {
|
||||
TIME_SCOPE_DURATION("UpdateDocumentAnnotationsJobRunner");
|
||||
TIME_SCOPE_DURATION("UpdateAnnotationsJobRunner");
|
||||
|
||||
// Update
|
||||
UpdateDocumentAnnotationsJob::AsyncResult asyncResult;
|
||||
UpdateAnnotationsJob::AsyncResult asyncResult;
|
||||
asyncResult.updateResult = translationUnit.update(updateInput);
|
||||
|
||||
// Collect
|
||||
translationUnit.extractDocumentAnnotations(asyncResult.firstHeaderErrorDiagnostic,
|
||||
asyncResult.diagnostics,
|
||||
asyncResult.tokenInfos,
|
||||
asyncResult.skippedSourceRanges);
|
||||
translationUnit.extractAnnotations(asyncResult.firstHeaderErrorDiagnostic,
|
||||
asyncResult.diagnostics,
|
||||
asyncResult.tokenInfos,
|
||||
asyncResult.skippedSourceRanges);
|
||||
|
||||
return asyncResult;
|
||||
});
|
||||
@@ -60,28 +60,27 @@ IAsyncJob::AsyncPrepareResult UpdateDocumentAnnotationsJob::prepareAsyncRun()
|
||||
return AsyncPrepareResult{translationUnit.id()};
|
||||
}
|
||||
|
||||
void UpdateDocumentAnnotationsJob::finalizeAsyncRun()
|
||||
void UpdateAnnotationsJob::finalizeAsyncRun()
|
||||
{
|
||||
if (!context().isOutdated()) {
|
||||
const AsyncResult result = asyncResult();
|
||||
|
||||
m_pinnedDocument.incorporateUpdaterResult(result.updateResult);
|
||||
context().client->documentAnnotationsChanged(
|
||||
DocumentAnnotationsChangedMessage(m_pinnedFileContainer,
|
||||
result.diagnostics,
|
||||
result.firstHeaderErrorDiagnostic,
|
||||
result.tokenInfos,
|
||||
result.skippedSourceRanges));
|
||||
context().client->annotations(AnnotationsMessage(m_pinnedFileContainer,
|
||||
result.diagnostics,
|
||||
result.firstHeaderErrorDiagnostic,
|
||||
result.tokenInfos,
|
||||
result.skippedSourceRanges));
|
||||
}
|
||||
}
|
||||
|
||||
bool UpdateDocumentAnnotationsJob::isExpectedJobRequestType(const JobRequest &jobRequest) const
|
||||
bool UpdateAnnotationsJob::isExpectedJobRequestType(const JobRequest &jobRequest) const
|
||||
{
|
||||
return jobRequest.type == JobRequest::Type::UpdateDocumentAnnotations;
|
||||
return jobRequest.type == JobRequest::Type::UpdateAnnotations;
|
||||
}
|
||||
|
||||
TranslationUnitUpdateInput
|
||||
UpdateDocumentAnnotationsJob::createUpdateInput(const Document &document) const
|
||||
UpdateAnnotationsJob::createUpdateInput(const Document &document) const
|
||||
{
|
||||
return document.createUpdateInput();
|
||||
}
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
struct UpdateDocumentAnnotationsJobResult
|
||||
struct UpdateAnnotationsJobResult
|
||||
{
|
||||
TranslationUnitUpdateResult updateResult;
|
||||
|
||||
@@ -43,10 +43,10 @@ struct UpdateDocumentAnnotationsJobResult
|
||||
QVector<SourceRangeContainer> skippedSourceRanges;
|
||||
};
|
||||
|
||||
class UpdateDocumentAnnotationsJob : public DocumentJob<UpdateDocumentAnnotationsJobResult>
|
||||
class UpdateAnnotationsJob : public DocumentJob<UpdateAnnotationsJobResult>
|
||||
{
|
||||
public:
|
||||
using AsyncResult = UpdateDocumentAnnotationsJobResult;
|
||||
using AsyncResult = UpdateAnnotationsJobResult;
|
||||
|
||||
AsyncPrepareResult prepareAsyncRun() override;
|
||||
void finalizeAsyncRun() override;
|
||||
@@ -23,37 +23,36 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "clangupdateextradocumentannotationsjob.h"
|
||||
#include "clangupdateextraannotationsjob.h"
|
||||
|
||||
#include <clangsupport/annotationsmessage.h>
|
||||
#include <clangsupport/clangsupportdebugutils.h>
|
||||
#include <clangsupport/clangcodemodelclientinterface.h>
|
||||
#include <clangsupport/documentannotationschangedmessage.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
IAsyncJob::AsyncPrepareResult UpdateExtraDocumentAnnotationsJob::prepareAsyncRun()
|
||||
IAsyncJob::AsyncPrepareResult UpdateExtraAnnotationsJob::prepareAsyncRun()
|
||||
{
|
||||
const JobRequest jobRequest = context().jobRequest;
|
||||
QTC_ASSERT(acquireDocument(), return AsyncPrepareResult());
|
||||
|
||||
const TranslationUnit translationUnit = *m_translationUnit;
|
||||
setRunner([translationUnit]() {
|
||||
TIME_SCOPE_DURATION("UpdateExtraDocumentAnnotationsJobRunner");
|
||||
TIME_SCOPE_DURATION("UpdateExtraAnnotationsJobRunner");
|
||||
return translationUnit.fullTokenInfos().toTokenInfoContainers();
|
||||
});
|
||||
|
||||
return AsyncPrepareResult{translationUnit.id()};
|
||||
}
|
||||
|
||||
void UpdateExtraDocumentAnnotationsJob::finalizeAsyncRun()
|
||||
void UpdateExtraAnnotationsJob::finalizeAsyncRun()
|
||||
{
|
||||
if (context().isOutdated())
|
||||
return;
|
||||
|
||||
context().client->documentAnnotationsChanged(
|
||||
DocumentAnnotationsChangedMessage(m_pinnedFileContainer, asyncResult()));
|
||||
context().client->annotations(AnnotationsMessage(m_pinnedFileContainer, asyncResult()));
|
||||
}
|
||||
|
||||
} // namespace ClangBackEnd
|
||||
@@ -31,9 +31,9 @@
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
using UpdateExtraDocumentAnnotationsJobResult = QVector<TokenInfoContainer>;
|
||||
using UpdateExtraAnnotationsJobResult = QVector<TokenInfoContainer>;
|
||||
|
||||
class UpdateExtraDocumentAnnotationsJob : public DocumentJob<UpdateExtraDocumentAnnotationsJobResult>
|
||||
class UpdateExtraAnnotationsJob : public DocumentJob<UpdateExtraAnnotationsJobResult>
|
||||
{
|
||||
public:
|
||||
AsyncPrepareResult prepareAsyncRun() override;
|
||||
Reference in New Issue
Block a user