#pragma once #include #include #include #include #include class Highlighter : public QSyntaxHighlighter { Q_OBJECT public: enum state_e {NORMAL=-1,QUOTE,COMMENT}; QHash tokenFormats; QTextCharFormat errorFormat; Highlighter(QTextDocument *parent); void highlightBlock(const QString &text); void assignFormatsToTokens(const QString &); void portable_rehighlightBlock( const QTextBlock &text ); void highlightError(int error_pos); void unhighlightLastError(); private: QTextBlock lastErrorBlock; int errorPos; bool errorState; QMap tokentypes; QMap typeformats; int lastDocumentPos(); };