--- s10k/CommonLibs/BasicXMLSyntaxHighlighter/BasicXMLSyntaxHighlighter.h 2017/12/30 14:40:33 1096 +++ s10k/CommonLibs/BasicXMLSyntaxHighlighter/BasicXMLSyntaxHighlighter.h 2019/02/16 17:24:18 1110 @@ -1,68 +1,68 @@ -/* - * -The MIT License (MIT) - -Copyright (c) 2015 Dmitry Ivanov - -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. -* -*/ - -// This XML highligter is the same from Dmitry Ivanov available here: -// https://github.com/d1vanov/basic-xml-syntax-highlighter -// with some slightly modifications by random-guy (https://github.com/random-guy) -// (like different colors, and remove of unneeded constructors) - -#ifndef BASIC_XML_SYNTAX_HIGHLIGHTER_H -#define BASIC_XML_SYNTAX_HIGHLIGHTER_H - -#include -#include - -class BasicXMLSyntaxHighlighter : public QSyntaxHighlighter -{ - Q_OBJECT -public: - BasicXMLSyntaxHighlighter(QTextDocument * parent = nullptr); - -protected: - virtual void highlightBlock(const QString & text); - -private: - void highlightByRegex(const QTextCharFormat & format, - const QRegExp & regex, const QString & text); - - void setRegexes(); - void setFormats(); - -private: - QTextCharFormat m_xmlKeywordFormat; - QTextCharFormat m_xmlElementFormat; - QTextCharFormat m_xmlAttributeFormat; - QTextCharFormat m_xmlValueFormat; - QTextCharFormat m_xmlCommentFormat; - - QList m_xmlKeywordRegexes; - QRegExp m_xmlElementRegex; - QRegExp m_xmlAttributeRegex; - QRegExp m_xmlValueRegex; - QRegExp m_xmlCommentRegex; -}; - -#endif // BASIC_XML_SYNTAX_HIGHLIGHTER_H +/* + * +The MIT License (MIT) + +Copyright (c) 2015 Dmitry Ivanov + +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. +* +*/ + +// This XML highligter is the same from Dmitry Ivanov available here: +// https://github.com/d1vanov/basic-xml-syntax-highlighter +// with some slightly modifications by fabiobento512 (https://github.com/fabiobento512) +// (like different colors, and remove of unneeded constructors) + +#ifndef BASIC_XML_SYNTAX_HIGHLIGHTER_H +#define BASIC_XML_SYNTAX_HIGHLIGHTER_H + +#include +#include + +class BasicXMLSyntaxHighlighter : public QSyntaxHighlighter +{ + Q_OBJECT +public: + BasicXMLSyntaxHighlighter(QTextDocument * parent = nullptr); + +protected: + virtual void highlightBlock(const QString & text); + +private: + void highlightByRegex(const QTextCharFormat & format, + const QRegExp & regex, const QString & text); + + void setRegexes(); + void setFormats(); + +protected: + QTextCharFormat m_xmlKeywordFormat; + QTextCharFormat m_xmlElementFormat; + QTextCharFormat m_xmlAttributeFormat; + QTextCharFormat m_xmlValueFormat; + QTextCharFormat m_xmlCommentFormat; + + QList m_xmlKeywordRegexes; + QRegExp m_xmlElementRegex; + QRegExp m_xmlAttributeRegex; + QRegExp m_xmlValueRegex; + QRegExp m_xmlCommentRegex; +}; + +#endif // BASIC_XML_SYNTAX_HIGHLIGHTER_H