// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QSYNTAXHIGHLIGHTER_H #define QSYNTAXHIGHLIGHTER_H #include #ifndef QT_NO_SYNTAXHIGHLIGHTER #include #include QT_BEGIN_NAMESPACE class QTextDocument; class QSyntaxHighlighterPrivate; class QTextCharFormat; class QFont; class QColor; class QTextBlockUserData; class Q_GUI_EXPORT QSyntaxHighlighter : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QSyntaxHighlighter) public: explicit QSyntaxHighlighter(QObject *parent); explicit QSyntaxHighlighter(QTextDocument *parent); ~QSyntaxHighlighter(); void setDocument(QTextDocument *doc); QTextDocument *document() const; public Q_SLOTS: void rehighlight(); void rehighlightBlock(const QTextBlock &block); protected: virtual void highlightBlock(const QString &text) = 0; void setFormat(int start, int count, const QTextCharFormat &format); void setFormat(int start, int count, const QColor &color); void setFormat(int start, int count, const QFont &font); QTextCharFormat format(int pos) const; int previousBlockState() const; int currentBlockState() const; void setCurrentBlockState(int newState); void setCurrentBlockUserData(QTextBlockUserData *data); QTextBlockUserData *currentBlockUserData() const; QTextBlock currentBlock() const; private: Q_DISABLE_COPY(QSyntaxHighlighter) Q_PRIVATE_SLOT(d_func(), void _q_reformatBlocks(int from, int charsRemoved, int charsAdded)) Q_PRIVATE_SLOT(d_func(), void _q_delayedRehighlight()) }; QT_END_NAMESPACE #endif // QT_NO_SYNTAXHIGHLIGHTER #endif // QSYNTAXHIGHLIGHTER_H