diff --git a/src/libs/clangsupport/clangcodemodelclientinterface.h b/src/libs/clangsupport/clangcodemodelclientinterface.h index 04b68ce0f50..c626041ce35 100644 --- a/src/libs/clangsupport/clangcodemodelclientinterface.h +++ b/src/libs/clangsupport/clangcodemodelclientinterface.h @@ -39,8 +39,6 @@ class DocumentsClosedMessage; class DocumentsOpenedMessage; class EchoMessage; class FollowSymbolMessage; -class ProjectPartsRemovedMessage; -class ProjectPartsUpdatedMessage; class ReferencesMessage; class RequestAnnotationsMessage; class RequestCompletionsMessage; diff --git a/src/libs/clangsupport/clangcodemodelserverinterface.cpp b/src/libs/clangsupport/clangcodemodelserverinterface.cpp index 364cec41325..440a6e36397 100644 --- a/src/libs/clangsupport/clangcodemodelserverinterface.cpp +++ b/src/libs/clangsupport/clangcodemodelserverinterface.cpp @@ -50,12 +50,6 @@ void ClangCodeModelServerInterface::dispatch(const MessageEnvelop &messageEnvelo case MessageType::DocumentVisibilityChangedMessage: documentVisibilityChanged(messageEnvelop.message()); break; - case MessageType::ProjectPartsUpdatedMessage: - projectPartsUpdated(messageEnvelop.message()); - break; - case MessageType::ProjectPartsRemovedMessage: - projectPartsRemoved(messageEnvelop.message()); - break; case MessageType::UnsavedFilesUpdatedMessage: unsavedFilesUpdated(messageEnvelop.message()); break; diff --git a/src/libs/clangsupport/clangcodemodelserverinterface.h b/src/libs/clangsupport/clangcodemodelserverinterface.h index 6cac4aea5fb..b75d8c1dd0e 100644 --- a/src/libs/clangsupport/clangcodemodelserverinterface.h +++ b/src/libs/clangsupport/clangcodemodelserverinterface.h @@ -47,9 +47,6 @@ public: virtual void documentsClosed(const DocumentsClosedMessage &message) = 0; virtual void documentVisibilityChanged(const DocumentVisibilityChangedMessage &message) = 0; - virtual void projectPartsUpdated(const ProjectPartsUpdatedMessage &message) = 0; - virtual void projectPartsRemoved(const ProjectPartsRemovedMessage &message) = 0; - virtual void unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message) = 0; virtual void unsavedFilesRemoved(const UnsavedFilesRemovedMessage &message) = 0; diff --git a/src/libs/clangsupport/clangcodemodelservermessages.h b/src/libs/clangsupport/clangcodemodelservermessages.h index ab3b5c4b4f4..5d207d5bcb2 100644 --- a/src/libs/clangsupport/clangcodemodelservermessages.h +++ b/src/libs/clangsupport/clangcodemodelservermessages.h @@ -33,9 +33,6 @@ #include "documentschangedmessage.h" #include "documentvisibilitychangedmessage.h" -#include "projectpartsupdatedmessage.h" -#include "projectpartsremovedmessage.h" - #include "unsavedfilesupdatedmessage.h" #include "unsavedfilesremovedmessage.h" diff --git a/src/libs/clangsupport/clangcodemodelserverproxy.cpp b/src/libs/clangsupport/clangcodemodelserverproxy.cpp index b5d309d346c..6d90f20016a 100644 --- a/src/libs/clangsupport/clangcodemodelserverproxy.cpp +++ b/src/libs/clangsupport/clangcodemodelserverproxy.cpp @@ -57,16 +57,6 @@ void ClangCodeModelServerProxy::documentsClosed(const DocumentsClosedMessage &me m_writeMessageBlock.write(message); } -void ClangCodeModelServerProxy::projectPartsUpdated(const ProjectPartsUpdatedMessage &message) -{ - m_writeMessageBlock.write(message); -} - -void ClangCodeModelServerProxy::projectPartsRemoved(const ProjectPartsRemovedMessage &message) -{ - m_writeMessageBlock.write(message); -} - void ClangCodeModelServerProxy::unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message) { m_writeMessageBlock.write(message); diff --git a/src/libs/clangsupport/clangcodemodelserverproxy.h b/src/libs/clangsupport/clangcodemodelserverproxy.h index fe574fccd75..e18fd37402d 100644 --- a/src/libs/clangsupport/clangcodemodelserverproxy.h +++ b/src/libs/clangsupport/clangcodemodelserverproxy.h @@ -55,9 +55,6 @@ public: 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; diff --git a/src/libs/clangsupport/clangsupport-lib.pri b/src/libs/clangsupport/clangsupport-lib.pri index 5427c8479ca..f7716017f2b 100644 --- a/src/libs/clangsupport/clangsupport-lib.pri +++ b/src/libs/clangsupport/clangsupport-lib.pri @@ -21,9 +21,7 @@ SOURCES += \ $$PWD/requestcompletionsmessage.cpp \ $$PWD/echomessage.cpp \ $$PWD/endmessage.cpp \ - $$PWD/projectpartsupdatedmessage.cpp \ $$PWD/documentsopenedmessage.cpp \ - $$PWD/projectpartsremovedmessage.cpp \ $$PWD/documentsclosedmessage.cpp \ $$PWD/codecompletionchunk.cpp \ $$PWD/codecompletion.cpp \ @@ -46,7 +44,6 @@ SOURCES += \ $$PWD/pchmanagerserverinterface.cpp \ $$PWD/pchmanagerserverproxy.cpp \ $$PWD/precompiledheadersupdatedmessage.cpp \ - $$PWD/projectpartcontainer.cpp \ $$PWD/projectpartcontainerv2.cpp \ $$PWD/projectpartpch.cpp \ $$PWD/readmessageblock.cpp \ @@ -114,9 +111,7 @@ HEADERS += \ $$PWD/requestcompletionsmessage.h \ $$PWD/echomessage.h \ $$PWD/endmessage.h \ - $$PWD/projectpartsupdatedmessage.h \ $$PWD/documentsopenedmessage.h \ - $$PWD/projectpartsremovedmessage.h \ $$PWD/documentsclosedmessage.h \ $$PWD/codecompletionchunk.h \ $$PWD/codecompletion.h \ @@ -143,7 +138,6 @@ HEADERS += \ $$PWD/pchmanagerserverinterface.h \ $$PWD/pchmanagerserverproxy.h \ $$PWD/precompiledheadersupdatedmessage.h \ - $$PWD/projectpartcontainer.h \ $$PWD/projectpartcontainerv2.h \ $$PWD/projectpartpch.h \ $$PWD/readmessageblock.h \ diff --git a/src/libs/clangsupport/clangsupport_global.h b/src/libs/clangsupport/clangsupport_global.h index 7b2d62ab50f..174adf90bfa 100644 --- a/src/libs/clangsupport/clangsupport_global.h +++ b/src/libs/clangsupport/clangsupport_global.h @@ -149,9 +149,6 @@ enum class MessageType : quint8 { UnsavedFilesUpdatedMessage, UnsavedFilesRemovedMessage, - ProjectPartsUpdatedMessage, - ProjectPartsRemovedMessage, - RequestAnnotationsMessage, AnnotationsMessage, diff --git a/src/libs/clangsupport/filecontainer.cpp b/src/libs/clangsupport/filecontainer.cpp index abd8394c464..7f95e4b1d47 100644 --- a/src/libs/clangsupport/filecontainer.cpp +++ b/src/libs/clangsupport/filecontainer.cpp @@ -35,8 +35,7 @@ QDebug operator<<(QDebug debug, const FileContainer &container) { debug.nospace() << "FileContainer(" << container.filePath << ", " - << container.projectPartId << ", " - << container.fileArguments << ", " + << container.compilationArguments << ", " << container.documentRevision << ", " << container.textCodecName; diff --git a/src/libs/clangsupport/filecontainer.h b/src/libs/clangsupport/filecontainer.h index d8dbc1e97be..16beff0bac0 100644 --- a/src/libs/clangsupport/filecontainer.h +++ b/src/libs/clangsupport/filecontainer.h @@ -39,13 +39,11 @@ class FileContainer public: FileContainer() = default; FileContainer(const Utf8String &filePath, - const Utf8String &projectPartId, const Utf8String &unsavedFileContent = Utf8String(), bool hasUnsavedFileContent = false, quint32 documentRevision = 0, const Utf8String &textCodecName = Utf8String()) : filePath(filePath), - projectPartId(projectPartId), unsavedFileContent(unsavedFileContent), textCodecName(textCodecName), documentRevision(documentRevision), @@ -54,14 +52,12 @@ public: } FileContainer(const Utf8String &filePath, - const Utf8String &projectPartId, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, const Utf8String &unsavedFileContent = Utf8String(), bool hasUnsavedFileContent = false, quint32 documentRevision = 0) : filePath(filePath), - projectPartId(projectPartId), - fileArguments(fileArguments), + compilationArguments(compilationArguments), unsavedFileContent(unsavedFileContent), documentRevision(documentRevision), hasUnsavedFileContent(hasUnsavedFileContent) @@ -69,12 +65,10 @@ public: } FileContainer(const Utf8String &filePath, - const Utf8String &projectPartId, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, quint32 documentRevision) : filePath(filePath), - projectPartId(projectPartId), - fileArguments(fileArguments), + compilationArguments(compilationArguments), documentRevision(documentRevision), hasUnsavedFileContent(false) { @@ -83,8 +77,7 @@ public: friend QDataStream &operator<<(QDataStream &out, const FileContainer &container) { out << container.filePath; - out << container.projectPartId; - out << container.fileArguments; + out << container.compilationArguments; out << container.unsavedFileContent; out << container.textCodecName; out << container.documentRevision; @@ -96,8 +89,7 @@ public: friend QDataStream &operator>>(QDataStream &in, FileContainer &container) { in >> container.filePath; - in >> container.projectPartId; - in >> container.fileArguments; + in >> container.compilationArguments; in >> container.unsavedFileContent; in >> container.textCodecName; in >> container.documentRevision; @@ -108,13 +100,12 @@ public: friend bool operator==(const FileContainer &first, const FileContainer &second) { - return first.filePath == second.filePath && first.projectPartId == second.projectPartId; + return first.filePath == second.filePath; } public: Utf8String filePath; - Utf8String projectPartId; - Utf8StringVector fileArguments; + Utf8StringVector compilationArguments; Utf8String unsavedFileContent; Utf8String textCodecName; quint32 documentRevision = 0; diff --git a/src/libs/clangsupport/messageenvelop.cpp b/src/libs/clangsupport/messageenvelop.cpp index b4da3d87587..f9984f4f693 100644 --- a/src/libs/clangsupport/messageenvelop.cpp +++ b/src/libs/clangsupport/messageenvelop.cpp @@ -50,12 +50,6 @@ QDebug operator<<(QDebug debug, const MessageEnvelop &messageEnvelop) case MessageType::DocumentVisibilityChangedMessage: qDebug() << messageEnvelop.message(); break; - case MessageType::ProjectPartsUpdatedMessage: - qDebug() << messageEnvelop.message(); - break; - case MessageType::ProjectPartsRemovedMessage: - qDebug() << messageEnvelop.message(); - break; case MessageType::UnsavedFilesUpdatedMessage: qDebug() << messageEnvelop.message(); break; diff --git a/src/libs/clangsupport/projectpartcontainer.cpp b/src/libs/clangsupport/projectpartcontainer.cpp deleted file mode 100644 index 077db4a5394..00000000000 --- a/src/libs/clangsupport/projectpartcontainer.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "projectpartcontainer.h" - -#include "clangsupportdebugutils.h" - -#include - -namespace ClangBackEnd { - -static Utf8String quotedArguments(const Utf8StringVector &arguments) -{ - const Utf8String quote = Utf8String::fromUtf8("\""); - const Utf8String joined = arguments.join(quote + Utf8String::fromUtf8(" ") + quote); - return quote + joined + quote; -} - -QDebug operator<<(QDebug debug, const ProjectPartContainer &container) -{ - const Utf8String arguments = quotedArguments(container.arguments); - const Utf8String fileWithArguments = debugWriteFileForInspection( - arguments, - Utf8StringLiteral("projectpartargs-")); - - debug.nospace() << "ProjectPartContainer(" - << container.projectPartId - << "," - << "<" << fileWithArguments << ">" - << ")"; - - return debug; -} - -} // namespace ClangBackEnd - diff --git a/src/libs/clangsupport/projectpartcontainer.h b/src/libs/clangsupport/projectpartcontainer.h deleted file mode 100644 index a31e47e102e..00000000000 --- a/src/libs/clangsupport/projectpartcontainer.h +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include "clangsupport_global.h" - -#include - -#include - -namespace ClangBackEnd { - -class ProjectPartContainer -{ -public: - ProjectPartContainer() = default; - ProjectPartContainer(const Utf8String &projectPartId, - const Utf8StringVector &arguments = Utf8StringVector()) - : projectPartId(projectPartId), - arguments(arguments) - { - } - - friend QDataStream &operator<<(QDataStream &out, const ProjectPartContainer &container) - { - out << container.projectPartId; - out << container.arguments; - - return out; - } - - friend QDataStream &operator>>(QDataStream &in, ProjectPartContainer &container) - { - in >> container.projectPartId; - in >> container.arguments; - - return in; - } - - friend bool operator==(const ProjectPartContainer &first, const ProjectPartContainer &second) - { - return first.projectPartId == second.projectPartId; - } - -public: - Utf8String projectPartId; - Utf8StringVector arguments; -}; - -QDebug operator<<(QDebug debug, const ProjectPartContainer &container); - -} // namespace ClangBackEnd diff --git a/src/libs/clangsupport/projectpartsremovedmessage.cpp b/src/libs/clangsupport/projectpartsremovedmessage.cpp deleted file mode 100644 index 8c727fbc4bd..00000000000 --- a/src/libs/clangsupport/projectpartsremovedmessage.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "projectpartsremovedmessage.h" - -#include - -namespace ClangBackEnd { - -QDebug operator<<(QDebug debug, const ProjectPartsRemovedMessage &message) -{ - debug.nospace() << "ProjectPartsRemovedMessage("; - - for (const Utf8String &fileNames_ : message.projectPartIds) - debug.nospace() << fileNames_ << ", "; - - debug.nospace() << ")"; - - return debug; -} - -} // namespace ClangBackEnd - diff --git a/src/libs/clangsupport/projectpartsremovedmessage.h b/src/libs/clangsupport/projectpartsremovedmessage.h deleted file mode 100644 index 754298aa0d8..00000000000 --- a/src/libs/clangsupport/projectpartsremovedmessage.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include "clangsupport_global.h" - -#include - -#include - -namespace ClangBackEnd { - -class CLANGSUPPORT_EXPORT ProjectPartsRemovedMessage -{ -public: - ProjectPartsRemovedMessage() = default; - ProjectPartsRemovedMessage(const Utf8StringVector &projectPartIds) - : projectPartIds(projectPartIds) - { - } - - friend QDataStream &operator<<(QDataStream &out, const ProjectPartsRemovedMessage &message) - { - out << message.projectPartIds; - - return out; - } - - friend QDataStream &operator>>(QDataStream &in, ProjectPartsRemovedMessage &message) - { - in >> message.projectPartIds; - - return in; - } - - friend bool operator==(const ProjectPartsRemovedMessage &first, - const ProjectPartsRemovedMessage &second) - { - return first.projectPartIds == second.projectPartIds; - } - -public: - Utf8StringVector projectPartIds; -}; - -CLANGSUPPORT_EXPORT QDebug operator<<(QDebug debug, const ProjectPartsRemovedMessage &message); - -DECLARE_MESSAGE(ProjectPartsRemovedMessage); -} // namespace ClangBackEnd diff --git a/src/libs/clangsupport/projectpartsupdatedmessage.cpp b/src/libs/clangsupport/projectpartsupdatedmessage.cpp deleted file mode 100644 index 7550ea81546..00000000000 --- a/src/libs/clangsupport/projectpartsupdatedmessage.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "projectpartsupdatedmessage.h" - -#include - -namespace ClangBackEnd { - -QDebug operator<<(QDebug debug, const ProjectPartsUpdatedMessage &message) -{ - debug.nospace() << "ProjectPartsUpdatedMessage("; - - for (const ProjectPartContainer &projectContainer : message.projectContainers) - debug.nospace() << projectContainer<< ", "; - - debug.nospace() << ")"; - - return debug; -} - -} // namespace ClangBackEnd - diff --git a/src/libs/clangsupport/projectpartsupdatedmessage.h b/src/libs/clangsupport/projectpartsupdatedmessage.h deleted file mode 100644 index 07981a6eb62..00000000000 --- a/src/libs/clangsupport/projectpartsupdatedmessage.h +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include "projectpartcontainer.h" - -#include -#include - -namespace ClangBackEnd { - -class ProjectPartsUpdatedMessage -{ -public: - ProjectPartsUpdatedMessage() = default; - ProjectPartsUpdatedMessage(const QVector &projectContainers) - : projectContainers(projectContainers) - { - } - - friend QDataStream &operator<<(QDataStream &out, const ProjectPartsUpdatedMessage &message) - { - out << message.projectContainers; - - return out; - } - - friend QDataStream &operator>>(QDataStream &in, ProjectPartsUpdatedMessage &message) - { - in >> message.projectContainers; - - return in; - } - - friend bool operator==(const ProjectPartsUpdatedMessage &first, - const ProjectPartsUpdatedMessage &second) - { - return first.projectContainers == second.projectContainers; - } - -public: - QVector projectContainers; -}; - -CLANGSUPPORT_EXPORT QDebug operator<<(QDebug debug, const ProjectPartsUpdatedMessage &message); - -DECLARE_MESSAGE(ProjectPartsUpdatedMessage); -} // namespace ClangBackEnd diff --git a/src/libs/clangsupport/requestcompletionsmessage.h b/src/libs/clangsupport/requestcompletionsmessage.h index ff87d920a81..3319549fecf 100644 --- a/src/libs/clangsupport/requestcompletionsmessage.h +++ b/src/libs/clangsupport/requestcompletionsmessage.h @@ -40,11 +40,9 @@ public: RequestCompletionsMessage(const Utf8String &filePath, quint32 line, quint32 column, - const Utf8String &projectPartId, qint32 funcNameStartLine = -1, qint32 funcNameStartColumn = -1) : filePath(filePath) - , projectPartId(projectPartId) , ticketNumber(++ticketCounter) , line(line) , column(column) @@ -56,7 +54,6 @@ public: friend QDataStream &operator<<(QDataStream &out, const RequestCompletionsMessage &message) { out << message.filePath; - out << message.projectPartId; out << message.ticketNumber; out << message.line; out << message.column; @@ -69,7 +66,6 @@ public: friend QDataStream &operator>>(QDataStream &in, RequestCompletionsMessage &message) { in >> message.filePath; - in >> message.projectPartId; in >> message.ticketNumber; in >> message.line; in >> message.column; @@ -84,7 +80,6 @@ public: { return first.ticketNumber == second.ticketNumber && first.filePath == second.filePath - && first.projectPartId == second.projectPartId && first.line == second.line && first.column == second.column && first.funcNameStartLine == second.funcNameStartLine diff --git a/src/plugins/clangcodemodel/clangbackendcommunicator.cpp b/src/plugins/clangcodemodel/clangbackendcommunicator.cpp index 8bdea6917fc..6354b505484 100644 --- a/src/plugins/clangcodemodel/clangbackendcommunicator.cpp +++ b/src/plugins/clangcodemodel/clangbackendcommunicator.cpp @@ -80,9 +80,6 @@ public: 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 {} @@ -137,42 +134,6 @@ void BackendCommunicator::initializeBackend() m_backendStartTimeOut.start(backEndStartTimeOutInMs); } -static QStringList projectPartOptions(const CppTools::ProjectPart::Ptr &projectPart) -{ - const QStringList options = ClangCodeModel::Utils::createClangOptions(projectPart, - CppTools::ProjectFile::Unsupported); // No language option - - return options; -} - -static ProjectPartContainer toProjectPartContainer( - const CppTools::ProjectPart::Ptr &projectPart) -{ - const QStringList options = projectPartOptions(projectPart); - - return ProjectPartContainer(projectPart->id(), Utf8StringVector(options)); -} - -static QVector toProjectPartContainers( - const QVector projectParts) -{ - QVector projectPartContainers; - projectPartContainers.reserve(projectParts.size()); - - foreach (const CppTools::ProjectPart::Ptr &projectPart, projectParts) - projectPartContainers << toProjectPartContainer(projectPart); - - return projectPartContainers; -} - -void BackendCommunicator::projectPartsUpdatedForFallback() -{ - const auto projectPart = CppTools::CppModelManager::instance()->fallbackProjectPart(); - const auto projectPartContainer = toProjectPartContainer(projectPart); - - projectPartsUpdated({projectPartContainer}); -} - namespace { Utf8String currentCppEditorDocumentFilePath() { @@ -253,15 +214,6 @@ void BackendCommunicator::documentVisibilityChanged(const Utf8String ¤tEdi m_sender->documentVisibilityChanged(message); } -void BackendCommunicator::projectPartsUpdatedForCurrentProjects() -{ - using namespace CppTools; - - const QList projectInfos = CppModelManager::instance()->projectInfos(); - foreach (const ProjectInfo &projectInfo, projectInfos) - projectPartsUpdated(projectInfo.projectParts()); -} - void BackendCommunicator::restoreCppEditorDocuments() { resetCppEditorDocumentProcessors(); @@ -289,12 +241,6 @@ void BackendCommunicator::unsavedFilesUpdatedForUiHeaders() } } -void BackendCommunicator::projectPartsUpdated(const QVector projectParts) -{ - const auto projectPartContainers = toProjectPartContainers(projectParts); - projectPartsUpdated(projectPartContainers); -} - void BackendCommunicator::documentsChangedFromCppEditorDocument(const QString &filePath) { const CppTools::CppEditorDocumentHandle *document = ClangCodeModel::Utils::cppDocument(filePath); @@ -316,7 +262,6 @@ void BackendCommunicator::documentsChanged(const QString &filePath, const bool hasUnsavedContent = true; documentsChanged({{filePath, - Utf8String(), Utf8String::fromByteArray(contents), hasUnsavedContent, documentRevision}}); @@ -330,7 +275,6 @@ void BackendCommunicator::unsavedFilesUpdated(const QString &filePath, // TODO: Send new only if changed unsavedFilesUpdated({{filePath, - Utf8String(), Utf8String::fromByteArray(contents), hasUnsavedContent, documentRevision}}); @@ -412,10 +356,8 @@ void BackendCommunicator::documentsChangedWithRevisionCheck(Core::IDocument *doc { const auto textDocument = qobject_cast(document); const auto filePath = textDocument->filePath().toString(); - const QString projectPartId = CppTools::CppToolsBridge::projectPartIdForFile(filePath); documentsChangedWithRevisionCheck(FileContainer(filePath, - projectPartId, Utf8StringVector(), textDocument->document()->revision())); } @@ -510,8 +452,6 @@ void BackendCommunicator::logError(const QString &text) void BackendCommunicator::initializeBackendWithCurrentData() { - projectPartsUpdatedForFallback(); - projectPartsUpdatedForCurrentProjects(); unsavedFilesUpdatedForUiHeaders(); restoreCppEditorDocuments(); documentVisibilityChanged(); @@ -537,19 +477,6 @@ void BackendCommunicator::documentsClosed(const FileContainers &fileContainers) m_sender->documentsClosed(message); } -void BackendCommunicator::projectPartsUpdated( - const ProjectPartContainers &projectPartContainers) -{ - const ProjectPartsUpdatedMessage message(projectPartContainers); - m_sender->projectPartsUpdated(message); -} - -void BackendCommunicator::projectPartsRemoved(const QStringList &projectPartIds) -{ - const ProjectPartsRemovedMessage message((Utf8StringVector(projectPartIds))); - m_sender->projectPartsRemoved(message); -} - void BackendCommunicator::unsavedFilesUpdated(const FileContainers &fileContainers) { const UnsavedFilesUpdatedMessage message(fileContainers); @@ -566,14 +493,12 @@ void BackendCommunicator::requestCompletions(ClangCompletionAssistProcessor *ass const QString &filePath, quint32 line, quint32 column, - const QString &projectFilePath, qint32 funcNameStartLine, qint32 funcNameStartColumn) { const RequestCompletionsMessage message(filePath, line, column, - projectFilePath, funcNameStartLine, funcNameStartColumn); m_sender->requestCompletions(message); diff --git a/src/plugins/clangcodemodel/clangbackendcommunicator.h b/src/plugins/clangcodemodel/clangbackendcommunicator.h index 897a9374537..7d676cf5a54 100644 --- a/src/plugins/clangcodemodel/clangbackendcommunicator.h +++ b/src/plugins/clangcodemodel/clangbackendcommunicator.h @@ -32,7 +32,6 @@ #include #include -#include #include #include @@ -56,7 +55,6 @@ class BackendCommunicator : public QObject public: using FileContainer = ClangBackEnd::FileContainer; using FileContainers = QVector; - using ProjectPartContainers = QVector; using LocalUseMap = CppTools::SemanticInfo::LocalUseMap; public: @@ -76,11 +74,6 @@ public: void documentsClosed(const FileContainers &fileContainers); void documentVisibilityChanged(); - void projectPartsUpdated(const QVector 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, @@ -93,7 +86,6 @@ public: const QString &filePath, quint32 line, quint32 column, - const QString &projectFilePath, qint32 funcNameStartLine = -1, qint32 funcNameStartColumn = -1); void requestAnnotations(const ClangBackEnd::FileContainer &fileContainer); @@ -119,7 +111,6 @@ public: private: void initializeBackend(); void initializeBackendWithCurrentData(); - void projectPartsUpdatedForCurrentProjects(); void restoreCppEditorDocuments(); void resetCppEditorDocumentProcessors(); void unsavedFilesUpdatedForUiHeaders(); diff --git a/src/plugins/clangcodemodel/clangbackendreceiver.cpp b/src/plugins/clangcodemodel/clangbackendreceiver.cpp index 7218695d613..cf113617c36 100644 --- a/src/plugins/clangcodemodel/clangbackendreceiver.cpp +++ b/src/plugins/clangcodemodel/clangbackendreceiver.cpp @@ -199,16 +199,9 @@ void BackendReceiver::annotations(const AnnotationsMessage &message) << message.skippedPreprocessorRanges.size() << "skipped preprocessor ranges"; auto processor = ClangEditorDocumentProcessor::get(message.fileContainer.filePath); - if (!processor) return; - const QString projectPartId = message.fileContainer.projectPartId; - const QString filePath = message.fileContainer.filePath; - const QString documentProjectPartId = CppTools::CppToolsBridge::projectPartIdForFile(filePath); - if (projectPartId != documentProjectPartId) - return; - const quint32 documentRevision = message.fileContainer.documentRevision; if (message.onlyTokenInfos) { processor->updateTokenInfos(message.tokenInfos, documentRevision); diff --git a/src/plugins/clangcodemodel/clangbackendsender.cpp b/src/plugins/clangcodemodel/clangbackendsender.cpp index a99852bfc43..17f68ae1d73 100644 --- a/src/plugins/clangcodemodel/clangbackendsender.cpp +++ b/src/plugins/clangcodemodel/clangbackendsender.cpp @@ -71,20 +71,6 @@ void BackendSender::documentsClosed(const DocumentsClosedMessage &message) m_connection->serverProxy().documentsClosed(message); } -void BackendSender::projectPartsUpdated(const ProjectPartsUpdatedMessage &message) -{ - QTC_CHECK(m_connection->isConnected()); - qCDebugIpc() << message; - m_connection->serverProxy().projectPartsUpdated(message); -} - -void BackendSender::projectPartsRemoved(const ProjectPartsRemovedMessage &message) -{ - QTC_CHECK(m_connection->isConnected()); - qCDebugIpc() << message; - m_connection->serverProxy().projectPartsRemoved(message); -} - void BackendSender::unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message) { QTC_CHECK(m_connection->isConnected()); diff --git a/src/plugins/clangcodemodel/clangbackendsender.h b/src/plugins/clangcodemodel/clangbackendsender.h index 86cd7d20b5e..5e4f14f9379 100644 --- a/src/plugins/clangcodemodel/clangbackendsender.h +++ b/src/plugins/clangcodemodel/clangbackendsender.h @@ -44,9 +44,6 @@ public: 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; diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp index 1d9d8363e63..843778e4bbe 100644 --- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp +++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp @@ -577,7 +577,6 @@ void ClangCompletionAssistProcessor::sendFileContent(const QByteArray &customFil BackendCommunicator &communicator = m_interface->communicator(); communicator.documentsChanged({{m_interface->fileName(), - Utf8String(), Utf8String::fromByteArray(info.unsavedContent), info.isDocumentModified, uint(m_interface->textDocument()->revision())}}); @@ -658,12 +657,10 @@ bool ClangCompletionAssistProcessor::sendCompletionRequest(int position, const Position cursorPosition = extractLineColumn(position); const Position functionNameStart = extractLineColumn(functionNameStartPosition); - const QString projectPartId = CppTools::CppToolsBridge::projectPartIdForFile(filePath); communicator.requestCompletions(this, filePath, uint(cursorPosition.line), uint(cursorPosition.column), - projectPartId, functionNameStart.line, functionNameStart.column); setLastCompletionPosition(filePath, position); diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp index 25054f14eca..706677d87ee 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp @@ -143,7 +143,7 @@ void ClangEditorDocumentProcessor::semanticRehighlight() m_semanticHighlighter.updateFormatMapFromFontSettings(); if (m_projectPart) - requestAnnotationsFromBackend(m_projectPart->id()); + requestAnnotationsFromBackend(); } CppTools::SemanticInfo ClangEditorDocumentProcessor::recalculateSemanticInfo() @@ -588,8 +588,7 @@ private: }; } // namespace -void ClangEditorDocumentProcessor::updateBackendDocument( - CppTools::ProjectPart &projectPart) +void ClangEditorDocumentProcessor::updateBackendDocument(CppTools::ProjectPart &projectPart) { // On registration we send the document content immediately as an unsaved // file, because @@ -605,10 +604,17 @@ void ClangEditorDocumentProcessor::updateBackendDocument( return; } + const QStringList projectPartOptions = ClangCodeModel::Utils::createClangOptions( + projectPart, + CppTools::ProjectFile::Unsupported); // No language option as FileOptionsBuilder adds it. + const FileOptionsBuilder fileOptions(filePath(), projectPart); m_diagnosticConfigId = fileOptions.diagnosticConfigId(); + + const QStringList compilationArguments = projectPartOptions + fileOptions.options(); + m_communicator.documentsOpened( - {fileContainerWithOptionsAndDocumentContent(projectPart, fileOptions.options())}); + {fileContainerWithOptionsAndDocumentContent(compilationArguments)}); ClangCodeModel::Utils::setLastSentDocumentRevision(filePath(), revision()); } @@ -621,16 +627,14 @@ void ClangEditorDocumentProcessor::closeBackendDocument() void ClangEditorDocumentProcessor::updateBackendDocumentIfProjectPartExists() { if (m_projectPart) { - const ClangBackEnd::FileContainer fileContainer = fileContainerWithDocumentContent( - m_projectPart->id()); + const ClangBackEnd::FileContainer fileContainer = fileContainerWithDocumentContent(); m_communicator.documentsChangedWithRevisionCheck(fileContainer); } } -void ClangEditorDocumentProcessor::requestAnnotationsFromBackend(const QString &projectpartId) +void ClangEditorDocumentProcessor::requestAnnotationsFromBackend() { - const auto fileContainer = fileContainerWithDocumentContent(projectpartId); - + const auto fileContainer = fileContainerWithDocumentContent(); m_communicator.requestAnnotations(fileContainer); } @@ -660,12 +664,7 @@ ClangEditorDocumentProcessor::creatorForHeaderErrorDiagnosticWidget( ClangBackEnd::FileContainer ClangEditorDocumentProcessor::simpleFileContainer( const QByteArray &codecName) const { - Utf8String projectPartId; - if (m_projectPart) - projectPartId = m_projectPart->id(); - return ClangBackEnd::FileContainer(filePath(), - projectPartId, Utf8String(), false, revision(), @@ -673,21 +672,19 @@ ClangBackEnd::FileContainer ClangEditorDocumentProcessor::simpleFileContainer( } ClangBackEnd::FileContainer ClangEditorDocumentProcessor::fileContainerWithOptionsAndDocumentContent( - CppTools::ProjectPart &projectPart, const QStringList &fileOptions) const + const QStringList &compilationArguments) const { return ClangBackEnd::FileContainer(filePath(), - projectPart.id(), - Utf8StringVector(fileOptions), + Utf8StringVector(compilationArguments), textDocument()->toPlainText(), true, revision()); } ClangBackEnd::FileContainer -ClangEditorDocumentProcessor::fileContainerWithDocumentContent(const QString &projectpartId) const +ClangEditorDocumentProcessor::fileContainerWithDocumentContent() const { return ClangBackEnd::FileContainer(filePath(), - projectpartId, textDocument()->toPlainText(), true, revision()); diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h index e8aa9003ed4..9229a601324 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h @@ -118,14 +118,14 @@ private: void updateBackendProjectPartAndDocument(); void updateBackendDocument(CppTools::ProjectPart &projectPart); void updateBackendDocumentIfProjectPartExists(); - void requestAnnotationsFromBackend(const QString &projectpartId); + void requestAnnotationsFromBackend(); HeaderErrorDiagnosticWidgetCreator creatorForHeaderErrorDiagnosticWidget( const ClangBackEnd::DiagnosticContainer &firstHeaderErrorDiagnostic); ClangBackEnd::FileContainer simpleFileContainer(const QByteArray &codecName = QByteArray()) const; ClangBackEnd::FileContainer fileContainerWithOptionsAndDocumentContent( - CppTools::ProjectPart &projectPart, const QStringList &fileOptions) const; - ClangBackEnd::FileContainer fileContainerWithDocumentContent(const QString &projectpartId) const; + const QStringList &compilationArguments) const; + ClangBackEnd::FileContainer fileContainerWithDocumentContent() const; private: TextEditor::TextDocument &m_document; diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 46527706ee7..de02be4686e 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -50,8 +50,6 @@ #include #include -#include -#include #include #include @@ -107,8 +105,6 @@ ModelManagerSupportClang::ModelManagerSupportClang() CppTools::CppCodeModelSettings *settings = CppTools::codeModelSettings().data(); connect(settings, &CppTools::CppCodeModelSettings::clangDiagnosticConfigsInvalidated, this, &ModelManagerSupportClang::onDiagnosticConfigsInvalidated); - - m_communicator.projectPartsUpdatedForFallback(); } ModelManagerSupportClang::~ModelManagerSupportClang() @@ -411,17 +407,16 @@ void ModelManagerSupportClang::onProjectPartsUpdated(ProjectExplorer::Project *p const CppTools::ProjectInfo projectInfo = cppModelManager()->projectInfo(project); QTC_ASSERT(projectInfo.isValid(), return); - m_communicator.projectPartsUpdated(projectInfo.projectParts()); - m_communicator.projectPartsUpdatedForFallback(); + QStringList projectPartIds; + for (const CppTools::ProjectPart::Ptr &projectPart : projectInfo.projectParts()) + projectPartIds.append(projectPart->id()); + onProjectPartsRemoved(projectPartIds); } void ModelManagerSupportClang::onProjectPartsRemoved(const QStringList &projectPartIds) { - if (!projectPartIds.isEmpty()) { - closeBackendDocumentsWithProjectParts(projectPartIds); - m_communicator.projectPartsRemoved(projectPartIds); - m_communicator.projectPartsUpdatedForFallback(); - } + if (!projectPartIds.isEmpty()) + reinitializeBackendDocuments(projectPartIds); } static ClangEditorDocumentProcessors clangProcessorsWithDiagnosticConfig( @@ -445,8 +440,7 @@ clangProcessorsWithProjectParts(const QStringList &projectPartIds) }); } -void ModelManagerSupportClang::closeBackendDocumentsWithProjectParts( - const QStringList &projectPartIds) +void ModelManagerSupportClang::reinitializeBackendDocuments(const QStringList &projectPartIds) { const auto processors = clangProcessorsWithProjectParts(projectPartIds); foreach (ClangEditorDocumentProcessor *processor, processors) { diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.h b/src/plugins/clangcodemodel/clangmodelmanagersupport.h index db4e87bfcc2..e11191006f6 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.h +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.h @@ -109,7 +109,7 @@ private: void onDiagnosticConfigsInvalidated(const QVector &configIds); - void closeBackendDocumentsWithProjectParts(const QStringList &projectPartIds); + void reinitializeBackendDocuments(const QStringList &projectPartIds); void connectTextDocumentToTranslationUnit(TextEditor::TextDocument *textDocument); void connectTextDocumentToUnsavedFiles(TextEditor::TextDocument *textDocument); diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index 2150521e864..2d74d7f4ef1 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -63,26 +63,6 @@ using namespace CppTools; namespace ClangCodeModel { namespace Utils { -/** - * @brief Creates list of message-line arguments required for correct parsing - * @param pPart Null if file isn't part of any project - * @param fileName Path to file, non-empty - */ -QStringList createClangOptions(const ProjectPart::Ptr &pPart, const QString &fileName) -{ - ProjectFile::Kind fileKind = ProjectFile::Unclassified; - if (!pPart.isNull()) - foreach (const ProjectFile &file, pPart->files) - if (file.path == fileName) { - fileKind = file.kind; - break; - } - if (fileKind == ProjectFile::Unclassified) - fileKind = ProjectFile::classify(fileName); - - return createClangOptions(pPart, fileKind); -} - class LibClangOptionsBuilder final : public CompilerOptionsBuilder { public: @@ -122,16 +102,10 @@ private: } }; -/** - * @brief Creates list of message-line arguments required for correct parsing - * @param pPart Null if file isn't part of any project - * @param fileKind Determines language and source/header state - */ -QStringList createClangOptions(const ProjectPart::Ptr &pPart, ProjectFile::Kind fileKind) +QStringList createClangOptions(const ProjectPart &projectPart, ProjectFile::Kind fileKind) { - if (!pPart) - return QStringList(); - return LibClangOptionsBuilder(*pPart).build(fileKind, CompilerOptionsBuilder::PchUsage::None); + return LibClangOptionsBuilder(projectPart) + .build(fileKind, CompilerOptionsBuilder::PchUsage::None); } ProjectPart::Ptr projectPartForFile(const QString &filePath) diff --git a/src/plugins/clangcodemodel/clangutils.h b/src/plugins/clangcodemodel/clangutils.h index d35aaf1f261..883dfcdf29e 100644 --- a/src/plugins/clangcodemodel/clangutils.h +++ b/src/plugins/clangcodemodel/clangutils.h @@ -50,10 +50,8 @@ namespace Utils { CppTools::CppEditorDocumentHandle *cppDocument(const QString &filePath); void setLastSentDocumentRevision(const QString &filePath, uint revision); -QStringList createClangOptions(const CppTools::ProjectPart::Ptr &pPart, +QStringList createClangOptions(const CppTools::ProjectPart &projectPart, CppTools::ProjectFile::Kind fileKind); -QStringList createClangOptions(const CppTools::ProjectPart::Ptr &pPart, - const QString &fileName = QString()); CppTools::ProjectPart::Ptr projectPartForFile(const QString &filePath); CppTools::ProjectPart::Ptr projectPartForFileBasedOnProcessor(const QString &filePath); diff --git a/src/tools/clangbackend/source/clangbackendclangipc-source.pri b/src/tools/clangbackend/source/clangbackendclangipc-source.pri index b3b88e7ac40..44d822c1f0a 100644 --- a/src/tools/clangbackend/source/clangbackendclangipc-source.pri +++ b/src/tools/clangbackend/source/clangbackendclangipc-source.pri @@ -50,8 +50,6 @@ HEADERS += \ $$PWD/diagnosticsetiterator.h \ $$PWD/fixit.h \ $$PWD/fulltokeninfo.h \ - $$PWD/projectpart.h \ - $$PWD/projects.h \ $$PWD/skippedsourceranges.h \ $$PWD/sourcelocation.h \ $$PWD/sourcerange.h \ @@ -106,8 +104,6 @@ SOURCES += \ $$PWD/diagnosticset.cpp \ $$PWD/fixit.cpp \ $$PWD/fulltokeninfo.cpp \ - $$PWD/projectpart.cpp \ - $$PWD/projects.cpp \ $$PWD/skippedsourceranges.cpp \ $$PWD/sourcelocation.cpp \ $$PWD/sourcerange.cpp \ diff --git a/src/tools/clangbackend/source/clangcodemodelserver.cpp b/src/tools/clangbackend/source/clangcodemodelserver.cpp index 49a8008aed9..5f63e21f1bc 100644 --- a/src/tools/clangbackend/source/clangcodemodelserver.cpp +++ b/src/tools/clangbackend/source/clangcodemodelserver.cpp @@ -55,7 +55,7 @@ static bool useSupportiveTranslationUnit() namespace ClangBackEnd { ClangCodeModelServer::ClangCodeModelServer() - : documents(projects, unsavedFiles) + : documents(unsavedFiles) { updateAnnotationsTimer.setSingleShot(true); QObject::connect(&updateAnnotationsTimer, @@ -74,7 +74,7 @@ ClangCodeModelServer::ClangCodeModelServer() QObject::connect(documents.clangFileSystemWatcher(), &ClangFileSystemWatcher::fileChanged, [this](const Utf8String &filePath) { - if (!documents.hasDocumentWithFilePath(filePath)) + if (!documents.hasDocument(filePath)) updateAnnotationsTimer.start(0); }); } @@ -161,43 +161,6 @@ void ClangCodeModelServer::documentsClosed(const ClangBackEnd::DocumentsClosedMe } } -static DocumentResetInfos toDocumentResetInfos(const std::vector &documents) -{ - DocumentResetInfos infos; - for (const auto &d : documents) - infos.push_back(DocumentResetInfo{d, d.fileContainer()}); - return infos; -} - -void ClangCodeModelServer::projectPartsUpdated(const ProjectPartsUpdatedMessage &message) -{ - qCDebug(serverLog) << "########## projectPartsUpdated"; - TIME_SCOPE_DURATION("ClangCodeModelServer::projectPartsUpdated"); - - try { - projects.createOrUpdate(message.projectContainers); - std::vector affectedDocuments = documents.setDocumentsDirtyIfProjectPartChanged(); - - resetDocuments(toDocumentResetInfos(affectedDocuments)); - - processJobsForVisibleDocuments(); - } catch (const std::exception &exception) { - qWarning() << "Error in ClangCodeModelServer::projectPartsUpdated:" << exception.what(); - } -} - -void ClangCodeModelServer::projectPartsRemoved(const ProjectPartsRemovedMessage &message) -{ - qCDebug(serverLog) << "########## projectPartsRemoved"; - TIME_SCOPE_DURATION("ClangCodeModelServer::projectPartsRemoved"); - - try { - projects.remove(message.projectPartIds); - } catch (const std::exception &exception) { - qWarning() << "Error in ClangCodeModelServer::projectPartsRemoved:" << exception.what(); - } -} - void ClangCodeModelServer::unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message) { qCDebug(serverLog) << "########## unsavedFilesUpdated"; @@ -232,7 +195,7 @@ void ClangCodeModelServer::requestCompletions(const ClangBackEnd::RequestComplet TIME_SCOPE_DURATION("ClangCodeModelServer::requestCompletions"); try { - Document document = documents.document(message.filePath, message.projectPartId); + Document document = documents.document(message.filePath); DocumentProcessor processor = documentProcessors().processor(document); JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::RequestCompletions); @@ -255,8 +218,7 @@ void ClangCodeModelServer::requestAnnotations(const RequestAnnotationsMessage &m TIME_SCOPE_DURATION("ClangCodeModelServer::requestAnnotations"); try { - auto document = documents.document(message.fileContainer.filePath, - message.fileContainer.projectPartId); + auto document = documents.document(message.fileContainer.filePath); DocumentProcessor processor = documentProcessors().processor(document); processor.addJob(JobRequest::Type::RequestAnnotations); @@ -285,8 +247,7 @@ void ClangCodeModelServer::requestReferences(const RequestReferencesMessage &mes TIME_SCOPE_DURATION("ClangCodeModelServer::requestReferences"); try { - const Document document = documents.document(message.fileContainer.filePath, - message.fileContainer.projectPartId); + const Document document = documents.document(message.fileContainer.filePath); DocumentProcessor processor = documentProcessors().processor(document); JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::RequestReferences); @@ -305,8 +266,7 @@ void ClangCodeModelServer::requestFollowSymbol(const RequestFollowSymbolMessage TIME_SCOPE_DURATION("ClangCodeModelServer::requestFollowSymbol"); try { - const Utf8String &projectPartId = message.fileContainer.projectPartId; - Document document = documents.document(message.fileContainer.filePath, projectPartId); + Document document = documents.document(message.fileContainer.filePath); DocumentProcessor processor = documentProcessors().processor(document); JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::RequestFollowSymbol); @@ -323,8 +283,7 @@ void ClangCodeModelServer::requestToolTip(const RequestToolTipMessage &message) TIME_SCOPE_DURATION("ClangCodeModelServer::requestToolTip"); try { - const Document document = documents.document(message.fileContainer.filePath, - message.fileContainer.projectPartId); + const Document document = documents.document(message.fileContainer.filePath); DocumentProcessor processor = documentProcessors().processor(document); JobRequest jobRequest = processor.createJobRequest(JobRequest::Type::RequestToolTip); @@ -504,7 +463,7 @@ DocumentProcessors &ClangCodeModelServer::documentProcessors() // DocumentProcessors needs a reference to the client, but the client // is not known at construction time of ClangCodeModelServer, so // construct DocumentProcessors in a lazy manner. - documentProcessors_.reset(new DocumentProcessors(documents, unsavedFiles, projects, *client())); + documentProcessors_.reset(new DocumentProcessors(documents, unsavedFiles, *client())); } return *documentProcessors_.data(); diff --git a/src/tools/clangbackend/source/clangcodemodelserver.h b/src/tools/clangbackend/source/clangcodemodelserver.h index be18093073e..8829c4a8ce7 100644 --- a/src/tools/clangbackend/source/clangcodemodelserver.h +++ b/src/tools/clangbackend/source/clangcodemodelserver.h @@ -25,8 +25,6 @@ #pragma once -#include "projectpart.h" -#include "projects.h" #include "clangdocument.h" #include "clangdocuments.h" #include "clangdocumentprocessors.h" @@ -61,9 +59,6 @@ public: 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; @@ -97,7 +92,6 @@ private: void addAndRunUpdateJobs(std::vector documents); private: - ProjectParts projects; UnsavedFiles unsavedFiles; Documents documents; diff --git a/src/tools/clangbackend/source/clangdocument.cpp b/src/tools/clangbackend/source/clangdocument.cpp index bef88e9cb28..067864e60fe 100644 --- a/src/tools/clangbackend/source/clangdocument.cpp +++ b/src/tools/clangbackend/source/clangdocument.cpp @@ -29,7 +29,6 @@ #include "clangstring.h" #include "clangunsavedfilesshallowarguments.h" #include "codecompleter.h" -#include "projectpart.h" #include "clangexceptions.h" #include "clangtranslationunit.h" #include "clangtranslationunits.h" @@ -51,8 +50,7 @@ class DocumentData { public: DocumentData(const Utf8String &filePath, - const ProjectPart &projectPart, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, Documents &documents); ~DocumentData(); @@ -60,10 +58,7 @@ public: Documents &documents; const Utf8String filePath; - const Utf8StringVector fileArguments; - - ProjectPart projectPart; - TimePoint lastProjectPartChangeTimePoint; + const Utf8StringVector compilationArguments; TranslationUnits translationUnits; @@ -84,16 +79,13 @@ public: }; DocumentData::DocumentData(const Utf8String &filePath, - const ProjectPart &projectPart, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, Documents &documents) : documents(documents), filePath(filePath), - fileArguments(fileArguments), - projectPart(projectPart), - lastProjectPartChangeTimePoint(Clock::now()), + compilationArguments(compilationArguments), translationUnits(filePath), - isDirtyChangeTimePoint(lastProjectPartChangeTimePoint) + isDirtyChangeTimePoint(Clock::now()) { dependedFilePaths.insert(filePath); translationUnits.createAndAppend(); @@ -104,13 +96,11 @@ DocumentData::~DocumentData() } Document::Document(const Utf8String &filePath, - const ProjectPart &projectPart, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, Documents &documents, FileExistsCheck fileExistsCheck) : d(std::make_shared(filePath, - projectPart, - fileArguments, + compilationArguments, documents)) { if (fileExistsCheck == FileExistsCheck::Check) @@ -167,11 +157,11 @@ Utf8String Document::filePath() const return d->filePath; } -Utf8StringVector Document::fileArguments() const +Utf8StringVector Document::compilationArguments() const { checkIfNull(); - return d->fileArguments; + return d->compilationArguments; } FileContainer Document::fileContainer() const @@ -179,34 +169,12 @@ FileContainer Document::fileContainer() const checkIfNull(); return FileContainer(d->filePath, - d->projectPart.id(), - d->fileArguments, + d->compilationArguments, Utf8String(), false, d->documentRevision); } -const ProjectPart &Document::projectPart() const -{ - checkIfNull(); - - return d->projectPart; -} - -const TimePoint Document::lastProjectPartChangeTimePoint() const -{ - checkIfNull(); - - return d->lastProjectPartChangeTimePoint; -} - -bool Document::isProjectPartOutdated() const -{ - checkIfNull(); - - return d->projectPart.lastChangeTimePoint() >= d->lastProjectPartChangeTimePoint; -} - uint Document::documentRevision() const { checkIfNull(); @@ -303,16 +271,6 @@ TimePoint Document::isDirtyTimeChangePoint() const return d->isDirtyChangeTimePoint; } -bool Document::setDirtyIfProjectPartIsOutdated() -{ - if (isProjectPartOutdated()) { - setDirty(); - return true; - } - - return false; -} - void Document::setDirtyIfDependencyIsMet(const Utf8String &filePath) { if (d->dependedFilePaths.contains(filePath) && isMainFileAndExistsOrIsOtherFile(filePath)) @@ -322,14 +280,11 @@ void Document::setDirtyIfDependencyIsMet(const Utf8String &filePath) TranslationUnitUpdateInput Document::createUpdateInput() const { TranslationUnitUpdateInput updateInput; - updateInput.parseNeeded = isProjectPartOutdated(); updateInput.reparseNeeded = d->isDirty; updateInput.needsToBeReparsedChangeTimePoint = d->isDirtyChangeTimePoint; - updateInput.filePath = filePath(); - updateInput.fileArguments = fileArguments(); + updateInput.filePath = d->filePath; + updateInput.compilationArguments = d->compilationArguments; updateInput.unsavedFiles = d->documents.unsavedFiles(); - updateInput.projectId = projectPart().id(); - updateInput.projectArguments = projectPart().arguments(); return updateInput; } @@ -360,9 +315,6 @@ void Document::incorporateUpdaterResult(const TranslationUnitUpdateResult &resul return; } - if (result.hasParsed()) - d->lastProjectPartChangeTimePoint = result.parseTimePoint; - if (result.hasParsed() || result.hasReparsed()) { d->dependedFilePaths = result.dependedOnFilePaths; @@ -456,15 +408,13 @@ bool Document::isMainFileAndExistsOrIsOtherFile(const Utf8String &filePath) cons bool operator==(const Document &first, const Document &second) { - return first.filePath() == second.filePath() - && first.projectPart().id() == second.projectPart().id(); + return first.filePath() == second.filePath(); } std::ostream &operator<<(std::ostream &os, const Document &document) { os << "(" << document.filePath() << ", " - << document.projectPart().id() << ", " << document.documentRevision() << ")"; diff --git a/src/tools/clangbackend/source/clangdocument.h b/src/tools/clangbackend/source/clangdocument.h index 92a852c820a..90f5dd71b23 100644 --- a/src/tools/clangbackend/source/clangdocument.h +++ b/src/tools/clangbackend/source/clangdocument.h @@ -47,7 +47,6 @@ class TranslationUnit; class TranslationUnits; class DocumentData; class TranslationUnitUpdateResult; -class ProjectPart; class FileContainer; class Documents; @@ -61,8 +60,7 @@ public: Document() = default; Document(const Utf8String &filePath, - const ProjectPart &projectPart, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, Documents &documents, FileExistsCheck fileExistsCheck = FileExistsCheck::Check); ~Document(); @@ -81,13 +79,9 @@ public: long useCount() const; Utf8String filePath() const; - Utf8StringVector fileArguments() const; + Utf8StringVector compilationArguments() const; FileContainer fileContainer() const; - const ProjectPart &projectPart() const; - const TimePoint lastProjectPartChangeTimePoint() const; - bool isProjectPartOutdated() const; - uint documentRevision() const; void setDocumentRevision(uint revision); @@ -107,7 +101,6 @@ public: bool isDirty() const; TimePoint isDirtyTimeChangePoint() const; - bool setDirtyIfProjectPartIsOutdated(); void setDirtyIfDependencyIsMet(const Utf8String &filePath); TranslationUnitUpdateInput createUpdateInput() const; diff --git a/src/tools/clangbackend/source/clangdocumentprocessor.cpp b/src/tools/clangbackend/source/clangdocumentprocessor.cpp index 3c51db5b499..e50195dbdbd 100644 --- a/src/tools/clangbackend/source/clangdocumentprocessor.cpp +++ b/src/tools/clangbackend/source/clangdocumentprocessor.cpp @@ -45,16 +45,14 @@ public: DocumentProcessorData(const Document &document, Documents &documents, UnsavedFiles &unsavedFiles, - ProjectParts &projects, ClangCodeModelClientInterface &client) : document(document) , documents(documents) - , jobs(documents, unsavedFiles, projects, client, QFileInfo(document.filePath()).fileName()) + , jobs(documents, unsavedFiles, client, QFileInfo(document.filePath()).fileName()) , supportiveTranslationUnitInitializer(document, jobs) { - const auto isDocumentClosedChecker = [this](const Utf8String &filePath, - const Utf8String &projectPartId) { - return !this->documents.hasDocument(filePath, projectPartId); + const auto isDocumentClosedChecker = [this](const Utf8String &filePath) { + return !this->documents.hasDocument(filePath); }; supportiveTranslationUnitInitializer.setIsDocumentClosedChecker(isDocumentClosedChecker); } @@ -70,12 +68,10 @@ public: DocumentProcessor::DocumentProcessor(const Document &document, Documents &documents, UnsavedFiles &unsavedFiles, - ProjectParts &projects, ClangCodeModelClientInterface &client) : d(std::make_shared(document, documents, unsavedFiles, - projects, client)) { } diff --git a/src/tools/clangbackend/source/clangdocumentprocessor.h b/src/tools/clangbackend/source/clangdocumentprocessor.h index 8f4e8051586..e4b49854465 100644 --- a/src/tools/clangbackend/source/clangdocumentprocessor.h +++ b/src/tools/clangbackend/source/clangdocumentprocessor.h @@ -37,7 +37,6 @@ class Document; class Documents; class DocumentProcessorData; class JobRequest; -class ProjectParts; class UnsavedFiles; class DocumentProcessor @@ -46,7 +45,6 @@ public: DocumentProcessor(const Document &document, Documents &documents, UnsavedFiles &unsavedFiles, - ProjectParts &projects, ClangCodeModelClientInterface &client); JobRequest createJobRequest(JobRequest::Type type, diff --git a/src/tools/clangbackend/source/clangdocumentprocessors.cpp b/src/tools/clangbackend/source/clangdocumentprocessors.cpp index 8e5a51d0051..b4d4fbcdbd0 100644 --- a/src/tools/clangbackend/source/clangdocumentprocessors.cpp +++ b/src/tools/clangbackend/source/clangdocumentprocessors.cpp @@ -26,7 +26,6 @@ #include "clangdocumentprocessors.h" #include "clangdocument.h" #include "clangexceptions.h" -#include "projectpart.h" #include @@ -34,40 +33,31 @@ namespace ClangBackEnd { DocumentProcessors::DocumentProcessors(Documents &documents, UnsavedFiles &unsavedFiles, - ProjectParts &projects, ClangCodeModelClientInterface &client) : m_documents(documents) , m_unsavedFiles(unsavedFiles) - , m_projects(projects) , m_client(client) { } -static bool operator<(const DocumentId &lhs, const DocumentId &rhs) -{ - return lhs.filePath < rhs.filePath - || (lhs.filePath == rhs.filePath && lhs.projectPartId < lhs.projectPartId); -} - DocumentProcessor DocumentProcessors::create(const Document &document) { - const DocumentId id{document.filePath(), document.projectPart().id()}; - if (m_processors.contains(id)) - throw DocumentProcessorAlreadyExists(document.filePath(), document.projectPart().id()); + const Utf8String filePath{document.filePath()}; + if (m_processors.contains(filePath)) + throw DocumentProcessorAlreadyExists(document.filePath()); - const DocumentProcessor element(document, m_documents, m_unsavedFiles, m_projects, m_client); - m_processors.insert(id, element); + const DocumentProcessor element(document, m_documents, m_unsavedFiles, m_client); + m_processors.insert(filePath, element); return element; } DocumentProcessor DocumentProcessors::processor(const Document &document) { - const DocumentId id{document.filePath(), document.projectPart().id()}; - - const auto it = m_processors.find(id); + const Utf8String filePath = document.filePath(); + const auto it = m_processors.find(filePath); if (it == m_processors.end()) - throw DocumentProcessorDoesNotExist(document.filePath(), document.projectPart().id()); + throw DocumentProcessorDoesNotExist(filePath); return *it; } @@ -79,24 +69,9 @@ QList DocumentProcessors::processors() const void DocumentProcessors::remove(const Document &document) { - const DocumentId id{document.filePath(), document.projectPart().id()}; - - const int itemsRemoved = m_processors.remove(id); + const int itemsRemoved = m_processors.remove(document.filePath()); if (itemsRemoved != 1) - throw DocumentProcessorDoesNotExist(document.filePath(), document.projectPart().id()); -} - -static JobRequests jobsToTakeOver(const JobRequests &jobsStillInQueue, - const Utf8String &updatedProjectPartId) -{ - JobRequests jobs = Utils::filtered(jobsStillInQueue, [](const JobRequest &job) { - return job.isTakeOverable(); - }); - - for (JobRequest &job : jobs) - job.projectPartId = updatedProjectPartId; - - return jobs; + throw DocumentProcessorDoesNotExist(document.filePath()); } void DocumentProcessors::reset(const Document &oldDocument, const Document &newDocument) @@ -105,8 +80,10 @@ void DocumentProcessors::reset(const Document &oldDocument, const Document &newD // processed job requests for the new processor... const JobRequests jobsStillInQueue = processor(oldDocument).stop(); // ...but do not take over irrelevant ones. - const JobRequests jobsForNewProcessor = jobsToTakeOver(jobsStillInQueue, - newDocument.projectPart().id()); + const JobRequests jobsForNewProcessor = Utils::filtered(jobsStillInQueue, + [](const JobRequest &job) { + return job.isTakeOverable(); + }); // Remove current processor remove(oldDocument); diff --git a/src/tools/clangbackend/source/clangdocumentprocessors.h b/src/tools/clangbackend/source/clangdocumentprocessors.h index 4060fd4b47a..ab00fa8d563 100644 --- a/src/tools/clangbackend/source/clangdocumentprocessors.h +++ b/src/tools/clangbackend/source/clangdocumentprocessors.h @@ -37,18 +37,11 @@ namespace ClangBackEnd { class Document; class DocumentProcessor; -class DocumentId { -public: - Utf8String filePath; - Utf8String projectPartId; -}; - class DocumentProcessors { public: DocumentProcessors(Documents &documents, UnsavedFiles &unsavedFiles, - ProjectParts &projects, ClangCodeModelClientInterface &client); DocumentProcessor create(const Document &document); @@ -66,10 +59,9 @@ public: // for tests private: Documents &m_documents; UnsavedFiles &m_unsavedFiles; - ProjectParts &m_projects; ClangCodeModelClientInterface &m_client; - QMap m_processors; + QMap m_processors; }; } // namespace ClangBackEnd diff --git a/src/tools/clangbackend/source/clangdocuments.cpp b/src/tools/clangbackend/source/clangdocuments.cpp index 999c52a0dfb..83178f3d627 100644 --- a/src/tools/clangbackend/source/clangdocuments.cpp +++ b/src/tools/clangbackend/source/clangdocuments.cpp @@ -28,7 +28,6 @@ #include #include #include -#include #include #include @@ -42,8 +41,7 @@ namespace ClangBackEnd { bool operator==(const FileContainer &fileContainer, const Document &document) { - return fileContainer.filePath == document.filePath() - && fileContainer.projectPartId == document.projectPart().id(); + return fileContainer.filePath == document.filePath(); } bool operator==(const Document &document, const FileContainer &fileContainer) @@ -51,9 +49,8 @@ bool operator==(const Document &document, const FileContainer &fileContainer) return fileContainer == document; } -Documents::Documents(ProjectParts &projects, UnsavedFiles &unsavedFiles) +Documents::Documents(UnsavedFiles &unsavedFiles) : fileSystemWatcher(*this), - projectParts(projects), unsavedFiles_(unsavedFiles) { } @@ -103,8 +100,6 @@ static bool removeFromFileContainer(QVector &fileContainers, cons void Documents::remove(const QVector &fileContainers) { - checkIfProjectPartsExists(fileContainers); - removeDocuments(fileContainers); updateDocumentsWithChangedDependencies(fileContainers); } @@ -122,26 +117,19 @@ void Documents::setVisibleInEditors(const Utf8StringVector &filePaths) document.setIsVisibleInEditor(filePaths.contains(document.filePath()), timePoint); } -const Document &Documents::document(const Utf8String &filePath, const Utf8String &projectPartId) const +const Document &Documents::document(const Utf8String &filePath) const { - checkIfProjectPartExists(projectPartId); - - auto findIterator = findDocument(filePath, projectPartId); + auto findIterator = findDocument(filePath); if (findIterator == documents_.end()) - throw DocumentDoesNotExistException(filePath, projectPartId); + throw DocumentDoesNotExistException(filePath); return *findIterator; } const Document &Documents::document(const FileContainer &fileContainer) const { - return document(fileContainer.filePath, fileContainer.projectPartId); -} - -bool Documents::hasDocument(const Utf8String &filePath, const Utf8String &projectPartId) const -{ - return hasDocument(FileContainer(filePath, projectPartId)); + return document(fileContainer.filePath); } const std::vector &Documents::documents() const @@ -185,18 +173,6 @@ void Documents::updateDocumentsWithChangedDependencies(const QVector Documents::setDocumentsDirtyIfProjectPartChanged() -{ - std::vector affectedDocuments; - - for (auto &document : documents_) { - if (document.setDirtyIfProjectPartIsOutdated()) - affectedDocuments.push_back(document); - } - - return affectedDocuments; -} - QVector Documents::newerFileContainers(const QVector &fileContainers) const { QVector newerContainers; @@ -229,8 +205,7 @@ Document Documents::createDocument(const FileContainer &fileContainer) : Document::FileExistsCheck::Check; documents_.emplace_back(fileContainer.filePath, - projectParts.project(fileContainer.projectPartId), - fileContainer.fileArguments, + fileContainer.compilationArguments, *this, checkIfFileExists); @@ -249,7 +224,7 @@ std::vector Documents::updateDocument(const FileContainer &fileContain return documents; } -std::vector::iterator Documents::findDocument(const FileContainer &fileContainer) +std::vector::const_iterator Documents::findDocument(const FileContainer &fileContainer) const { return std::find(documents_.begin(), documents_.end(), fileContainer); } @@ -269,20 +244,7 @@ std::vector Documents::findAllDocumentsWithFilePath(const Utf8String & return documents; } -std::vector::const_iterator Documents::findDocument(const Utf8String &filePath, const Utf8String &projectPartId) const -{ - FileContainer fileContainer(filePath, projectPartId); - return std::find(documents_.begin(), documents_.end(), fileContainer); -} - -bool Documents::hasDocument(const FileContainer &fileContainer) const -{ - auto findIterator = std::find(documents_.begin(), documents_.end(), fileContainer); - - return findIterator != documents_.end(); -} - -bool Documents::hasDocumentWithFilePath(const Utf8String &filePath) const +bool Documents::hasDocument(const Utf8String &filePath) const { auto filePathCompare = [&filePath] (const Document &document) { return document.filePath() == filePath; @@ -293,42 +255,19 @@ bool Documents::hasDocumentWithFilePath(const Utf8String &filePath) const return findIterator != documents_.end(); } -void Documents::checkIfProjectPartExists(const Utf8String &projectFileName) const -{ - projectParts.project(projectFileName); -} - -void Documents::checkIfProjectPartsExists(const QVector &fileContainers) const -{ - Utf8StringVector notExistingProjectParts; - - for (const FileContainer &fileContainer : fileContainers) { - if (!projectParts.hasProjectPart(fileContainer.projectPartId)) - notExistingProjectParts.push_back(fileContainer.projectPartId); - } - - if (!notExistingProjectParts.isEmpty()) - throw ProjectPartDoNotExistException(notExistingProjectParts); - -} - void Documents::checkIfDocumentsDoNotExist(const QVector &fileContainers) const { for (const FileContainer &fileContainer : fileContainers) { - if (hasDocument(fileContainer)) { - throw DocumentAlreadyExistsException(fileContainer.filePath, - fileContainer.projectPartId); - } + if (hasDocument(fileContainer.filePath)) + throw DocumentAlreadyExistsException(fileContainer.filePath); } } void Documents::checkIfDocumentsForFilePathsExist(const QVector &fileContainers) const { for (const FileContainer &fileContainer : fileContainers) { - if (!hasDocumentWithFilePath(fileContainer.filePath)) { - throw DocumentDoesNotExistException(fileContainer.filePath, - fileContainer.projectPartId); - } + if (!hasDocument(fileContainer.filePath)) + throw DocumentDoesNotExistException(fileContainer.filePath); } } @@ -344,8 +283,7 @@ void Documents::removeDocuments(const QVector &fileContainers) if (!processedFileContainers.isEmpty()) { const FileContainer fileContainer = processedFileContainers.first(); - throw DocumentDoesNotExistException(fileContainer.filePath, - fileContainer.projectPartId); + throw DocumentDoesNotExistException(fileContainer.filePath); } } diff --git a/src/tools/clangbackend/source/clangdocuments.h b/src/tools/clangbackend/source/clangdocuments.h index a267becc279..9523e67c838 100644 --- a/src/tools/clangbackend/source/clangdocuments.h +++ b/src/tools/clangbackend/source/clangdocuments.h @@ -37,13 +37,12 @@ namespace ClangBackEnd { -class ProjectParts; class UnsavedFiles; class Documents { public: - Documents(ProjectParts &projectParts, UnsavedFiles &unsavedFiles); + Documents(UnsavedFiles &unsavedFiles); std::vector create(const QVector &fileContainers); std::vector update(const QVector &fileContainers); @@ -52,10 +51,9 @@ public: void setUsedByCurrentEditor(const Utf8String &filePath); void setVisibleInEditors(const Utf8StringVector &filePaths); - const Document &document(const Utf8String &filePath, const Utf8String &projectPartId) const; + const Document &document(const Utf8String &filePath) const; const Document &document(const FileContainer &fileContainer) const; - bool hasDocument(const Utf8String &filePath, const Utf8String &projectPartId) const; - bool hasDocumentWithFilePath(const Utf8String &filePath) const; + bool hasDocument(const Utf8String &filePath) const; const std::vector &documents() const; using IsMatchingDocument = std::function; @@ -68,7 +66,6 @@ public: void updateDocumentsWithChangedDependency(const Utf8String &filePath); void updateDocumentsWithChangedDependencies(const QVector &fileContainers); - std::vector setDocumentsDirtyIfProjectPartChanged(); QVector newerFileContainers(const QVector &fileContainers) const; @@ -77,12 +74,8 @@ public: private: Document createDocument(const FileContainer &fileContainer); std::vector updateDocument(const FileContainer &fileContainer); - std::vector::iterator findDocument(const FileContainer &fileContainer); + std::vector::const_iterator findDocument(const FileContainer &fileContainer) const; std::vector findAllDocumentsWithFilePath(const Utf8String &filePath); - std::vector::const_iterator findDocument(const Utf8String &filePath, const Utf8String &projectPartId) const; - bool hasDocument(const FileContainer &fileContainer) const; - void checkIfProjectPartExists(const Utf8String &projectFileName) const; - void checkIfProjectPartsExists(const QVector &fileContainers) const; void checkIfDocumentsDoNotExist(const QVector &fileContainers) const; void checkIfDocumentsForFilePathsExist(const QVector &fileContainers) const; @@ -91,7 +84,6 @@ private: private: ClangFileSystemWatcher fileSystemWatcher; std::vector documents_; - ProjectParts &projectParts; UnsavedFiles &unsavedFiles_; }; diff --git a/src/tools/clangbackend/source/clangexceptions.cpp b/src/tools/clangbackend/source/clangexceptions.cpp index 1cd016b6bcd..813a9bc77f1 100644 --- a/src/tools/clangbackend/source/clangexceptions.cpp +++ b/src/tools/clangbackend/source/clangexceptions.cpp @@ -32,33 +32,18 @@ const char *ClangBaseException::what() const noexcept return m_info.constData(); } -ProjectPartDoNotExistException::ProjectPartDoNotExistException( - const Utf8StringVector &projectPartIds) -{ - m_info += Utf8StringLiteral("ProjectPart files ") - + projectPartIds.join(Utf8StringLiteral(", ")) - + Utf8StringLiteral(" does not exist!"); -} - -DocumentAlreadyExistsException::DocumentAlreadyExistsException( - const Utf8String &filePath, - const Utf8String &projectPartId) +DocumentAlreadyExistsException::DocumentAlreadyExistsException(const Utf8String &filePath) { m_info += Utf8StringLiteral("Document '") + filePath - + Utf8StringLiteral("' with the project part id '") - + projectPartId + Utf8StringLiteral("' already exists!"); } -DocumentDoesNotExistException::DocumentDoesNotExistException(const Utf8String &filePath, - const Utf8String &projectPartId) +DocumentDoesNotExistException::DocumentDoesNotExistException(const Utf8String &filePath) { m_info += Utf8StringLiteral("Document '") + filePath - + Utf8StringLiteral("' with the project part id '") - + projectPartId - + Utf8StringLiteral("' does not exist!"); + + Utf8StringLiteral("' does not exists!"); } DocumentFileDoesNotExistException::DocumentFileDoesNotExistException( @@ -74,23 +59,17 @@ DocumentIsNullException::DocumentIsNullException() m_info = Utf8String::fromUtf8("Tried to access a null Document!"); } -DocumentProcessorAlreadyExists::DocumentProcessorAlreadyExists(const Utf8String &filePath, - const Utf8String &projectPartId) +DocumentProcessorAlreadyExists::DocumentProcessorAlreadyExists(const Utf8String &filePath) { m_info = Utf8StringLiteral("Document processor for file '") + filePath - + Utf8StringLiteral("' and project part id '") - + projectPartId + Utf8StringLiteral("' already exists!"); } -DocumentProcessorDoesNotExist::DocumentProcessorDoesNotExist(const Utf8String &filePath, - const Utf8String &projectPartId) +DocumentProcessorDoesNotExist::DocumentProcessorDoesNotExist(const Utf8String &filePath) { m_info = Utf8StringLiteral("Document processor for file '") + filePath - + Utf8StringLiteral("' and project part id '") - + projectPartId + Utf8StringLiteral("' does not exist!"); } diff --git a/src/tools/clangbackend/source/clangexceptions.h b/src/tools/clangbackend/source/clangexceptions.h index 4e9b90be941..da94c96aefe 100644 --- a/src/tools/clangbackend/source/clangexceptions.h +++ b/src/tools/clangbackend/source/clangexceptions.h @@ -42,24 +42,16 @@ protected: Utf8String m_info; }; -class ProjectPartDoNotExistException : public ClangBaseException -{ -public: - ProjectPartDoNotExistException(const Utf8StringVector &projectPartIds); -}; - class DocumentAlreadyExistsException : public ClangBaseException { public: - DocumentAlreadyExistsException(const Utf8String &filePath, - const Utf8String &projectPartId); + DocumentAlreadyExistsException(const Utf8String &filePath); }; class DocumentDoesNotExistException : public ClangBaseException { public: - DocumentDoesNotExistException(const Utf8String &filePath, - const Utf8String &projectPartId); + DocumentDoesNotExistException(const Utf8String &filePath); }; class DocumentFileDoesNotExistException : public ClangBaseException @@ -77,15 +69,13 @@ public: class DocumentProcessorAlreadyExists : public ClangBaseException { public: - DocumentProcessorAlreadyExists(const Utf8String &filePath, - const Utf8String &projectPartId); + DocumentProcessorAlreadyExists(const Utf8String &filePath); }; class DocumentProcessorDoesNotExist : public ClangBaseException { public: - DocumentProcessorDoesNotExist(const Utf8String &filePath, - const Utf8String &projectPartId); + DocumentProcessorDoesNotExist(const Utf8String &filePath); }; class TranslationUnitDoesNotExist : public ClangBaseException diff --git a/src/tools/clangbackend/source/clangjobcontext.cpp b/src/tools/clangbackend/source/clangjobcontext.cpp index e0eb444a94e..59f0c1001e7 100644 --- a/src/tools/clangbackend/source/clangjobcontext.cpp +++ b/src/tools/clangbackend/source/clangjobcontext.cpp @@ -42,7 +42,7 @@ JobContext::JobContext(const JobRequest &jobRequest, Document JobContext::documentForJobRequest() const { - return documents->document(jobRequest.filePath, jobRequest.projectPartId); + return documents->document(jobRequest.filePath); } bool JobContext::isOutdated() const @@ -52,7 +52,7 @@ bool JobContext::isOutdated() const bool JobContext::isDocumentOpen() const { - const bool hasDocument = documents->hasDocument(jobRequest.filePath, jobRequest.projectPartId); + const bool hasDocument = documents->hasDocument(jobRequest.filePath); if (!hasDocument) qCDebug(jobsLog) << "Document already closed for results of" << jobRequest; @@ -61,7 +61,7 @@ bool JobContext::isDocumentOpen() const bool JobContext::documentRevisionChanged() const { - const Document &document = documents->document(jobRequest.filePath, jobRequest.projectPartId); + const Document &document = documents->document(jobRequest.filePath); const bool revisionChanged = document.documentRevision() != jobRequest.documentRevision; if (revisionChanged) diff --git a/src/tools/clangbackend/source/clangjobqueue.cpp b/src/tools/clangbackend/source/clangjobqueue.cpp index f3e722ab971..fab939c5888 100644 --- a/src/tools/clangbackend/source/clangjobqueue.cpp +++ b/src/tools/clangbackend/source/clangjobqueue.cpp @@ -28,16 +28,14 @@ #include "clangdocument.h" #include "clangdocuments.h" #include "clangtranslationunits.h" -#include "projects.h" #include "unsavedfiles.h" #include namespace ClangBackEnd { -JobQueue::JobQueue(Documents &documents, ProjectParts &projectParts, const Utf8String &logTag) +JobQueue::JobQueue(Documents &documents, const Utf8String &logTag) : m_documents(documents) - , m_projectParts(projectParts) , m_logTag(logTag) { } @@ -104,12 +102,12 @@ bool JobQueue::isJobRequestAddable(const JobRequest &jobRequest, QString ¬Add return false; } - if (!m_documents.hasDocument(jobRequest.filePath, jobRequest.projectPartId)) { + if (!m_documents.hasDocument(jobRequest.filePath)) { notAddableReason = "document already closed"; return false; } - const Document document = m_documents.document(jobRequest.filePath, jobRequest.projectPartId); + const Document document = m_documents.document(jobRequest.filePath); if (!document.isIntact()) { notAddableReason = "document not intact"; return false; @@ -131,22 +129,14 @@ bool JobQueue::isJobRequestExpired(const JobRequest &jobRequest, QString &expira } } - bool projectCheckedAndItExists = false; - if (conditions.testFlag(Condition::DocumentClosed)) { - if (!m_documents.hasDocument(jobRequest.filePath, jobRequest.projectPartId)) { + if (!m_documents.hasDocument(jobRequest.filePath)) { expirationReason = "document already closed"; return true; } - if (!m_projectParts.hasProjectPart(jobRequest.projectPartId)) { - expirationReason = "project already closed"; - return true; - } - projectCheckedAndItExists = true; - const Document document - = m_documents.document(jobRequest.filePath, jobRequest.projectPartId); + = m_documents.document(jobRequest.filePath); if (!document.isIntact()) { expirationReason = "document not intact"; return true; @@ -160,19 +150,6 @@ bool JobQueue::isJobRequestExpired(const JobRequest &jobRequest, QString &expira } } - if (conditions.testFlag(Condition::ProjectChanged)) { - if (!projectCheckedAndItExists && !m_projectParts.hasProjectPart(jobRequest.projectPartId)) { - expirationReason = "project already closed"; - return true; - } - - const ProjectPart &project = m_projectParts.project(jobRequest.projectPartId); - if (project.lastChangeTimePoint() != jobRequest.projectChangeTimePoint) { - expirationReason = "outdated project"; - return true; - } - } - return false; } @@ -193,8 +170,8 @@ void JobQueue::prioritizeRequests() { const auto lessThan = [this] (const JobRequest &r1, const JobRequest &r2) { // TODO: Getting the TU is O(n) currently, so this might become expensive for large n. - const Document &t1 = m_documents.document(r1.filePath, r1.projectPartId); - const Document &t2 = m_documents.document(r2.filePath, r2.projectPartId); + const Document &t1 = m_documents.document(r1.filePath); + const Document &t2 = m_documents.document(r2.filePath); return priority(t1) > priority(t2); }; @@ -267,8 +244,7 @@ JobRequests JobQueue::takeJobRequestsToRunNow() const JobRequest &request = i.next(); try { - const Document &document = m_documents.document(request.filePath, - request.projectPartId); + const Document &document = m_documents.document(request.filePath); if (!areRunConditionsMet(request, document)) continue; diff --git a/src/tools/clangbackend/source/clangjobqueue.h b/src/tools/clangbackend/source/clangjobqueue.h index ebdbfd0cd6a..2e0effaf9d1 100644 --- a/src/tools/clangbackend/source/clangjobqueue.h +++ b/src/tools/clangbackend/source/clangjobqueue.h @@ -31,13 +31,12 @@ namespace ClangBackEnd { -class ProjectParts; class Documents; class JobQueue { public: - JobQueue(Documents &documents, ProjectParts &projects, const Utf8String &logTag = Utf8String()); + JobQueue(Documents &documents, const Utf8String &logTag = Utf8String()); bool add(const JobRequest &job); @@ -72,7 +71,6 @@ private: private: Documents &m_documents; - ProjectParts &m_projectParts; Utf8String m_logTag; IsJobRunningForTranslationUnitHandler m_isJobRunningForTranslationUnitHandler; diff --git a/src/tools/clangbackend/source/clangjobrequest.cpp b/src/tools/clangbackend/source/clangjobrequest.cpp index adaa3201231..bbf2f726e6d 100644 --- a/src/tools/clangbackend/source/clangjobrequest.cpp +++ b/src/tools/clangbackend/source/clangjobrequest.cpp @@ -284,9 +284,7 @@ bool JobRequest::operator==(const JobRequest &other) const && runConditions == other.runConditions && filePath == other.filePath - && projectPartId == other.projectPartId && unsavedFilesChangeTimePoint == other.unsavedFilesChangeTimePoint - && projectChangeTimePoint == other.projectChangeTimePoint && documentRevision == other.documentRevision && preferredTranslationUnit == other.preferredTranslationUnit diff --git a/src/tools/clangbackend/source/clangjobrequest.h b/src/tools/clangbackend/source/clangjobrequest.h index 920f8f316ee..1580e327be0 100644 --- a/src/tools/clangbackend/source/clangjobrequest.h +++ b/src/tools/clangbackend/source/clangjobrequest.h @@ -81,12 +81,10 @@ public: DocumentClosed = 1 << 1, DocumentRevisionChanged = 1 << 2, // Only effective if DocumentIsClosed is also set UnsavedFilesChanged = 1 << 3, - ProjectChanged = 1 << 4, AnythingChanged = DocumentClosed | DocumentRevisionChanged - | UnsavedFilesChanged - | ProjectChanged, + | UnsavedFilesChanged, }; Q_DECLARE_FLAGS(ExpirationConditions, ExpirationCondition) @@ -107,9 +105,7 @@ public: // General Utf8String filePath; - Utf8String projectPartId; TimePoint unsavedFilesChangeTimePoint; - TimePoint projectChangeTimePoint; uint documentRevision = 0; PreferredTranslationUnit preferredTranslationUnit = PreferredTranslationUnit::RecentlyParsed; diff --git a/src/tools/clangbackend/source/clangjobs.cpp b/src/tools/clangbackend/source/clangjobs.cpp index 61f99b39852..9e33788da3e 100644 --- a/src/tools/clangbackend/source/clangjobs.cpp +++ b/src/tools/clangbackend/source/clangjobs.cpp @@ -27,7 +27,6 @@ #include "clangdocument.h" #include "clangiasyncjob.h" -#include "projects.h" #include #include @@ -40,15 +39,13 @@ namespace ClangBackEnd { Jobs::Jobs(Documents &documents, UnsavedFiles &unsavedFiles, - ProjectParts &projectParts, ClangCodeModelClientInterface &client, const Utf8String &logTag) : m_documents(documents) , m_unsavedFiles(unsavedFiles) - , m_projectParts(projectParts) , m_client(client) , m_logTag(logTag) - , m_queue(documents, projectParts, logTag) + , m_queue(documents, logTag) { m_queue.setIsJobRunningForTranslationUnitHandler([this](const Utf8String &translationUnitId) { return isJobRunningForTranslationUnit(translationUnitId); @@ -80,12 +77,9 @@ JobRequest Jobs::createJobRequest(const Document &document, { JobRequest jobRequest(type); jobRequest.filePath = document.filePath(); - jobRequest.projectPartId = document.projectPart().id(); jobRequest.unsavedFilesChangeTimePoint = m_unsavedFiles.lastChangeTimePoint(); jobRequest.documentRevision = document.documentRevision(); jobRequest.preferredTranslationUnit = preferredTranslationUnit; - const ProjectPart &projectPart = m_projectParts.project(document.projectPart().id()); - jobRequest.projectChangeTimePoint = projectPart.lastChangeTimePoint(); return jobRequest; } diff --git a/src/tools/clangbackend/source/clangjobs.h b/src/tools/clangbackend/source/clangjobs.h index dd6b5d50810..5d5b2d460cb 100644 --- a/src/tools/clangbackend/source/clangjobs.h +++ b/src/tools/clangbackend/source/clangjobs.h @@ -55,7 +55,6 @@ public: public: Jobs(Documents &documents, UnsavedFiles &unsavedFiles, - ProjectParts &projects, ClangCodeModelClientInterface &client, const Utf8String &logTag = Utf8String()); ~Jobs(); @@ -91,7 +90,6 @@ private: private: Documents &m_documents; UnsavedFiles &m_unsavedFiles; - ProjectParts &m_projectParts; ClangCodeModelClientInterface &m_client; Utf8String m_logTag; diff --git a/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.cpp b/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.cpp index f4f2e23a8e8..ac9a1dfb853 100644 --- a/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.cpp +++ b/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.cpp @@ -27,14 +27,11 @@ #include "clangjobs.h" #include "clangtranslationunits.h" -#include "projectpart.h" #include namespace ClangBackEnd { - // TODO: Check translation unit id? - SupportiveTranslationUnitInitializer::SupportiveTranslationUnitInitializer( const Document &document, Jobs &jobs) @@ -101,7 +98,7 @@ bool SupportiveTranslationUnitInitializer::checkStateAndDocument(State currentEx } QTC_CHECK(m_isDocumentClosedChecker); - if (m_isDocumentClosedChecker(m_document.filePath(), m_document.projectPart().id())) { + if (m_isDocumentClosedChecker(m_document.filePath())) { m_state = State::Aborted; return false; } diff --git a/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.h b/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.h index 28b64524882..4476bcf4ef9 100644 --- a/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.h +++ b/src/tools/clangbackend/source/clangsupportivetranslationunitinitializer.h @@ -35,7 +35,7 @@ namespace ClangBackEnd { class SupportiveTranslationUnitInitializer { public: - using IsDocumentClosedChecker = std::function; + using IsDocumentClosedChecker = std::function; enum class State { NotInitialized, diff --git a/src/tools/clangbackend/source/clangtranslationunitupdater.cpp b/src/tools/clangbackend/source/clangtranslationunitupdater.cpp index 733c8f980ec..c74e626ffbf 100644 --- a/src/tools/clangbackend/source/clangtranslationunitupdater.cpp +++ b/src/tools/clangbackend/source/clangtranslationunitupdater.cpp @@ -221,8 +221,7 @@ bool TranslationUnitUpdater::reparseWasSuccessful() const CommandLineArguments TranslationUnitUpdater::commandLineArguments() const { return CommandLineArguments(m_in.filePath.constData(), - m_in.projectArguments, - m_in.fileArguments, + m_in.compilationArguments, isVerboseModeEnabled()); } diff --git a/src/tools/clangbackend/source/clangtranslationunitupdater.h b/src/tools/clangbackend/source/clangtranslationunitupdater.h index 547c6838bc3..a0f0d0ba3bf 100644 --- a/src/tools/clangbackend/source/clangtranslationunitupdater.h +++ b/src/tools/clangbackend/source/clangtranslationunitupdater.h @@ -43,13 +43,11 @@ public: bool reparseNeeded = false; TimePoint needsToBeReparsedChangeTimePoint; + Utf8String filePath; - Utf8StringVector fileArguments; + Utf8StringVector compilationArguments; UnsavedFiles unsavedFiles; - - Utf8String projectId; - Utf8StringVector projectArguments; }; class TranslationUnitUpdateResult { diff --git a/src/tools/clangbackend/source/commandlinearguments.cpp b/src/tools/clangbackend/source/commandlinearguments.cpp index 5d8e616ad1c..cfc5052e8aa 100644 --- a/src/tools/clangbackend/source/commandlinearguments.cpp +++ b/src/tools/clangbackend/source/commandlinearguments.cpp @@ -73,24 +73,20 @@ static QList extraClangCodeModelAppendOptions() { namespace ClangBackEnd { CommandLineArguments::CommandLineArguments(const char *filePath, - const Utf8StringVector &projectPartArguments, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, bool addVerboseOption) : m_prependArgs(extraClangCodeModelPrependOptions()), m_appendArgs(extraClangCodeModelAppendOptions()) { const int elementsToReserve = m_prependArgs.size() - + projectPartArguments.size() - + fileArguments.size() + + compilationArguments.size() + (addVerboseOption ? 1 : 0) + m_appendArgs.size(); m_arguments.reserve(static_cast(elementsToReserve)); for (const auto &argument : m_prependArgs) m_arguments.push_back(argument.constData()); - for (const auto &argument : projectPartArguments) - m_arguments.push_back(argument.constData()); - for (const auto &argument : fileArguments) + for (const auto &argument : compilationArguments) m_arguments.push_back(argument.constData()); if (addVerboseOption) m_arguments.push_back("-v"); diff --git a/src/tools/clangbackend/source/commandlinearguments.h b/src/tools/clangbackend/source/commandlinearguments.h index 711e69420fb..9251ae124b1 100644 --- a/src/tools/clangbackend/source/commandlinearguments.h +++ b/src/tools/clangbackend/source/commandlinearguments.h @@ -35,8 +35,7 @@ class CommandLineArguments { public: CommandLineArguments(const char *filePath, - const Utf8StringVector &projectPartArguments, - const Utf8StringVector &fileArguments, + const Utf8StringVector &compilationArguments, bool addVerboseOption); const char * const *data() const; diff --git a/src/tools/clangbackend/source/projectpart.cpp b/src/tools/clangbackend/source/projectpart.cpp deleted file mode 100644 index 0a8fbe135a7..00000000000 --- a/src/tools/clangbackend/source/projectpart.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "projectpart.h" - -#include - -#include - -#include - -namespace ClangBackEnd { - -class ProjectPartData { -public: - ProjectPartData(const Utf8String &projectPartId); - ~ProjectPartData(); - -public: - TimePoint lastChangeTimePoint; - Utf8StringVector arguments; - Utf8String projectPartId; -}; - -ProjectPartData::ProjectPartData(const Utf8String &projectPartId) - : lastChangeTimePoint(Clock::now()), - projectPartId(projectPartId) -{ -} - -ProjectPartData::~ProjectPartData() -{ -} - -ProjectPart::ProjectPart(const Utf8String &projectPartId) - : d(std::make_shared(projectPartId)) -{ -} - -ProjectPart::ProjectPart(const Utf8String &projectPartId, - const Utf8StringVector &arguments) - : d(std::make_shared(projectPartId)) -{ - setArguments(arguments); -} - -ProjectPart::ProjectPart(const ProjectPartContainer &projectContainer) - : d(std::make_shared(projectContainer.projectPartId)) -{ - setArguments(projectContainer.arguments); -} - -ProjectPart::~ProjectPart() = default; -ProjectPart::ProjectPart(const ProjectPart &) = default; -ProjectPart &ProjectPart::operator=(const ProjectPart &) = default; - -ProjectPart::ProjectPart(ProjectPart &&other) - : d(std::move(other.d)) -{ -} - -ProjectPart &ProjectPart::operator=(ProjectPart &&other) -{ - d = std::move(other.d); - - return *this; -} - -void ProjectPart::clear() -{ - d->projectPartId.clear(); - d->arguments.clear(); - updateLastChangeTimePoint(); -} - -Utf8String ProjectPart::id() const -{ - return d->projectPartId; -} - -void ProjectPart::setArguments(const Utf8StringVector &arguments) -{ - d->arguments = arguments; - updateLastChangeTimePoint(); -} - -const Utf8StringVector ProjectPart::arguments() const -{ - return d->arguments; -} - -const TimePoint &ProjectPart::lastChangeTimePoint() const -{ - return d->lastChangeTimePoint; -} - -void ProjectPart::updateLastChangeTimePoint() -{ - d->lastChangeTimePoint = Clock::now(); -} - -bool operator==(const ProjectPart &first, const ProjectPart &second) -{ - return first.id() == second.id(); -} - -} // namespace ClangBackEnd - diff --git a/src/tools/clangbackend/source/projectpart.h b/src/tools/clangbackend/source/projectpart.h deleted file mode 100644 index b96089d283d..00000000000 --- a/src/tools/clangbackend/source/projectpart.h +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include "clangclock.h" - -#include - -#include - -class Utf8StringVector; - -namespace ClangBackEnd { - -class ProjectPartContainer; -class ProjectPartData; - -class ProjectPart -{ -public: - ProjectPart(const Utf8String &id = Utf8String()); - ProjectPart(const Utf8String &id, const Utf8StringVector &arguments); - ProjectPart(const ProjectPartContainer &projectContainer); - ~ProjectPart(); - - ProjectPart(const ProjectPart &project); - ProjectPart &operator=(const ProjectPart &project); - - ProjectPart(ProjectPart &&project); - ProjectPart &operator=(ProjectPart &&project); - - void clear(); - - Utf8String id() const; - - void setArguments(const Utf8StringVector &arguments_); - const Utf8StringVector arguments() const; - - const TimePoint &lastChangeTimePoint() const; - -private: - void updateLastChangeTimePoint(); - -private: - std::shared_ptr d; -}; - -bool operator==(const ProjectPart &first, const ProjectPart &second); - -} // namespace ClangBackEnd diff --git a/src/tools/clangbackend/source/projects.cpp b/src/tools/clangbackend/source/projects.cpp deleted file mode 100644 index 4d92d5a0172..00000000000 --- a/src/tools/clangbackend/source/projects.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "projects.h" - -#include "clangexceptions.h" - -#include - -namespace ClangBackEnd { - -void ProjectParts::createOrUpdate(const QVector &projectContainers) -{ - for (const ProjectPartContainer &projectContainer : projectContainers) - createOrUpdateProjectPart(projectContainer); -} - -void ProjectParts::remove(const Utf8StringVector &projectPartIds) -{ - Utf8StringVector processedProjectPartFilePaths = projectPartIds; - - const auto removeBeginIterator = std::remove_if(projects_.begin(), projects_.end(), - [&processedProjectPartFilePaths] (ProjectPart &project) { - const bool isRemoved = processedProjectPartFilePaths.removeFast(project.id()); - - if (isRemoved) - project.clear(); - - return isRemoved; - }); - - projects_.erase(removeBeginIterator, projects_.end()); - - if (!processedProjectPartFilePaths.isEmpty()) - throw ProjectPartDoNotExistException(processedProjectPartFilePaths); -} - -bool ProjectParts::hasProjectPart(const Utf8String &projectPartId) const -{ - return findProjectPart(projectPartId) != projects_.cend(); -} - -const ProjectPart &ProjectParts::project(const Utf8String &projectPartId) const -{ - const auto findIterator = findProjectPart(projectPartId); - - if (findIterator == projects_.cend()) - throw ProjectPartDoNotExistException({projectPartId}); - - return *findIterator; -} - -std::vector::const_iterator ProjectParts::findProjectPart(const Utf8String &projectPartId) const -{ - return std::find_if(projects_.begin(), projects_.end(), [projectPartId] (const ProjectPart &project) { - return project.id() == projectPartId; - }); -} - -std::vector::iterator ProjectParts::findProjectPart(const Utf8String &projectPartId) -{ - return std::find_if(projects_.begin(), projects_.end(), [projectPartId] (const ProjectPart &project) { - return project.id() == projectPartId; - }); -} - -const std::vector &ProjectParts::projects() const -{ - return projects_; -} - -void ProjectParts::createOrUpdateProjectPart(const ProjectPartContainer &projectContainer) -{ - auto findIterator = findProjectPart(projectContainer.projectPartId); - if (findIterator == projects_.cend()) - projects_.push_back(ProjectPart(projectContainer)); - else - findIterator->setArguments(projectContainer.arguments); -} - - -} // namespace ClangBackEnd - diff --git a/src/tools/clangbackend/source/projects.h b/src/tools/clangbackend/source/projects.h deleted file mode 100644 index 4354aebbebe..00000000000 --- a/src/tools/clangbackend/source/projects.h +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include "projectpart.h" - -#include - -#include - -namespace ClangBackEnd { - -class ProjectParts -{ -public: - void createOrUpdate(const QVector &projectConainers); - void remove(const Utf8StringVector &projectPartIds); - - bool hasProjectPart(const Utf8String &projectPartId) const; - - const ProjectPart &project(const Utf8String &projectPartId) const; - - std::vector::const_iterator findProjectPart(const Utf8String &projectPartId) const; - std::vector::iterator findProjectPart(const Utf8String &projectPartId); - - const std::vector &projects() const; - -private: - void createOrUpdateProjectPart(const ProjectPartContainer &projectConainer); - -private: - std::vector projects_; -}; - -} // namespace ClangBackEnd diff --git a/tests/unit/echoserver/echoclangcodemodelserver.cpp b/tests/unit/echoserver/echoclangcodemodelserver.cpp index 70612953ac0..67ba74cae94 100644 --- a/tests/unit/echoserver/echoclangcodemodelserver.cpp +++ b/tests/unit/echoserver/echoclangcodemodelserver.cpp @@ -58,16 +58,6 @@ void EchoClangCodeModelServer::documentsClosed(const DocumentsClosedMessage &mes echoMessage(message); } -void EchoClangCodeModelServer::projectPartsUpdated(const ProjectPartsUpdatedMessage &message) -{ - echoMessage(message); -} - -void EchoClangCodeModelServer::projectPartsRemoved(const ProjectPartsRemovedMessage &message) -{ - echoMessage(message); -} - void EchoClangCodeModelServer::unsavedFilesUpdated(const UnsavedFilesUpdatedMessage &message) { echoMessage(message); diff --git a/tests/unit/echoserver/echoclangcodemodelserver.h b/tests/unit/echoserver/echoclangcodemodelserver.h index 261b690deee..58db3613e3c 100644 --- a/tests/unit/echoserver/echoclangcodemodelserver.h +++ b/tests/unit/echoserver/echoclangcodemodelserver.h @@ -42,9 +42,6 @@ public: 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; diff --git a/tests/unit/unittest/clangasyncjob-base.cpp b/tests/unit/unittest/clangasyncjob-base.cpp index 6535a15ef7c..859e0ffb794 100644 --- a/tests/unit/unittest/clangasyncjob-base.cpp +++ b/tests/unit/unittest/clangasyncjob-base.cpp @@ -33,9 +33,7 @@ using namespace ClangBackEnd; void ClangAsyncJobTest::BaseSetUp(ClangBackEnd::JobRequest::Type jobRequestType, IAsyncJob &asyncJob) { - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - - const QVector fileContainer{FileContainer(filePath, projectPartId)}; + const QVector fileContainer{FileContainer(filePath)}; document = documents.create(fileContainer).front(); documents.setVisibleInEditors({filePath}); documents.setUsedByCurrentEditor(filePath); @@ -51,10 +49,8 @@ JobRequest ClangAsyncJobTest::createJobRequest(const Utf8String &filePath, { JobRequest jobRequest(type); jobRequest.filePath = filePath; - jobRequest.projectPartId = projectPartId; jobRequest.unsavedFilesChangeTimePoint = unsavedFiles.lastChangeTimePoint(); jobRequest.documentRevision = document.documentRevision(); - jobRequest.projectChangeTimePoint = projects.project(projectPartId).lastChangeTimePoint(); return jobRequest; } diff --git a/tests/unit/unittest/clangasyncjob-base.h b/tests/unit/unittest/clangasyncjob-base.h index 74e4e587f05..e0d7fbfa226 100644 --- a/tests/unit/unittest/clangasyncjob-base.h +++ b/tests/unit/unittest/clangasyncjob-base.h @@ -33,7 +33,6 @@ #include #include #include -#include #include #include @@ -50,16 +49,14 @@ protected: int timeOutInMs = 10000) const; protected: - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; ClangBackEnd::Document document; MockClangCodeModelClient mockIpcClient; DummyIpcClient dummyIpcClient; Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp")}; - Utf8String projectPartId{Utf8StringLiteral("/path/to/projectfile")}; ClangBackEnd::JobRequest jobRequest; ClangBackEnd::JobContext jobContext; diff --git a/tests/unit/unittest/clangcodecompleteresults-test.cpp b/tests/unit/unittest/clangcodecompleteresults-test.cpp index d561742d7ad..b95e1db266a 100644 --- a/tests/unit/unittest/clangcodecompleteresults-test.cpp +++ b/tests/unit/unittest/clangcodecompleteresults-test.cpp @@ -29,8 +29,6 @@ #include #include #include -#include -#include #include #include #include @@ -44,7 +42,6 @@ using ClangBackEnd::ClangCodeCompleteResults; using ClangBackEnd::FilePath; using ClangBackEnd::Document; using ClangBackEnd::UnsavedFiles; -using ClangBackEnd::ProjectPart; static unsigned completionOptions() { @@ -56,12 +53,9 @@ static unsigned completionOptions() TEST(ClangCodeCompleteResultsSlowTest, GetData) { - ProjectPart projectPart(Utf8StringLiteral("projectPartId")); - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Document document(Utf8StringLiteral(TESTDATA_DIR"/complete_testfile_1.cpp"), - projectPart, Utf8StringVector(), documents); Utf8String nativeFilePath = FilePath::toNativeSeparators(document.filePath()); @@ -88,12 +82,9 @@ TEST(ClangCodeCompleteResults, GetInvalidData) TEST(ClangCodeCompleteResultsSlowTest, MoveClangCodeCompleteResults) { - ProjectPart projectPart(Utf8StringLiteral("projectPartId")); - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Document document(Utf8StringLiteral(TESTDATA_DIR"/complete_testfile_1.cpp"), - projectPart, Utf8StringVector(), documents); Utf8String nativeFilePath = FilePath::toNativeSeparators(document.filePath()); diff --git a/tests/unit/unittest/clangcodemodelserver-test.cpp b/tests/unit/unittest/clangcodemodelserver-test.cpp index 9a1cc8c7b46..0446384232d 100644 --- a/tests/unit/unittest/clangcodemodelserver-test.cpp +++ b/tests/unit/unittest/clangcodemodelserver-test.cpp @@ -53,15 +53,13 @@ namespace { using namespace ClangBackEnd; -MATCHER_P5(HasDirtyDocument, +MATCHER_P4(HasDirtyDocument, filePath, - projectPartId, documentRevision, isDirty, hasNewDiagnostics, std::string(negation ? "isn't" : "is") + " document with file path "+ PrintToString(filePath) - + " and project " + PrintToString(projectPartId) + " and document revision " + PrintToString(documentRevision) + " and isDirty = " + PrintToString(isDirty) + " and hasNewDiagnostics = " + PrintToString(hasNewDiagnostics) @@ -69,7 +67,7 @@ MATCHER_P5(HasDirtyDocument, { auto &&documents = arg.documentsForTestOnly(); try { - auto document = documents.document(filePath, projectPartId); + auto document = documents.document(filePath); if (document.documentRevision() == documentRevision) { if (document.isDirty() && !isDirty) { @@ -114,21 +112,13 @@ protected: protected: bool waitUntilAllJobsFinished(int timeOutInMs = 10000); - void updateProjectPart(); - void updateProjectPart(const Utf8String &projectPartId); - void updateProjectPartWithArguments(); - - void updateProjectAndOpenDocument(const Utf8String &filePath, - int expectedAnnotationsMessages = AnnotationJobsMultiplier); - void updateProjectAndOpenDocumentAndWaitForFinished( + void openDocumentAndWaitForFinished( const Utf8String &filePath, int expectedAnnotationsMessages = AnnotationJobsMultiplier); - void updateProjectAndOpenDocumentsAndWaitForFinished( - int expectedAnnotationsdMessages = 2 * AnnotationJobsMultiplier); void openDocument(const Utf8String &filePath, int expectedAnnotationsMessages = AnnotationJobsMultiplier); void openDocument(const Utf8String &filePath, - const Utf8String &projectPartId, + const Utf8StringVector &compilationArguments, int expectedAnnotationsMessages = AnnotationJobsMultiplier); void openDocuments(int expectedAnnotationsMessages); void openDocumentWithUnsavedContent(const Utf8String &filePath, const Utf8String &content); @@ -146,10 +136,8 @@ protected: void requestFollowSymbol(quint32 documentRevision = 0); void requestCompletions(const Utf8String &filePath, uint line = 1, - uint column = 1, - const Utf8String &projectPartId = Utf8String()); + uint column = 1); void requestCompletionsInFileA(); - void requestCompletionsInFileB(); bool isSupportiveTranslationUnitInitialized(const Utf8String &filePath); @@ -158,7 +146,6 @@ protected: void expectAnnotations(int count); void expectCompletion(const CodeCompletion &completion); void expectCompletionFromFileA(); - void expectCompletionFromFileBEnabledByMacro(); void expectCompletionFromFileAUnsavedMethodVersion1(); void expectCompletionFromFileAUnsavedMethodVersion2(); void expectNoCompletionWithUnsavedMethod(); @@ -172,8 +159,6 @@ protected: MockClangCodeModelClient mockClangCodeModelClient; ClangBackEnd::ClangCodeModelServer clangServer; const ClangBackEnd::Documents &documents = clangServer.documentsForTestOnly(); - const Utf8String projectPartId = Utf8StringLiteral("pathToProjectPart.pro"); - const Utf8String projectPartId2 = Utf8StringLiteral("otherPathToProjectPart.pro"); const Utf8String filePathA = Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_function.cpp"); const QString filePathAUnsavedVersion1 @@ -187,14 +172,13 @@ protected: const Utf8String aFilePath = Utf8StringLiteral("afile.cpp"); const Utf8String anExistingFilePath = Utf8StringLiteral(TESTDATA_DIR"/complete_translationunit_parse_error.cpp"); - const Utf8String aProjectPartId = Utf8StringLiteral("aproject.pro"); }; using ClangCodeModelServerSlowTest = ClangCodeModelServer; TEST_F(ClangCodeModelServerSlowTest, GetCodeCompletion) { - updateProjectAndOpenDocument(filePathA); + openDocument(filePathA); expectCompletionFromFileA(); requestCompletionsInFileA(); @@ -202,7 +186,7 @@ TEST_F(ClangCodeModelServerSlowTest, GetCodeCompletion) TEST_F(ClangCodeModelServerSlowTest, RequestAnnotations) { - updateProjectAndOpenDocumentAndWaitForFinished(filePathB); + openDocumentAndWaitForFinished(filePathB); expectAnnotationsForFileBWithSpecificHighlightingMark(); requestAnnotations(filePathB); @@ -210,7 +194,7 @@ TEST_F(ClangCodeModelServerSlowTest, RequestAnnotations) TEST_F(ClangCodeModelServerSlowTest, RequestReferencesForCurrentDocumentRevision) { - updateProjectAndOpenDocumentAndWaitForFinished(filePathC); + openDocumentAndWaitForFinished(filePathC); expectReferences(); requestReferences(); @@ -218,7 +202,7 @@ TEST_F(ClangCodeModelServerSlowTest, RequestReferencesForCurrentDocumentRevision TEST_F(ClangCodeModelServerSlowTest, RequestReferencesTakesRevisionFromMessage) { - updateProjectAndOpenDocumentAndWaitForFinished(filePathC); + openDocumentAndWaitForFinished(filePathC); requestReferences(/*documentRevision=*/ 99); @@ -231,7 +215,7 @@ TEST_F(ClangCodeModelServerSlowTest, RequestReferencesTakesRevisionFromMessage) TEST_F(ClangCodeModelServerSlowTest, RequestFollowSymbolForCurrentDocumentRevision) { - updateProjectAndOpenDocumentAndWaitForFinished(filePathC); + openDocumentAndWaitForFinished(filePathC); expectFollowSymbol(); requestFollowSymbol(); @@ -239,7 +223,7 @@ TEST_F(ClangCodeModelServerSlowTest, RequestFollowSymbolForCurrentDocumentRevisi TEST_F(ClangCodeModelServerSlowTest, RequestFollowSymbolTakesRevisionFromMessage) { - updateProjectAndOpenDocumentAndWaitForFinished(filePathC); + openDocumentAndWaitForFinished(filePathC); requestFollowSymbol(/*documentRevision=*/ 99); @@ -253,7 +237,7 @@ TEST_F(ClangCodeModelServerSlowTest, RequestFollowSymbolTakesRevisionFromMessage TEST_F(ClangCodeModelServerSlowTest, NoInitialAnnotationsForClosedDocument) { const int expectedAnnotationsCount = 0; - updateProjectAndOpenDocument(filePathA, expectedAnnotationsCount); + openDocument(filePathA, expectedAnnotationsCount); closeDocument(filePathA); } @@ -261,11 +245,10 @@ TEST_F(ClangCodeModelServerSlowTest, NoInitialAnnotationsForClosedDocument) TEST_F(ClangCodeModelServerSlowTest, AnnotationsForInitiallyNotVisibleDocument) { const int expectedAnnotationsCount = 2; - updateProjectPart(); updateVisibilty(filePathA, filePathA); expectAnnotations(expectedAnnotationsCount); clangServer.documentsOpened( // Open document while another is still visible - DocumentsOpenedMessage({FileContainer(filePathB, projectPartId, Utf8String(), false, 1)}, + DocumentsOpenedMessage({FileContainer(filePathB, Utf8String(), false, 1)}, filePathA, {filePathA})); clangServer.unsavedFilesUpdated( // Invalidate added jobs UnsavedFilesUpdatedMessage({FileContainer(Utf8StringLiteral("aFile"), Utf8String())})); @@ -276,7 +259,7 @@ TEST_F(ClangCodeModelServerSlowTest, AnnotationsForInitiallyNotVisibleDocument) TEST_F(ClangCodeModelServerSlowTest, NoAnnotationsForClosedDocument) { const int expectedAnnotationsCount = AnnotationJobsMultiplier; // Only for registration. - updateProjectAndOpenDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); + openDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); updateUnsavedContent(filePathA, Utf8String(), 1); closeDocument(filePathA); @@ -285,7 +268,7 @@ TEST_F(ClangCodeModelServerSlowTest, NoAnnotationsForClosedDocument) TEST_F(ClangCodeModelServerSlowTest, NoInitialAnnotationsForOutdatedDocumentRevision) { const int expectedAnnotationsCount = AnnotationJobsMultiplier; // Only for registration. - updateProjectAndOpenDocument(filePathA, expectedAnnotationsCount); + openDocument(filePathA, expectedAnnotationsCount); updateUnsavedContent(filePathA, Utf8String(), 1); } @@ -293,25 +276,14 @@ TEST_F(ClangCodeModelServerSlowTest, NoInitialAnnotationsForOutdatedDocumentRevi TEST_F(ClangCodeModelServerSlowTest, NoCompletionsForClosedDocument) { const int expectedAnnotationsCount = AnnotationJobsMultiplier; // Only for registration. - updateProjectAndOpenDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); + openDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); requestCompletionsInFileA(); closeDocument(filePathA); } -TEST_F(ClangCodeModelServerSlowTest, CodeCompletionDependingOnProject) -{ - const int expectedAnnotationsCount = 2 * AnnotationJobsMultiplier; // For registration and due to project change. - updateProjectAndOpenDocumentAndWaitForFinished(filePathB, expectedAnnotationsCount); - - expectCompletionFromFileBEnabledByMacro(); - updateProjectPartWithArguments(); - requestCompletionsInFileB(); -} - TEST_F(ClangCodeModelServerSlowTest, GetCodeCompletionForUnsavedFile) { - updateProjectPart(); expectAnnotations(AnnotationJobsMultiplier); openDocumentWithUnsavedContent(filePathA, unsavedContent(filePathAUnsavedVersion1)); expectCompletionFromFileAUnsavedMethodVersion1(); @@ -322,7 +294,7 @@ TEST_F(ClangCodeModelServerSlowTest, GetCodeCompletionForUnsavedFile) TEST_F(ClangCodeModelServerSlowTest, GetNoCodeCompletionAfterRemovingUnsavedFile) { const int expectedAnnotationsCount = 2 * AnnotationJobsMultiplier; // For registration and update/removal. - updateProjectAndOpenDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); + openDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); removeUnsavedFile(filePathA); expectNoCompletionWithUnsavedMethod(); @@ -332,7 +304,7 @@ TEST_F(ClangCodeModelServerSlowTest, GetNoCodeCompletionAfterRemovingUnsavedFile TEST_F(ClangCodeModelServerSlowTest, GetNewCodeCompletionAfterUpdatingUnsavedFile) { const int expectedAnnotationsCount = 2 * AnnotationJobsMultiplier; // For registration and update/removal. - updateProjectAndOpenDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); + openDocumentAndWaitForFinished(filePathA, expectedAnnotationsCount); updateUnsavedContent(filePathA, unsavedContent(filePathAUnsavedVersion2), 1); expectCompletionFromFileAUnsavedMethodVersion2(); @@ -341,16 +313,17 @@ TEST_F(ClangCodeModelServerSlowTest, GetNewCodeCompletionAfterUpdatingUnsavedFil TEST_F(ClangCodeModelServerSlowTest, TranslationUnitAfterCreationIsNotDirty) { - updateProjectAndOpenDocument(filePathA, AnnotationJobsMultiplier); + openDocument(filePathA, AnnotationJobsMultiplier); - ASSERT_THAT(clangServer, HasDirtyDocument(filePathA, projectPartId, 0U, false, false)); + ASSERT_THAT(clangServer, HasDirtyDocument(filePathA, 0U, false, false)); } TEST_F(ClangCodeModelServerSlowTest, SetCurrentAndVisibleEditor) { - updateProjectAndOpenDocumentsAndWaitForFinished(); - auto functionDocument = documents.document(filePathA, projectPartId); - auto variableDocument = documents.document(filePathB, projectPartId); + openDocuments(2 * AnnotationJobsMultiplier); + ASSERT_TRUE(waitUntilAllJobsFinished()); + auto functionDocument = documents.document(filePathA); + auto variableDocument = documents.document(filePathB); updateVisibilty(filePathB, filePathA); @@ -361,7 +334,7 @@ TEST_F(ClangCodeModelServerSlowTest, SetCurrentAndVisibleEditor) TEST_F(ClangCodeModelServerSlowTest, StartCompletionJobFirstOnEditThatTriggersCompletion) { - updateProjectAndOpenDocument(filePathA, 2 * AnnotationJobsMultiplier); + openDocument(filePathA, 2 * AnnotationJobsMultiplier); ASSERT_TRUE(waitUntilAllJobsFinished()); expectCompletionFromFileA(); @@ -375,7 +348,7 @@ TEST_F(ClangCodeModelServerSlowTest, StartCompletionJobFirstOnEditThatTriggersCo TEST_F(ClangCodeModelServerSlowTest, SupportiveTranslationUnitNotInitializedAfterRegister) { - updateProjectAndOpenDocument(filePathA, AnnotationJobsMultiplier); + openDocument(filePathA, AnnotationJobsMultiplier); ASSERT_TRUE(waitUntilAllJobsFinished()); ASSERT_FALSE(isSupportiveTranslationUnitInitialized(filePathA)); @@ -383,7 +356,7 @@ TEST_F(ClangCodeModelServerSlowTest, SupportiveTranslationUnitNotInitializedAfte TEST_F(ClangCodeModelServerSlowTest, SupportiveTranslationUnitIsSetupAfterFirstEdit) { - updateProjectAndOpenDocument(filePathA, 2 * AnnotationJobsMultiplier); + openDocument(filePathA, 2 * AnnotationJobsMultiplier); ASSERT_TRUE(waitUntilAllJobsFinished()); updateUnsavedContent(filePathA, unsavedContent(filePathAUnsavedVersion2), 1); @@ -394,7 +367,7 @@ TEST_F(ClangCodeModelServerSlowTest, SupportiveTranslationUnitIsSetupAfterFirstE TEST_F(ClangCodeModelServerSlowTest, DoNotRunDuplicateJobs) { - updateProjectAndOpenDocument(filePathA, 3 * AnnotationJobsMultiplier); + openDocument(filePathA, 3 * AnnotationJobsMultiplier); ASSERT_TRUE(waitUntilAllJobsFinished()); updateUnsavedContent(filePathA, unsavedContent(filePathAUnsavedVersion2), 1); ASSERT_TRUE(waitUntilAllJobsFinished()); @@ -408,7 +381,7 @@ TEST_F(ClangCodeModelServerSlowTest, DoNotRunDuplicateJobs) TEST_F(ClangCodeModelServerSlowTest, OpenDocumentAndEdit) { - updateProjectAndOpenDocument(filePathA, 4 * AnnotationJobsMultiplier); + openDocument(filePathA, 4 * AnnotationJobsMultiplier); ASSERT_TRUE(waitUntilAllJobsFinished()); for (unsigned revision = 1; revision <= 3; ++revision) { @@ -419,9 +392,11 @@ TEST_F(ClangCodeModelServerSlowTest, OpenDocumentAndEdit) TEST_F(ClangCodeModelServerSlowTest, IsNotCurrentCurrentAndVisibleEditorAnymore) { - updateProjectAndOpenDocumentsAndWaitForFinished(); - auto functionDocument = documents.document(filePathA, projectPartId); - auto variableDocument = documents.document(filePathB, projectPartId); + const int expectedAnnotationsCount = 2 * AnnotationJobsMultiplier; + openDocuments(expectedAnnotationsCount); + ASSERT_TRUE(waitUntilAllJobsFinished()); + auto functionDocument = documents.document(filePathA); + auto variableDocument = documents.document(filePathB); updateVisibilty(filePathB, filePathA); updateVisibilty(filePathB, Utf8String()); @@ -434,36 +409,25 @@ TEST_F(ClangCodeModelServerSlowTest, IsNotCurrentCurrentAndVisibleEditorAnymore) TEST_F(ClangCodeModelServerSlowTest, TranslationUnitAfterUpdateNeedsReparse) { - updateProjectAndOpenDocumentAndWaitForFinished(filePathA, 2 * AnnotationJobsMultiplier); + openDocumentAndWaitForFinished(filePathA, 2 * AnnotationJobsMultiplier); updateUnsavedContent(filePathA, unsavedContent(filePathAUnsavedVersion1), 1U); - ASSERT_THAT(clangServer, HasDirtyDocument(filePathA, projectPartId, 1U, true, true)); + ASSERT_THAT(clangServer, HasDirtyDocument(filePathA, 1U, true, true)); } -TEST_F(ClangCodeModelServerSlowTest, TakeOverJobsOnProjectPartChange) +TEST_F(ClangCodeModelServerSlowTest, TakeOverJobsOnDocumentChange) { - updateProjectAndOpenDocumentAndWaitForFinished(filePathC, 2 * AnnotationJobsMultiplier); + openDocument(filePathC, AnnotationJobsMultiplier); + ASSERT_TRUE(waitUntilAllJobsFinished()); updateVisibilty(filePathB, filePathB); // Disable processing jobs requestReferences(); expectReferences(); - updateProjectPartWithArguments(); // Here we do not want to loose the RequestReferences job + openDocument(filePathC, AnnotationJobsMultiplier); // Do not loose jobs updateVisibilty(filePathC, filePathC); // Enable processing jobs } -TEST_F(ClangCodeModelServerSlowTest, TakeOverJobsOnProjectPartIdChange) -{ - updateProjectPart(projectPartId); - updateProjectPart(projectPartId2); - openDocument(filePathC, projectPartId, 0); - requestReferences(); - - expectReferences(); - - openDocument(filePathC, projectPartId2); // Here we do not want to loose the RequestReferences job -} - void ClangCodeModelServer::SetUp() { clangServer.setClient(&mockClangCodeModelClient); @@ -487,25 +451,17 @@ bool ClangCodeModelServer::waitUntilAllJobsFinished(int timeOutInMs) return ProcessEventUtilities::processEventsUntilTrue(noJobsRunningAnymore, timeOutInMs); } -void ClangCodeModelServer::updateProjectAndOpenDocumentsAndWaitForFinished(int expectedAnnotationsdMessages) -{ - updateProjectPart(); - openDocuments(expectedAnnotationsdMessages); - - ASSERT_TRUE(waitUntilAllJobsFinished()); -} - void ClangCodeModelServer::openDocument(const Utf8String &filePath, int expectedAnnotationsMessages) { - openDocument(filePath, projectPartId, expectedAnnotationsMessages); + openDocument(filePath, {}, expectedAnnotationsMessages); } void ClangCodeModelServer::openDocument(const Utf8String &filePath, - const Utf8String &projectPartId, + const Utf8StringVector &compilationArguments, int expectedAnnotationsMessages) { - const FileContainer fileContainer(filePath, projectPartId); + const FileContainer fileContainer(filePath, compilationArguments); const DocumentsOpenedMessage message({fileContainer}, filePath, {filePath}); expectAnnotations(expectedAnnotationsMessages); @@ -515,8 +471,8 @@ void ClangCodeModelServer::openDocument(const Utf8String &filePath, void ClangCodeModelServer::openDocuments(int expectedAnnotationsMessages) { - const FileContainer fileContainerA(filePathA, projectPartId); - const FileContainer fileContainerB(filePathB, projectPartId); + const FileContainer fileContainerA(filePathA); + const FileContainer fileContainerB(filePathB); const DocumentsOpenedMessage message({fileContainerA, fileContainerB}, filePathA, {filePathA, filePathB}); @@ -534,22 +490,15 @@ void ClangCodeModelServer::expectAnnotations(int count) void ClangCodeModelServer::openDocumentWithUnsavedContent(const Utf8String &filePath, const Utf8String &unsavedContent) { - const FileContainer fileContainer(filePath, projectPartId, unsavedContent, true); + const FileContainer fileContainer(filePath, unsavedContent, true); const DocumentsOpenedMessage message({fileContainer}, filePath, {filePath}); clangServer.documentsOpened(message); } -void ClangCodeModelServer::requestCompletions(const Utf8String &filePath, - uint line, - uint column, - const Utf8String &projectPartId) +void ClangCodeModelServer::requestCompletions(const Utf8String &filePath, uint line, uint column) { - Utf8String theProjectPartId = projectPartId; - if (theProjectPartId.isEmpty()) - theProjectPartId = this->projectPartId; - - const RequestCompletionsMessage message(filePath, line, column, theProjectPartId); + const RequestCompletionsMessage message(filePath, line, column); clangServer.requestCompletions(message); } @@ -559,14 +508,9 @@ void ClangCodeModelServer::requestCompletionsInFileA() requestCompletions(filePathA, 20, 1); } -void ClangCodeModelServer::requestCompletionsInFileB() -{ - requestCompletions(filePathB, 35, 1); -} - bool ClangCodeModelServer::isSupportiveTranslationUnitInitialized(const Utf8String &filePath) { - Document document = clangServer.documentsForTestOnly().document(filePath, projectPartId); + Document document = clangServer.documentsForTestOnly().document(filePath); DocumentProcessor documentProcessor = clangServer.documentProcessors().processor(document); return document.translationUnits().size() == 2 @@ -576,7 +520,7 @@ bool ClangCodeModelServer::isSupportiveTranslationUnitInitialized(const Utf8Stri DocumentProcessor ClangCodeModelServer::documentProcessorForFile(const Utf8String &filePath) { - Document document = clangServer.documentsForTestOnly().document(filePath, projectPartId); + Document document = clangServer.documentsForTestOnly().document(filePath); DocumentProcessor documentProcessor = clangServer.documentProcessors().processor(document); return documentProcessor; @@ -590,15 +534,6 @@ void ClangCodeModelServer::expectCompletion(const CodeCompletion &completion) .Times(1); } -void ClangCodeModelServer::expectCompletionFromFileBEnabledByMacro() -{ - const CodeCompletion completion(Utf8StringLiteral("ArgumentDefinitionVariable"), - 34, - CodeCompletion::VariableCompletionKind); - - expectCompletion(completion); -} - void ClangCodeModelServer::expectCompletionFromFileAUnsavedMethodVersion1() { const CodeCompletion completion(Utf8StringLiteral("Method2"), @@ -666,15 +601,14 @@ void ClangCodeModelServer::expectCompletionFromFileA() void ClangCodeModelServer::requestAnnotations(const Utf8String &filePath) { - const RequestAnnotationsMessage message({filePath, projectPartId}); + const RequestAnnotationsMessage message(FileContainer{filePath}); clangServer.requestAnnotations(message); } void ClangCodeModelServer::requestReferences(quint32 documentRevision) { - const FileContainer fileContainer{filePathC, projectPartId, Utf8StringVector(), - documentRevision}; + const FileContainer fileContainer{filePathC, Utf8StringVector(), documentRevision}; const RequestReferencesMessage message{fileContainer, 3, 9}; clangServer.requestReferences(message); @@ -682,8 +616,7 @@ void ClangCodeModelServer::requestReferences(quint32 documentRevision) void ClangCodeModelServer::requestFollowSymbol(quint32 documentRevision) { - const FileContainer fileContainer{filePathC, projectPartId, Utf8StringVector(), - documentRevision}; + const FileContainer fileContainer{filePathC, Utf8StringVector(), documentRevision}; const RequestFollowSymbolMessage message{fileContainer, 43, 9}; clangServer.requestFollowSymbol(message); @@ -706,7 +639,7 @@ void ClangCodeModelServer::updateUnsavedContent(const Utf8String &filePath, const Utf8String &fileContent, quint32 revisionNumber) { - const FileContainer fileContainer(filePath, projectPartId, fileContent, true, revisionNumber); + const FileContainer fileContainer(filePath, fileContent, true, revisionNumber); const DocumentsChangedMessage message({fileContainer}); clangServer.documentsChanged(message); @@ -714,7 +647,7 @@ void ClangCodeModelServer::updateUnsavedContent(const Utf8String &filePath, void ClangCodeModelServer::removeUnsavedFile(const Utf8String &filePath) { - const FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74); + const FileContainer fileContainer(filePath, Utf8StringVector(), 74); const DocumentsChangedMessage message({fileContainer}); clangServer.documentsChanged(message); @@ -722,47 +655,19 @@ void ClangCodeModelServer::removeUnsavedFile(const Utf8String &filePath) void ClangCodeModelServer::closeDocument(const Utf8String &filePath) { - const QVector fileContainers = {FileContainer(filePath, projectPartId)}; + const QVector fileContainers = {FileContainer(filePath)}; const DocumentsClosedMessage message(fileContainers); clangServer.documentsClosed(message); } -void ClangCodeModelServer::updateProjectPart() -{ - updateProjectPart(projectPartId); -} - -void ClangCodeModelServer::updateProjectPart(const Utf8String &projectPartId) -{ - ProjectPartsUpdatedMessage message({ProjectPartContainer(projectPartId)}); - - clangServer.projectPartsUpdated(message); -} - -void ClangCodeModelServer::updateProjectAndOpenDocument(const Utf8String &filePath, - int expectedAnnotationsMessages) -{ - updateProjectPart(); - openDocument(filePath, expectedAnnotationsMessages); -} - -void ClangCodeModelServer::updateProjectAndOpenDocumentAndWaitForFinished( +void ClangCodeModelServer::openDocumentAndWaitForFinished( const Utf8String &filePath, int expectedAnnotationsMessages) { - updateProjectAndOpenDocument(filePath, expectedAnnotationsMessages); + openDocument(filePath, expectedAnnotationsMessages); ASSERT_TRUE(waitUntilAllJobsFinished()); } -void ClangCodeModelServer::updateProjectPartWithArguments() -{ - const ProjectPartContainer projectPartContainer(projectPartId, - {Utf8StringLiteral("-DArgumentDefinition")}); - const ProjectPartsUpdatedMessage message({projectPartContainer}); - - clangServer.projectPartsUpdated(message); -} - void ClangCodeModelServer::updateVisibilty(const Utf8String ¤tEditor, const Utf8String &additionalVisibleEditor) { diff --git a/tests/unit/unittest/clangcompletecodejob-test.cpp b/tests/unit/unittest/clangcompletecodejob-test.cpp index 2b23dfc09d5..025a4b4f4e1 100644 --- a/tests/unit/unittest/clangcompletecodejob-test.cpp +++ b/tests/unit/unittest/clangcompletecodejob-test.cpp @@ -95,7 +95,7 @@ TEST_F(CompleteCodeJob, DontSendCompletionsIfDocumentWasClosed) EXPECT_CALL(mockIpcClient, completions(_)).Times(0); job.runAsync(); - documents.remove({FileContainer{filePath, projectPartId}}); + documents.remove({FileContainer{filePath}}); ASSERT_TRUE(waitUntilJobFinished(job)); } diff --git a/tests/unit/unittest/clangdocument-test.cpp b/tests/unit/unittest/clangdocument-test.cpp index 0acce63717c..cf7b7dcb9df 100644 --- a/tests/unit/unittest/clangdocument-test.cpp +++ b/tests/unit/unittest/clangdocument-test.cpp @@ -34,9 +34,6 @@ #include #include #include -#include -#include -#include #include #include #include @@ -56,8 +53,6 @@ using ClangBackEnd::FileContainer; using ClangBackEnd::FilePath; using ClangBackEnd::Document; using ClangBackEnd::UnsavedFiles; -using ClangBackEnd::ProjectPart; -using ClangBackEnd::ProjectPartContainer; using ClangBackEnd::Documents; using ClangBackEnd::TranslationUnitUpdateResult; using ClangBackEnd::TranslationUnit; @@ -81,12 +76,9 @@ protected: QByteArray readContentFromDocumentFile() const; protected: - ClangBackEnd::ProjectParts projects; - Utf8String projectPartId{Utf8StringLiteral("/path/to/projectfile")}; - ProjectPart projectPart; Utf8String documentFilePath = Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp"); ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; ::Document document; }; @@ -108,14 +100,14 @@ TEST_F(Document, DefaultDocumentIsNotIntact) TEST_F(Document, ThrowExceptionForNonExistingFilePath) { - ASSERT_THROW(::Document(Utf8StringLiteral("file.cpp"), projectPart, Utf8StringVector(), + ASSERT_THROW(::Document(Utf8StringLiteral("file.cpp"), Utf8StringVector(), documents), ClangBackEnd::DocumentFileDoesNotExistException); } TEST_F(Document, ThrowNoExceptionForNonExistingFilePathIfDoNotCheckIfFileExistsIsSet) { - ASSERT_NO_THROW(::Document(Utf8StringLiteral("file.cpp"), projectPart, Utf8StringVector(), + ASSERT_NO_THROW(::Document(Utf8StringLiteral("file.cpp"), Utf8StringVector(), documents, ::Document::FileExistsCheck::DoNotCheck)); } @@ -168,29 +160,6 @@ TEST_F(Document, LastCommandLineArgumentIsFilePath) ASSERT_THAT(arguments.at(arguments.count() - 1), Eq(nativeFilePath)); } -TEST_F(DocumentSlowTest, TimeStampForProjectPartChangeIsUpdatedAsNewCxTranslationUnitIsGenerated) -{ - auto lastChangeTimePoint = document.lastProjectPartChangeTimePoint(); - std::this_thread::sleep_for(Duration(1)); - - document.parse(); - - ASSERT_THAT(document.lastProjectPartChangeTimePoint(), Gt(lastChangeTimePoint)); -} - -TEST_F(DocumentSlowTest, TimeStampForProjectPartChangeIsUpdatedAsProjectPartIsCleared) -{ - ProjectPart projectPart = document.projectPart(); - document.parse(); - auto lastChangeTimePoint = document.lastProjectPartChangeTimePoint(); - std::this_thread::sleep_for(Duration(1)); - - projectPart.clear(); - document.parse(); - - ASSERT_THAT(document.lastProjectPartChangeTimePoint(), Gt(lastChangeTimePoint)); -} - TEST_F(Document, DocumentRevisionInFileContainerGetter) { document.setDocumentRevision(74); @@ -316,28 +285,6 @@ TEST_F(DocumentSlowTest, DoesNotNeedReparseAfterReparse) ASSERT_FALSE(document.isDirty()); } -TEST_F(Document, SetDirtyIfProjectPartIsOutdated) -{ - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - document.parse(); - projects.createOrUpdate({ProjectPartContainer(projectPartId, {Utf8StringLiteral("-DNEW")})}); - - const bool wasOutdated = document.setDirtyIfProjectPartIsOutdated(); - - ASSERT_TRUE(wasOutdated); - ASSERT_TRUE(document.isDirty()); -} - -TEST_F(DocumentSlowTest, SetNotDirtyIfProjectPartIsNotOutdated) -{ - document.parse(); - - const bool wasOutdated = document.setDirtyIfProjectPartIsOutdated(); - - ASSERT_FALSE(wasOutdated); - ASSERT_FALSE(document.isDirty()); -} - TEST_F(Document, IncorporateUpdaterResultResetsDirtyness) { document.setDirtyIfDependencyIsMet(document.filePath()); @@ -385,10 +332,7 @@ TEST_F(Document, IncorporateUpdaterResultUpdatesTranslationUnitsReparseTimePoint void Document::SetUp() { - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - projectPart = *projects.findProjectPart(projectPartId); - - const QVector fileContainer{FileContainer(documentFilePath, projectPartId)}; + const QVector fileContainer{FileContainer(documentFilePath)}; const auto createdDocuments = documents.create(fileContainer); document = createdDocuments.front(); } @@ -398,10 +342,7 @@ void Document::SetUp() QTemporaryFile temporaryFile; EXPECT_TRUE(temporaryFile.open()); EXPECT_TRUE(temporaryFile.write(readContentFromDocumentFile())); - ::Document document(temporaryFile.fileName(), - projectPart, - Utf8StringVector(), - documents); + ::Document document(temporaryFile.fileName(), Utf8StringVector(), documents); return document; } diff --git a/tests/unit/unittest/clangdocumentprocessor-test.cpp b/tests/unit/unittest/clangdocumentprocessor-test.cpp index d441688c752..5ed3fd328d0 100644 --- a/tests/unit/unittest/clangdocumentprocessor-test.cpp +++ b/tests/unit/unittest/clangdocumentprocessor-test.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include using namespace ClangBackEnd; @@ -49,14 +48,12 @@ protected: bool waitUntilAllJobsFinished(int timeOutInMs = 10000) const; protected: - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; DummyIpcClient dummyIpcClient; Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp")}; - Utf8String projectPartId{Utf8StringLiteral("/path/to/projectfile")}; std::unique_ptr documentProcessor; }; @@ -82,14 +79,13 @@ TEST_F(DocumentProcessorSlowTest, ProcessSingleJob) void DocumentProcessor::SetUp() { - const QVector fileContainer{FileContainer(filePath, projectPartId)}; + const QVector fileContainer{FileContainer(filePath)}; - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); ClangBackEnd::Document document = {documents.create(fileContainer).front()}; documents.setVisibleInEditors({filePath}); documents.setUsedByCurrentEditor(filePath); documentProcessor = std::make_unique( - document, documents, unsavedFiles, projects, dummyIpcClient); + document, documents, unsavedFiles, dummyIpcClient); } void DocumentProcessor::TearDown() diff --git a/tests/unit/unittest/clangdocumentprocessors-test.cpp b/tests/unit/unittest/clangdocumentprocessors-test.cpp index 8142d9d408a..62a5d475430 100644 --- a/tests/unit/unittest/clangdocumentprocessors-test.cpp +++ b/tests/unit/unittest/clangdocumentprocessors-test.cpp @@ -36,7 +36,6 @@ #include #include #include -#include #include using testing::Eq; @@ -54,22 +53,19 @@ protected: bool waitUntilAllJobsFinished(int timeOutInMs = 10000) const; protected: - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; ClangBackEnd::Document document; DummyIpcClient dummyIpcClient; Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp")}; - Utf8String projectPartId{Utf8StringLiteral("/path/to/projectfile")}; ClangBackEnd::JobRequest jobRequest; ClangBackEnd::JobContext jobContext; ClangBackEnd::DocumentProcessors documentProcessors{documents, unsavedFiles, - projects, dummyIpcClient}; }; @@ -166,9 +162,7 @@ TEST_F(DocumentProcessorsSlowTest, ProcessSingle) void DocumentProcessors::SetUp() { - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - - const QVector fileContainer{FileContainer(filePath, projectPartId)}; + const QVector fileContainer{FileContainer(filePath)}; document = documents.create(fileContainer).front(); documents.setVisibleInEditors({filePath}); documents.setUsedByCurrentEditor(filePath); diff --git a/tests/unit/unittest/clangdocuments-test.cpp b/tests/unit/unittest/clangdocuments-test.cpp index 71186353eee..3597df810df 100644 --- a/tests/unit/unittest/clangdocuments-test.cpp +++ b/tests/unit/unittest/clangdocuments-test.cpp @@ -25,9 +25,7 @@ #include "googletest.h" -#include #include -#include #include #include #include @@ -37,8 +35,6 @@ using ClangBackEnd::Document; using ClangBackEnd::UnsavedFiles; -using ClangBackEnd::ProjectPart; -using ClangBackEnd::ProjectPartContainer; using testing::IsNull; using testing::NotNull; @@ -51,15 +47,13 @@ namespace { using ::testing::PrintToString; -MATCHER_P3(IsDocument, filePath, projectPartId, documentRevision, +MATCHER_P2(IsDocument, filePath, documentRevision, std::string(negation ? "isn't" : "is") + " document with file path "+ PrintToString(filePath) - + " and project " + PrintToString(projectPartId) + " and document revision " + PrintToString(documentRevision) ) { return arg.filePath() == filePath - && arg.projectPart().id() == projectPartId && arg.documentRevision() == documentRevision; } @@ -69,39 +63,28 @@ protected: void SetUp() override; protected: - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; const Utf8String filePath = Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp"); const Utf8String otherFilePath = Utf8StringLiteral(TESTDATA_DIR"/translationunits.h"); const Utf8String headerPath = Utf8StringLiteral(TESTDATA_DIR"/translationunits.h"); const Utf8String nonExistingFilePath = Utf8StringLiteral("foo.cpp"); - const Utf8String projectPartId = Utf8StringLiteral("projectPartId"); - const Utf8String otherProjectPartId = Utf8StringLiteral("otherProjectPartId"); - const Utf8String nonExistingProjectPartId = Utf8StringLiteral("nonExistingProjectPartId"); - const ClangBackEnd::FileContainer fileContainer{filePath, projectPartId}; - const ClangBackEnd::FileContainer headerContainer{headerPath, projectPartId}; + const ClangBackEnd::FileContainer fileContainer{filePath}; + const ClangBackEnd::FileContainer headerContainer{headerPath}; }; using DocumentsSlowTest = Documents; TEST_F(Documents, ThrowForGettingWithWrongFilePath) { - ASSERT_THROW(documents.document(nonExistingFilePath, projectPartId), + ASSERT_THROW(documents.document(nonExistingFilePath), ClangBackEnd::DocumentDoesNotExistException); } -TEST_F(Documents, ThrowForGettingWithWrongProjectPartFilePath) -{ - ASSERT_THROW(documents.document(filePath, nonExistingProjectPartId), - ClangBackEnd::ProjectPartDoNotExistException); - -} - TEST_F(Documents, ThrowForAddingNonExistingFile) { - ClangBackEnd::FileContainer fileContainer(nonExistingFilePath, projectPartId); + ClangBackEnd::FileContainer fileContainer(nonExistingFilePath); ASSERT_THROW(documents.create({fileContainer}), ClangBackEnd::DocumentFileDoesNotExistException); @@ -109,25 +92,25 @@ TEST_F(Documents, ThrowForAddingNonExistingFile) TEST_F(Documents, DoNotThrowForAddingNonExistingFileWithUnsavedContent) { - ClangBackEnd::FileContainer fileContainer(nonExistingFilePath, projectPartId, Utf8String(), true); + ClangBackEnd::FileContainer fileContainer(nonExistingFilePath, Utf8String(), true); ASSERT_NO_THROW(documents.create({fileContainer})); } TEST_F(Documents, Add) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); documents.create({fileContainer}); - ASSERT_THAT(documents.document(filePath, projectPartId), - IsDocument(filePath, projectPartId, 74u)); + ASSERT_THAT(documents.document(filePath), + IsDocument(filePath, 74u)); } TEST_F(Documents, CreateWithUnsavedContentSetsDependenciesDirty) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer fileContainerWithUnsavedContent(otherFilePath, projectPartId, Utf8StringVector(), Utf8String(), true, 2u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer fileContainerWithUnsavedContent(otherFilePath, Utf8StringVector(), Utf8String(), true, 2u); auto dependentDocument = documents.create({fileContainer}).at(0); dependentDocument.setDependedFilePaths(QSet() << filePath << otherFilePath); @@ -138,46 +121,43 @@ TEST_F(Documents, CreateWithUnsavedContentSetsDependenciesDirty) TEST_F(Documents, AddAndTestCreatedTranslationUnit) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); auto createdDocuments = documents.create({fileContainer}); - ASSERT_THAT(createdDocuments.front(), - IsDocument(filePath, projectPartId, 74u)); + ASSERT_THAT(createdDocuments.front(), IsDocument(filePath, 74u)); } TEST_F(Documents, ThrowForCreatingAnExistingDocument) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); documents.create({fileContainer}); - ASSERT_THROW(documents.create({fileContainer}), - ClangBackEnd::DocumentAlreadyExistsException); + ASSERT_THROW(documents.create({fileContainer}), ClangBackEnd::DocumentAlreadyExistsException); } TEST_F(Documents, ThrowForUpdatingANonExistingDocument) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); ASSERT_THROW(documents.update({fileContainer}), ClangBackEnd::DocumentDoesNotExistException); } TEST_F(Documents, UpdateSingle) { - ClangBackEnd::FileContainer createFileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer updateFileContainer(filePath, Utf8String(), Utf8StringVector(), 75u); + ClangBackEnd::FileContainer createFileContainer(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer updateFileContainer(filePath, Utf8StringVector(), 75u); documents.create({createFileContainer}); documents.update({updateFileContainer}); - ASSERT_THAT(documents.document(filePath, projectPartId), - IsDocument(filePath, projectPartId, 75u)); + ASSERT_THAT(documents.document(filePath), IsDocument(filePath, 75u)); } TEST_F(Documents, UpdateReturnsUpdatedDocument) { - ClangBackEnd::FileContainer createFileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer updateFileContainer(filePath, Utf8String(), Utf8StringVector(), 75u); + ClangBackEnd::FileContainer createFileContainer(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer updateFileContainer(filePath, Utf8StringVector(), 75u); documents.create({createFileContainer}); const std::vector updatedDocuments = documents.update({updateFileContainer}); @@ -186,52 +166,50 @@ TEST_F(Documents, UpdateReturnsUpdatedDocument) ASSERT_THAT(updatedDocuments.front().documentRevision(), Eq(75u)); } +// TODO: Does this test still makes sense? TEST_F(Documents, UpdateMultiple) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer fileContainerWithOtherProject(filePath, otherProjectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer updatedFileContainer(filePath, Utf8String(), Utf8StringVector(), 75u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer fileContainerWithOtherProject(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer updatedFileContainer(filePath, Utf8StringVector(), 75u); documents.create({fileContainer, fileContainerWithOtherProject}); documents.update({updatedFileContainer}); - ASSERT_THAT(documents.document(filePath, projectPartId), - IsDocument(filePath, projectPartId, 75u)); - ASSERT_THAT(documents.document(filePath, otherProjectPartId), - IsDocument(filePath, otherProjectPartId, 75u)); + ASSERT_THAT(documents.document(filePath), IsDocument(filePath, 75u)); } TEST_F(DocumentsSlowTest, UpdateUnsavedFileAndCheckForReparse) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer headerContainer(headerPath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer headerContainerWithUnsavedContent(headerPath, projectPartId, Utf8String(), true, 75u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer headerContainer(headerPath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer headerContainerWithUnsavedContent(headerPath, Utf8String(), true, 75u); documents.create({fileContainer, headerContainer}); - Document document = documents.document(filePath, projectPartId); + Document document = documents.document(filePath); document.parse(); documents.update({headerContainerWithUnsavedContent}); - ASSERT_TRUE(documents.document(filePath, projectPartId).isDirty()); + ASSERT_TRUE(documents.document(filePath).isDirty()); } TEST_F(DocumentsSlowTest, RemoveFileAndCheckForReparse) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer headerContainer(headerPath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer headerContainerWithUnsavedContent(headerPath, projectPartId, Utf8String(), true, 75u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer headerContainer(headerPath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer headerContainerWithUnsavedContent(headerPath, Utf8String(), true, 75u); documents.create({fileContainer, headerContainer}); - Document document = documents.document(filePath, projectPartId); + Document document = documents.document(filePath); document.parse(); documents.remove({headerContainerWithUnsavedContent}); - ASSERT_TRUE(documents.document(filePath, projectPartId).isDirty()); + ASSERT_TRUE(documents.document(filePath).isDirty()); } TEST_F(Documents, DontGetNewerFileContainerIfRevisionIsTheSame) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); documents.create({fileContainer}); auto newerFileContainers = documents.newerFileContainers({fileContainer}); @@ -241,8 +219,8 @@ TEST_F(Documents, DontGetNewerFileContainerIfRevisionIsTheSame) TEST_F(Documents, GetNewerFileContainerIfRevisionIsDifferent) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - ClangBackEnd::FileContainer newerContainer(filePath, projectPartId, Utf8StringVector(), 75u); + ClangBackEnd::FileContainer fileContainer(filePath, Utf8StringVector(), 74u); + ClangBackEnd::FileContainer newerContainer(filePath, Utf8StringVector(), 75u); documents.create({fileContainer}); auto newerFileContainers = documents.newerFileContainers({newerContainer}); @@ -252,61 +230,50 @@ TEST_F(Documents, GetNewerFileContainerIfRevisionIsDifferent) TEST_F(Documents, ThrowForRemovingWithWrongFilePath) { - ClangBackEnd::FileContainer fileContainer(nonExistingFilePath, projectPartId); + ClangBackEnd::FileContainer fileContainer(nonExistingFilePath); ASSERT_THROW(documents.remove({fileContainer}), ClangBackEnd::DocumentDoesNotExistException); } -TEST_F(Documents, ThrowForRemovingWithWrongProjectPartFilePath) -{ - ClangBackEnd::FileContainer fileContainer(filePath, nonExistingProjectPartId); - - ASSERT_THROW(documents.remove({fileContainer}), - ClangBackEnd::ProjectPartDoNotExistException); -} - TEST_F(Documents, Remove) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId); + ClangBackEnd::FileContainer fileContainer(filePath); documents.create({fileContainer}); documents.remove({fileContainer}); - ASSERT_THROW(documents.document(filePath, projectPartId), + ASSERT_THROW(documents.document(filePath), ClangBackEnd::DocumentDoesNotExistException); } TEST_F(Documents, RemoveAllValidIfExceptionIsThrown) { - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId); + ClangBackEnd::FileContainer fileContainer(filePath); documents.create({fileContainer}); - ASSERT_THROW(documents.remove({ClangBackEnd::FileContainer(Utf8StringLiteral("dontextist.pro"), projectPartId), fileContainer}), + ASSERT_THROW(documents.remove({ClangBackEnd::FileContainer(Utf8StringLiteral("dontextist.pro")), fileContainer}), ClangBackEnd::DocumentDoesNotExistException); ASSERT_THAT(documents.documents(), - Not(Contains(Document(filePath, - projects.project(projectPartId), - Utf8StringVector(), - documents)))); + Not(Contains(Document(filePath, Utf8StringVector(), documents)))); } TEST_F(Documents, HasDocument) { - documents.create({{filePath, projectPartId}}); + documents.create({{filePath}}); - ASSERT_TRUE(documents.hasDocument(filePath, projectPartId)); + ASSERT_TRUE(documents.hasDocument(filePath)); } TEST_F(Documents, HasNotDocument) { - ASSERT_FALSE(documents.hasDocument(filePath, projectPartId)); + ASSERT_FALSE(documents.hasDocument(filePath)); } TEST_F(Documents, FilteredPositive) { - documents.create({{filePath, projectPartId}}); + documents.create({{filePath}}); const auto isMatchingFilePath = [this](const Document &document) { return document.filePath() == filePath; }; @@ -318,7 +285,7 @@ TEST_F(Documents, FilteredPositive) TEST_F(Documents, FilteredNegative) { - documents.create({{filePath, projectPartId}}); + documents.create({{filePath}}); const auto isMatchingNothing = [](const Document &) { return false; }; @@ -330,7 +297,7 @@ TEST_F(Documents, FilteredNegative) TEST_F(Documents, DirtyAndVisibleButNotCurrentDocuments) { - documents.create({{filePath, projectPartId}}); + documents.create({{filePath}}); documents.updateDocumentsWithChangedDependency(filePath); documents.setVisibleInEditors({filePath}); documents.setUsedByCurrentEditor(Utf8String()); @@ -402,45 +369,9 @@ TEST_F(Documents, IsNotVisibleEditorAfterBeingVisible) ASSERT_FALSE(document.isVisibleInEditor()); } -TEST_F(Documents, SetDocumentsDirtyIfProjectPartChanged) -{ - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - const auto createdDocuments = documents.create({fileContainer}); - ClangBackEnd::FileContainer fileContainerWithOtherProject(filePath, otherProjectPartId, Utf8StringVector(), 74u); - documents.create({fileContainerWithOtherProject}); - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - - const auto affectedDocuments = documents.setDocumentsDirtyIfProjectPartChanged(); - - ASSERT_THAT(affectedDocuments, createdDocuments); -} - -TEST_F(Documents, SetDocumentsDirtyIfProjectPartChanged_EvenIfAlreadyDirty) -{ - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - auto createdDocuments = documents.create({fileContainer}); - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - documents.setDocumentsDirtyIfProjectPartChanged(); // Make already dirty - - const auto affectedDocuments = documents.setDocumentsDirtyIfProjectPartChanged(); - - ASSERT_THAT(affectedDocuments, createdDocuments); -} - -TEST_F(Documents, SetDocumentsDirtyIfProjectPartChanged_ReturnsEmpty) -{ - ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); - documents.create({fileContainer}); - - const auto affectedDocuments = documents.setDocumentsDirtyIfProjectPartChanged(); - - ASSERT_TRUE(affectedDocuments.empty()); -} - +// TODO: Remove? void Documents::SetUp() { - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - projects.createOrUpdate({ProjectPartContainer(otherProjectPartId)}); } } diff --git a/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp b/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp index f057f8b13d9..569f7d63553 100644 --- a/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp +++ b/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include #include @@ -69,30 +68,25 @@ namespace { class DocumentSuspenderResumer : public ::testing::Test { protected: - void SetUp() override; Document getDocument(const Utf8String &filePath); void categorizeDocuments(int hotDocumentsSize); SuspendResumeJobs createSuspendResumeJobs(int hotDocumentsSize = -1); static void setParsed(Document &document); protected: - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; DummyIpcClient dummyIpcClient; - ClangBackEnd::DocumentProcessors documentProcessors{documents, unsavedFiles, projects, - dummyIpcClient}; - - const Utf8String projectPartId = Utf8StringLiteral("projectPartId"); + ClangBackEnd::DocumentProcessors documentProcessors{documents, unsavedFiles, dummyIpcClient}; const Utf8String filePath1 = Utf8StringLiteral(TESTDATA_DIR"/empty1.cpp"); - const ClangBackEnd::FileContainer fileContainer1{filePath1, projectPartId, Utf8String(), true}; + const ClangBackEnd::FileContainer fileContainer1{filePath1, Utf8String(), true}; const Utf8String filePath2 = Utf8StringLiteral(TESTDATA_DIR"/empty2.cpp"); - const ClangBackEnd::FileContainer fileContainer2{filePath2, projectPartId, Utf8String(), true}; + const ClangBackEnd::FileContainer fileContainer2{filePath2, Utf8String(), true}; const Utf8String filePath3 = Utf8StringLiteral(TESTDATA_DIR"/empty3.cpp"); - const ClangBackEnd::FileContainer fileContainer3{filePath3, projectPartId, Utf8String(), true}; + const ClangBackEnd::FileContainer fileContainer3{filePath3, Utf8String(), true}; std::vector hotDocuments; std::vector coldDocuments; @@ -286,14 +280,9 @@ TEST_F(DocumentSuspenderResumer, CreateSuspendAndResumeJobs) ASSERT_THAT(jobs, ContainerEq(expectedJobs)); } -void DocumentSuspenderResumer::SetUp() -{ - projects.createOrUpdate({ClangBackEnd::ProjectPartContainer(projectPartId)}); -} - ClangBackEnd::Document DocumentSuspenderResumer::getDocument(const Utf8String &filePath) { - return documents.document(filePath, projectPartId); + return documents.document(filePath); } void DocumentSuspenderResumer::categorizeDocuments(int hotDocumentsSize) diff --git a/tests/unit/unittest/clangfollowsymbol-test.cpp b/tests/unit/unittest/clangfollowsymbol-test.cpp index 9df7349306c..d4dabfbf878 100644 --- a/tests/unit/unittest/clangfollowsymbol-test.cpp +++ b/tests/unit/unittest/clangfollowsymbol-test.cpp @@ -33,8 +33,6 @@ #include #include #include -#include -#include #include #include #include @@ -50,7 +48,6 @@ using ::testing::ContainerEq; using ::testing::Eq; using ::testing::PrintToString; -using ::ClangBackEnd::ProjectPart; using ::ClangBackEnd::SourceLocationContainer; using ::ClangBackEnd::Document; using ::ClangBackEnd::UnsavedFiles; @@ -113,20 +110,12 @@ MATCHER_P4(MatchesFileSourceRange, filename, line, column, length, class Data { public: - ProjectPart projectPart{ - Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++14")})}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; - Document document = {sourceFilePath, - projectPart, - Utf8StringVector(), - documents}; - Document headerDocument = {headerFilePath, - projectPart, - Utf8StringVector(), - documents}; + ClangBackEnd::Documents documents{unsavedFiles}; + Utf8StringVector compilationArguments{ + TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++14")})}; + Document document = {sourceFilePath, compilationArguments, documents}; + Document headerDocument = {headerFilePath, compilationArguments, documents}; QVector deps{sourceFilePath, cursorPath}; }; diff --git a/tests/unit/unittest/clangjobqueue-test.cpp b/tests/unit/unittest/clangjobqueue-test.cpp index b5758dc25b9..8e00dccd2f9 100644 --- a/tests/unit/unittest/clangjobqueue-test.cpp +++ b/tests/unit/unittest/clangjobqueue-test.cpp @@ -32,8 +32,6 @@ #include #include #include -#include -#include #include #include @@ -70,21 +68,17 @@ protected: void updateDocumentRevision(); void updateUnsavedFiles(); - void updateProject(); - void removeProject(); void removeDocument(); protected: - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; ClangBackEnd::Document document; Utf8String filePath1 = Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp"); Utf8String filePath2 = Utf8StringLiteral(TESTDATA_DIR"/skippedsourceranges.cpp"); - Utf8String projectPartId{Utf8StringLiteral("/path/to/projectfile")}; - ClangBackEnd::JobQueue jobQueue{documents, projects}; + ClangBackEnd::JobQueue jobQueue{documents}; }; TEST_F(JobQueue, AddJob) @@ -200,17 +194,6 @@ TEST_F(JobQueue, RemoveRequestsForClosedDocuments) ASSERT_THAT(jobsToRun.size(), Eq(0)); } -TEST_F(JobQueue, RemoveRequestsForClosedProject) -{ - jobQueue.add(createJobRequest(filePath1, JobRequest::Type::UpdateAnnotations)); - removeProject(); - - const JobRequests jobsToRun = jobQueue.processQueue(); - - ASSERT_THAT(jobQueue.size(), Eq(0)); - ASSERT_THAT(jobsToRun.size(), Eq(0)); -} - TEST_F(JobQueue, RemoveRequestsForOudatedUnsavedFiles) { jobQueue.add(createJobRequest(filePath1, JobRequest::Type::UpdateAnnotations)); @@ -233,17 +216,6 @@ TEST_F(JobQueue, RemoveRequestsForChangedDocumentRevision) ASSERT_THAT(jobsToRun.size(), Eq(0)); } -TEST_F(JobQueue, RemoveRequestsForOudatedProject) -{ - jobQueue.add(createJobRequest(filePath1, JobRequest::Type::UpdateAnnotations)); - updateProject(); - - const JobRequests jobsToRun = jobQueue.processQueue(); - - ASSERT_THAT(jobQueue.size(), Eq(0)); - ASSERT_THAT(jobsToRun.size(), Eq(0)); -} - TEST_F(JobQueue, RemoveRequestsForNotIntactDocuments) { const Utf8String filePath = createTranslationUnitForDeletedFile(); @@ -369,26 +341,6 @@ TEST_F(JobQueue, RequestUpdateAnnotationsOutdatableByUnsavedFileChange) ASSERT_THAT(jobsToStart.size(), Eq(0)); } -TEST_F(JobQueue, RequestUpdateAnnotationsOutdatableByProjectRemoval) -{ - jobQueue.add(createJobRequest(filePath1, JobRequest::Type::UpdateAnnotations)); - removeProject(); - - const JobRequests jobsToStart = jobQueue.processQueue(); - - ASSERT_THAT(jobsToStart.size(), Eq(0)); -} - -TEST_F(JobQueue, RequestUpdateAnnotationsOutdatableByProjectChange) -{ - jobQueue.add(createJobRequest(filePath1, JobRequest::Type::UpdateAnnotations)); - updateProject(); - - const JobRequests jobsToStart = jobQueue.processQueue(); - - ASSERT_THAT(jobsToStart.size(), Eq(0)); -} - TEST_F(JobQueue, RequestUpdateAnnotationsOutdatableByDocumentClose) { jobQueue.add(createJobRequest(filePath1, JobRequest::Type::UpdateAnnotations)); @@ -496,10 +448,8 @@ TEST_F(JobQueue, ResumeDocumentDoesNotRunOnUnsuspended) void JobQueue::SetUp() { - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - - const QVector fileContainer{FileContainer(filePath1, projectPartId), - FileContainer(filePath2, projectPartId)}; + const QVector fileContainer{FileContainer(filePath1), + FileContainer(filePath2)}; document = documents.create(fileContainer).front(); documents.setVisibleInEditors({filePath1}); documents.setUsedByCurrentEditor(filePath1); @@ -517,8 +467,7 @@ Utf8String JobQueue::createTranslationUnitForDeletedFile() EXPECT_TRUE(temporaryFile.open()); const QString temporaryFilePath = Utf8String::fromString(temporaryFile.fileName()); - ClangBackEnd::FileContainer fileContainer(temporaryFilePath, - projectPartId, Utf8String(), true); + ClangBackEnd::FileContainer fileContainer(temporaryFilePath, Utf8String(), true); documents.create({fileContainer}); auto document = documents.document(fileContainer); document.setIsUsedByCurrentEditor(true); @@ -533,11 +482,9 @@ JobRequest JobQueue::createJobRequest( { JobRequest jobRequest(type); jobRequest.filePath = filePath; - jobRequest.projectPartId = projectPartId; jobRequest.unsavedFilesChangeTimePoint = unsavedFiles.lastChangeTimePoint(); jobRequest.documentRevision = document.documentRevision(); jobRequest.preferredTranslationUnit = preferredTranslationUnit; - jobRequest.projectChangeTimePoint = projects.project(projectPartId).lastChangeTimePoint(); return jobRequest; } @@ -549,27 +496,17 @@ void JobQueue::pretendParsedTranslationUnit() void JobQueue::updateDocumentRevision() { - documents.update({FileContainer(filePath1, projectPartId, Utf8String(), true, 1)}); + documents.update({FileContainer(filePath1, Utf8String(), true, 1)}); } void JobQueue::updateUnsavedFiles() { - unsavedFiles.createOrUpdate({FileContainer(filePath1, projectPartId, Utf8String(), true, 1)}); -} - -void JobQueue::updateProject() -{ - projects.createOrUpdate({projectPartId}); -} - -void JobQueue::removeProject() -{ - projects.remove({projectPartId}); + unsavedFiles.createOrUpdate({FileContainer(filePath1, Utf8String(), true, 1)}); } void JobQueue::removeDocument() { - documents.remove({FileContainer(filePath1, projectPartId)}); + documents.remove({FileContainer(filePath1)}); } } // anonymous diff --git a/tests/unit/unittest/clangjobs-test.cpp b/tests/unit/unittest/clangjobs-test.cpp index 3288b216d42..a55a550220a 100644 --- a/tests/unit/unittest/clangjobs-test.cpp +++ b/tests/unit/unittest/clangjobs-test.cpp @@ -30,8 +30,6 @@ #include #include #include -#include -#include #include #include @@ -59,16 +57,14 @@ protected: bool waitUntilJobChainFinished(int timeOutInMs = 10000); protected: - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; ClangBackEnd::Document document; DummyIpcClient dummyClientInterface; Utf8String filePath1 = Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp"); - Utf8String projectPartId{Utf8StringLiteral("/path/to/projectfile")}; - ClangBackEnd::Jobs jobs{documents, unsavedFiles, projects, dummyClientInterface}; + ClangBackEnd::Jobs jobs{documents, unsavedFiles, dummyClientInterface}; }; using JobsSlowTest = Jobs; @@ -114,9 +110,7 @@ TEST_F(JobsSlowTest, IsJobRunning) void Jobs::SetUp() { - projects.createOrUpdate({ProjectPartContainer(projectPartId)}); - - const QVector fileContainer{FileContainer(filePath1, projectPartId)}; + const QVector fileContainer{FileContainer(filePath1)}; document = documents.create(fileContainer).front(); documents.setVisibleInEditors({filePath1}); documents.setUsedByCurrentEditor(filePath1); diff --git a/tests/unit/unittest/clangreferencescollector-test.cpp b/tests/unit/unittest/clangreferencescollector-test.cpp index feb195bbe8c..177fc6d8567 100644 --- a/tests/unit/unittest/clangreferencescollector-test.cpp +++ b/tests/unit/unittest/clangreferencescollector-test.cpp @@ -32,8 +32,6 @@ #include #include #include -#include -#include #include #include #include @@ -47,7 +45,6 @@ using ::testing::Not; using ::testing::ContainerEq; using ::testing::Eq; -using ::ClangBackEnd::ProjectPart; using ::ClangBackEnd::SourceLocationContainer; using ::ClangBackEnd::Document; using ::ClangBackEnd::UnsavedFiles; @@ -59,15 +56,10 @@ using References = QVector; namespace { struct Data { - ProjectPart projectPart{ - Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++14")})}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Document document{Utf8StringLiteral(TESTDATA_DIR"/references.cpp"), - projectPart, - Utf8StringVector(), + TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++14")}), documents}; }; diff --git a/tests/unit/unittest/clangrequestannotationsjob-test.cpp b/tests/unit/unittest/clangrequestannotationsjob-test.cpp index 76740d041a2..9fb80d2ff01 100644 --- a/tests/unit/unittest/clangrequestannotationsjob-test.cpp +++ b/tests/unit/unittest/clangrequestannotationsjob-test.cpp @@ -77,7 +77,7 @@ TEST_F(RequestAnnotationsJob, DontSendAnnotationsIfDocumentWasClosed) EXPECT_CALL(mockIpcClient, annotations(_)).Times(0); job.runAsync(); - documents.remove({FileContainer{filePath, projectPartId}}); + documents.remove({FileContainer{filePath}}); ASSERT_TRUE(waitUntilJobFinished(job)); } diff --git a/tests/unit/unittest/clangrequestreferencesjob-test.cpp b/tests/unit/unittest/clangrequestreferencesjob-test.cpp index 5f92c869ec2..83d7d97a258 100644 --- a/tests/unit/unittest/clangrequestreferencesjob-test.cpp +++ b/tests/unit/unittest/clangrequestreferencesjob-test.cpp @@ -94,7 +94,7 @@ TEST_F(RequestReferencesJob, DontSendReferencesIfDocumentWasClosed) EXPECT_CALL(mockIpcClient, references(_)).Times(0); job.runAsync(); - documents.remove({FileContainer{filePath, projectPartId}}); + documents.remove({FileContainer{filePath}}); ASSERT_TRUE(waitUntilJobFinished(job)); } @@ -106,7 +106,7 @@ TEST_F(RequestReferencesJob, DontSendReferencesIfDocumentRevisionChanged) EXPECT_CALL(mockIpcClient, references(_)).Times(0); job.runAsync(); - documents.update({FileContainer(filePath, projectPartId, Utf8String(), true, 99)}); + documents.update({FileContainer(filePath, Utf8String(), true, 99)}); ASSERT_TRUE(waitUntilJobFinished(job)); } diff --git a/tests/unit/unittest/clangsupportivetranslationunitinitializer-test.cpp b/tests/unit/unittest/clangsupportivetranslationunitinitializer-test.cpp index 86aae2ee2cb..9e79cd744d9 100644 --- a/tests/unit/unittest/clangsupportivetranslationunitinitializer-test.cpp +++ b/tests/unit/unittest/clangsupportivetranslationunitinitializer-test.cpp @@ -27,7 +27,6 @@ #include "dummyclangipcclient.h" #include "processevents-utilities.h" -#include "runprojectcreateorupdate-utility.h" #include #include @@ -35,7 +34,6 @@ #include #include #include -#include #include #include @@ -62,17 +60,14 @@ protected: protected: Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp")}; - Utf8String projectPartId{Utf8StringLiteral("/path/to/projectfile")}; - ProjectParts projects; - UnitTest::RunProjectCreateOrUpdate _1{projects, {ProjectPartContainer(projectPartId)}}; UnsavedFiles unsavedFiles; - const QVector fileContainer{FileContainer(filePath, projectPartId)}; - Documents documents{projects, unsavedFiles}; + const QVector fileContainer{FileContainer(filePath)}; + Documents documents{unsavedFiles}; Document document{documents.create(fileContainer).front()}; DummyIpcClient dummyClientInterface; - Jobs jobs{documents, unsavedFiles, projects, dummyClientInterface}; + Jobs jobs{documents, unsavedFiles, dummyClientInterface}; ClangBackEnd::SupportiveTranslationUnitInitializer initializer{document, jobs}; }; @@ -86,7 +81,7 @@ TEST_F(SupportiveTranslationUnitInitializer, HasInitiallyNotInitializedState) TEST_F(SupportiveTranslationUnitInitializer, StartInitializingAbortsIfDocumentIsClosed) { - documents.remove({FileContainer(filePath, projectPartId)}); + documents.remove({FileContainer(filePath)}); initializer.startInitializing(); @@ -125,7 +120,7 @@ TEST_F(SupportiveTranslationUnitInitializerSlowTest, Abort) TEST_F(SupportiveTranslationUnitInitializer, CheckIfParseJobFinishedAbortsIfDocumentIsClosed) { - documents.remove({FileContainer(filePath, projectPartId)}); + documents.remove({FileContainer(filePath)}); initializer.setState(ClangBackEnd::SupportiveTranslationUnitInitializer::State::WaitingForParseJob); const Jobs::RunningJob runningJob = createRunningJob(JobRequest::Type::ParseSupportiveTranslationUnit); @@ -162,16 +157,14 @@ void SupportiveTranslationUnitInitializer::SetUp() documents.setVisibleInEditors({filePath}); documents.setUsedByCurrentEditor(filePath); - const auto isDocumentClosed = [this](const Utf8String &filePath, - const Utf8String &projectPartId) { - return !documents.hasDocument(filePath, projectPartId); + const auto isDocumentClosed = [this](const Utf8String &filePath) { + return !documents.hasDocument(filePath); }; initializer.setIsDocumentClosedChecker(isDocumentClosed); } void SupportiveTranslationUnitInitializer::parse() { - projects.createOrUpdate({ProjectPartContainer{projectPartId, Utf8StringVector()}}); document.parse(); } diff --git a/tests/unit/unittest/clangtooltipinfo-test.cpp b/tests/unit/unittest/clangtooltipinfo-test.cpp index 8e941cf6c79..520af95f67a 100644 --- a/tests/unit/unittest/clangtooltipinfo-test.cpp +++ b/tests/unit/unittest/clangtooltipinfo-test.cpp @@ -32,8 +32,6 @@ #include #include #include -#include -#include #include #include #include @@ -42,7 +40,6 @@ #include -using ::ClangBackEnd::ProjectPart; using ::ClangBackEnd::SourceLocationContainer; using ::ClangBackEnd::Document; using ::ClangBackEnd::UnsavedFiles; @@ -84,13 +81,10 @@ MATCHER_P(IsQdocToolTip, expected, std::string(negation ? "isn't" : "is") + Pri #undef CHECK_MEMBER struct Data { - ProjectPart projectPart{Utf8StringLiteral("projectPartId"), {Utf8StringLiteral("-std=c++14")}}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Document document{Utf8StringLiteral(TESTDATA_DIR "/tooltipinfo.cpp"), - projectPart, - {}, + {Utf8StringLiteral("-std=c++14")}, documents}; UnitTest::RunDocumentParse _1{document}; }; diff --git a/tests/unit/unittest/clangupdateannotationsjob-test.cpp b/tests/unit/unittest/clangupdateannotationsjob-test.cpp index 8c6ee421fde..53a593973d7 100644 --- a/tests/unit/unittest/clangupdateannotationsjob-test.cpp +++ b/tests/unit/unittest/clangupdateannotationsjob-test.cpp @@ -80,7 +80,7 @@ TEST_F(UpdateAnnotationsJobSlowTest, DontSendAnnotationsIfDocumentWasClosed) EXPECT_CALL(mockIpcClient, annotations(_)).Times(0); job.runAsync(); - documents.remove({FileContainer{filePath, projectPartId}}); + documents.remove({FileContainer{filePath}}); ASSERT_TRUE(waitUntilJobFinished(job)); } @@ -92,14 +92,13 @@ TEST_F(UpdateAnnotationsJobSlowTest, DontSendAnnotationsIfDocumentRevisionChange EXPECT_CALL(mockIpcClient, annotations(_)).Times(0); job.runAsync(); - documents.update({FileContainer(filePath, projectPartId, Utf8String(), true, 99)}); + documents.update({FileContainer(filePath, Utf8String(), true, 99)}); ASSERT_TRUE(waitUntilJobFinished(job)); } TEST_F(UpdateAnnotationsJobSlowTest, UpdatesTranslationUnit) { - const TimePoint timePointBefore = document.lastProjectPartChangeTimePoint(); const QSet dependendOnFilesBefore = document.dependedFilePaths(); job.setContext(jobContext); job.prepareAsyncRun(); @@ -107,7 +106,6 @@ TEST_F(UpdateAnnotationsJobSlowTest, UpdatesTranslationUnit) job.runAsync(); ASSERT_TRUE(waitUntilJobFinished(job)); - ASSERT_THAT(timePointBefore, Not(document.lastProjectPartChangeTimePoint())); ASSERT_THAT(dependendOnFilesBefore, Not(document.dependedFilePaths())); } diff --git a/tests/unit/unittest/clientserverinprocess-test.cpp b/tests/unit/unittest/clientserverinprocess-test.cpp index 4e201fdcee9..2fe5f89bac9 100644 --- a/tests/unit/unittest/clientserverinprocess-test.cpp +++ b/tests/unit/unittest/clientserverinprocess-test.cpp @@ -65,7 +65,6 @@ protected: protected: Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_function.cpp")}; ClangBackEnd::FileContainer fileContainer{filePath, - Utf8StringLiteral("projectPartId"), Utf8StringLiteral("unsaved content"), true, 1}; @@ -152,7 +151,7 @@ TEST_F(ClientServerInProcess, SendUnregisterUnsavedFilesForEditorMessage) TEST_F(ClientServerInProcess, SendCompleteCodeMessage) { - ClangBackEnd::RequestCompletionsMessage message(Utf8StringLiteral("foo.cpp"), 24, 33, Utf8StringLiteral("do what I want")); + ClangBackEnd::RequestCompletionsMessage message(Utf8StringLiteral("foo.cpp"), 24, 33); EXPECT_CALL(mockClangCodeModelServer, requestCompletions(message)) .Times(1); @@ -185,29 +184,6 @@ TEST_F(ClientServerInProcess, SendCompletionsMessage) scheduleClientMessages(); } -TEST_F(ClientServerInProcess, SendProjectPartsUpdatedMessage) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral(TESTDATA_DIR"/complete.pro")); - ClangBackEnd::ProjectPartsUpdatedMessage message({projectContainer}); - - EXPECT_CALL(mockClangCodeModelServer, projectPartsUpdated(message)) - .Times(1); - - serverProxy.projectPartsUpdated(message); - scheduleServerMessages(); -} - -TEST_F(ClientServerInProcess, SendProjectPartsRemovedMessage) -{ - ClangBackEnd::ProjectPartsRemovedMessage message({Utf8StringLiteral(TESTDATA_DIR"/complete.pro")}); - - EXPECT_CALL(mockClangCodeModelServer, projectPartsRemoved(message)) - .Times(1); - - serverProxy.projectPartsRemoved(message); - scheduleServerMessages(); -} - TEST_F(ClientServerInProcess, DocumentVisibilityChangedMessage) { ClangBackEnd::DocumentVisibilityChangedMessage diff --git a/tests/unit/unittest/clientserveroutsideprocess-test.cpp b/tests/unit/unittest/clientserveroutsideprocess-test.cpp index 2dfe6a281bb..c2231614e78 100644 --- a/tests/unit/unittest/clientserveroutsideprocess-test.cpp +++ b/tests/unit/unittest/clientserveroutsideprocess-test.cpp @@ -121,7 +121,7 @@ TEST_F(ClientServerOutsideProcess, SendDocumentsClosedMessage) TEST_F(ClientServerOutsideProcess, SendCompleteCodeMessage) { - RequestCompletionsMessage codeCompleteMessage(Utf8StringLiteral("foo.cpp"), 24, 33, Utf8StringLiteral("do what I want")); + RequestCompletionsMessage codeCompleteMessage(Utf8StringLiteral("foo.cpp"), 24, 33); EchoMessage echoMessage(codeCompleteMessage); EXPECT_CALL(mockClangCodeModelClient, echo(echoMessage)); @@ -130,29 +130,6 @@ TEST_F(ClientServerOutsideProcess, SendCompleteCodeMessage) ASSERT_TRUE(client.waitForEcho()); } -TEST_F(ClientServerOutsideProcess, SendProjectPartsUpdatedMessage) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral(TESTDATA_DIR"/complete.pro")); - ClangBackEnd::ProjectPartsUpdatedMessage projectPartsUpdatedMessage({projectContainer}); - EchoMessage echoMessage(projectPartsUpdatedMessage); - - EXPECT_CALL(mockClangCodeModelClient, echo(echoMessage)); - - client.serverProxy().projectPartsUpdated(projectPartsUpdatedMessage); - ASSERT_TRUE(client.waitForEcho()); -} - -TEST_F(ClientServerOutsideProcess, SendProjectPartsRemovedMessage) -{ - ClangBackEnd::ProjectPartsRemovedMessage projectPartsRemovedMessage({Utf8StringLiteral(TESTDATA_DIR"/complete.pro")}); - EchoMessage echoMessage(projectPartsRemovedMessage); - - EXPECT_CALL(mockClangCodeModelClient, echo(echoMessage)); - - client.serverProxy().projectPartsRemoved(projectPartsRemovedMessage); - ASSERT_TRUE(client.waitForEcho()); -} - void ClientServerOutsideProcess::SetUp() { QSignalSpy clientSpy(&client, &ConnectionClient::connectedToLocalSocket); diff --git a/tests/unit/unittest/codecompleter-test.cpp b/tests/unit/unittest/codecompleter-test.cpp index ed07ecdc04f..0a20849bb8f 100644 --- a/tests/unit/unittest/codecompleter-test.cpp +++ b/tests/unit/unittest/codecompleter-test.cpp @@ -28,8 +28,6 @@ #include #include #include -#include -#include #include #include #include @@ -83,119 +81,117 @@ protected: protected: QTemporaryDir includeDirectory; - Utf8String includePath{QStringLiteral("-I") + includeDirectory.path()}; + Utf8String includePathArgument{QStringLiteral("-I") + includeDirectory.path()}; QString targetHeaderPath{includeDirectory.path() + QStringLiteral("/complete_target_header.h")}; - ClangBackEnd::ProjectPartContainer projectPart{Utf8StringLiteral("projectPartId"), {includePath}}; - ClangBackEnd::FileContainer mainFileContainer{Utf8StringLiteral(TESTDATA_DIR"/complete_completer_main.cpp"), - projectPart.projectPartId}; - ClangBackEnd::ProjectParts projects; + ClangBackEnd::FileContainer mainFileContainer{Utf8StringLiteral(TESTDATA_DIR + "/complete_completer_main.cpp"), + Utf8StringVector{includePathArgument}}; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; ClangBackEnd::Document document; QScopedPointer completer; ClangBackEnd::FileContainer unsavedMainFileContainer{mainFileContainer.filePath, - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_completer_main_unsaved.cpp"), true}; ClangBackEnd::FileContainer unsavedTargetHeaderFileContainer{targetHeaderPath, - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_target_header_unsaved.h"), true}; ClangBackEnd::FileContainer arrowFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_arrow.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_arrow.cpp"), true }; ClangBackEnd::FileContainer dotArrowCorrectionForPointerFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withDotArrowCorrectionForPointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withDotArrowCorrectionForPointer.cpp"), true }; ClangBackEnd::FileContainer dotArrowCorrectionForPointerFileContainerBeforeTyping{ Utf8StringLiteral(TESTDATA_DIR"/complete_withDotArrowCorrectionForPointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withDotArrowCorrectionForPointer_beforeTyping.cpp"), true }; ClangBackEnd::FileContainer dotArrowCorrectionForPointerFileContainerAfterTyping{ Utf8StringLiteral(TESTDATA_DIR"/complete_withDotArrowCorrectionForPointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withDotArrowCorrectionForPointer_afterTyping.cpp"), true }; - ClangBackEnd::FileContainer dotArrowCorrectionForPointerFileContainerInitial{ Utf8StringLiteral(TESTDATA_DIR"/complete_withDotArrowCorrectionForPointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withDotArrowCorrectionForPointerInitial.cpp"), true }; ClangBackEnd::FileContainer dotArrowCorrectionForPointerFileContainerUpdated{ Utf8StringLiteral(TESTDATA_DIR"/complete_withDotArrowCorrectionForPointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withDotArrowCorrectionForPointerUpdated.cpp"), true }; ClangBackEnd::FileContainer noDotArrowCorrectionForObjectFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withNoDotArrowCorrectionForObject.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withNoDotArrowCorrectionForObject.cpp"), true }; ClangBackEnd::FileContainer noDotArrowCorrectionForFloatFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withNoDotArrowCorrectionForFloat.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withNoDotArrowCorrectionForFloat.cpp"), true }; ClangBackEnd::FileContainer noDotArrowCorrectionForObjectWithArrowOperatortFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withNoDotArrowCorrectionForObjectWithArrowOperator.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withNoDotArrowCorrectionForObjectWithArrowOperator.cpp"), true }; ClangBackEnd::FileContainer noDotArrowCorrectionForDotDotFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withNoDotArrowCorrectionForDotDot.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withNoDotArrowCorrectionForDotDot.cpp"), true }; ClangBackEnd::FileContainer noDotArrowCorrectionForArrowDotFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withNoDotArrowCorrectionForArrowDot.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withNoDotArrowCorrectionForArrowDot.cpp"), true }; ClangBackEnd::FileContainer noDotArrowCorrectionForOnlyDotFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withNoDotArrowCorrectionForOnlyDot.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withNoDotArrowCorrectionForOnlyDot.cpp"), true }; ClangBackEnd::FileContainer noDotArrowCorrectionForColonColonFileContainer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withNoDotArrowCorrectionForColonColon.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withNoDotArrowCorrectionForColonColon.cpp"), true }; ClangBackEnd::FileContainer dotArrowCorrectionForForwardDeclaredClassPointer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withDotArrowCorrectionForForwardDeclaredClassPointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withDotArrowCorrectionForForwardDeclaredClassPointer.cpp"), true }; ClangBackEnd::FileContainer globalCompletionAfterForwardDeclaredClassPointer{ Utf8StringLiteral(TESTDATA_DIR"/complete_withGlobalCompletionAfterForwardDeclaredClassPointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_withGlobalCompletionAfterForwardDeclaredClassPointer.cpp"), true }; ClangBackEnd::FileContainer smartPointerCompletion{ Utf8StringLiteral(TESTDATA_DIR"/complete_smartpointer.cpp"), - projectPart.projectPartId, + {includePathArgument}, readFileContent("/complete_smartpointer.cpp"), true }; @@ -232,11 +228,9 @@ void CodeCompleter::copyChangedTargetHeaderToTemporaryIncludeDirecory() void CodeCompleter::SetUp() { EXPECT_TRUE(includeDirectory.isValid()); - projects.createOrUpdate({projectPart}); documents.create({mainFileContainer}); document = documents.document(mainFileContainer); - completer.reset(new ClangBackEnd::CodeCompleter(document.translationUnit(), - unsavedFiles)); + completer.reset(new ClangBackEnd::CodeCompleter(document.translationUnit(), unsavedFiles)); copyTargetHeaderToTemporaryIncludeDirecory(); document.parse(); @@ -397,8 +391,7 @@ TEST_F(CodeCompleterSlowTest, DotToArrowCompletionForPointerInOutdatedDocument) auto fileContainerBeforeTyping = dotArrowCorrectionForPointerFileContainerBeforeTyping; documents.create({fileContainerBeforeTyping}); unsavedFiles.createOrUpdate({fileContainerBeforeTyping}); - auto document = documents.document(fileContainerBeforeTyping.filePath, - fileContainerBeforeTyping.projectPartId); + auto document = documents.document(fileContainerBeforeTyping.filePath); document.parse(); unsavedFiles.createOrUpdate({dotArrowCorrectionForPointerFileContainerAfterTyping}); ClangBackEnd::CodeCompleter myCompleter(documents.document(dotArrowCorrectionForPointerFileContainerAfterTyping).translationUnit(), diff --git a/tests/unit/unittest/codecompletionsextractor-test.cpp b/tests/unit/unittest/codecompletionsextractor-test.cpp index 0facfadecb9..3f4ca8f0df3 100644 --- a/tests/unit/unittest/codecompletionsextractor-test.cpp +++ b/tests/unit/unittest/codecompletionsextractor-test.cpp @@ -31,8 +31,6 @@ #include #include #include -#include -#include #include #include #include @@ -135,7 +133,6 @@ const ClangBackEnd::FileContainer unsavedDataFileContainer(const char *filePath, const char *unsavedFilePath) { return ClangBackEnd::FileContainer(Utf8String::fromUtf8(filePath), - Utf8String(), unsavedFileContent(unsavedFilePath), true); } @@ -149,18 +146,17 @@ protected: bool needsReparse = false); protected: - ClangBackEnd::ProjectPart project{Utf8StringLiteral("/path/to/projectfile"), TestEnvironment::addPlatformArguments()}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; - Document functionDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_function.cpp"), project, Utf8StringVector(), documents}; - Document functionOverloadDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_functionoverload.cpp"), project, Utf8StringVector(), documents}; - Document variableDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_variable.cpp"), project, Utf8StringVector(), documents}; - Document classDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_class.cpp"), project, Utf8StringVector(), documents}; - Document namespaceDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_namespace.cpp"), project, Utf8StringVector(), documents}; - Document enumerationDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_enumeration.cpp"), project, Utf8StringVector(), documents}; - Document constructorDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_constructor.cpp"), project, Utf8StringVector(), documents}; - Document briefCommentDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_brief_comment.cpp"), project, Utf8StringVector(), documents}; + ClangBackEnd::Documents documents{unsavedFiles}; + Utf8StringVector compilationArguments{TestEnvironment::addPlatformArguments()}; + Document functionDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_function.cpp"), compilationArguments, documents}; + Document functionOverloadDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_functionoverload.cpp"), compilationArguments, documents}; + Document variableDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_variable.cpp"), compilationArguments, documents}; + Document classDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_class.cpp"), compilationArguments, documents}; + Document namespaceDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_namespace.cpp"), compilationArguments, documents}; + Document enumerationDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_enumeration.cpp"), compilationArguments, documents}; + Document constructorDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_constructor.cpp"), compilationArguments, documents}; + Document briefCommentDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_brief_comment.cpp"), compilationArguments, documents}; }; using CodeCompletionsExtractorSlowTest = CodeCompletionsExtractor; @@ -612,9 +608,12 @@ TEST_F(CodeCompletionsExtractorSlowTest, NotAvailableFunction) TEST_F(CodeCompletionsExtractorSlowTest, UnsavedFile) { - Document document(Utf8String::fromUtf8(TESTDATA_DIR"/complete_extractor_function.cpp"), project, Utf8StringVector(), documents); - unsavedFiles.createOrUpdate({unsavedDataFileContainer(TESTDATA_DIR"/complete_extractor_function.cpp", - TESTDATA_DIR"/complete_extractor_function_unsaved.cpp")}); + Document document(Utf8String::fromUtf8(TESTDATA_DIR "/complete_extractor_function.cpp"), + compilationArguments, + documents); + unsavedFiles.createOrUpdate( + {unsavedDataFileContainer(TESTDATA_DIR "/complete_extractor_function.cpp", + TESTDATA_DIR "/complete_extractor_function_unsaved.cpp")}); ClangCodeCompleteResults completeResults(getResults(document, 20)); ::CodeCompletionsExtractor extractor( @@ -628,9 +627,12 @@ TEST_F(CodeCompletionsExtractorSlowTest, UnsavedFile) TEST_F(CodeCompletionsExtractorSlowTest, ChangeUnsavedFile) { - Document document(Utf8String::fromUtf8(TESTDATA_DIR"/complete_extractor_function.cpp"), project, Utf8StringVector(), documents); - unsavedFiles.createOrUpdate({unsavedDataFileContainer(TESTDATA_DIR"/complete_extractor_function.cpp", - TESTDATA_DIR"/complete_extractor_function_unsaved.cpp")}); + Document document(Utf8String::fromUtf8(TESTDATA_DIR "/complete_extractor_function.cpp"), + compilationArguments, + documents); + unsavedFiles.createOrUpdate( + {unsavedDataFileContainer(TESTDATA_DIR "/complete_extractor_function.cpp", + TESTDATA_DIR "/complete_extractor_function_unsaved.cpp")}); ClangCodeCompleteResults completeResults(getResults(document, 20)); unsavedFiles.createOrUpdate({unsavedDataFileContainer(TESTDATA_DIR"/complete_extractor_function.cpp", TESTDATA_DIR"/complete_extractor_function_unsaved_2.cpp")}); @@ -647,7 +649,10 @@ TEST_F(CodeCompletionsExtractorSlowTest, ChangeUnsavedFile) TEST_F(CodeCompletionsExtractorSlowTest, ArgumentDefinition) { - project.setArguments({Utf8StringLiteral("-DArgumentDefinition"), Utf8StringLiteral("-std=gnu++14")}); + Document variableDocument{Utf8StringLiteral(TESTDATA_DIR "/complete_extractor_variable.cpp"), + {Utf8StringLiteral("-DArgumentDefinition"), + Utf8StringLiteral("-std=gnu++14")}, + documents}; ClangCodeCompleteResults completeResults(getResults(variableDocument, 35)); ::CodeCompletionsExtractor extractor( @@ -661,7 +666,9 @@ TEST_F(CodeCompletionsExtractorSlowTest, ArgumentDefinition) TEST_F(CodeCompletionsExtractorSlowTest, NoArgumentDefinition) { - project.setArguments({Utf8StringLiteral("-std=gnu++14")}); + Document variableDocument{Utf8StringLiteral(TESTDATA_DIR "/complete_extractor_variable.cpp"), + {Utf8StringLiteral("-std=gnu++14")}, + documents}; ClangCodeCompleteResults completeResults(getResults(variableDocument, 35)); ::CodeCompletionsExtractor extractor( diff --git a/tests/unit/unittest/cursor-test.cpp b/tests/unit/unittest/cursor-test.cpp index 4aa2cf0bb9b..7523df69ea5 100644 --- a/tests/unit/unittest/cursor-test.cpp +++ b/tests/unit/unittest/cursor-test.cpp @@ -32,8 +32,6 @@ #include #include #include -#include -#include #include #include #include @@ -43,7 +41,6 @@ using ClangBackEnd::Cursor; using ClangBackEnd::Document; using ClangBackEnd::TranslationUnit; using ClangBackEnd::UnsavedFiles; -using ClangBackEnd::ProjectPart; using ClangBackEnd::Documents; using ClangBackEnd::ClangString; using ClangBackEnd::SourceRange; @@ -62,14 +59,11 @@ using testing::Eq; namespace { struct Data { - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/cursor.cpp")}; Document document{filePath, - ProjectPart(Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++11")})), - {}, + TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++11")}), documents}; TranslationUnit translationUnit{filePath, filePath, diff --git a/tests/unit/unittest/diagnostic-test.cpp b/tests/unit/unittest/diagnostic-test.cpp index 9874b933049..be9f9f7f83f 100644 --- a/tests/unit/unittest/diagnostic-test.cpp +++ b/tests/unit/unittest/diagnostic-test.cpp @@ -32,11 +32,9 @@ #include #include #include -#include #include #include #include -#include #include #include #include @@ -52,7 +50,6 @@ using ClangBackEnd::DiagnosticSet; using ClangBackEnd::DiagnosticContainer; using ClangBackEnd::Document; using ClangBackEnd::Documents; -using ClangBackEnd::ProjectPart; using ClangBackEnd::UnsavedFiles; using ClangBackEnd::Diagnostic; using ClangBackEnd::SourceLocation; @@ -87,14 +84,10 @@ protected: DiagnosticContainer expectedDiagnostic(ChildMode childMode) const; protected: - ProjectPart projectPart{Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++11")})}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Document document{Utf8StringLiteral(TESTDATA_DIR"/diagnostic_diagnostic.cpp"), - projectPart, - Utf8StringVector(), + TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++11")}), documents}; UnitTest::RunDocumentParse _1{document}; DiagnosticSet diagnosticSet{document.translationUnit().diagnostics()}; diff --git a/tests/unit/unittest/diagnosticset-test.cpp b/tests/unit/unittest/diagnosticset-test.cpp index 7f67e8c2cae..8c8d336747c 100644 --- a/tests/unit/unittest/diagnosticset-test.cpp +++ b/tests/unit/unittest/diagnosticset-test.cpp @@ -32,8 +32,6 @@ #include #include #include -#include -#include #include #include #include @@ -51,7 +49,6 @@ using ::ClangBackEnd::Diagnostic; using ::ClangBackEnd::DiagnosticSet; using ::ClangBackEnd::DiagnosticContainer; using ::ClangBackEnd::FixItContainer; -using ::ClangBackEnd::ProjectPart; using ::ClangBackEnd::SourceLocation; using ::ClangBackEnd::SourceLocationContainer; using ::ClangBackEnd::Document; @@ -64,18 +61,15 @@ const Utf8String headerFilePath = Utf8StringLiteral(TESTDATA_DIR"/diagnostic_dia class DiagnosticSet : public ::testing::Test { protected: - ProjectPart projectPart{Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-pedantic")})}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; - Document document{Utf8StringLiteral(TESTDATA_DIR"/diagnostic_diagnosticset.cpp"), - projectPart, - Utf8StringVector(), + ClangBackEnd::Documents documents{unsavedFiles}; + Utf8StringVector compilationArguments{ + TestEnvironment::addPlatformArguments({Utf8StringLiteral("-pedantic")})}; + Document document{Utf8StringLiteral(TESTDATA_DIR "/diagnostic_diagnosticset.cpp"), + compilationArguments, documents}; Document documentMainFile{Utf8StringLiteral(TESTDATA_DIR"/diagnostic_diagnosticset_mainfile.cpp"), - projectPart, - Utf8StringVector(), + compilationArguments, documents}; protected: diff --git a/tests/unit/unittest/fixit-test.cpp b/tests/unit/unittest/fixit-test.cpp index 71e490c80c0..08c41766c1d 100644 --- a/tests/unit/unittest/fixit-test.cpp +++ b/tests/unit/unittest/fixit-test.cpp @@ -28,8 +28,6 @@ #include #include -#include -#include #include #include #include @@ -43,7 +41,6 @@ using ClangBackEnd::DiagnosticSet; using ClangBackEnd::Document; using ClangBackEnd::TranslationUnit; -using ClangBackEnd::ProjectPart; using ClangBackEnd::UnsavedFiles; using ClangBackEnd::Diagnostic; using ClangBackEnd::FixIt; @@ -70,12 +67,9 @@ MATCHER_P4(IsSourceLocation, filePath, line, column, offset, struct Data { - ProjectPart projectPart{Utf8StringLiteral("projectPartId")}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Document document{Utf8StringLiteral(TESTDATA_DIR"/diagnostic_semicolon_fixit.cpp"), - projectPart, Utf8StringVector(), documents}; UnitTest::RunDocumentParse _1{document}; diff --git a/tests/unit/unittest/gtest-creator-printing.cpp b/tests/unit/unittest/gtest-creator-printing.cpp index ea59cc59422..0113fdb8208 100644 --- a/tests/unit/unittest/gtest-creator-printing.cpp +++ b/tests/unit/unittest/gtest-creator-printing.cpp @@ -237,15 +237,6 @@ std::ostream &operator<<(std::ostream &os, const SourceLocationsContainer &conta return os; } -std::ostream &operator<<(std::ostream &os, const ProjectPartsUpdatedMessage &message) -{ - os << "(" - << message.projectContainers - << ")"; - - return os; -} - std::ostream &operator<<(std::ostream &os, const FollowSymbolResult &result) { os << "(" @@ -360,15 +351,6 @@ std::ostream &operator<<(std::ostream &os, const EchoMessage &/*message*/) return os << "()"; } -std::ostream &operator<<(std::ostream &os, const ProjectPartsRemovedMessage &message) -{ - os << "(" - << message.projectPartIds - << ")"; - - return os; -} - std::ostream &operator<<(std::ostream &os, const DocumentsClosedMessage &message) { os << "(" @@ -469,8 +451,7 @@ std::ostream &operator<<(std::ostream &os, const FileContainer &container) { os << "(" << container.filePath << ", " - << container.projectPartId << ", " - << container.fileArguments << ", " + << container.compilationArguments << ", " << container.documentRevision << ", " << container.textCodecName; @@ -606,17 +587,6 @@ std::ostream &operator<<(std::ostream &out, const PrecompiledHeadersUpdatedMessa return out; } -std::ostream &operator<<(std::ostream &os, const ProjectPartContainer &container) -{ - os << "(" - << container.projectPartId - << "," - << container.arguments - << ")"; - - return os; -} - std::ostream &operator<<(std::ostream &out, const ProjectPartPch &projectPartPch) { out << "(" @@ -640,7 +610,6 @@ std::ostream &operator<<(std::ostream &os, const RequestAnnotationsMessage &mess { os << "(" << message.fileContainer.filePath << "," - << message.fileContainer.projectPartId << ")"; return os; diff --git a/tests/unit/unittest/gtest-creator-printing.h b/tests/unit/unittest/gtest-creator-printing.h index 526a4f0f8a0..4d733e36dce 100644 --- a/tests/unit/unittest/gtest-creator-printing.h +++ b/tests/unit/unittest/gtest-creator-printing.h @@ -99,7 +99,6 @@ class FilePathId; class FilePath; class WatcherEntry; class SourceLocationsContainer; -class ProjectPartsUpdatedMessage; class CancelMessage; class AliveMessage; class CompletionsMessage; @@ -112,7 +111,6 @@ class FollowSymbolMessage; class RequestCompletionsMessage; class EndMessage; class DocumentsOpenedMessage; -class ProjectPartsRemovedMessage; class DocumentsClosedMessage; class CodeCompletion; class CodeCompletionChunk; @@ -126,7 +124,6 @@ class FullTokenInfo; class HighlightingMarkContainer; class NativeFilePath; class PrecompiledHeadersUpdatedMessage; -class ProjectPartContainer; class ProjectPartPch; class UnsavedFilesUpdatedMessage; class RemoveProjectPartsMessage; @@ -177,7 +174,6 @@ std::ostream &operator<<(std::ostream &out, const SourceLocationEntry &entry); std::ostream &operator<<(std::ostream &out, const IdPaths &idPaths); std::ostream &operator<<(std::ostream &out, const WatcherEntry &entry); std::ostream &operator<<(std::ostream &out, const SourceLocationsContainer &container); -std::ostream &operator<<(std::ostream &out, const ProjectPartsUpdatedMessage &message); std::ostream &operator<<(std::ostream &out, const CancelMessage &message); std::ostream &operator<<(std::ostream &out, const AliveMessage &message); std::ostream &operator<<(std::ostream &out, const CompletionsMessage &message); @@ -190,7 +186,6 @@ std::ostream &operator<<(std::ostream &out, const FollowSymbolMessage &message); std::ostream &operator<<(std::ostream &out, const RequestCompletionsMessage &message); std::ostream &operator<<(std::ostream &out, const EndMessage &message); std::ostream &operator<<(std::ostream &out, const DocumentsOpenedMessage &message); -std::ostream &operator<<(std::ostream &out, const ProjectPartsRemovedMessage &message); std::ostream &operator<<(std::ostream &out, const DocumentsClosedMessage &message); std::ostream &operator<<(std::ostream &out, const CodeCompletion &message); std::ostream &operator<<(std::ostream &out, const CodeCompletionChunk &chunk); @@ -205,7 +200,6 @@ std::ostream &operator<<(std::ostream &out, HighlightingTypes types); std::ostream &operator<<(std::ostream &out, const HighlightingMarkContainer &container); std::ostream &operator<<(std::ostream &out, const NativeFilePath &filePath); std::ostream &operator<<(std::ostream &out, const PrecompiledHeadersUpdatedMessage &message); -std::ostream &operator<<(std::ostream &out, const ProjectPartContainer &container); std::ostream &operator<<(std::ostream &out, const ProjectPartPch &projectPartPch); std::ostream &operator<<(std::ostream &out, const UnsavedFilesUpdatedMessage &message); std::ostream &operator<<(std::ostream &out, const RemoveProjectPartsMessage &message); diff --git a/tests/unit/unittest/highlightingresultreporter-test.cpp b/tests/unit/unittest/highlightingresultreporter-test.cpp index 906b334d166..a9fa277ef3f 100644 --- a/tests/unit/unittest/highlightingresultreporter-test.cpp +++ b/tests/unit/unittest/highlightingresultreporter-test.cpp @@ -33,8 +33,6 @@ #include #include #include -#include -#include #include using ClangBackEnd::Cursor; @@ -44,20 +42,15 @@ using ClangBackEnd::HighlightingType; using ClangBackEnd::Document; using ClangBackEnd::Documents; using ClangBackEnd::UnsavedFiles; -using ClangBackEnd::ProjectPart; -using ClangBackEnd::ProjectParts; using ClangBackEnd::ChunksReportedMonitor; namespace { struct Data { - ProjectParts projects; UnsavedFiles unsavedFiles; - Documents documents{projects, unsavedFiles}; - Document document{Utf8StringLiteral(TESTDATA_DIR"/highlightingmarks.cpp"), - ProjectPart(Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++14")})), - {}, + Documents documents{unsavedFiles}; + Document document{Utf8StringLiteral(TESTDATA_DIR "/highlightingmarks.cpp"), + TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++14")}), documents}; }; diff --git a/tests/unit/unittest/mockclangcodemodelserver.h b/tests/unit/unittest/mockclangcodemodelserver.h index 56d48fac580..7cbe596b369 100644 --- a/tests/unit/unittest/mockclangcodemodelserver.h +++ b/tests/unit/unittest/mockclangcodemodelserver.h @@ -43,11 +43,6 @@ public: MOCK_METHOD1(documentVisibilityChanged, void(const ClangBackEnd::DocumentVisibilityChangedMessage &message)); - MOCK_METHOD1(projectPartsUpdated, - void(const ClangBackEnd::ProjectPartsUpdatedMessage &message)); - MOCK_METHOD1(projectPartsRemoved, - void(const ClangBackEnd::ProjectPartsRemovedMessage &message)); - MOCK_METHOD1(unsavedFilesUpdated, void(const ClangBackEnd::UnsavedFilesUpdatedMessage &message)); MOCK_METHOD1(unsavedFilesRemoved, diff --git a/tests/unit/unittest/projectpart-test.cpp b/tests/unit/unittest/projectpart-test.cpp deleted file mode 100644 index f1e40299389..00000000000 --- a/tests/unit/unittest/projectpart-test.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "googletest.h" - -#include -#include -#include -#include -#include - -#include - -using testing::ElementsAre; -using testing::Pointwise; -using testing::Contains; -using testing::Gt; -using testing::Not; - -namespace { - -TEST(ProjectPart, CreateProjectPart) -{ - Utf8String projectPath(Utf8StringLiteral("/tmp/blah.pro")); - - ClangBackEnd::ProjectPart project(projectPath); - - ASSERT_THAT(project.id(), projectPath); -} - -TEST(ProjectPart, CreateProjectPartWithProjectPartContainer) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro"), {Utf8StringLiteral("-O")}); - - ClangBackEnd::ProjectPart project(projectContainer); - - ASSERT_THAT(project.id(), Utf8StringLiteral("pathToProjectPart.pro")); - ASSERT_THAT(project.arguments(), Contains(Utf8StringLiteral("-O"))); -} - -TEST(ProjectPart, SetArguments) -{ - ClangBackEnd::ProjectPart project(Utf8StringLiteral("/tmp/blah.pro")); - - project.setArguments(Utf8StringVector({Utf8StringLiteral("-O"), Utf8StringLiteral("-fast")})); - - ASSERT_THAT(project.arguments(), ElementsAre(Utf8StringLiteral("-O"), Utf8StringLiteral("-fast"))); -} - -TEST(ProjectPart, ArgumentCount) -{ - ClangBackEnd::ProjectPart project(Utf8StringLiteral("/tmp/blah.pro")); - - project.setArguments(Utf8StringVector({Utf8StringLiteral("-O"), Utf8StringLiteral("-fast")})); - - ASSERT_THAT(project.arguments().count(), 2); -} - -TEST(ProjectPart, TimeStampIsUpdatedAsArgumentChanged) -{ - ClangBackEnd::ProjectPart project(Utf8StringLiteral("/tmp/blah.pro")); - auto lastChangeTimePoint = project.lastChangeTimePoint(); - std::this_thread::sleep_for(ClangBackEnd::Duration(1)); - - project.setArguments(Utf8StringVector({Utf8StringLiteral("-O"), Utf8StringLiteral("-fast")})); - - ASSERT_THAT(project.lastChangeTimePoint(), Gt(lastChangeTimePoint)); - -} - -TEST(ProjectPart, GetNonExistingPoject) -{ - ClangBackEnd::ProjectParts projects; - - ASSERT_THROW(projects.project(Utf8StringLiteral("pathToProjectPart.pro")), ClangBackEnd::ProjectPartDoNotExistException); -} - -TEST(ProjectPart, AddProjectParts) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro"), {Utf8StringLiteral("-O")}); - ClangBackEnd::ProjectParts projects; - - projects.createOrUpdate({projectContainer}); - - ASSERT_THAT(projects.project(projectContainer.projectPartId), ClangBackEnd::ProjectPart(projectContainer)); - ASSERT_THAT(projects.project(projectContainer.projectPartId).arguments(), ElementsAre(Utf8StringLiteral("-O"))); -} - -TEST(ProjectPart, UpdateProjectParts) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro"), {Utf8StringLiteral("-O")}); - ClangBackEnd::ProjectPartContainer projectContainerWithNewArguments(Utf8StringLiteral("pathToProjectPart.pro"), {Utf8StringLiteral("-fast")}); - ClangBackEnd::ProjectParts projects; - projects.createOrUpdate({projectContainer}); - - projects.createOrUpdate({projectContainerWithNewArguments}); - - ASSERT_THAT(projects.project(projectContainer.projectPartId), ClangBackEnd::ProjectPart(projectContainer)); - ASSERT_THAT(projects.project(projectContainer.projectPartId).arguments(), ElementsAre(Utf8StringLiteral("-fast"))); -} - -TEST(ProjectPart, ThrowExceptionForAccesingRemovedProjectParts) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro"), {Utf8StringLiteral("-O")}); - ClangBackEnd::ProjectParts projects; - projects.createOrUpdate({projectContainer}); - - projects.remove({projectContainer.projectPartId}); - - ASSERT_THROW(projects.project(projectContainer.projectPartId), ClangBackEnd::ProjectPartDoNotExistException); -} - -TEST(ProjectPart, ProjectPartProjectPartIdIsEmptyfterRemoving) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro"), {Utf8StringLiteral("-O")}); - ClangBackEnd::ProjectParts projects; - projects.createOrUpdate({projectContainer}); - ClangBackEnd::ProjectPart project(projects.project(projectContainer.projectPartId)); - - projects.remove({projectContainer.projectPartId}); - - ASSERT_TRUE(project.id().isEmpty()); -} - -TEST(ProjectPart, ThrowsForNotExistingProjectPartButRemovesAllExistingProject) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro")); - ClangBackEnd::ProjectParts projects; - projects.createOrUpdate({projectContainer}); - ClangBackEnd::ProjectPart project = *projects.findProjectPart(Utf8StringLiteral("pathToProjectPart.pro")); - - EXPECT_THROW(projects.remove({Utf8StringLiteral("doesnotexist.pro"), projectContainer.projectPartId}), ClangBackEnd::ProjectPartDoNotExistException); - - ASSERT_THAT(projects.projects(), Not(Contains(project))); -} - -TEST(ProjectPart, ProjectPartIsClearedAfterRemove) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro")); - ClangBackEnd::ProjectParts projects; - projects.createOrUpdate({projectContainer}); - ClangBackEnd::ProjectPart project = *projects.findProjectPart(projectContainer.projectPartId); - const auto lastChangeTimePoint = project.lastChangeTimePoint(); - std::this_thread::sleep_for(ClangBackEnd::Duration(1)); - - projects.remove({projectContainer.projectPartId}); - - ASSERT_THAT(project.id(), Utf8String()); - ASSERT_THAT(project.arguments().count(), 0); - ASSERT_THAT(project.lastChangeTimePoint(), Gt(lastChangeTimePoint)); -} - -TEST(ProjectPart, HasProjectPart) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro")); - ClangBackEnd::ProjectParts projects; - projects.createOrUpdate({projectContainer}); - - ASSERT_TRUE(projects.hasProjectPart(projectContainer.projectPartId)); -} - -TEST(ProjectPart, DoNotHasProjectPart) -{ - ClangBackEnd::ProjectPartContainer projectContainer(Utf8StringLiteral("pathToProjectPart.pro")); - ClangBackEnd::ProjectParts projects; - projects.createOrUpdate({projectContainer}); - - ASSERT_FALSE(projects.hasProjectPart(Utf8StringLiteral("doesnotexist.pro"))); -} - -} diff --git a/tests/unit/unittest/readandwritemessageblock-test.cpp b/tests/unit/unittest/readandwritemessageblock-test.cpp index 4a02631e135..1cedd2b5a40 100644 --- a/tests/unit/unittest/readandwritemessageblock-test.cpp +++ b/tests/unit/unittest/readandwritemessageblock-test.cpp @@ -62,7 +62,6 @@ protected: protected: Utf8String filePath{Utf8StringLiteral("foo.cpp")}; ClangBackEnd::FileContainer fileContainer{filePath, - Utf8StringLiteral("projectPartId"), Utf8StringLiteral("unsaved content"), true, 1}; @@ -207,7 +206,7 @@ TEST_F(ReadAndWriteMessageBlock, CompareDocumentsClosedMessage) TEST_F(ReadAndWriteMessageBlock, CompareRequestCompletionsMessage) { - CompareMessage(ClangBackEnd::RequestCompletionsMessage(Utf8StringLiteral("foo.cpp"), 24, 33, Utf8StringLiteral("do what I want"))); + CompareMessage(ClangBackEnd::RequestCompletionsMessage(Utf8StringLiteral("foo.cpp"), 24, 33)); } TEST_F(ReadAndWriteMessageBlock, CompareCompletionsMessage) diff --git a/tests/unit/unittest/runprojectcreateorupdate-utility.h b/tests/unit/unittest/runprojectcreateorupdate-utility.h deleted file mode 100644 index e4ee9a3b17b..00000000000 --- a/tests/unit/unittest/runprojectcreateorupdate-utility.h +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include - -namespace UnitTest { - -struct RunProjectCreateOrUpdate -{ - RunProjectCreateOrUpdate(ClangBackEnd::ProjectParts &projects, - const QVector &projectContainers) - { - projects.createOrUpdate(projectContainers); - } -}; - -} // namespace UnitTest diff --git a/tests/unit/unittest/skippedsourceranges-test.cpp b/tests/unit/unittest/skippedsourceranges-test.cpp index 2082c983162..396e0eec06e 100644 --- a/tests/unit/unittest/skippedsourceranges-test.cpp +++ b/tests/unit/unittest/skippedsourceranges-test.cpp @@ -31,8 +31,6 @@ #include #include #include -#include -#include #include #include #include @@ -47,7 +45,6 @@ using ClangBackEnd::Document; using ClangBackEnd::Documents; using ClangBackEnd::TranslationUnit; using ClangBackEnd::UnsavedFiles; -using ClangBackEnd::ProjectPart; using ClangBackEnd::ClangString; using ClangBackEnd::SourceRange; using ClangBackEnd::SkippedSourceRanges; @@ -89,16 +86,12 @@ struct Data { document.parse(); } - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Utf8String filePath = Utf8StringLiteral(TESTDATA_DIR"/skippedsourceranges.cpp"); - Document document{filePath, - ProjectPart(Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++11"), - Utf8StringLiteral("-DBLAH")})), - {}, - documents}; + Utf8StringVector compilationArguments{TestEnvironment::addPlatformArguments( + {Utf8StringLiteral("-std=c++11"), Utf8StringLiteral("-DBLAH")})}; + Document document{filePath, compilationArguments, documents}; TranslationUnit translationUnit{filePath, filePath, document.translationUnit().cxIndex(), diff --git a/tests/unit/unittest/sourcelocation-test.cpp b/tests/unit/unittest/sourcelocation-test.cpp index 15e8a0b35bc..01e56d3f2d7 100644 --- a/tests/unit/unittest/sourcelocation-test.cpp +++ b/tests/unit/unittest/sourcelocation-test.cpp @@ -28,8 +28,6 @@ #include #include -#include -#include #include #include #include @@ -40,7 +38,6 @@ using ClangBackEnd::Diagnostic; using ClangBackEnd::DiagnosticSet; -using ClangBackEnd::ProjectPart; using ClangBackEnd::SourceLocation; using ClangBackEnd::Document; using ClangBackEnd::UnsavedFiles; @@ -51,12 +48,9 @@ using testing::Not; namespace { struct Data { - ProjectPart projectPart{Utf8StringLiteral("projectPartId")}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Document document{Utf8StringLiteral(TESTDATA_DIR"/diagnostic_source_location.cpp"), - projectPart, Utf8StringVector(), documents}; UnitTest::RunDocumentParse _1{document}; diff --git a/tests/unit/unittest/sourcerange-test.cpp b/tests/unit/unittest/sourcerange-test.cpp index 32f960fd457..daa3fa49947 100644 --- a/tests/unit/unittest/sourcerange-test.cpp +++ b/tests/unit/unittest/sourcerange-test.cpp @@ -30,10 +30,8 @@ #include #include #include -#include #include #include -#include #include #include @@ -45,7 +43,6 @@ using ClangBackEnd::DiagnosticSet; using ClangBackEnd::Document; using ClangBackEnd::Documents; using ClangBackEnd::TranslationUnit; -using ClangBackEnd::ProjectPart; using ClangBackEnd::UnsavedFiles; using ClangBackEnd::Diagnostic; using ClangBackEnd::SourceRange; @@ -74,15 +71,11 @@ MATCHER_P4(IsSourceLocation, filePath, line, column, offset, } struct Data { - ProjectPart projectPart{Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-pedantic")})}; - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/diagnostic_source_range.cpp")}; Document document{filePath, - projectPart, - Utf8StringVector(), + {TestEnvironment::addPlatformArguments({Utf8StringLiteral("-pedantic")})}, documents}; UnitTest::RunDocumentParse _1{document}; TranslationUnit translationUnit{filePath, diff --git a/tests/unit/unittest/tokenprocessor-test.cpp b/tests/unit/unittest/tokenprocessor-test.cpp index a53218f0fc5..c907517937c 100644 --- a/tests/unit/unittest/tokenprocessor-test.cpp +++ b/tests/unit/unittest/tokenprocessor-test.cpp @@ -33,8 +33,6 @@ #include #include #include -#include -#include #include #include #include @@ -52,7 +50,6 @@ using ClangBackEnd::Document; using ClangBackEnd::Documents; using ClangBackEnd::TranslationUnit; using ClangBackEnd::UnsavedFiles; -using ClangBackEnd::ProjectPart; using ClangBackEnd::ClangString; using ClangBackEnd::SourceRange; @@ -127,15 +124,13 @@ struct Data { document.parse(); } - ClangBackEnd::ProjectParts projects; ClangBackEnd::UnsavedFiles unsavedFiles; - ClangBackEnd::Documents documents{projects, unsavedFiles}; + ClangBackEnd::Documents documents{unsavedFiles}; Utf8String filePath{Utf8StringLiteral(TESTDATA_DIR"/highlightingmarks.cpp")}; Document document{filePath, - ProjectPart(Utf8StringLiteral("projectPartId"), - TestEnvironment::addPlatformArguments({Utf8StringLiteral("-std=c++14"), - Utf8StringLiteral("-I" TESTDATA_DIR)})), - {}, + TestEnvironment::addPlatformArguments( + {Utf8StringLiteral("-std=c++14"), + Utf8StringLiteral("-I" TESTDATA_DIR)}), documents}; TranslationUnit translationUnit{filePath, filePath, diff --git a/tests/unit/unittest/unittest.pro b/tests/unit/unittest/unittest.pro index 9f63ed748d0..1927d88b180 100644 --- a/tests/unit/unittest/unittest.pro +++ b/tests/unit/unittest/unittest.pro @@ -144,7 +144,6 @@ SOURCES += \ diagnosticset-test.cpp \ diagnostic-test.cpp \ fixit-test.cpp \ - projectpart-test.cpp \ senddocumenttracker-test.cpp \ skippedsourceranges-test.cpp \ sourcelocation-test.cpp \ @@ -230,7 +229,6 @@ HEADERS += \ mocksqlitestatement.h \ unittest-utility-functions.h \ mocksymbolquery.h \ - runprojectcreateorupdate-utility.h \ rundocumentparse-utility.h \ mocktimer.h \ mocksqlitetransactionbackend.h \ diff --git a/tests/unit/unittest/unsavedfiles-test.cpp b/tests/unit/unittest/unsavedfiles-test.cpp index 6b472918f0d..283c941d574 100644 --- a/tests/unit/unittest/unsavedfiles-test.cpp +++ b/tests/unit/unittest/unsavedfiles-test.cpp @@ -93,7 +93,6 @@ class UnsavedFiles : public ::testing::Test protected: ::UnsavedFiles unsavedFiles; Utf8String filePath{Utf8StringLiteral("file.cpp")}; - Utf8String projectPartId{Utf8StringLiteral("projectPartId")}; Utf8String unsavedContent1{Utf8StringLiteral("foo")}; Utf8String unsavedContent2{Utf8StringLiteral("bar")}; @@ -101,11 +100,11 @@ protected: TEST_F(UnsavedFiles, ModifiedCopyIsDifferent) { - QVector fileContainers({FileContainer(filePath, projectPartId, unsavedContent1, true)}); + QVector fileContainers({FileContainer(filePath, unsavedContent1, true)}); unsavedFiles.createOrUpdate(fileContainers); ::UnsavedFiles copy = unsavedFiles; - QVector updatedFileContainers({FileContainer(filePath, projectPartId, unsavedContent2, true)}); + QVector updatedFileContainers({FileContainer(filePath, unsavedContent2, true)}); copy.createOrUpdate(updatedFileContainers); ASSERT_THAT(copy.at(0).fileContent(), Ne(unsavedFiles.at(0).fileContent())); @@ -114,7 +113,7 @@ TEST_F(UnsavedFiles, ModifiedCopyIsDifferent) TEST_F(UnsavedFiles, DoNothingForUpdateIfFileHasNoUnsavedContent) { - QVector fileContainers({FileContainer(filePath, projectPartId)}); + QVector fileContainers({FileContainer(filePath)}); unsavedFiles.createOrUpdate(fileContainers); @@ -123,17 +122,17 @@ TEST_F(UnsavedFiles, DoNothingForUpdateIfFileHasNoUnsavedContent) TEST_F(UnsavedFiles, AddUnsavedFileForUpdateWithUnsavedContent) { - QVector fileContainers({FileContainer(filePath, projectPartId), - FileContainer(filePath, projectPartId, unsavedContent1, true)}); + QVector fileContainers({FileContainer(filePath), + FileContainer(filePath, unsavedContent1, true)}); unsavedFiles.createOrUpdate(fileContainers); - ASSERT_THAT(unsavedFiles, HasUnsavedFiles(QVector({FileContainer(filePath, projectPartId, unsavedContent1, true)}))); + ASSERT_THAT(unsavedFiles, HasUnsavedFiles(QVector({FileContainer(filePath, unsavedContent1, true)}))); } TEST_F(UnsavedFiles, RemoveUnsavedFileForUpdateWithUnsavedContent) { - QVector fileContainers({FileContainer(filePath, projectPartId, unsavedContent1, true), - FileContainer(filePath, projectPartId)}); + QVector fileContainers({FileContainer(filePath, unsavedContent1, true), + FileContainer(filePath)}); unsavedFiles.createOrUpdate(fileContainers); @@ -142,17 +141,17 @@ TEST_F(UnsavedFiles, RemoveUnsavedFileForUpdateWithUnsavedContent) TEST_F(UnsavedFiles, ExchangeUnsavedFileForUpdateWithUnsavedContent) { - QVector fileContainers({FileContainer(filePath, projectPartId, unsavedContent1, true), - FileContainer(filePath, projectPartId, unsavedContent2, true)}); + QVector fileContainers({FileContainer(filePath, unsavedContent1, true), + FileContainer(filePath, unsavedContent2, true)}); unsavedFiles.createOrUpdate(fileContainers); - ASSERT_THAT(unsavedFiles, HasUnsavedFiles(QVector({FileContainer(filePath, projectPartId, unsavedContent2, true)}))); + ASSERT_THAT(unsavedFiles, HasUnsavedFiles(QVector({FileContainer(filePath, unsavedContent2, true)}))); } TEST_F(UnsavedFiles, TimeStampIsUpdatedAsUnsavedFilesChanged) { - QVector fileContainers({FileContainer(filePath, projectPartId, unsavedContent1, true), - FileContainer(filePath, projectPartId, unsavedContent2, true)}); + QVector fileContainers({FileContainer(filePath, unsavedContent1, true), + FileContainer(filePath, unsavedContent2, true)}); auto lastChangeTimePoint = unsavedFiles.lastChangeTimePoint(); unsavedFiles.createOrUpdate(fileContainers); @@ -162,7 +161,7 @@ TEST_F(UnsavedFiles, TimeStampIsUpdatedAsUnsavedFilesChanged) TEST_F(UnsavedFiles, RemoveUnsavedFiles) { - QVector fileContainers({FileContainer(filePath, projectPartId, unsavedContent1, true)}); + QVector fileContainers({FileContainer(filePath, unsavedContent1, true)}); unsavedFiles.createOrUpdate(fileContainers); unsavedFiles.remove(fileContainers); @@ -172,7 +171,7 @@ TEST_F(UnsavedFiles, RemoveUnsavedFiles) TEST_F(UnsavedFiles, FindUnsavedFile) { - QVector fileContainers({FileContainer(filePath, projectPartId, unsavedContent1, true)}); + QVector fileContainers({FileContainer(filePath, unsavedContent1, true)}); unsavedFiles.createOrUpdate(fileContainers); UnsavedFile &unsavedFile = unsavedFiles.unsavedFile(filePath); @@ -182,7 +181,7 @@ TEST_F(UnsavedFiles, FindUnsavedFile) TEST_F(UnsavedFiles, FindNoUnsavedFile) { - QVector fileContainers({FileContainer(filePath, projectPartId, unsavedContent1, true)}); + QVector fileContainers({FileContainer(filePath, unsavedContent1, true)}); unsavedFiles.createOrUpdate(fileContainers); UnsavedFile &unsavedFile = unsavedFiles.unsavedFile(Utf8StringLiteral("nonExistingFilePath.cpp"));