2017-02-07 21:39:45 +01:00
|
|
|
|
#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;
|
2017-02-09 21:54:31 +01:00
|
|
|
|
QTextCharFormat m_quotedIdentifierFormat;
|
2017-02-07 21:39:45 +01:00
|
|
|
|
|
|
|
|
|
|
t_SymbolSet m_typeNames;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // SQLSYNTAXHIGHLIGHTER_H
|