rpcsx/rpcs3/rpcs3qt/syntax_highlighter.h
2021-04-09 21:03:49 +02:00

55 lines
1 KiB
C++

#pragma once
#include <QSyntaxHighlighter>
#include <QRegularExpression>
// Inspired by https://doc.qt.io/qt-5/qtwidgets-richtext-syntaxhighlighter-example.html
class Highlighter : public QSyntaxHighlighter
{
Q_OBJECT
public:
explicit Highlighter(QTextDocument *parent = nullptr);
protected:
void highlightBlock(const QString &text) override;
void addRule(const QString &pattern, const QBrush &brush);
struct HighlightingRule
{
QRegularExpression pattern;
QTextCharFormat format;
};
QVector<HighlightingRule> highlightingRules;
QRegularExpression commentStartExpression;
QRegularExpression commentEndExpression;
QTextCharFormat multiLineCommentFormat;
};
class LogHighlighter : public Highlighter
{
Q_OBJECT
public:
explicit LogHighlighter(QTextDocument* parent = nullptr);
};
class AsmHighlighter : public Highlighter
{
Q_OBJECT
public:
explicit AsmHighlighter(QTextDocument *parent = nullptr);
};
class GlslHighlighter : public Highlighter
{
Q_OBJECT
public:
explicit GlslHighlighter(QTextDocument *parent = nullptr);
};