diff options
Diffstat (limited to 'src/libs/3rdparty/syntax-highlighting/src/lib/definition_p.h')
-rw-r--r-- | src/libs/3rdparty/syntax-highlighting/src/lib/definition_p.h | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/src/libs/3rdparty/syntax-highlighting/src/lib/definition_p.h b/src/libs/3rdparty/syntax-highlighting/src/lib/definition_p.h new file mode 100644 index 0000000000..ab95a9552c --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/lib/definition_p.h @@ -0,0 +1,111 @@ +/* + Copyright (C) 2016 Volker Krause <vkrause@kde.org> + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifndef KSYNTAXHIGHLIGHTING_DEFINITION_P_H +#define KSYNTAXHIGHLIGHTING_DEFINITION_P_H + +#include "definitionref_p.h" +#include "definition.h" + +#include <QHash> +#include <QString> +#include <QVector> + +QT_BEGIN_NAMESPACE +class QXmlStreamReader; +class QJsonObject; +QT_END_NAMESPACE + +namespace KSyntaxHighlighting { + +class Repository; + +class DefinitionData +{ +public: + DefinitionData(); + ~DefinitionData(); + + static DefinitionData* get(const Definition &def); + + bool isLoaded() const; + bool loadMetaData(const QString &definitionFileName); + bool loadMetaData(const QString &fileName, const QJsonObject &obj); + + void clear(); + + bool load(); + bool loadLanguage(QXmlStreamReader &reader); + void loadHighlighting(QXmlStreamReader &reader); + void loadContexts(QXmlStreamReader &reader); + void loadItemData(QXmlStreamReader &reader); + void loadGeneral(QXmlStreamReader &reader); + void loadComments(QXmlStreamReader &reader); + void loadFoldingIgnoreList(QXmlStreamReader &reader); + void loadSpellchecking(QXmlStreamReader &reader); + bool checkKateVersion(const QStringRef &verStr); + + KeywordList *keywordList(const QString &name); + bool isWordDelimiter(QChar c) const; + + Context* initialContext() const; + Context* contextByName(const QString &name) const; + + Format formatByName(const QString &name) const; + + quint16 foldingRegionId(const QString &foldName); + + DefinitionRef q; + + Repository *repo = nullptr; + QHash<QString, KeywordList> keywordLists; + QVector<Context*> contexts; + QHash<QString, Format> formats; + QString wordDelimiters; + QString wordWrapDelimiters; + bool hasFoldingRegions = false; + bool indentationBasedFolding = false; + QStringList foldingIgnoreList; + QString singleLineCommentMarker; + CommentPosition singleLineCommentPosition = CommentPosition::StartOfLine; + QString multiLineCommentStartMarker; + QString multiLineCommentEndMarker; + QVector<QPair<QChar, QString>> characterEncodings; + + QString fileName; + QString name = QStringLiteral(QT_TRANSLATE_NOOP("Syntax highlighting", "None")); + QString section; + QString style; + QString indenter; + QString author; + QString license; + QVector<QString> mimetypes; + QVector<QString> extensions; + Qt::CaseSensitivity caseSensitive = Qt::CaseSensitive; + int version = 0; + int priority = 0; + bool hidden = false; +}; +} + +#endif |