/* SPDX-FileCopyrightText: 2016 Volker Krause SPDX-License-Identifier: MIT */ #ifndef KSYNTAXHIGHLIGHTING_REPOSITORY_P_H #define KSYNTAXHIGHLIGHTING_REPOSITORY_P_H #include #include #include #include #include "dynamicregexpcache_p.h" namespace KSyntaxHighlighting { class Definition; class Repository; class Theme; class RepositoryPrivate { public: RepositoryPrivate() = default; static RepositoryPrivate *get(Repository *repo); void load(Repository *repo); void loadSyntaxFolder(Repository *repo, const QString &path); bool loadSyntaxFolderFromIndex(Repository *repo, const QString &path); void computeAlternativeDefLists(); void addDefinition(Definition &&def); void loadThemeFolder(const QString &path); void addTheme(const Theme &theme); int foldingRegionId(const QString &defName, const QString &foldName); int nextFormatId(); QList m_customSearchPaths; // sorted map to have deterministic iteration order std::map m_defs; // flat version of m_defs for speed up iterations for e.g. definitionsForFileName QList m_flatDefs; // map relating all names and alternative names, case insensitively to the correct definition. QHash m_fullDefs; // this vector is sorted by translated sections/names QList m_sortedDefs; QList m_themes; QHash, int> m_foldingRegionIds; int m_foldingRegionId = 0; int m_formatId = 0; DynamicRegexpCache m_dynamicRegexpCache; }; } #endif