rpcsx/rpcs3qt-legacy/syntax_highlighter.h
2025-04-06 23:55:46 +03: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);
};