QtNovelUI/WordsIDE/keywordshightlighter.h

43 lines
882 B
C++

#ifndef WORDSHIGHTLIGHTER_H
#define WORDSHIGHTLIGHTER_H
#include <QObject>
#include <QSyntaxHighlighter>
#include <libParse.h>
namespace Core {
class AppCore;
}
namespace Enhancement {
class HighlightDemand
{
public:
virtual ~HighlightDemand() = default;
virtual void contexBind(Core::AppCore *app, Parse::Result::DocCore *core) = 0;
virtual void reHighlighter() const = 0;
};
/**
* @brief 词语语法高亮
*/
class KeywordsHightlighter : public QSyntaxHighlighter
{
public:
KeywordsHightlighter(QObject *parent = nullptr);
void reset(Parse::Result::DocCore *base);
private:
Parse::Result::DocCore *parse_core;
// QSyntaxHighlighter interface
protected:
virtual void highlightBlock(const QString &text) override;
};
}
#endif // WORDSHIGHTLIGHTER_H