summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppsourceprocessor.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-08-30 10:58:08 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-09-01 14:53:58 +0000
commit284817fae6514701902ccdb834c2faa46462f2e8 (patch)
tree44a8c7d9813dc110b61c4639036366c7696bd7e9 /src/plugins/cpptools/cppsourceprocessor.h
parent3e1fa0f170d523971d2c3c12da15a6e291f56511 (diff)
downloadqt-creator-284817fae6514701902ccdb834c2faa46462f2e8.tar.gz
Merge CppTools into CppEditor
There was no proper separation of responsibilities between these plugins. In particular, CppTools had lots of editor-related functionality, so it's not clear why it was separated out in the first place. In fact, for a lot of code, it seemed quite arbitrary where it was put (just one example: switchHeaderSource() was in CppTools, wheras switchDeclarationDefinition() was in CppEditor). Merging the plugins will enable us to get rid of various convoluted pseudo-abstractions that were only introduced to keep up the artificial separation. Change-Id: Iafc3bce625b4794f6d4aa03df6cddc7f2d26716a Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppsourceprocessor.h')
-rw-r--r--src/plugins/cpptools/cppsourceprocessor.h131
1 files changed, 0 insertions, 131 deletions
diff --git a/src/plugins/cpptools/cppsourceprocessor.h b/src/plugins/cpptools/cppsourceprocessor.h
deleted file mode 100644
index faa5a266c8..0000000000
--- a/src/plugins/cpptools/cppsourceprocessor.h
+++ /dev/null
@@ -1,131 +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 "cppmodelmanager.h"
-#include "cppworkingcopy.h"
-
-#include <cplusplus/PreprocessorEnvironment.h>
-#include <cplusplus/pp-engine.h>
-
-#include <QHash>
-#include <QPointer>
-#include <QSet>
-#include <QStringList>
-
-#include <functional>
-
-QT_BEGIN_NAMESPACE
-class QTextCodec;
-QT_END_NAMESPACE
-
-namespace CppTools {
-namespace Internal {
-
-// Documentation inside.
-class CppSourceProcessor: public CPlusPlus::Client
-{
- Q_DISABLE_COPY(CppSourceProcessor)
-
-public:
- using DocumentCallback = std::function<void (const CPlusPlus::Document::Ptr &)>;
-
-public:
- static QString cleanPath(const QString &path);
-
- CppSourceProcessor(const CPlusPlus::Snapshot &snapshot, DocumentCallback documentFinished);
- ~CppSourceProcessor() override;
-
- using CancelChecker = std::function<bool()>;
- void setCancelChecker(const CancelChecker &cancelChecker);
-
- void setWorkingCopy(const CppTools::WorkingCopy &workingCopy);
- void setHeaderPaths(const ProjectExplorer::HeaderPaths &headerPaths);
- void setLanguageFeatures(CPlusPlus::LanguageFeatures languageFeatures);
- void setFileSizeLimitInMb(int fileSizeLimitInMb);
- void setTodo(const QSet<QString> &files);
-
- void run(const QString &fileName, const QStringList &initialIncludes = QStringList());
- void removeFromCache(const QString &fileName);
- void resetEnvironment();
-
- CPlusPlus::Snapshot snapshot() const { return m_snapshot; }
- const QSet<QString> &todo() const { return m_todo; }
-
- void setGlobalSnapshot(const CPlusPlus::Snapshot &snapshot) { m_globalSnapshot = snapshot; }
-
-private:
- void addFrameworkPath(const ProjectExplorer::HeaderPath &frameworkPath);
-
- CPlusPlus::Document::Ptr switchCurrentDocument(CPlusPlus::Document::Ptr doc);
-
- bool getFileContents(const QString &absoluteFilePath, QByteArray *contents,
- unsigned *revision) const;
- bool checkFile(const QString &absoluteFilePath) const;
- QString resolveFile(const QString &fileName, IncludeType type);
- QString resolveFile_helper(const QString &fileName,
- ProjectExplorer::HeaderPaths::Iterator headerPathsIt);
-
- void mergeEnvironment(CPlusPlus::Document::Ptr doc);
-
- // Client interface
- void macroAdded(const CPlusPlus::Macro &macro) override;
- void passedMacroDefinitionCheck(int bytesOffset, int utf16charsOffset,
- int line, const CPlusPlus::Macro &macro) override;
- void failedMacroDefinitionCheck(int bytesOffset, int utf16charOffset,
- const CPlusPlus::ByteArrayRef &name) override;
- void notifyMacroReference(int bytesOffset, int utf16charOffset,
- int line, const CPlusPlus::Macro &macro) override;
- void startExpandingMacro(int bytesOffset, int utf16charOffset,
- int line, const CPlusPlus::Macro &macro,
- const QVector<CPlusPlus::MacroArgumentReference> &actuals) override;
- void stopExpandingMacro(int bytesOffset, const CPlusPlus::Macro &macro) override;
- void markAsIncludeGuard(const QByteArray &macroName) override;
- void startSkippingBlocks(int utf16charsOffset) override;
- void stopSkippingBlocks(int utf16charsOffset) override;
- void sourceNeeded(int line, const QString &fileName, IncludeType type,
- const QStringList &initialIncludes) override;
-
-private:
- CPlusPlus::Snapshot m_snapshot;
- CPlusPlus::Snapshot m_globalSnapshot;
- DocumentCallback m_documentFinished;
- CPlusPlus::Environment m_env;
- CPlusPlus::Preprocessor m_preprocess;
- ProjectExplorer::HeaderPaths m_headerPaths;
- CPlusPlus::LanguageFeatures m_languageFeatures;
- CppTools::WorkingCopy m_workingCopy;
- QSet<QString> m_included;
- CPlusPlus::Document::Ptr m_currentDoc;
- QSet<QString> m_todo;
- QSet<QString> m_processed;
- QHash<QString, QString> m_fileNameCache;
- int m_fileSizeLimitInMb = -1;
- QTextCodec *m_defaultCodec;
-};
-
-} // namespace Internal
-} // namespace CppTools