File indexing completed on 2024-05-19 15:44:54
0001 /* 0002 SPDX-FileCopyrightText: 2014 Milian Wolff <mail@milianw.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef CLANGPARSINGENVIRONMENTFILE_H 0008 #define CLANGPARSINGENVIRONMENTFILE_H 0009 0010 #include "clangparsingenvironment.h" 0011 0012 #include <language/duchain/duchainregister.h> 0013 #include "clangprivateexport.h" 0014 0015 class ClangParsingEnvironmentFileData; 0016 0017 class KDEVCLANGPRIVATE_EXPORT ClangParsingEnvironmentFile : public KDevelop::ParsingEnvironmentFile 0018 { 0019 public: 0020 using Ptr = QExplicitlySharedDataPointer<ClangParsingEnvironmentFile>; 0021 0022 ClangParsingEnvironmentFile(const KDevelop::IndexedString& url, const ClangParsingEnvironment& environment); 0023 explicit ClangParsingEnvironmentFile(ClangParsingEnvironmentFileData& data); 0024 ~ClangParsingEnvironmentFile() override; 0025 0026 bool needsUpdate(const KDevelop::ParsingEnvironment* environment = nullptr) const override; 0027 int type() const override; 0028 0029 bool matchEnvironment(const KDevelop::ParsingEnvironment* environment) const override; 0030 0031 void setEnvironment(const ClangParsingEnvironment& environment); 0032 0033 ClangParsingEnvironment::Quality environmentQuality() const; 0034 0035 uint environmentHash() const; 0036 0037 enum { 0038 Identity = 142 0039 }; 0040 0041 private: 0042 DUCHAIN_DECLARE_DATA(ClangParsingEnvironmentFile) 0043 }; 0044 0045 DUCHAIN_DECLARE_TYPE(ClangParsingEnvironmentFile) 0046 0047 #endif // CLANGPARSINGENVIRONMENTFILE_H