35 lines
717 B
C
35 lines
717 B
C
|
|
#ifndef SQLSYNTAXHIGHLIGHTER_H
|
|||
|
|
#define SQLSYNTAXHIGHLIGHTER_H
|
|||
|
|
|
|||
|
|
#include <QSyntaxHighlighter>
|
|||
|
|
#include <QTextFormat>
|
|||
|
|
#include <unordered_set>
|
|||
|
|
#include "util.h"
|
|||
|
|
|
|||
|
|
using t_SymbolSet = std::unordered_set<QString>;
|
|||
|
|
|
|||
|
|
class PgTypeContainer;
|
|||
|
|
|
|||
|
|
class SqlSyntaxHighlighter : public QSyntaxHighlighter
|
|||
|
|
{
|
|||
|
|
Q_OBJECT
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
SqlSyntaxHighlighter(QTextDocument *parent = nullptr);
|
|||
|
|
~SqlSyntaxHighlighter();
|
|||
|
|
|
|||
|
|
void setTypes(const PgTypeContainer *types);
|
|||
|
|
protected:
|
|||
|
|
void highlightBlock(const QString &text) override;
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
QTextCharFormat m_keywordFormat;
|
|||
|
|
QTextCharFormat m_commentFormat;
|
|||
|
|
QTextCharFormat m_quotedStringFormat;
|
|||
|
|
QTextCharFormat m_typeFormat;
|
|||
|
|
|
|||
|
|
t_SymbolSet m_typeNames;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // SQLSYNTAXHIGHLIGHTER_H
|